@osama_amireh/bayan-payroll-widgets-ui 2.0.6
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.
- package/README.md +448 -0
- package/fesm2022/osama_amireh-bayan-payroll-widgets-ui.mjs +1659 -0
- package/fesm2022/osama_amireh-bayan-payroll-widgets-ui.mjs.map +1 -0
- package/fesm2022/skysoftware-co-bayan-payroll-widgets-ui.mjs +1659 -0
- package/fesm2022/skysoftware-co-bayan-payroll-widgets-ui.mjs.map +1 -0
- package/package.json +51 -0
- package/types/osama_amireh-bayan-payroll-widgets-ui.d.ts +488 -0
- package/types/skysoftware-co-bayan-payroll-widgets-ui.d.ts +488 -0
|
@@ -0,0 +1,1659 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Pipe, input, ChangeDetectionStrategy, Component, output, computed, signal, inject, effect, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule, DecimalPipe, DatePipe } from '@angular/common';
|
|
5
|
+
import * as i1$2 from 'devextreme-angular';
|
|
6
|
+
import { DxPopupModule, DxScrollViewModule, DxScrollViewComponent, DxTooltipModule } from 'devextreme-angular';
|
|
7
|
+
import { finalize } from 'rxjs';
|
|
8
|
+
import * as i1$1 from '@angular/common/http';
|
|
9
|
+
import { faMoneyCheckDollarPen, faSitemap, faUserTie, faMedal, faCalendarAlt, faFileSignature, faUniversity, faCreditCard, faIslandTropical, faUser } from '@fortawesome/pro-light-svg-icons';
|
|
10
|
+
import * as i1$3 from '@fortawesome/angular-fontawesome';
|
|
11
|
+
import { FontAwesomeModule, FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
12
|
+
import { faCircleInfo, faChevronDown, faChevronUp } from '@fortawesome/pro-solid-svg-icons';
|
|
13
|
+
import { SkySectionDividerComponent, SkyScreenService, SkyDoughnutChartComponent } from '@skysoftware-co/sky-components-ui';
|
|
14
|
+
import * as i2 from 'devextreme-angular/core';
|
|
15
|
+
|
|
16
|
+
var Loans$2 = "Loans";
|
|
17
|
+
var InstallmentStartEndDate$2 = "Installment start / end date";
|
|
18
|
+
var JobInformation$2 = "Job information";
|
|
19
|
+
var AdminUnit$2 = "Admin unit";
|
|
20
|
+
var Position$2 = "Position";
|
|
21
|
+
var Grade$2 = "Grade";
|
|
22
|
+
var JoiningDate$2 = "Joining date";
|
|
23
|
+
var BankInformation$2 = "Bank information";
|
|
24
|
+
var Bank$2 = "Bank";
|
|
25
|
+
var IBAN$2 = "IBAN";
|
|
26
|
+
var AC$2 = "Account";
|
|
27
|
+
var VacationBalance$2 = "Vacation balance";
|
|
28
|
+
var TicketBalance$2 = "Ticket balance";
|
|
29
|
+
var Tickets$2 = "Tickets";
|
|
30
|
+
var Indemnity$2 = "Indemnity";
|
|
31
|
+
var IndemnityDays$2 = "Indemnity days";
|
|
32
|
+
var IndemnityAmount$2 = "Indemnity amount";
|
|
33
|
+
var Adult$1 = "Adult";
|
|
34
|
+
var TotalAmount$2 = "Total amount";
|
|
35
|
+
var InstallmentAmount$2 = "Installment amount";
|
|
36
|
+
var TotalPaid$2 = "Total paid";
|
|
37
|
+
var RemainingAmount$2 = "Remaining amount";
|
|
38
|
+
var Salary$2 = "Salary";
|
|
39
|
+
var GrossSalary$2 = "Gross salary";
|
|
40
|
+
var Basic$2 = "Basic";
|
|
41
|
+
var ActualBasicSalary$2 = "Actual basic salary";
|
|
42
|
+
var UnpaidVacations$2 = "Unpaid vacations";
|
|
43
|
+
var Allowances$2 = "Allowances";
|
|
44
|
+
var Deductions$2 = "Deductions";
|
|
45
|
+
var ViewDetails$2 = "View details";
|
|
46
|
+
var ActualBasicDetails$2 = "Actual basic details";
|
|
47
|
+
var Attendance$2 = "Attendance";
|
|
48
|
+
var PayMonth$2 = "Pay month";
|
|
49
|
+
var SelectPayMonth$2 = "Select pay month";
|
|
50
|
+
var PreviewPayslip$2 = "Preview payslip";
|
|
51
|
+
var Export$2 = "Export";
|
|
52
|
+
var Days$2 = "Days";
|
|
53
|
+
var Day$2 = "Day";
|
|
54
|
+
var Amount$2 = "Amount";
|
|
55
|
+
var NetSalary$2 = "Net salary";
|
|
56
|
+
var WorkingDays$2 = "Working days";
|
|
57
|
+
var NoPayslipAvailableYet$2 = "No payslip available yet";
|
|
58
|
+
var YouAreNotAllowedToViewThePayslip$2 = "You are not allowed to view the payslip";
|
|
59
|
+
var AccountNumber$2 = "Account Number";
|
|
60
|
+
var SalaryTransferDetails$2 = "Salary transfer details";
|
|
61
|
+
var BankName$2 = "Bank name";
|
|
62
|
+
var ExploreSalaryTransferDetails$2 = "Explore salary transfer details";
|
|
63
|
+
var ViewMore$2 = "View more";
|
|
64
|
+
var ViewLess$2 = "View less";
|
|
65
|
+
var VacationTypeName$2 = "Vacation type";
|
|
66
|
+
var Balance$2 = "Balance";
|
|
67
|
+
var en = {
|
|
68
|
+
Loans: Loans$2,
|
|
69
|
+
InstallmentStartEndDate: InstallmentStartEndDate$2,
|
|
70
|
+
JobInformation: JobInformation$2,
|
|
71
|
+
AdminUnit: AdminUnit$2,
|
|
72
|
+
Position: Position$2,
|
|
73
|
+
Grade: Grade$2,
|
|
74
|
+
JoiningDate: JoiningDate$2,
|
|
75
|
+
BankInformation: BankInformation$2,
|
|
76
|
+
Bank: Bank$2,
|
|
77
|
+
IBAN: IBAN$2,
|
|
78
|
+
AC: AC$2,
|
|
79
|
+
VacationBalance: VacationBalance$2,
|
|
80
|
+
TicketBalance: TicketBalance$2,
|
|
81
|
+
Tickets: Tickets$2,
|
|
82
|
+
Indemnity: Indemnity$2,
|
|
83
|
+
IndemnityDays: IndemnityDays$2,
|
|
84
|
+
IndemnityAmount: IndemnityAmount$2,
|
|
85
|
+
Adult: Adult$1,
|
|
86
|
+
TotalAmount: TotalAmount$2,
|
|
87
|
+
InstallmentAmount: InstallmentAmount$2,
|
|
88
|
+
TotalPaid: TotalPaid$2,
|
|
89
|
+
RemainingAmount: RemainingAmount$2,
|
|
90
|
+
"Installments{{Value}}": "{{value}} installments",
|
|
91
|
+
Salary: Salary$2,
|
|
92
|
+
GrossSalary: GrossSalary$2,
|
|
93
|
+
Basic: Basic$2,
|
|
94
|
+
ActualBasicSalary: ActualBasicSalary$2,
|
|
95
|
+
UnpaidVacations: UnpaidVacations$2,
|
|
96
|
+
Allowances: Allowances$2,
|
|
97
|
+
Deductions: Deductions$2,
|
|
98
|
+
ViewDetails: ViewDetails$2,
|
|
99
|
+
ActualBasicDetails: ActualBasicDetails$2,
|
|
100
|
+
Attendance: Attendance$2,
|
|
101
|
+
PayMonth: PayMonth$2,
|
|
102
|
+
SelectPayMonth: SelectPayMonth$2,
|
|
103
|
+
PreviewPayslip: PreviewPayslip$2,
|
|
104
|
+
Export: Export$2,
|
|
105
|
+
Days: Days$2,
|
|
106
|
+
Day: Day$2,
|
|
107
|
+
Amount: Amount$2,
|
|
108
|
+
NetSalary: NetSalary$2,
|
|
109
|
+
WorkingDays: WorkingDays$2,
|
|
110
|
+
NoPayslipAvailableYet: NoPayslipAvailableYet$2,
|
|
111
|
+
YouAreNotAllowedToViewThePayslip: YouAreNotAllowedToViewThePayslip$2,
|
|
112
|
+
"PleaseContactYourAdminForAnyHelp.": "Please contact your admin for any help.",
|
|
113
|
+
AccountNumber: AccountNumber$2,
|
|
114
|
+
SalaryTransferDetails: SalaryTransferDetails$2,
|
|
115
|
+
BankName: BankName$2,
|
|
116
|
+
ExploreSalaryTransferDetails: ExploreSalaryTransferDetails$2,
|
|
117
|
+
ViewMore: ViewMore$2,
|
|
118
|
+
ViewLess: ViewLess$2,
|
|
119
|
+
VacationTypeName: VacationTypeName$2,
|
|
120
|
+
Balance: Balance$2
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var AccountNumber$1 = "رقم الحساب";
|
|
124
|
+
var SalaryTransferDetails$1 = "تفاصيل تحويل الراتب";
|
|
125
|
+
var BankName$1 = "اسم البنك";
|
|
126
|
+
var IBAN$1 = "رقم حساب البنك الدولي";
|
|
127
|
+
var AC$1 = "الحساب";
|
|
128
|
+
var AdminUnit$1 = "الوحدة الإدارية";
|
|
129
|
+
var Position$1 = "الوظيفة";
|
|
130
|
+
var Grade$1 = "الدرجة";
|
|
131
|
+
var JoiningDate$1 = "تاريخ الانضمام";
|
|
132
|
+
var JobInformation$1 = "معلومات الوظيفة";
|
|
133
|
+
var BankInformation$1 = "معلومات البنك";
|
|
134
|
+
var Bank$1 = "البنك";
|
|
135
|
+
var ExploreSalaryTransferDetails$1 = "استعراض تفاصيل تحويل الراتب";
|
|
136
|
+
var VacationBalance$1 = "أرصدة الإجازات";
|
|
137
|
+
var ViewMore$1 = "عرض المزيد";
|
|
138
|
+
var ViewLess$1 = "عرض أقل";
|
|
139
|
+
var VacationTypeName$1 = "نوع الإجازة";
|
|
140
|
+
var TicketBalance$1 = " أرصدة التذاكر";
|
|
141
|
+
var Tickets$1 = "التذاكر";
|
|
142
|
+
var Balance$1 = "الرصيد";
|
|
143
|
+
var Indemnity$1 = "التعويض";
|
|
144
|
+
var IndemnityDays$1 = "أيام التعويض";
|
|
145
|
+
var IndemnityAmount$1 = "مبلغ التعويض";
|
|
146
|
+
var Loans$1 = "القروض";
|
|
147
|
+
var InstallmentStartEndDate$1 = "تاريخ بداية / ونهاية القسط";
|
|
148
|
+
var TotalAmount$1 = "إجمالي المبلغ";
|
|
149
|
+
var InstallmentAmount$1 = "مبلغ القسط";
|
|
150
|
+
var TotalPaid$1 = "إجمالي المدفوع";
|
|
151
|
+
var RemainingAmount$1 = "المبلغ المتبقي";
|
|
152
|
+
var Salary$1 = "الراتب";
|
|
153
|
+
var GrossSalary$1 = "الراتب الإجمالي";
|
|
154
|
+
var Basic$1 = "الأساسي";
|
|
155
|
+
var ActualBasicSalary$1 = "الراتب الفعلي";
|
|
156
|
+
var UnpaidVacations$1 = "الإجازات غير المدفوعة";
|
|
157
|
+
var Allowances$1 = "العلاوات";
|
|
158
|
+
var Deductions$1 = "الاقتطاعات";
|
|
159
|
+
var ViewDetails$1 = "عرض التفاصيل";
|
|
160
|
+
var ActualBasicDetails$1 = "تفاصيل الأساسي الفعلي";
|
|
161
|
+
var Attendance$1 = "الحضور";
|
|
162
|
+
var PayMonth$1 = "شهر الراتب";
|
|
163
|
+
var SelectPayMonth$1 = "اختر شهر الراتب";
|
|
164
|
+
var PreviewPayslip$1 = "معاينة قسيمة الراتب";
|
|
165
|
+
var Export$1 = "تصدير";
|
|
166
|
+
var Days$1 = "الأيام";
|
|
167
|
+
var Day$1 = "يوم";
|
|
168
|
+
var Amount$1 = "المبلغ";
|
|
169
|
+
var NetSalary$1 = "صافي الراتب";
|
|
170
|
+
var WorkingDays$1 = "أيام العمل";
|
|
171
|
+
var NoPayslipAvailableYet$1 = "لا توجد قسيمة راتب متاحة بعد";
|
|
172
|
+
var YouAreNotAllowedToViewThePayslip$1 = "غير مسموح لك بعرض قسيمة الراتب";
|
|
173
|
+
var BankBranch$1 = "فرع البنك";
|
|
174
|
+
var ar = {
|
|
175
|
+
AccountNumber: AccountNumber$1,
|
|
176
|
+
SalaryTransferDetails: SalaryTransferDetails$1,
|
|
177
|
+
BankName: BankName$1,
|
|
178
|
+
IBAN: IBAN$1,
|
|
179
|
+
AC: AC$1,
|
|
180
|
+
AdminUnit: AdminUnit$1,
|
|
181
|
+
Position: Position$1,
|
|
182
|
+
Grade: Grade$1,
|
|
183
|
+
JoiningDate: JoiningDate$1,
|
|
184
|
+
JobInformation: JobInformation$1,
|
|
185
|
+
BankInformation: BankInformation$1,
|
|
186
|
+
Bank: Bank$1,
|
|
187
|
+
ExploreSalaryTransferDetails: ExploreSalaryTransferDetails$1,
|
|
188
|
+
VacationBalance: VacationBalance$1,
|
|
189
|
+
ViewMore: ViewMore$1,
|
|
190
|
+
ViewLess: ViewLess$1,
|
|
191
|
+
VacationTypeName: VacationTypeName$1,
|
|
192
|
+
TicketBalance: TicketBalance$1,
|
|
193
|
+
Tickets: Tickets$1,
|
|
194
|
+
Balance: Balance$1,
|
|
195
|
+
Indemnity: Indemnity$1,
|
|
196
|
+
IndemnityDays: IndemnityDays$1,
|
|
197
|
+
IndemnityAmount: IndemnityAmount$1,
|
|
198
|
+
Loans: Loans$1,
|
|
199
|
+
InstallmentStartEndDate: InstallmentStartEndDate$1,
|
|
200
|
+
TotalAmount: TotalAmount$1,
|
|
201
|
+
InstallmentAmount: InstallmentAmount$1,
|
|
202
|
+
TotalPaid: TotalPaid$1,
|
|
203
|
+
RemainingAmount: RemainingAmount$1,
|
|
204
|
+
"Installments{{value}}": "{{value}} اقساط",
|
|
205
|
+
Salary: Salary$1,
|
|
206
|
+
GrossSalary: GrossSalary$1,
|
|
207
|
+
Basic: Basic$1,
|
|
208
|
+
ActualBasicSalary: ActualBasicSalary$1,
|
|
209
|
+
UnpaidVacations: UnpaidVacations$1,
|
|
210
|
+
Allowances: Allowances$1,
|
|
211
|
+
Deductions: Deductions$1,
|
|
212
|
+
ViewDetails: ViewDetails$1,
|
|
213
|
+
ActualBasicDetails: ActualBasicDetails$1,
|
|
214
|
+
Attendance: Attendance$1,
|
|
215
|
+
PayMonth: PayMonth$1,
|
|
216
|
+
SelectPayMonth: SelectPayMonth$1,
|
|
217
|
+
PreviewPayslip: PreviewPayslip$1,
|
|
218
|
+
Export: Export$1,
|
|
219
|
+
Days: Days$1,
|
|
220
|
+
Day: Day$1,
|
|
221
|
+
Amount: Amount$1,
|
|
222
|
+
NetSalary: NetSalary$1,
|
|
223
|
+
WorkingDays: WorkingDays$1,
|
|
224
|
+
NoPayslipAvailableYet: NoPayslipAvailableYet$1,
|
|
225
|
+
YouAreNotAllowedToViewThePayslip: YouAreNotAllowedToViewThePayslip$1,
|
|
226
|
+
"PleaseContactYourAdminForAnyHelp.": "يرجى التواصل مع مسؤول النظام لأي مساعدة.",
|
|
227
|
+
BankBranch: BankBranch$1
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
var Loans = "Prets";
|
|
231
|
+
var InstallmentStartEndDate = "Date de debut / fin de versement";
|
|
232
|
+
var TotalAmount = "Montant total";
|
|
233
|
+
var InstallmentAmount = "Montant du versement";
|
|
234
|
+
var TotalPaid = "Total paye";
|
|
235
|
+
var RemainingAmount = "Montant restant";
|
|
236
|
+
var JobInformation = "Informations du poste";
|
|
237
|
+
var AdminUnit = "Unite administrative";
|
|
238
|
+
var Position = "Poste";
|
|
239
|
+
var Grade = "Grade";
|
|
240
|
+
var JoiningDate = "Date d'embauche";
|
|
241
|
+
var BankInformation = "Informations bancaires";
|
|
242
|
+
var Bank = "Banque";
|
|
243
|
+
var IBAN = "IBAN";
|
|
244
|
+
var AC = "Compte";
|
|
245
|
+
var VacationBalance = "Solde de conges";
|
|
246
|
+
var TicketBalance = "Solde des billets";
|
|
247
|
+
var Tickets = "Billets";
|
|
248
|
+
var Indemnity = "Indemnite";
|
|
249
|
+
var IndemnityDays = "Jours d'indemnite";
|
|
250
|
+
var IndemnityAmount = "Montant de l'indemnite";
|
|
251
|
+
var Adult = "Adulte";
|
|
252
|
+
var Salary = "Salaire";
|
|
253
|
+
var GrossSalary = "Salaire brut";
|
|
254
|
+
var Basic = "Basique";
|
|
255
|
+
var ActualBasicSalary = "Salaire de base réel";
|
|
256
|
+
var UnpaidVacations = "Congés non payés";
|
|
257
|
+
var Allowances = "Allocations";
|
|
258
|
+
var Deductions = "Déductions";
|
|
259
|
+
var ViewDetails = "Voir les détails";
|
|
260
|
+
var ActualBasicDetails = "Détails du salaire de base réel";
|
|
261
|
+
var Attendance = "Présence";
|
|
262
|
+
var PayMonth = "Mois de paie";
|
|
263
|
+
var SelectPayMonth = "Selectionner le mois de paie";
|
|
264
|
+
var PreviewPayslip = "Aperçu de la fiche de paie";
|
|
265
|
+
var Export = "Exporter";
|
|
266
|
+
var Days = "Jours";
|
|
267
|
+
var Day = "Jour";
|
|
268
|
+
var Amount = "Montant";
|
|
269
|
+
var NetSalary = "Salaire net";
|
|
270
|
+
var WorkingDays = "Jours de travail";
|
|
271
|
+
var NoPayslipAvailableYet = "Aucune fiche de paie disponible pour le momentt";
|
|
272
|
+
var YouAreNotAllowedToViewThePayslip = "Vous n'êtes pas autorisé à consulter la fiche de paie !";
|
|
273
|
+
var AccountNumber = "Numéro de compte";
|
|
274
|
+
var SalaryTransferDetails = "Détails du transfert de salaire";
|
|
275
|
+
var BankName = "Nom de la banque";
|
|
276
|
+
var ExploreSalaryTransferDetails = "Explorer les détails du transfert de salaire";
|
|
277
|
+
var ViewMore = "Voir plus";
|
|
278
|
+
var ViewLess = "Voir moins";
|
|
279
|
+
var VacationTypeName = "Type de congé";
|
|
280
|
+
var Balance = "Solde";
|
|
281
|
+
var BankBranch = "Agence bancaire";
|
|
282
|
+
var fr = {
|
|
283
|
+
Loans: Loans,
|
|
284
|
+
InstallmentStartEndDate: InstallmentStartEndDate,
|
|
285
|
+
TotalAmount: TotalAmount,
|
|
286
|
+
InstallmentAmount: InstallmentAmount,
|
|
287
|
+
TotalPaid: TotalPaid,
|
|
288
|
+
RemainingAmount: RemainingAmount,
|
|
289
|
+
"Installments{{value}}": "{{value}} versements",
|
|
290
|
+
JobInformation: JobInformation,
|
|
291
|
+
AdminUnit: AdminUnit,
|
|
292
|
+
Position: Position,
|
|
293
|
+
Grade: Grade,
|
|
294
|
+
JoiningDate: JoiningDate,
|
|
295
|
+
BankInformation: BankInformation,
|
|
296
|
+
Bank: Bank,
|
|
297
|
+
IBAN: IBAN,
|
|
298
|
+
AC: AC,
|
|
299
|
+
VacationBalance: VacationBalance,
|
|
300
|
+
TicketBalance: TicketBalance,
|
|
301
|
+
Tickets: Tickets,
|
|
302
|
+
Indemnity: Indemnity,
|
|
303
|
+
IndemnityDays: IndemnityDays,
|
|
304
|
+
IndemnityAmount: IndemnityAmount,
|
|
305
|
+
Adult: Adult,
|
|
306
|
+
Salary: Salary,
|
|
307
|
+
GrossSalary: GrossSalary,
|
|
308
|
+
Basic: Basic,
|
|
309
|
+
ActualBasicSalary: ActualBasicSalary,
|
|
310
|
+
UnpaidVacations: UnpaidVacations,
|
|
311
|
+
Allowances: Allowances,
|
|
312
|
+
Deductions: Deductions,
|
|
313
|
+
ViewDetails: ViewDetails,
|
|
314
|
+
ActualBasicDetails: ActualBasicDetails,
|
|
315
|
+
Attendance: Attendance,
|
|
316
|
+
PayMonth: PayMonth,
|
|
317
|
+
SelectPayMonth: SelectPayMonth,
|
|
318
|
+
PreviewPayslip: PreviewPayslip,
|
|
319
|
+
Export: Export,
|
|
320
|
+
Days: Days,
|
|
321
|
+
Day: Day,
|
|
322
|
+
Amount: Amount,
|
|
323
|
+
NetSalary: NetSalary,
|
|
324
|
+
WorkingDays: WorkingDays,
|
|
325
|
+
NoPayslipAvailableYet: NoPayslipAvailableYet,
|
|
326
|
+
YouAreNotAllowedToViewThePayslip: YouAreNotAllowedToViewThePayslip,
|
|
327
|
+
"PleaseContactYourAdminForAnyHelp.": "Veuillez contacter votre administrateur pour toute aide.",
|
|
328
|
+
AccountNumber: AccountNumber,
|
|
329
|
+
SalaryTransferDetails: SalaryTransferDetails,
|
|
330
|
+
BankName: BankName,
|
|
331
|
+
ExploreSalaryTransferDetails: ExploreSalaryTransferDetails,
|
|
332
|
+
ViewMore: ViewMore,
|
|
333
|
+
ViewLess: ViewLess,
|
|
334
|
+
VacationTypeName: VacationTypeName,
|
|
335
|
+
Balance: Balance,
|
|
336
|
+
BankBranch: BankBranch
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
const BUILT_IN_LEXICONS = { en, ar, fr };
|
|
340
|
+
class PayrollTranslateService {
|
|
341
|
+
currentLanguage = 'en';
|
|
342
|
+
lexicon = {};
|
|
343
|
+
setLanguage(language) {
|
|
344
|
+
this.currentLanguage = language;
|
|
345
|
+
}
|
|
346
|
+
getLanguage() {
|
|
347
|
+
return this.currentLanguage;
|
|
348
|
+
}
|
|
349
|
+
setLexicon(lexicon) {
|
|
350
|
+
this.lexicon = lexicon;
|
|
351
|
+
}
|
|
352
|
+
getLexicon() {
|
|
353
|
+
return this.lexicon;
|
|
354
|
+
}
|
|
355
|
+
translateBuiltIn(key) {
|
|
356
|
+
if (!key)
|
|
357
|
+
return '';
|
|
358
|
+
const builtIn = BUILT_IN_LEXICONS[this.currentLanguage] || {};
|
|
359
|
+
const foundKey = Object.keys(builtIn).find(k => k.toLowerCase() === key.toLowerCase());
|
|
360
|
+
return foundKey ? builtIn[foundKey] : key;
|
|
361
|
+
}
|
|
362
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
363
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslateService, providedIn: 'root' });
|
|
364
|
+
}
|
|
365
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslateService, decorators: [{
|
|
366
|
+
type: Injectable,
|
|
367
|
+
args: [{ providedIn: 'root' }]
|
|
368
|
+
}] });
|
|
369
|
+
|
|
370
|
+
class PayrollTranslatePipe {
|
|
371
|
+
payrollTranslateService;
|
|
372
|
+
constructor(payrollTranslateService) {
|
|
373
|
+
this.payrollTranslateService = payrollTranslateService;
|
|
374
|
+
}
|
|
375
|
+
transform(key) {
|
|
376
|
+
if (!key)
|
|
377
|
+
return '';
|
|
378
|
+
key = this.payrollTranslateService.translateBuiltIn(key);
|
|
379
|
+
const lexicon = this.payrollTranslateService.getLexicon();
|
|
380
|
+
let foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === key.toLowerCase());
|
|
381
|
+
if (foundKey)
|
|
382
|
+
return lexicon[foundKey];
|
|
383
|
+
const arrKey = key.split(' ');
|
|
384
|
+
let keyValue = '';
|
|
385
|
+
for (let i = 0; i < arrKey.length; i++) {
|
|
386
|
+
if (i !== 0)
|
|
387
|
+
keyValue += ' ';
|
|
388
|
+
foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());
|
|
389
|
+
if (foundKey) {
|
|
390
|
+
keyValue += lexicon[foundKey];
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
keyValue += arrKey[i];
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
return keyValue;
|
|
397
|
+
}
|
|
398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslatePipe, deps: [{ token: PayrollTranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
399
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslatePipe, isStandalone: true, name: "PayrollTranslate" });
|
|
400
|
+
}
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollTranslatePipe, decorators: [{
|
|
402
|
+
type: Pipe,
|
|
403
|
+
args: [{
|
|
404
|
+
name: 'PayrollTranslate',
|
|
405
|
+
standalone: true,
|
|
406
|
+
}]
|
|
407
|
+
}], ctorParameters: () => [{ type: PayrollTranslateService }] });
|
|
408
|
+
|
|
409
|
+
class LoanCardComponent {
|
|
410
|
+
loan = input.required(...(ngDevMode ? [{ debugName: "loan" }] : /* istanbul ignore next */ []));
|
|
411
|
+
currencyCode = input('', ...(ngDevMode ? [{ debugName: "currencyCode" }] : /* istanbul ignore next */ []));
|
|
412
|
+
cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2', ...(ngDevMode ? [{ debugName: "cardContainerClass" }] : /* istanbul ignore next */ []));
|
|
413
|
+
installRangeLabelClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "installRangeLabelClass" }] : /* istanbul ignore next */ []));
|
|
414
|
+
lineClass = input('fs-12 mb-2', ...(ngDevMode ? [{ debugName: "lineClass" }] : /* istanbul ignore next */ []));
|
|
415
|
+
amountLabelClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "amountLabelClass" }] : /* istanbul ignore next */ []));
|
|
416
|
+
currencyCodeClass = input('text-secondary fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
417
|
+
amountValueClass = input('text-dark-gray mx-1 fs-14', ...(ngDevMode ? [{ debugName: "amountValueClass" }] : /* istanbul ignore next */ []));
|
|
418
|
+
totalPaidClass = input('text-success fs-12', ...(ngDevMode ? [{ debugName: "totalPaidClass" }] : /* istanbul ignore next */ []));
|
|
419
|
+
remainingInstallmentClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "remainingInstallmentClass" }] : /* istanbul ignore next */ []));
|
|
420
|
+
loanTitleClass = input('text-dark fs-20 mb-2', ...(ngDevMode ? [{ debugName: "loanTitleClass" }] : /* istanbul ignore next */ []));
|
|
421
|
+
formatAmount = input((value) => value.toString(), ...(ngDevMode ? [{ debugName: "formatAmount" }] : /* istanbul ignore next */ []));
|
|
422
|
+
remainingInstallmentsText = input((count) => count.toString(), ...(ngDevMode ? [{ debugName: "remainingInstallmentsText" }] : /* istanbul ignore next */ []));
|
|
423
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: LoanCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
424
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.17", type: LoanCardComponent, isStandalone: true, selector: "payroll-loan-card", inputs: { loan: { classPropertyName: "loan", publicName: "loan", isSignal: true, isRequired: true, transformFunction: null }, currencyCode: { classPropertyName: "currencyCode", publicName: "currencyCode", isSignal: true, isRequired: false, transformFunction: null }, cardContainerClass: { classPropertyName: "cardContainerClass", publicName: "cardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, installRangeLabelClass: { classPropertyName: "installRangeLabelClass", publicName: "installRangeLabelClass", isSignal: true, isRequired: false, transformFunction: null }, lineClass: { classPropertyName: "lineClass", publicName: "lineClass", isSignal: true, isRequired: false, transformFunction: null }, amountLabelClass: { classPropertyName: "amountLabelClass", publicName: "amountLabelClass", isSignal: true, isRequired: false, transformFunction: null }, currencyCodeClass: { classPropertyName: "currencyCodeClass", publicName: "currencyCodeClass", isSignal: true, isRequired: false, transformFunction: null }, amountValueClass: { classPropertyName: "amountValueClass", publicName: "amountValueClass", isSignal: true, isRequired: false, transformFunction: null }, totalPaidClass: { classPropertyName: "totalPaidClass", publicName: "totalPaidClass", isSignal: true, isRequired: false, transformFunction: null }, remainingInstallmentClass: { classPropertyName: "remainingInstallmentClass", publicName: "remainingInstallmentClass", isSignal: true, isRequired: false, transformFunction: null }, loanTitleClass: { classPropertyName: "loanTitleClass", publicName: "loanTitleClass", isSignal: true, isRequired: false, transformFunction: null }, formatAmount: { classPropertyName: "formatAmount", publicName: "formatAmount", isSignal: true, isRequired: false, transformFunction: null }, remainingInstallmentsText: { classPropertyName: "remainingInstallmentsText", publicName: "remainingInstallmentsText", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
425
|
+
}
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: LoanCardComponent, decorators: [{
|
|
427
|
+
type: Component,
|
|
428
|
+
args: [{ selector: 'payroll-loan-card', standalone: true, imports: [CommonModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
429
|
+
}], propDecorators: { loan: [{ type: i0.Input, args: [{ isSignal: true, alias: "loan", required: true }] }], currencyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCode", required: false }] }], cardContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardContainerClass", required: false }] }], installRangeLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "installRangeLabelClass", required: false }] }], lineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineClass", required: false }] }], amountLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountLabelClass", required: false }] }], currencyCodeClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCodeClass", required: false }] }], amountValueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountValueClass", required: false }] }], totalPaidClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPaidClass", required: false }] }], remainingInstallmentClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "remainingInstallmentClass", required: false }] }], loanTitleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "loanTitleClass", required: false }] }], formatAmount: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatAmount", required: false }] }], remainingInstallmentsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "remainingInstallmentsText", required: false }] }] } });
|
|
430
|
+
|
|
431
|
+
class LoanPaginationComponent {
|
|
432
|
+
totalPages = input(0, ...(ngDevMode ? [{ debugName: "totalPages" }] : /* istanbul ignore next */ []));
|
|
433
|
+
currentPage = input(0, ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
|
|
434
|
+
navContainerClass = input('d-flex justify-content-center mt-3', ...(ngDevMode ? [{ debugName: "navContainerClass" }] : /* istanbul ignore next */ []));
|
|
435
|
+
navListClass = input('pagination mb-1', ...(ngDevMode ? [{ debugName: "navListClass" }] : /* istanbul ignore next */ []));
|
|
436
|
+
pageItemClass = input('page-item page-number mx-3', ...(ngDevMode ? [{ debugName: "pageItemClass" }] : /* istanbul ignore next */ []));
|
|
437
|
+
arrowItemClass = input('page-item arrow', ...(ngDevMode ? [{ debugName: "arrowItemClass" }] : /* istanbul ignore next */ []));
|
|
438
|
+
pageLinkClass = input('page-link rounded-circle', ...(ngDevMode ? [{ debugName: "pageLinkClass" }] : /* istanbul ignore next */ []));
|
|
439
|
+
arrowActiveClass = input('text-primary', ...(ngDevMode ? [{ debugName: "arrowActiveClass" }] : /* istanbul ignore next */ []));
|
|
440
|
+
previousClicked = output();
|
|
441
|
+
nextClicked = output();
|
|
442
|
+
pageClicked = output();
|
|
443
|
+
blurButton(event) {
|
|
444
|
+
event.target.closest('button')?.blur();
|
|
445
|
+
}
|
|
446
|
+
onPreviousClick(event) {
|
|
447
|
+
this.blurButton(event);
|
|
448
|
+
this.previousClicked.emit();
|
|
449
|
+
}
|
|
450
|
+
onNextClick(event) {
|
|
451
|
+
this.blurButton(event);
|
|
452
|
+
this.nextClicked.emit();
|
|
453
|
+
}
|
|
454
|
+
onPageClick(page, event) {
|
|
455
|
+
this.blurButton(event);
|
|
456
|
+
this.pageClicked.emit(page);
|
|
457
|
+
}
|
|
458
|
+
pages = computed(() => {
|
|
459
|
+
const half = Math.floor(5 / 2);
|
|
460
|
+
let start = Math.max(0, this.currentPage() - half);
|
|
461
|
+
let end = start + 4;
|
|
462
|
+
if (end >= this.totalPages()) {
|
|
463
|
+
end = this.totalPages() - 1;
|
|
464
|
+
start = Math.max(0, end - 4);
|
|
465
|
+
}
|
|
466
|
+
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
467
|
+
}, ...(ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []));
|
|
468
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: LoanPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
469
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: LoanPaginationComponent, isStandalone: true, selector: "payroll-loan-pagination", inputs: { totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, navContainerClass: { classPropertyName: "navContainerClass", publicName: "navContainerClass", isSignal: true, isRequired: false, transformFunction: null }, navListClass: { classPropertyName: "navListClass", publicName: "navListClass", isSignal: true, isRequired: false, transformFunction: null }, pageItemClass: { classPropertyName: "pageItemClass", publicName: "pageItemClass", isSignal: true, isRequired: false, transformFunction: null }, arrowItemClass: { classPropertyName: "arrowItemClass", publicName: "arrowItemClass", isSignal: true, isRequired: false, transformFunction: null }, pageLinkClass: { classPropertyName: "pageLinkClass", publicName: "pageLinkClass", isSignal: true, isRequired: false, transformFunction: null }, arrowActiveClass: { classPropertyName: "arrowActiveClass", publicName: "arrowActiveClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { previousClicked: "previousClicked", nextClicked: "nextClicked", pageClicked: "pageClicked" }, ngImport: i0, template: "@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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
470
|
+
}
|
|
471
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: LoanPaginationComponent, decorators: [{
|
|
472
|
+
type: Component,
|
|
473
|
+
args: [{ selector: 'payroll-loan-pagination', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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" }]
|
|
474
|
+
}], propDecorators: { totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }], navContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "navContainerClass", required: false }] }], navListClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "navListClass", required: false }] }], pageItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageItemClass", required: false }] }], arrowItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowItemClass", required: false }] }], pageLinkClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinkClass", required: false }] }], arrowActiveClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowActiveClass", required: false }] }], previousClicked: [{ type: i0.Output, args: ["previousClicked"] }], nextClicked: [{ type: i0.Output, args: ["nextClicked"] }], pageClicked: [{ type: i0.Output, args: ["pageClicked"] }] } });
|
|
475
|
+
|
|
476
|
+
class CommonMethods {
|
|
477
|
+
translateService;
|
|
478
|
+
constructor(translateService) {
|
|
479
|
+
this.translateService = translateService;
|
|
480
|
+
}
|
|
481
|
+
currencyDecimalFormat(value, currencyDecimalsNumber) {
|
|
482
|
+
const currencyDecimalsString = `1.${currencyDecimalsNumber}-${currencyDecimalsNumber}`;
|
|
483
|
+
const languageCode = this.translateService.getLanguage();
|
|
484
|
+
const decimalPipe = new DecimalPipe(languageCode === 'fr' ? 'fr-FR' : 'en-US');
|
|
485
|
+
if (languageCode === 'fr') {
|
|
486
|
+
return decimalPipe.transform(value, currencyDecimalsString, 'fr-FR');
|
|
487
|
+
}
|
|
488
|
+
return decimalPipe.transform(value, currencyDecimalsString);
|
|
489
|
+
}
|
|
490
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CommonMethods, deps: [{ token: PayrollTranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
491
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CommonMethods, providedIn: 'root' });
|
|
492
|
+
}
|
|
493
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CommonMethods, decorators: [{
|
|
494
|
+
type: Injectable,
|
|
495
|
+
args: [{
|
|
496
|
+
providedIn: 'root',
|
|
497
|
+
}]
|
|
498
|
+
}], ctorParameters: () => [{ type: PayrollTranslateService }] });
|
|
499
|
+
|
|
500
|
+
class PayrollSelfWidgetsService {
|
|
501
|
+
http;
|
|
502
|
+
constructor(http) {
|
|
503
|
+
this.http = http;
|
|
504
|
+
}
|
|
505
|
+
headers = { 'api-version': '1' };
|
|
506
|
+
getLoans(baseUrl) {
|
|
507
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/loans`, {
|
|
508
|
+
headers: this.headers,
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
getPayslipJobInfo(baseUrl, payMonth) {
|
|
512
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}/job-information`, {
|
|
513
|
+
headers: this.headers,
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
getPayslipBankInformation(baseUrl, payMonth) {
|
|
517
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}/bank-transfers`, {
|
|
518
|
+
headers: this.headers,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
getPayslipVacationBalances(baseUrl, payMonth) {
|
|
522
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}/vacation-balances`, {
|
|
523
|
+
headers: this.headers,
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
getPayslipTicketBalances(baseUrl, payMonth) {
|
|
527
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}/ticket-balances`, {
|
|
528
|
+
headers: this.headers,
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
getPayslipIndemnity(baseUrl, payMonth) {
|
|
532
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}/indemnity`, {
|
|
533
|
+
headers: this.headers,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
getPayslipDetails(baseUrl, payMonth) {
|
|
537
|
+
return this.http.get(`${baseUrl}/payroll/widgets/me/payslip/${payMonth}`, {
|
|
538
|
+
headers: this.headers,
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollSelfWidgetsService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
542
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollSelfWidgetsService, providedIn: 'root' });
|
|
543
|
+
}
|
|
544
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayrollSelfWidgetsService, decorators: [{
|
|
545
|
+
type: Injectable,
|
|
546
|
+
args: [{
|
|
547
|
+
providedIn: 'root',
|
|
548
|
+
}]
|
|
549
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
550
|
+
|
|
551
|
+
class MyLoansPopupWidgetComponent {
|
|
552
|
+
popupVisible = input(false, ...(ngDevMode ? [{ debugName: "popupVisible" }] : /* istanbul ignore next */ []));
|
|
553
|
+
internalPopupVisible = signal(false, ...(ngDevMode ? [{ debugName: "internalPopupVisible" }] : /* istanbul ignore next */ []));
|
|
554
|
+
loanDetails = signal([], ...(ngDevMode ? [{ debugName: "loanDetails" }] : /* istanbul ignore next */ []));
|
|
555
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
556
|
+
currencyCode = input('', ...(ngDevMode ? [{ debugName: "currencyCode" }] : /* istanbul ignore next */ []));
|
|
557
|
+
currencyDecimals = input(2, ...(ngDevMode ? [{ debugName: "currencyDecimals" }] : /* istanbul ignore next */ []));
|
|
558
|
+
popupWidth = input(580, ...(ngDevMode ? [{ debugName: "popupWidth" }] : /* istanbul ignore next */ []));
|
|
559
|
+
popupHeight = input('auto', ...(ngDevMode ? [{ debugName: "popupHeight" }] : /* istanbul ignore next */ []));
|
|
560
|
+
popupTitleKey = input('Loans', ...(ngDevMode ? [{ debugName: "popupTitleKey" }] : /* istanbul ignore next */ []));
|
|
561
|
+
popupDragEnabled = input(false, ...(ngDevMode ? [{ debugName: "popupDragEnabled" }] : /* istanbul ignore next */ []));
|
|
562
|
+
popupShadingColor = input('rgba(0,0,0,0.4)', ...(ngDevMode ? [{ debugName: "popupShadingColor" }] : /* istanbul ignore next */ []));
|
|
563
|
+
contentContainerClass = input('mx-4 mt-2', ...(ngDevMode ? [{ debugName: "contentContainerClass" }] : /* istanbul ignore next */ []));
|
|
564
|
+
noPaginationContainerClass = input('mb-2', ...(ngDevMode ? [{ debugName: "noPaginationContainerClass" }] : /* istanbul ignore next */ []));
|
|
565
|
+
// Loan Card Classes
|
|
566
|
+
cardContainerClass = input('p-3 card-shadow h-100 border border-1 rounded-2', ...(ngDevMode ? [{ debugName: "cardContainerClass" }] : /* istanbul ignore next */ []));
|
|
567
|
+
loanTitleClass = input('text-dark fs-20 mb-2', ...(ngDevMode ? [{ debugName: "loanTitleClass" }] : /* istanbul ignore next */ []));
|
|
568
|
+
installRangeLabelClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "installRangeLabelClass" }] : /* istanbul ignore next */ []));
|
|
569
|
+
lineClass = input('fs-12 mb-2', ...(ngDevMode ? [{ debugName: "lineClass" }] : /* istanbul ignore next */ []));
|
|
570
|
+
amountLabelClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "amountLabelClass" }] : /* istanbul ignore next */ []));
|
|
571
|
+
currencyCodeClass = input('text-secondary fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
572
|
+
amountValueClass = input('text-dark-gray mx-1 fs-14', ...(ngDevMode ? [{ debugName: "amountValueClass" }] : /* istanbul ignore next */ []));
|
|
573
|
+
totalPaidClass = input('text-success fs-12', ...(ngDevMode ? [{ debugName: "totalPaidClass" }] : /* istanbul ignore next */ []));
|
|
574
|
+
remainingInstallmentClass = input('field-secondary-label-sm', ...(ngDevMode ? [{ debugName: "remainingInstallmentClass" }] : /* istanbul ignore next */ []));
|
|
575
|
+
// Loan Pagination Classes
|
|
576
|
+
navContainerClass = input('d-flex justify-content-center mt-3', ...(ngDevMode ? [{ debugName: "navContainerClass" }] : /* istanbul ignore next */ []));
|
|
577
|
+
navListClass = input('pagination mb-1', ...(ngDevMode ? [{ debugName: "navListClass" }] : /* istanbul ignore next */ []));
|
|
578
|
+
pageItemClass = input('page-item page-number mx-3', ...(ngDevMode ? [{ debugName: "pageItemClass" }] : /* istanbul ignore next */ []));
|
|
579
|
+
arrowItemClass = input('page-item arrow', ...(ngDevMode ? [{ debugName: "arrowItemClass" }] : /* istanbul ignore next */ []));
|
|
580
|
+
pageLinkClass = input('page-link rounded-circle', ...(ngDevMode ? [{ debugName: "pageLinkClass" }] : /* istanbul ignore next */ []));
|
|
581
|
+
popupVisibleChange = output();
|
|
582
|
+
closePopupClickHandler = output();
|
|
583
|
+
isLoadingChanged = output();
|
|
584
|
+
currentPage = signal(0, ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
|
|
585
|
+
pageSize = 1;
|
|
586
|
+
hasLoadedLoans = false;
|
|
587
|
+
isLoading = false;
|
|
588
|
+
pendingOpen = false;
|
|
589
|
+
employeeLoans = computed(() => {
|
|
590
|
+
const startIndex = this.currentPage() * this.pageSize;
|
|
591
|
+
return this.loanDetails().slice(startIndex, startIndex + this.pageSize);
|
|
592
|
+
}, ...(ngDevMode ? [{ debugName: "employeeLoans" }] : /* istanbul ignore next */ []));
|
|
593
|
+
translateService = inject(PayrollTranslatePipe);
|
|
594
|
+
commonMethods = inject(CommonMethods);
|
|
595
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
596
|
+
constructor() {
|
|
597
|
+
effect(() => {
|
|
598
|
+
const visible = this.popupVisible();
|
|
599
|
+
if (!visible) {
|
|
600
|
+
this.pendingOpen = false;
|
|
601
|
+
this.internalPopupVisible.set(false);
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
604
|
+
this.requestOpenPopup();
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
onPopupClose() {
|
|
608
|
+
this.pendingOpen = false;
|
|
609
|
+
this.internalPopupVisible.set(false);
|
|
610
|
+
this.popupVisibleChange.emit(false);
|
|
611
|
+
this.closePopupClickHandler.emit();
|
|
612
|
+
this.currentPage.set(0);
|
|
613
|
+
}
|
|
614
|
+
requestOpenPopup() {
|
|
615
|
+
this.pendingOpen = true;
|
|
616
|
+
if (this.loanDetails().length > 0 || this.hasLoadedLoans) {
|
|
617
|
+
this.internalPopupVisible.set(true);
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
if (this.isLoading || !this.baseUrl()) {
|
|
621
|
+
return;
|
|
622
|
+
}
|
|
623
|
+
this.isLoading = true;
|
|
624
|
+
this.isLoadingChanged.emit(true);
|
|
625
|
+
this.payrollWidgetsService
|
|
626
|
+
.getLoans(this.baseUrl())
|
|
627
|
+
.pipe(finalize(() => {
|
|
628
|
+
this.isLoading = false;
|
|
629
|
+
this.isLoadingChanged.emit(false);
|
|
630
|
+
if (this.pendingOpen && this.hasLoadedLoans) {
|
|
631
|
+
this.internalPopupVisible.set(true);
|
|
632
|
+
}
|
|
633
|
+
}))
|
|
634
|
+
.subscribe({
|
|
635
|
+
next: (response) => {
|
|
636
|
+
this.loanDetails.set(response.ResponseData ?? []);
|
|
637
|
+
this.hasLoadedLoans = true;
|
|
638
|
+
},
|
|
639
|
+
error: () => {
|
|
640
|
+
this.pendingOpen = false;
|
|
641
|
+
this.loanDetails.set([]);
|
|
642
|
+
},
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
goToPage(pageIndex) {
|
|
646
|
+
if (pageIndex >= 0 && pageIndex < this.loanDetails().length) {
|
|
647
|
+
this.currentPage.set(pageIndex);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
goToPreviousPage() {
|
|
651
|
+
if (this.currentPage() > 0) {
|
|
652
|
+
this.currentPage.update(value => value - 1);
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
goToNextPage() {
|
|
656
|
+
if (this.currentPage() < this.loanDetails().length - 1) {
|
|
657
|
+
this.currentPage.update(value => value + 1);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
currencyFormat(value) {
|
|
661
|
+
return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? '0';
|
|
662
|
+
}
|
|
663
|
+
getRemainingInstallment(installmentValue) {
|
|
664
|
+
const translated = this.translateService.transform('Installments{{value}}');
|
|
665
|
+
return translated.replace('{{value}}', `${String(installmentValue)}`);
|
|
666
|
+
}
|
|
667
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyLoansPopupWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
668
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyLoansPopupWidgetComponent, isStandalone: true, selector: "payroll-my-loans-popup", inputs: { popupVisible: { classPropertyName: "popupVisible", publicName: "popupVisible", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, currencyCode: { classPropertyName: "currencyCode", publicName: "currencyCode", isSignal: true, isRequired: false, transformFunction: null }, currencyDecimals: { classPropertyName: "currencyDecimals", publicName: "currencyDecimals", isSignal: true, isRequired: false, transformFunction: null }, popupWidth: { classPropertyName: "popupWidth", publicName: "popupWidth", isSignal: true, isRequired: false, transformFunction: null }, popupHeight: { classPropertyName: "popupHeight", publicName: "popupHeight", isSignal: true, isRequired: false, transformFunction: null }, popupTitleKey: { classPropertyName: "popupTitleKey", publicName: "popupTitleKey", isSignal: true, isRequired: false, transformFunction: null }, popupDragEnabled: { classPropertyName: "popupDragEnabled", publicName: "popupDragEnabled", isSignal: true, isRequired: false, transformFunction: null }, popupShadingColor: { classPropertyName: "popupShadingColor", publicName: "popupShadingColor", isSignal: true, isRequired: false, transformFunction: null }, contentContainerClass: { classPropertyName: "contentContainerClass", publicName: "contentContainerClass", isSignal: true, isRequired: false, transformFunction: null }, noPaginationContainerClass: { classPropertyName: "noPaginationContainerClass", publicName: "noPaginationContainerClass", isSignal: true, isRequired: false, transformFunction: null }, cardContainerClass: { classPropertyName: "cardContainerClass", publicName: "cardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, loanTitleClass: { classPropertyName: "loanTitleClass", publicName: "loanTitleClass", isSignal: true, isRequired: false, transformFunction: null }, installRangeLabelClass: { classPropertyName: "installRangeLabelClass", publicName: "installRangeLabelClass", isSignal: true, isRequired: false, transformFunction: null }, lineClass: { classPropertyName: "lineClass", publicName: "lineClass", isSignal: true, isRequired: false, transformFunction: null }, amountLabelClass: { classPropertyName: "amountLabelClass", publicName: "amountLabelClass", isSignal: true, isRequired: false, transformFunction: null }, currencyCodeClass: { classPropertyName: "currencyCodeClass", publicName: "currencyCodeClass", isSignal: true, isRequired: false, transformFunction: null }, amountValueClass: { classPropertyName: "amountValueClass", publicName: "amountValueClass", isSignal: true, isRequired: false, transformFunction: null }, totalPaidClass: { classPropertyName: "totalPaidClass", publicName: "totalPaidClass", isSignal: true, isRequired: false, transformFunction: null }, remainingInstallmentClass: { classPropertyName: "remainingInstallmentClass", publicName: "remainingInstallmentClass", isSignal: true, isRequired: false, transformFunction: null }, navContainerClass: { classPropertyName: "navContainerClass", publicName: "navContainerClass", isSignal: true, isRequired: false, transformFunction: null }, navListClass: { classPropertyName: "navListClass", publicName: "navListClass", isSignal: true, isRequired: false, transformFunction: null }, pageItemClass: { classPropertyName: "pageItemClass", publicName: "pageItemClass", isSignal: true, isRequired: false, transformFunction: null }, arrowItemClass: { classPropertyName: "arrowItemClass", publicName: "arrowItemClass", isSignal: true, isRequired: false, transformFunction: null }, pageLinkClass: { classPropertyName: "pageLinkClass", publicName: "pageLinkClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { popupVisibleChange: "popupVisibleChange", closePopupClickHandler: "closePopupClickHandler", isLoadingChanged: "isLoadingChanged" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$2.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: LoanCardComponent, selector: "payroll-loan-card", inputs: ["loan", "currencyCode", "cardContainerClass", "installRangeLabelClass", "lineClass", "amountLabelClass", "currencyCodeClass", "amountValueClass", "totalPaidClass", "remainingInstallmentClass", "loanTitleClass", "formatAmount", "remainingInstallmentsText"] }, { kind: "component", type: LoanPaginationComponent, selector: "payroll-loan-pagination", inputs: ["totalPages", "currentPage", "navContainerClass", "navListClass", "pageItemClass", "arrowItemClass", "pageLinkClass", "arrowActiveClass"], outputs: ["previousClicked", "nextClicked", "pageClicked"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
669
|
+
}
|
|
670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyLoansPopupWidgetComponent, decorators: [{
|
|
671
|
+
type: Component,
|
|
672
|
+
args: [{ selector: 'payroll-my-loans-popup', standalone: true, imports: [CommonModule, DxPopupModule, PayrollTranslatePipe, LoanCardComponent, LoanPaginationComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
673
|
+
}], ctorParameters: () => [], propDecorators: { popupVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupVisible", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], currencyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCode", required: false }] }], currencyDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyDecimals", required: false }] }], popupWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupWidth", required: false }] }], popupHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeight", required: false }] }], popupTitleKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupTitleKey", required: false }] }], popupDragEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupDragEnabled", required: false }] }], popupShadingColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupShadingColor", required: false }] }], contentContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentContainerClass", required: false }] }], noPaginationContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "noPaginationContainerClass", required: false }] }], cardContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardContainerClass", required: false }] }], loanTitleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "loanTitleClass", required: false }] }], installRangeLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "installRangeLabelClass", required: false }] }], lineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineClass", required: false }] }], amountLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountLabelClass", required: false }] }], currencyCodeClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCodeClass", required: false }] }], amountValueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountValueClass", required: false }] }], totalPaidClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPaidClass", required: false }] }], remainingInstallmentClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "remainingInstallmentClass", required: false }] }], navContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "navContainerClass", required: false }] }], navListClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "navListClass", required: false }] }], pageItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageItemClass", required: false }] }], arrowItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowItemClass", required: false }] }], pageLinkClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinkClass", required: false }] }], popupVisibleChange: [{ type: i0.Output, args: ["popupVisibleChange"] }], closePopupClickHandler: [{ type: i0.Output, args: ["closePopupClickHandler"] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }] } });
|
|
674
|
+
|
|
675
|
+
class ActualBasicDetailsPopupComponent {
|
|
676
|
+
popupVisible = input(false, ...(ngDevMode ? [{ debugName: "popupVisible" }] : /* istanbul ignore next */ []));
|
|
677
|
+
currencyCode = input('', ...(ngDevMode ? [{ debugName: "currencyCode" }] : /* istanbul ignore next */ []));
|
|
678
|
+
currencyDecimals = input(0, ...(ngDevMode ? [{ debugName: "currencyDecimals" }] : /* istanbul ignore next */ []));
|
|
679
|
+
actualBasicSalaryDetails = input([], ...(ngDevMode ? [{ debugName: "actualBasicSalaryDetails" }] : /* istanbul ignore next */ []));
|
|
680
|
+
popupWidth = input(600, ...(ngDevMode ? [{ debugName: "popupWidth" }] : /* istanbul ignore next */ []));
|
|
681
|
+
popupMaxHeight = input(400, ...(ngDevMode ? [{ debugName: "popupMaxHeight" }] : /* istanbul ignore next */ []));
|
|
682
|
+
popupShadingColor = input('rgba(0,0,0,0.4)', ...(ngDevMode ? [{ debugName: "popupShadingColor" }] : /* istanbul ignore next */ []));
|
|
683
|
+
popupTitleKey = input('ActualBasicDetails', ...(ngDevMode ? [{ debugName: "popupTitleKey" }] : /* istanbul ignore next */ []));
|
|
684
|
+
popupHeaderRowClass = input('row mb-3 table-cell-sm', ...(ngDevMode ? [{ debugName: "popupHeaderRowClass" }] : /* istanbul ignore next */ []));
|
|
685
|
+
popupRowClass = input('row mb-3 table-cell-md', ...(ngDevMode ? [{ debugName: "popupRowClass" }] : /* istanbul ignore next */ []));
|
|
686
|
+
closePopupClickHandler = output();
|
|
687
|
+
popupVisibleState = signal(false, ...(ngDevMode ? [{ debugName: "popupVisibleState" }] : /* istanbul ignore next */ []));
|
|
688
|
+
scrollView;
|
|
689
|
+
commonMethods = inject(CommonMethods);
|
|
690
|
+
constructor() {
|
|
691
|
+
effect(() => {
|
|
692
|
+
this.popupVisibleState.set(this.popupVisible());
|
|
693
|
+
});
|
|
694
|
+
}
|
|
695
|
+
onPopupClose() {
|
|
696
|
+
this.scrollView?.instance.scrollTo(0);
|
|
697
|
+
this.closePopupClickHandler.emit();
|
|
698
|
+
}
|
|
699
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ActualBasicDetailsPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
700
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ActualBasicDetailsPopupComponent, isStandalone: true, selector: "payroll-actual-basic-details-popup", inputs: { popupVisible: { classPropertyName: "popupVisible", publicName: "popupVisible", isSignal: true, isRequired: false, transformFunction: null }, currencyCode: { classPropertyName: "currencyCode", publicName: "currencyCode", isSignal: true, isRequired: false, transformFunction: null }, currencyDecimals: { classPropertyName: "currencyDecimals", publicName: "currencyDecimals", isSignal: true, isRequired: false, transformFunction: null }, actualBasicSalaryDetails: { classPropertyName: "actualBasicSalaryDetails", publicName: "actualBasicSalaryDetails", 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 }, popupTitleKey: { classPropertyName: "popupTitleKey", publicName: "popupTitleKey", 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 } }, outputs: { closePopupClickHandler: "closePopupClickHandler" }, viewQueries: [{ propertyName: "scrollView", first: true, predicate: DxScrollViewComponent, descendants: true }], ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$2.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "ngmodule", type: DxScrollViewModule }, { kind: "component", type: i1$2.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
701
|
+
}
|
|
702
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ActualBasicDetailsPopupComponent, decorators: [{
|
|
703
|
+
type: Component,
|
|
704
|
+
args: [{ selector: 'payroll-actual-basic-details-popup', standalone: true, imports: [CommonModule, DxPopupModule, DxScrollViewModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
705
|
+
}], ctorParameters: () => [], propDecorators: { popupVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupVisible", required: false }] }], currencyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCode", required: false }] }], currencyDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyDecimals", required: false }] }], actualBasicSalaryDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "actualBasicSalaryDetails", 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 }] }], popupTitleKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupTitleKey", required: false }] }], popupHeaderRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderRowClass", required: false }] }], popupRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupRowClass", required: false }] }], closePopupClickHandler: [{ type: i0.Output, args: ["closePopupClickHandler"] }], scrollView: [{
|
|
706
|
+
type: ViewChild,
|
|
707
|
+
args: [DxScrollViewComponent, { static: false }]
|
|
708
|
+
}] } });
|
|
709
|
+
|
|
710
|
+
class PayslipSalaryTableComponent {
|
|
711
|
+
employeeDetails = input.required(...(ngDevMode ? [{ debugName: "employeeDetails" }] : /* istanbul ignore next */ []));
|
|
712
|
+
sectionClass = input('mb-4', ...(ngDevMode ? [{ debugName: "sectionClass" }] : /* istanbul ignore next */ []));
|
|
713
|
+
salaryTableRowClass = input('row', ...(ngDevMode ? [{ debugName: "salaryTableRowClass" }] : /* istanbul ignore next */ []));
|
|
714
|
+
labelColumnClass = input('col-5 text-start', ...(ngDevMode ? [{ debugName: "labelColumnClass" }] : /* istanbul ignore next */ []));
|
|
715
|
+
daysColumnClass = input('col-2 text-end fw-light mb-2', ...(ngDevMode ? [{ debugName: "daysColumnClass" }] : /* istanbul ignore next */ []));
|
|
716
|
+
daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "daysHeaderClass" }] : /* istanbul ignore next */ []));
|
|
717
|
+
amountColumnClass = input('offset-1 col-4 text-start', ...(ngDevMode ? [{ debugName: "amountColumnClass" }] : /* istanbul ignore next */ []));
|
|
718
|
+
tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tablePrimaryLabelClass" }] : /* istanbul ignore next */ []));
|
|
719
|
+
tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableLabelClass" }] : /* istanbul ignore next */ []));
|
|
720
|
+
tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableValueClass" }] : /* istanbul ignore next */ []));
|
|
721
|
+
tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm', ...(ngDevMode ? [{ debugName: "tableSecondaryValueClass" }] : /* istanbul ignore next */ []));
|
|
722
|
+
currencyCodeClass = input('fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
723
|
+
viewDetailsLinkClass = input('text-primary fw-normal ms-1', ...(ngDevMode ? [{ debugName: "viewDetailsLinkClass" }] : /* istanbul ignore next */ []));
|
|
724
|
+
viewActualBasicSalaryDetailsClick = output();
|
|
725
|
+
commonMethod = inject(CommonMethods);
|
|
726
|
+
onViewActualBasicSalaryDetialsClick() {
|
|
727
|
+
this.viewActualBasicSalaryDetailsClick.emit();
|
|
728
|
+
}
|
|
729
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipSalaryTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
730
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.17", type: PayslipSalaryTableComponent, isStandalone: true, selector: "payroll-payslip-salary-table", inputs: { employeeDetails: { classPropertyName: "employeeDetails", publicName: "employeeDetails", isSignal: true, isRequired: true, transformFunction: null }, sectionClass: { classPropertyName: "sectionClass", publicName: "sectionClass", 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 }, tablePrimaryLabelClass: { classPropertyName: "tablePrimaryLabelClass", publicName: "tablePrimaryLabelClass", isSignal: true, isRequired: false, transformFunction: null }, tableLabelClass: { classPropertyName: "tableLabelClass", publicName: "tableLabelClass", 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 }, viewDetailsLinkClass: { classPropertyName: "viewDetailsLinkClass", publicName: "viewDetailsLinkClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { viewActualBasicSalaryDetailsClick: "viewActualBasicSalaryDetailsClick" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
731
|
+
}
|
|
732
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipSalaryTableComponent, decorators: [{
|
|
733
|
+
type: Component,
|
|
734
|
+
args: [{ selector: 'payroll-payslip-salary-table', standalone: true, imports: [CommonModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
735
|
+
}], propDecorators: { employeeDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "employeeDetails", required: true }] }], sectionClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionClass", 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 }] }], tablePrimaryLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tablePrimaryLabelClass", required: false }] }], tableLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableLabelClass", 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 }] }], viewDetailsLinkClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewDetailsLinkClass", required: false }] }], viewActualBasicSalaryDetailsClick: [{ type: i0.Output, args: ["viewActualBasicSalaryDetailsClick"] }] } });
|
|
736
|
+
|
|
737
|
+
class PayslipAllowancesTableComponent {
|
|
738
|
+
employeeDetails = input.required(...(ngDevMode ? [{ debugName: "employeeDetails" }] : /* istanbul ignore next */ []));
|
|
739
|
+
sectionClass = input('mb-4', ...(ngDevMode ? [{ debugName: "sectionClass" }] : /* istanbul ignore next */ []));
|
|
740
|
+
allowancesRowClass = input('row align-items-start', ...(ngDevMode ? [{ debugName: "allowancesRowClass" }] : /* istanbul ignore next */ []));
|
|
741
|
+
labelColumnClass = input('col-5 text-start', ...(ngDevMode ? [{ debugName: "labelColumnClass" }] : /* istanbul ignore next */ []));
|
|
742
|
+
totalsColumnClass = input('offset-3 col-4 text-start', ...(ngDevMode ? [{ debugName: "totalsColumnClass" }] : /* istanbul ignore next */ []));
|
|
743
|
+
sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary', ...(ngDevMode ? [{ debugName: "sectionTitleClass" }] : /* istanbul ignore next */ []));
|
|
744
|
+
tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableLabelClass" }] : /* istanbul ignore next */ []));
|
|
745
|
+
allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "allowanceDaysClass" }] : /* istanbul ignore next */ []));
|
|
746
|
+
amountColumnClass = input('offset-1 col-3 text-start', ...(ngDevMode ? [{ debugName: "amountColumnClass" }] : /* istanbul ignore next */ []));
|
|
747
|
+
allowanceAmountWrapperClass = input('d-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray', ...(ngDevMode ? [{ debugName: "allowanceAmountWrapperClass" }] : /* istanbul ignore next */ []));
|
|
748
|
+
allowanceAmountTextClass = input('w-30 text-nowrap', ...(ngDevMode ? [{ debugName: "allowanceAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
749
|
+
infoIconClass = input('light-info ms-1 cursor-pointer', ...(ngDevMode ? [{ debugName: "infoIconClass" }] : /* istanbul ignore next */ []));
|
|
750
|
+
tooltipContainerClass = input('text-white rounded overflow-hidden', ...(ngDevMode ? [{ debugName: "tooltipContainerClass" }] : /* istanbul ignore next */ []));
|
|
751
|
+
tooltipTextClass = input('text-ellipsis-one-line fs-12', ...(ngDevMode ? [{ debugName: "tooltipTextClass" }] : /* istanbul ignore next */ []));
|
|
752
|
+
tooltipCurrencyClass = input('fs-10', ...(ngDevMode ? [{ debugName: "tooltipCurrencyClass" }] : /* istanbul ignore next */ []));
|
|
753
|
+
tooltipAmountClass = input('fs-14 ms-1', ...(ngDevMode ? [{ debugName: "tooltipAmountClass" }] : /* istanbul ignore next */ []));
|
|
754
|
+
infoIcon = faCircleInfo;
|
|
755
|
+
commonMethod = inject(CommonMethods);
|
|
756
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipAllowancesTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
757
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PayslipAllowancesTableComponent, isStandalone: true, selector: "payroll-payslip-allowances-table", inputs: { employeeDetails: { classPropertyName: "employeeDetails", publicName: "employeeDetails", isSignal: true, isRequired: true, transformFunction: null }, sectionClass: { classPropertyName: "sectionClass", publicName: "sectionClass", isSignal: true, isRequired: false, transformFunction: null }, allowancesRowClass: { classPropertyName: "allowancesRowClass", publicName: "allowancesRowClass", isSignal: true, isRequired: false, transformFunction: null }, labelColumnClass: { classPropertyName: "labelColumnClass", publicName: "labelColumnClass", isSignal: true, isRequired: false, transformFunction: null }, totalsColumnClass: { classPropertyName: "totalsColumnClass", publicName: "totalsColumnClass", 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 }, allowanceDaysClass: { classPropertyName: "allowanceDaysClass", publicName: "allowanceDaysClass", isSignal: true, isRequired: false, transformFunction: null }, amountColumnClass: { classPropertyName: "amountColumnClass", publicName: "amountColumnClass", 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 }, infoIconClass: { classPropertyName: "infoIconClass", publicName: "infoIconClass", 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 } }, ngImport: i0, template: "<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", 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: "ngmodule", type: DxTooltipModule }, { kind: "component", type: i1$2.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "container", "contentTemplate", "deferRendering", "disabled", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
758
|
+
}
|
|
759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipAllowancesTableComponent, decorators: [{
|
|
760
|
+
type: Component,
|
|
761
|
+
args: [{ selector: 'payroll-payslip-allowances-table', standalone: true, imports: [CommonModule, FontAwesomeModule, DxTooltipModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
762
|
+
}], propDecorators: { employeeDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "employeeDetails", required: true }] }], sectionClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionClass", required: false }] }], allowancesRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowancesRowClass", required: false }] }], labelColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelColumnClass", required: false }] }], totalsColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalsColumnClass", required: false }] }], sectionTitleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionTitleClass", required: false }] }], tableLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableLabelClass", required: false }] }], allowanceDaysClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceDaysClass", required: false }] }], amountColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountColumnClass", required: false }] }], allowanceAmountWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceAmountWrapperClass", required: false }] }], allowanceAmountTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowanceAmountTextClass", required: false }] }], infoIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "infoIconClass", 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 }] }] } });
|
|
763
|
+
|
|
764
|
+
class PayslipDeductionsTableComponent {
|
|
765
|
+
employeeDetails = input.required(...(ngDevMode ? [{ debugName: "employeeDetails" }] : /* istanbul ignore next */ []));
|
|
766
|
+
dividerRowClass = input('row', ...(ngDevMode ? [{ debugName: "dividerRowClass" }] : /* istanbul ignore next */ []));
|
|
767
|
+
dividerColumnClass = input('col-12', ...(ngDevMode ? [{ debugName: "dividerColumnClass" }] : /* istanbul ignore next */ []));
|
|
768
|
+
deductionsSectionRowClass = input('row mt-4', ...(ngDevMode ? [{ debugName: "deductionsSectionRowClass" }] : /* istanbul ignore next */ []));
|
|
769
|
+
deductionsSectionColumnClass = input('col-xl-6 col-md-12', ...(ngDevMode ? [{ debugName: "deductionsSectionColumnClass" }] : /* istanbul ignore next */ []));
|
|
770
|
+
deductionsInnerRowClass = input('row', ...(ngDevMode ? [{ debugName: "deductionsInnerRowClass" }] : /* istanbul ignore next */ []));
|
|
771
|
+
labelColumnClass = input('col-5 text-start', ...(ngDevMode ? [{ debugName: "labelColumnClass" }] : /* istanbul ignore next */ []));
|
|
772
|
+
sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary', ...(ngDevMode ? [{ debugName: "sectionTitleClass" }] : /* istanbul ignore next */ []));
|
|
773
|
+
totalsColumnClass = input('offset-3 col-4 text-start', ...(ngDevMode ? [{ debugName: "totalsColumnClass" }] : /* istanbul ignore next */ []));
|
|
774
|
+
tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableLabelClass" }] : /* istanbul ignore next */ []));
|
|
775
|
+
deductionDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "deductionDaysClass" }] : /* istanbul ignore next */ []));
|
|
776
|
+
amountColumnClass = input('offset-1 col-4 text-start', ...(ngDevMode ? [{ debugName: "amountColumnClass" }] : /* istanbul ignore next */ []));
|
|
777
|
+
deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap', ...(ngDevMode ? [{ debugName: "deductionAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
778
|
+
commonMethod = inject(CommonMethods);
|
|
779
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipDeductionsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
780
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: PayslipDeductionsTableComponent, isStandalone: true, selector: "payroll-payslip-deductions-table", inputs: { employeeDetails: { classPropertyName: "employeeDetails", publicName: "employeeDetails", isSignal: true, isRequired: true, 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 }, labelColumnClass: { classPropertyName: "labelColumnClass", publicName: "labelColumnClass", isSignal: true, isRequired: false, transformFunction: null }, sectionTitleClass: { classPropertyName: "sectionTitleClass", publicName: "sectionTitleClass", isSignal: true, isRequired: false, transformFunction: null }, totalsColumnClass: { classPropertyName: "totalsColumnClass", publicName: "totalsColumnClass", isSignal: true, isRequired: false, transformFunction: null }, tableLabelClass: { classPropertyName: "tableLabelClass", publicName: "tableLabelClass", isSignal: true, isRequired: false, transformFunction: null }, deductionDaysClass: { classPropertyName: "deductionDaysClass", publicName: "deductionDaysClass", isSignal: true, isRequired: false, transformFunction: null }, amountColumnClass: { classPropertyName: "amountColumnClass", publicName: "amountColumnClass", isSignal: true, isRequired: false, transformFunction: null }, deductionAmountTextClass: { classPropertyName: "deductionAmountTextClass", publicName: "deductionAmountTextClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
781
|
+
}
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipDeductionsTableComponent, decorators: [{
|
|
783
|
+
type: Component,
|
|
784
|
+
args: [{ selector: 'payroll-payslip-deductions-table', standalone: true, imports: [CommonModule, PayrollTranslatePipe, SkySectionDividerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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" }]
|
|
785
|
+
}], propDecorators: { employeeDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "employeeDetails", required: true }] }], 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 }] }], labelColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelColumnClass", required: false }] }], sectionTitleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionTitleClass", required: false }] }], totalsColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalsColumnClass", required: false }] }], tableLabelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableLabelClass", required: false }] }], deductionDaysClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionDaysClass", required: false }] }], amountColumnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountColumnClass", required: false }] }], deductionAmountTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "deductionAmountTextClass", required: false }] }] } });
|
|
786
|
+
|
|
787
|
+
class PayslipDetailsCardComponent {
|
|
788
|
+
employeeDetails = input.required(...(ngDevMode ? [{ debugName: "employeeDetails" }] : /* istanbul ignore next */ []));
|
|
789
|
+
payMonthDate = input(null, ...(ngDevMode ? [{ debugName: "payMonthDate" }] : /* istanbul ignore next */ []));
|
|
790
|
+
pieDataSource = input([], ...(ngDevMode ? [{ debugName: "pieDataSource" }] : /* istanbul ignore next */ []));
|
|
791
|
+
actualBasicSalaryDetails = input([], ...(ngDevMode ? [{ debugName: "actualBasicSalaryDetails" }] : /* istanbul ignore next */ []));
|
|
792
|
+
cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4', ...(ngDevMode ? [{ debugName: "cardContainerClass" }] : /* istanbul ignore next */ []));
|
|
793
|
+
contentRowClass = input('row g-4', ...(ngDevMode ? [{ debugName: "contentRowClass" }] : /* istanbul ignore next */ []));
|
|
794
|
+
detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1', ...(ngDevMode ? [{ debugName: "detailsColumnClass" }] : /* istanbul ignore next */ []));
|
|
795
|
+
chartColumnClass = input('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', ...(ngDevMode ? [{ debugName: "chartColumnClass" }] : /* istanbul ignore next */ []));
|
|
796
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
797
|
+
titleRowClass = input('d-flex align-items-center mb-4', ...(ngDevMode ? [{ debugName: "titleRowClass" }] : /* istanbul ignore next */ []));
|
|
798
|
+
salaryIconClass = input('text-primary fs-28 me-2', ...(ngDevMode ? [{ debugName: "salaryIconClass" }] : /* istanbul ignore next */ []));
|
|
799
|
+
titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
800
|
+
titleMonthClass = input('fw-normal text-capitalize', ...(ngDevMode ? [{ debugName: "titleMonthClass" }] : /* istanbul ignore next */ []));
|
|
801
|
+
sectionClass = input('mb-4', ...(ngDevMode ? [{ debugName: "sectionClass" }] : /* istanbul ignore next */ []));
|
|
802
|
+
sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary', ...(ngDevMode ? [{ debugName: "sectionTitleClass" }] : /* istanbul ignore next */ []));
|
|
803
|
+
tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableLabelClass" }] : /* istanbul ignore next */ []));
|
|
804
|
+
tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tablePrimaryLabelClass" }] : /* istanbul ignore next */ []));
|
|
805
|
+
tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableValueClass" }] : /* istanbul ignore next */ []));
|
|
806
|
+
tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm', ...(ngDevMode ? [{ debugName: "tableSecondaryValueClass" }] : /* istanbul ignore next */ []));
|
|
807
|
+
currencyCodeClass = input('fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
808
|
+
infoIconClass = input('light-info ms-1 cursor-pointer', ...(ngDevMode ? [{ debugName: "infoIconClass" }] : /* istanbul ignore next */ []));
|
|
809
|
+
popupWidth = input(600, ...(ngDevMode ? [{ debugName: "popupWidth" }] : /* istanbul ignore next */ []));
|
|
810
|
+
popupMaxHeight = input(400, ...(ngDevMode ? [{ debugName: "popupMaxHeight" }] : /* istanbul ignore next */ []));
|
|
811
|
+
popupShadingColor = input('rgba(0,0,0,0.4)', ...(ngDevMode ? [{ debugName: "popupShadingColor" }] : /* istanbul ignore next */ []));
|
|
812
|
+
popupHeaderRowClass = input('row mb-3 table-cell-sm', ...(ngDevMode ? [{ debugName: "popupHeaderRowClass" }] : /* istanbul ignore next */ []));
|
|
813
|
+
popupRowClass = input('row mb-3 table-cell-md', ...(ngDevMode ? [{ debugName: "popupRowClass" }] : /* istanbul ignore next */ []));
|
|
814
|
+
mobileChartWrapperClass = input('d-flex align-items-start justify-content-start', ...(ngDevMode ? [{ debugName: "mobileChartWrapperClass" }] : /* istanbul ignore next */ []));
|
|
815
|
+
negativePaletteColors = input(['#F78204', '#dee2e6'], ...(ngDevMode ? [{ debugName: "negativePaletteColors" }] : /* istanbul ignore next */ []));
|
|
816
|
+
positivePaletteColors = input(['#F78204', '#F7820480'], ...(ngDevMode ? [{ debugName: "positivePaletteColors" }] : /* istanbul ignore next */ []));
|
|
817
|
+
salaryTableRowClass = input('row', ...(ngDevMode ? [{ debugName: "salaryTableRowClass" }] : /* istanbul ignore next */ []));
|
|
818
|
+
labelColumnClass = input('col-5 text-start', ...(ngDevMode ? [{ debugName: "labelColumnClass" }] : /* istanbul ignore next */ []));
|
|
819
|
+
daysColumnClass = input('col-2 text-end fw-light mb-2', ...(ngDevMode ? [{ debugName: "daysColumnClass" }] : /* istanbul ignore next */ []));
|
|
820
|
+
daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "daysHeaderClass" }] : /* istanbul ignore next */ []));
|
|
821
|
+
amountColumnClass = input('offset-1 col-4 text-start', ...(ngDevMode ? [{ debugName: "amountColumnClass" }] : /* istanbul ignore next */ []));
|
|
822
|
+
salaryAmountColumnClass = input('offset-1 col-4 text-start', ...(ngDevMode ? [{ debugName: "salaryAmountColumnClass" }] : /* istanbul ignore next */ []));
|
|
823
|
+
allowanceAmountColumnClass = input('offset-1 col-3 text-start', ...(ngDevMode ? [{ debugName: "allowanceAmountColumnClass" }] : /* istanbul ignore next */ []));
|
|
824
|
+
totalsColumnClass = input('offset-3 col-4 text-start', ...(ngDevMode ? [{ debugName: "totalsColumnClass" }] : /* istanbul ignore next */ []));
|
|
825
|
+
viewDetailsLinkClass = input('text-primary fw-normal ms-1', ...(ngDevMode ? [{ debugName: "viewDetailsLinkClass" }] : /* istanbul ignore next */ []));
|
|
826
|
+
allowancesRowClass = input('row align-items-start', ...(ngDevMode ? [{ debugName: "allowancesRowClass" }] : /* istanbul ignore next */ []));
|
|
827
|
+
allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "allowanceDaysClass" }] : /* istanbul ignore next */ []));
|
|
828
|
+
allowanceAmountWrapperClass = input('d-flex align-items-center fs-12 fw-medium mb-2 text-dark-gray', ...(ngDevMode ? [{ debugName: "allowanceAmountWrapperClass" }] : /* istanbul ignore next */ []));
|
|
829
|
+
allowanceAmountTextClass = input('w-30 text-nowrap', ...(ngDevMode ? [{ debugName: "allowanceAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
830
|
+
tooltipContainerClass = input('text-white rounded overflow-hidden', ...(ngDevMode ? [{ debugName: "tooltipContainerClass" }] : /* istanbul ignore next */ []));
|
|
831
|
+
tooltipTextClass = input('text-ellipsis-one-line fs-12', ...(ngDevMode ? [{ debugName: "tooltipTextClass" }] : /* istanbul ignore next */ []));
|
|
832
|
+
tooltipCurrencyClass = input('fs-10', ...(ngDevMode ? [{ debugName: "tooltipCurrencyClass" }] : /* istanbul ignore next */ []));
|
|
833
|
+
tooltipAmountClass = input('fs-14 ms-1', ...(ngDevMode ? [{ debugName: "tooltipAmountClass" }] : /* istanbul ignore next */ []));
|
|
834
|
+
dividerRowClass = input('row', ...(ngDevMode ? [{ debugName: "dividerRowClass" }] : /* istanbul ignore next */ []));
|
|
835
|
+
dividerColumnClass = input('col-12', ...(ngDevMode ? [{ debugName: "dividerColumnClass" }] : /* istanbul ignore next */ []));
|
|
836
|
+
deductionsSectionRowClass = input('row mt-4', ...(ngDevMode ? [{ debugName: "deductionsSectionRowClass" }] : /* istanbul ignore next */ []));
|
|
837
|
+
deductionsSectionColumnClass = input('col-xl-6 col-md-12', ...(ngDevMode ? [{ debugName: "deductionsSectionColumnClass" }] : /* istanbul ignore next */ []));
|
|
838
|
+
deductionsInnerRowClass = input('row', ...(ngDevMode ? [{ debugName: "deductionsInnerRowClass" }] : /* istanbul ignore next */ []));
|
|
839
|
+
deductionDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "deductionDaysClass" }] : /* istanbul ignore next */ []));
|
|
840
|
+
deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap', ...(ngDevMode ? [{ debugName: "deductionAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
841
|
+
salaryIcon = faMoneyCheckDollarPen;
|
|
842
|
+
infoIcon = faCircleInfo;
|
|
843
|
+
popupVisible = signal(false, ...(ngDevMode ? [{ debugName: "popupVisible" }] : /* istanbul ignore next */ []));
|
|
844
|
+
chartPaletteColors = computed(() => this.employeeDetails().NetSalary < 0 ? this.negativePaletteColors() : this.positivePaletteColors(), ...(ngDevMode ? [{ debugName: "chartPaletteColors" }] : /* istanbul ignore next */ []));
|
|
845
|
+
commonMethod = inject(CommonMethods);
|
|
846
|
+
screen = inject(SkyScreenService);
|
|
847
|
+
doughnutChartInfo = computed(() => ({
|
|
848
|
+
data: this.pieDataSource().map((item) => ({
|
|
849
|
+
name: item.Text,
|
|
850
|
+
value: item.Value,
|
|
851
|
+
extra: { formattedValue: item.FormattedValue, valueColor: item.ValueColor },
|
|
852
|
+
})),
|
|
853
|
+
colors: this.chartPaletteColors(),
|
|
854
|
+
innerRadius: 0.8,
|
|
855
|
+
height: 200,
|
|
856
|
+
}), ...(ngDevMode ? [{ debugName: "doughnutChartInfo" }] : /* istanbul ignore next */ []));
|
|
857
|
+
useMobileChart = computed(() => this.isMobile() || this.screen.isXSmallScreen() || this.screen.isSmallScreen() || this.screen.isMediumScreen(), ...(ngDevMode ? [{ debugName: "useMobileChart" }] : /* istanbul ignore next */ []));
|
|
858
|
+
onCloseActualBasicSalaryDetailsPopupHandler() {
|
|
859
|
+
this.popupVisible.set(false);
|
|
860
|
+
}
|
|
861
|
+
onViewActualBasicSalaryDetailsClick() {
|
|
862
|
+
this.popupVisible.set(true);
|
|
863
|
+
}
|
|
864
|
+
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 [info]=\"doughnutChartInfo()\" [hasBorder]=\"false\">\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 [info]=\"doughnutChartInfo()\" [hasBorder]=\"false\">\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
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PayslipDetailsCardComponent, decorators: [{
|
|
868
|
+
type: Component,
|
|
869
|
+
args: [{ selector: 'payroll-payslip-details-card', standalone: true, imports: [
|
|
870
|
+
CommonModule,
|
|
871
|
+
FontAwesomeModule,
|
|
872
|
+
SkyDoughnutChartComponent,
|
|
873
|
+
PayrollTranslatePipe,
|
|
874
|
+
ActualBasicDetailsPopupComponent,
|
|
875
|
+
PayslipSalaryTableComponent,
|
|
876
|
+
PayslipAllowancesTableComponent,
|
|
877
|
+
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 [info]=\"doughnutChartInfo()\" [hasBorder]=\"false\">\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 [info]=\"doughnutChartInfo()\" [hasBorder]=\"false\">\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
|
+
}], 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
|
+
class EmptyPayslipCardComponent {
|
|
882
|
+
hidePayslip = input(false, ...(ngDevMode ? [{ debugName: "hidePayslip" }] : /* istanbul ignore next */ []));
|
|
883
|
+
cardContainerClass = input('card border shadow-sm rounded-3', ...(ngDevMode ? [{ debugName: "cardContainerClass" }] : /* istanbul ignore next */ []));
|
|
884
|
+
cardBodyClass = input('card-body text-center py-5', ...(ngDevMode ? [{ debugName: "cardBodyClass" }] : /* istanbul ignore next */ []));
|
|
885
|
+
iconClass = input('fs-28 me-2 light-info mb-3', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
886
|
+
messageClass = input('fs-20 fw-400 mb-2 text-dark', ...(ngDevMode ? [{ debugName: "messageClass" }] : /* istanbul ignore next */ []));
|
|
887
|
+
helpTextClass = input('fs-16 fw-400 mb-0 text-dark', ...(ngDevMode ? [{ debugName: "helpTextClass" }] : /* istanbul ignore next */ []));
|
|
888
|
+
accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip', ...(ngDevMode ? [{ debugName: "accessDeniedMessage" }] : /* istanbul ignore next */ []));
|
|
889
|
+
noPayslipMessage = input('NoPayslipAvailableYet', ...(ngDevMode ? [{ debugName: "noPayslipMessage" }] : /* istanbul ignore next */ []));
|
|
890
|
+
helpText = input('PleaseContactYourAdminForAnyHelp.', ...(ngDevMode ? [{ debugName: "helpText" }] : /* istanbul ignore next */ []));
|
|
891
|
+
accessDeniedIcon = input(faMoneyCheckDollarPen, ...(ngDevMode ? [{ debugName: "accessDeniedIcon" }] : /* istanbul ignore next */ []));
|
|
892
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EmptyPayslipCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
893
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: EmptyPayslipCardComponent, isStandalone: true, selector: "payroll-empty-payslip-card", inputs: { hidePayslip: { classPropertyName: "hidePayslip", publicName: "hidePayslip", isSignal: true, isRequired: false, transformFunction: null }, cardContainerClass: { classPropertyName: "cardContainerClass", publicName: "cardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, cardBodyClass: { classPropertyName: "cardBodyClass", publicName: "cardBodyClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, messageClass: { classPropertyName: "messageClass", publicName: "messageClass", isSignal: true, isRequired: false, transformFunction: null }, helpTextClass: { classPropertyName: "helpTextClass", publicName: "helpTextClass", isSignal: true, isRequired: false, transformFunction: null }, accessDeniedMessage: { classPropertyName: "accessDeniedMessage", publicName: "accessDeniedMessage", isSignal: true, isRequired: false, transformFunction: null }, noPayslipMessage: { classPropertyName: "noPayslipMessage", publicName: "noPayslipMessage", isSignal: true, isRequired: false, transformFunction: null }, helpText: { classPropertyName: "helpText", publicName: "helpText", isSignal: true, isRequired: false, transformFunction: null }, accessDeniedIcon: { classPropertyName: "accessDeniedIcon", publicName: "accessDeniedIcon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", 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: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
894
|
+
}
|
|
895
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EmptyPayslipCardComponent, decorators: [{
|
|
896
|
+
type: Component,
|
|
897
|
+
args: [{ selector: 'payroll-empty-payslip-card', standalone: true, imports: [CommonModule, FontAwesomeModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
898
|
+
}], propDecorators: { hidePayslip: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidePayslip", required: false }] }], cardContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardContainerClass", required: false }] }], cardBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardBodyClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], messageClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageClass", required: false }] }], helpTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpTextClass", required: false }] }], accessDeniedMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessDeniedMessage", required: false }] }], noPayslipMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "noPayslipMessage", required: false }] }], helpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpText", required: false }] }], accessDeniedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessDeniedIcon", required: false }] }] } });
|
|
899
|
+
|
|
900
|
+
class MyPayslipWidgetComponent {
|
|
901
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
902
|
+
payMonth = input(null, ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
903
|
+
cardContainerClass = input('card shadow-sm border-0 rounded-3 p-4', ...(ngDevMode ? [{ debugName: "cardContainerClass" }] : /* istanbul ignore next */ []));
|
|
904
|
+
contentRowClass = input('row g-4', ...(ngDevMode ? [{ debugName: "contentRowClass" }] : /* istanbul ignore next */ []));
|
|
905
|
+
detailsColumnClass = input('col-xl-6 col-md-12 order-2 order-xl-1', ...(ngDevMode ? [{ debugName: "detailsColumnClass" }] : /* istanbul ignore next */ []));
|
|
906
|
+
chartColumnClass = input('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', ...(ngDevMode ? [{ debugName: "chartColumnClass" }] : /* istanbul ignore next */ []));
|
|
907
|
+
titleRowClass = input('d-flex align-items-center mb-4', ...(ngDevMode ? [{ debugName: "titleRowClass" }] : /* istanbul ignore next */ []));
|
|
908
|
+
salaryIconClass = input('text-primary fs-28 me-2', ...(ngDevMode ? [{ debugName: "salaryIconClass" }] : /* istanbul ignore next */ []));
|
|
909
|
+
titleClass = input('fw-medium fs-16 text-uppercase text-dark-gray', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
910
|
+
titleMonthClass = input('fw-normal text-capitalize', ...(ngDevMode ? [{ debugName: "titleMonthClass" }] : /* istanbul ignore next */ []));
|
|
911
|
+
sectionClass = input('mb-4', ...(ngDevMode ? [{ debugName: "sectionClass" }] : /* istanbul ignore next */ []));
|
|
912
|
+
sectionTitleClass = input('fs-14 fw-bold mb-2 text-primary', ...(ngDevMode ? [{ debugName: "sectionTitleClass" }] : /* istanbul ignore next */ []));
|
|
913
|
+
tableLabelClass = input('fw-normal mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableLabelClass" }] : /* istanbul ignore next */ []));
|
|
914
|
+
tablePrimaryLabelClass = input('fw-normal mb-2 table-cell-md text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tablePrimaryLabelClass" }] : /* istanbul ignore next */ []));
|
|
915
|
+
tableValueClass = input('fw-medium mb-2 table-cell-sm text-ellipsis-one-line', ...(ngDevMode ? [{ debugName: "tableValueClass" }] : /* istanbul ignore next */ []));
|
|
916
|
+
tableSecondaryValueClass = input('text-ellipsis-one-line mb-2 table-cell-sm', ...(ngDevMode ? [{ debugName: "tableSecondaryValueClass" }] : /* istanbul ignore next */ []));
|
|
917
|
+
currencyCodeClass = input('fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
918
|
+
infoIconClass = input('light-info ms-1 cursor-pointer', ...(ngDevMode ? [{ debugName: "infoIconClass" }] : /* istanbul ignore next */ []));
|
|
919
|
+
popupWidth = input(600, ...(ngDevMode ? [{ debugName: "popupWidth" }] : /* istanbul ignore next */ []));
|
|
920
|
+
popupMaxHeight = input(400, ...(ngDevMode ? [{ debugName: "popupMaxHeight" }] : /* istanbul ignore next */ []));
|
|
921
|
+
popupShadingColor = input('rgba(0,0,0,0.4)', ...(ngDevMode ? [{ debugName: "popupShadingColor" }] : /* istanbul ignore next */ []));
|
|
922
|
+
popupHeaderRowClass = input('row mb-3 table-cell-sm', ...(ngDevMode ? [{ debugName: "popupHeaderRowClass" }] : /* istanbul ignore next */ []));
|
|
923
|
+
popupRowClass = input('row mb-3 table-cell-md', ...(ngDevMode ? [{ debugName: "popupRowClass" }] : /* istanbul ignore next */ []));
|
|
924
|
+
mobileChartWrapperClass = input('d-flex align-items-start justify-content-start', ...(ngDevMode ? [{ debugName: "mobileChartWrapperClass" }] : /* istanbul ignore next */ []));
|
|
925
|
+
salaryTableRowClass = input('row', ...(ngDevMode ? [{ debugName: "salaryTableRowClass" }] : /* istanbul ignore next */ []));
|
|
926
|
+
labelColumnClass = input('col-5 text-start', ...(ngDevMode ? [{ debugName: "labelColumnClass" }] : /* istanbul ignore next */ []));
|
|
927
|
+
daysColumnClass = input('col-2 text-end fw-light mb-2', ...(ngDevMode ? [{ debugName: "daysColumnClass" }] : /* istanbul ignore next */ []));
|
|
928
|
+
daysHeaderClass = input('text-ellipsis-one-line mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "daysHeaderClass" }] : /* istanbul ignore next */ []));
|
|
929
|
+
amountColumnClass = input('offset-1 col-3 text-start', ...(ngDevMode ? [{ debugName: "amountColumnClass" }] : /* istanbul ignore next */ []));
|
|
930
|
+
totalsColumnClass = input('offset-3 col-4 text-start', ...(ngDevMode ? [{ debugName: "totalsColumnClass" }] : /* istanbul ignore next */ []));
|
|
931
|
+
viewDetailsLinkClass = input('text-primary fw-normal ms-1', ...(ngDevMode ? [{ debugName: "viewDetailsLinkClass" }] : /* istanbul ignore next */ []));
|
|
932
|
+
allowancesRowClass = input('row align-items-start', ...(ngDevMode ? [{ debugName: "allowancesRowClass" }] : /* istanbul ignore next */ []));
|
|
933
|
+
allowanceDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "allowanceDaysClass" }] : /* istanbul ignore next */ []));
|
|
934
|
+
allowanceAmountWrapperClass = input('d-flex align-items-center justify-content-between fs-12 fw-medium mb-2 text-dark-gray', ...(ngDevMode ? [{ debugName: "allowanceAmountWrapperClass" }] : /* istanbul ignore next */ []));
|
|
935
|
+
allowanceAmountTextClass = input('w-30 text-nowrap', ...(ngDevMode ? [{ debugName: "allowanceAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
936
|
+
tooltipContainerClass = input('text-white rounded overflow-hidden', ...(ngDevMode ? [{ debugName: "tooltipContainerClass" }] : /* istanbul ignore next */ []));
|
|
937
|
+
tooltipTextClass = input('text-ellipsis-one-line fs-12', ...(ngDevMode ? [{ debugName: "tooltipTextClass" }] : /* istanbul ignore next */ []));
|
|
938
|
+
tooltipCurrencyClass = input('fs-10', ...(ngDevMode ? [{ debugName: "tooltipCurrencyClass" }] : /* istanbul ignore next */ []));
|
|
939
|
+
tooltipAmountClass = input('fs-14 ms-1', ...(ngDevMode ? [{ debugName: "tooltipAmountClass" }] : /* istanbul ignore next */ []));
|
|
940
|
+
dividerRowClass = input('row', ...(ngDevMode ? [{ debugName: "dividerRowClass" }] : /* istanbul ignore next */ []));
|
|
941
|
+
dividerColumnClass = input('col-12', ...(ngDevMode ? [{ debugName: "dividerColumnClass" }] : /* istanbul ignore next */ []));
|
|
942
|
+
deductionsSectionRowClass = input('row mt-4', ...(ngDevMode ? [{ debugName: "deductionsSectionRowClass" }] : /* istanbul ignore next */ []));
|
|
943
|
+
deductionsSectionColumnClass = input('col-xl-6 col-md-12', ...(ngDevMode ? [{ debugName: "deductionsSectionColumnClass" }] : /* istanbul ignore next */ []));
|
|
944
|
+
deductionsInnerRowClass = input('row', ...(ngDevMode ? [{ debugName: "deductionsInnerRowClass" }] : /* istanbul ignore next */ []));
|
|
945
|
+
deductionDaysClass = input('col-2 text-end table-cell-sm fw-light', ...(ngDevMode ? [{ debugName: "deductionDaysClass" }] : /* istanbul ignore next */ []));
|
|
946
|
+
deductionAmountTextClass = input('fw-normal mb-2 table-cell-sm text-nowrap', ...(ngDevMode ? [{ debugName: "deductionAmountTextClass" }] : /* istanbul ignore next */ []));
|
|
947
|
+
emptyCardContainerClass = input('card border shadow-sm rounded-3', ...(ngDevMode ? [{ debugName: "emptyCardContainerClass" }] : /* istanbul ignore next */ []));
|
|
948
|
+
emptyCardBodyClass = input('card-body text-center py-5', ...(ngDevMode ? [{ debugName: "emptyCardBodyClass" }] : /* istanbul ignore next */ []));
|
|
949
|
+
emptyIconClass = input('fs-28 me-2 light-info mb-3', ...(ngDevMode ? [{ debugName: "emptyIconClass" }] : /* istanbul ignore next */ []));
|
|
950
|
+
emptyMessageClass = input('fs-20 fw-400 mb-2 text-dark', ...(ngDevMode ? [{ debugName: "emptyMessageClass" }] : /* istanbul ignore next */ []));
|
|
951
|
+
emptyHelpTextClass = input('fs-16 fw-400 mb-0 text-dark', ...(ngDevMode ? [{ debugName: "emptyHelpTextClass" }] : /* istanbul ignore next */ []));
|
|
952
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
953
|
+
hidePayslip = input(false, ...(ngDevMode ? [{ debugName: "hidePayslip" }] : /* istanbul ignore next */ []));
|
|
954
|
+
isFirstMonth = input(false, ...(ngDevMode ? [{ debugName: "isFirstMonth" }] : /* istanbul ignore next */ []));
|
|
955
|
+
accessDeniedMessage = input('YouAreNotAllowedToViewThePayslip', ...(ngDevMode ? [{ debugName: "accessDeniedMessage" }] : /* istanbul ignore next */ []));
|
|
956
|
+
noPayslipMessage = input('NoPayslipAvailableYet', ...(ngDevMode ? [{ debugName: "noPayslipMessage" }] : /* istanbul ignore next */ []));
|
|
957
|
+
helpText = input('PleaseContactYourAdminForAnyHelp.', ...(ngDevMode ? [{ debugName: "helpText" }] : /* istanbul ignore next */ []));
|
|
958
|
+
accessDeniedIcon = input(faMoneyCheckDollarPen, ...(ngDevMode ? [{ debugName: "accessDeniedIcon" }] : /* istanbul ignore next */ []));
|
|
959
|
+
isLoadingChanged = output();
|
|
960
|
+
errorOccurred = output();
|
|
961
|
+
salaryIcon = faMoneyCheckDollarPen;
|
|
962
|
+
employeeDetails = signal(null, ...(ngDevMode ? [{ debugName: "employeeDetails" }] : /* istanbul ignore next */ []));
|
|
963
|
+
actualBasicSalaryDetails = signal([], ...(ngDevMode ? [{ debugName: "actualBasicSalaryDetails" }] : /* istanbul ignore next */ []));
|
|
964
|
+
pieDataSource = signal([], ...(ngDevMode ? [{ debugName: "pieDataSource" }] : /* istanbul ignore next */ []));
|
|
965
|
+
selectedPayMonth = signal(null, ...(ngDevMode ? [{ debugName: "selectedPayMonth" }] : /* istanbul ignore next */ []));
|
|
966
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
967
|
+
commonMethod = inject(CommonMethods);
|
|
968
|
+
translatePipe = inject(PayrollTranslatePipe);
|
|
969
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
970
|
+
constructor() {
|
|
971
|
+
effect(() => {
|
|
972
|
+
const baseUrl = this.baseUrl();
|
|
973
|
+
const payMonth = this.payMonth();
|
|
974
|
+
if (!baseUrl) {
|
|
975
|
+
this.resetState();
|
|
976
|
+
return;
|
|
977
|
+
}
|
|
978
|
+
if (!this.hidePayslip() && payMonth) {
|
|
979
|
+
this.selectedPayMonth.set(payMonth);
|
|
980
|
+
this.loadEmployeePayslip(payMonth);
|
|
981
|
+
return;
|
|
982
|
+
}
|
|
983
|
+
this.resetDataOnly();
|
|
984
|
+
});
|
|
985
|
+
}
|
|
986
|
+
payMonthDate = computed(() => {
|
|
987
|
+
const selectedPayMonth = this.selectedPayMonth();
|
|
988
|
+
if (!selectedPayMonth) {
|
|
989
|
+
return null;
|
|
990
|
+
}
|
|
991
|
+
const dashParts = selectedPayMonth.split('-');
|
|
992
|
+
if (dashParts.length === 2) {
|
|
993
|
+
const year = Number(dashParts[0]);
|
|
994
|
+
const month = Number(dashParts[1]) - 1;
|
|
995
|
+
if (!Number.isNaN(month) && !Number.isNaN(year)) {
|
|
996
|
+
return new Date(year, month, 1);
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
const slashParts = selectedPayMonth.split('/');
|
|
1000
|
+
if (slashParts.length !== 2) {
|
|
1001
|
+
return null;
|
|
1002
|
+
}
|
|
1003
|
+
const month = Number(slashParts[0]) - 1;
|
|
1004
|
+
const year = Number(slashParts[1]);
|
|
1005
|
+
if (Number.isNaN(month) || Number.isNaN(year)) {
|
|
1006
|
+
return null;
|
|
1007
|
+
}
|
|
1008
|
+
return new Date(year, month, 1);
|
|
1009
|
+
}, ...(ngDevMode ? [{ debugName: "payMonthDate" }] : /* istanbul ignore next */ []));
|
|
1010
|
+
loadEmployeePayslip(payMonth, emitLoading = true) {
|
|
1011
|
+
if (emitLoading) {
|
|
1012
|
+
this.setLoading(true);
|
|
1013
|
+
}
|
|
1014
|
+
this.payrollWidgetsService
|
|
1015
|
+
.getPayslipDetails(this.baseUrl(), payMonth)
|
|
1016
|
+
.pipe(finalize(() => {
|
|
1017
|
+
this.setLoading(false);
|
|
1018
|
+
}))
|
|
1019
|
+
.subscribe({
|
|
1020
|
+
next: (response) => {
|
|
1021
|
+
const payload = response?.ResponseData ?? null;
|
|
1022
|
+
this.employeeDetails.set(payload);
|
|
1023
|
+
if (this.hidePayslip() || !payload) {
|
|
1024
|
+
this.actualBasicSalaryDetails.set([]);
|
|
1025
|
+
this.pieDataSource.set([]);
|
|
1026
|
+
return;
|
|
1027
|
+
}
|
|
1028
|
+
this.actualBasicSalaryDetails.set(this.buildActualBasicSalaryDetails(payload));
|
|
1029
|
+
this.pieDataSource.set(this.buildPieDataSource(payload));
|
|
1030
|
+
},
|
|
1031
|
+
error: (error) => {
|
|
1032
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
1033
|
+
this.resetDataOnly();
|
|
1034
|
+
},
|
|
1035
|
+
});
|
|
1036
|
+
}
|
|
1037
|
+
buildActualBasicSalaryDetails(employeeDetails) {
|
|
1038
|
+
const details = [
|
|
1039
|
+
{
|
|
1040
|
+
Attendance: this.translatePipe.transform('WorkingDays'),
|
|
1041
|
+
AllowanceDays: employeeDetails.WorkingDays,
|
|
1042
|
+
Amount: employeeDetails.WorkingDaysCost,
|
|
1043
|
+
},
|
|
1044
|
+
];
|
|
1045
|
+
for (const paidVacation of employeeDetails.PaidVacations ?? []) {
|
|
1046
|
+
details.push({
|
|
1047
|
+
Attendance: paidVacation.VacationTypeName,
|
|
1048
|
+
AllowanceDays: paidVacation.VacationDays,
|
|
1049
|
+
Amount: paidVacation.VacationDaysCost,
|
|
1050
|
+
});
|
|
1051
|
+
}
|
|
1052
|
+
return details;
|
|
1053
|
+
}
|
|
1054
|
+
buildPieDataSource(employeeDetails) {
|
|
1055
|
+
const decimals = employeeDetails.CurrencyDecimals ?? 0;
|
|
1056
|
+
const netSalary = employeeDetails.NetSalary ?? 0;
|
|
1057
|
+
const netSalaryColor = netSalary < 0 ? 'var(--bs-danger)' : 'var(--bs-bg-dark-gray)';
|
|
1058
|
+
return [
|
|
1059
|
+
{
|
|
1060
|
+
Text: this.translatePipe.transform('NetSalary'),
|
|
1061
|
+
Value: netSalary < 0 ? 0 : netSalary,
|
|
1062
|
+
FormattedValue: this.commonMethod.currencyDecimalFormat(netSalary, decimals) ?? '',
|
|
1063
|
+
ValueColor: netSalaryColor,
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
Text: this.translatePipe.transform('Deductions'),
|
|
1067
|
+
Value: employeeDetails.TotalDeductions ?? 0,
|
|
1068
|
+
FormattedValue: this.commonMethod.currencyDecimalFormat(employeeDetails.TotalDeductions ?? 0, decimals) ?? '',
|
|
1069
|
+
ValueColor: 'var(--bs-danger)',
|
|
1070
|
+
},
|
|
1071
|
+
];
|
|
1072
|
+
}
|
|
1073
|
+
resetState() {
|
|
1074
|
+
this.resetDataOnly();
|
|
1075
|
+
this.setLoading(false);
|
|
1076
|
+
}
|
|
1077
|
+
resetDataOnly() {
|
|
1078
|
+
this.employeeDetails.set(null);
|
|
1079
|
+
this.actualBasicSalaryDetails.set([]);
|
|
1080
|
+
this.pieDataSource.set([]);
|
|
1081
|
+
this.selectedPayMonth.set(null);
|
|
1082
|
+
}
|
|
1083
|
+
setLoading(isLoading) {
|
|
1084
|
+
this.isLoading.set(isLoading);
|
|
1085
|
+
this.isLoadingChanged.emit(isLoading);
|
|
1086
|
+
}
|
|
1087
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1088
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-widget", inputs: { baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", 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 }, 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 }, 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 }, 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 }, emptyCardContainerClass: { classPropertyName: "emptyCardContainerClass", publicName: "emptyCardContainerClass", isSignal: true, isRequired: false, transformFunction: null }, emptyCardBodyClass: { classPropertyName: "emptyCardBodyClass", publicName: "emptyCardBodyClass", isSignal: true, isRequired: false, transformFunction: null }, emptyIconClass: { classPropertyName: "emptyIconClass", publicName: "emptyIconClass", isSignal: true, isRequired: false, transformFunction: null }, emptyMessageClass: { classPropertyName: "emptyMessageClass", publicName: "emptyMessageClass", isSignal: true, isRequired: false, transformFunction: null }, emptyHelpTextClass: { classPropertyName: "emptyHelpTextClass", publicName: "emptyHelpTextClass", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, hidePayslip: { classPropertyName: "hidePayslip", publicName: "hidePayslip", isSignal: true, isRequired: false, transformFunction: null }, isFirstMonth: { classPropertyName: "isFirstMonth", publicName: "isFirstMonth", isSignal: true, isRequired: false, transformFunction: null }, accessDeniedMessage: { classPropertyName: "accessDeniedMessage", publicName: "accessDeniedMessage", isSignal: true, isRequired: false, transformFunction: null }, noPayslipMessage: { classPropertyName: "noPayslipMessage", publicName: "noPayslipMessage", isSignal: true, isRequired: false, transformFunction: null }, helpText: { classPropertyName: "helpText", publicName: "helpText", isSignal: true, isRequired: false, transformFunction: null }, accessDeniedIcon: { classPropertyName: "accessDeniedIcon", publicName: "accessDeniedIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "@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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: EmptyPayslipCardComponent, selector: "payroll-empty-payslip-card", inputs: ["hidePayslip", "cardContainerClass", "cardBodyClass", "iconClass", "messageClass", "helpTextClass", "accessDeniedMessage", "noPayslipMessage", "helpText", "accessDeniedIcon"] }, { kind: "component", type: PayslipDetailsCardComponent, selector: "payroll-payslip-details-card", inputs: ["employeeDetails", "payMonthDate", "pieDataSource", "actualBasicSalaryDetails", "cardContainerClass", "contentRowClass", "detailsColumnClass", "chartColumnClass", "isMobile", "titleRowClass", "salaryIconClass", "titleClass", "titleMonthClass", "sectionClass", "sectionTitleClass", "tableLabelClass", "tablePrimaryLabelClass", "tableValueClass", "tableSecondaryValueClass", "currencyCodeClass", "infoIconClass", "popupWidth", "popupMaxHeight", "popupShadingColor", "popupHeaderRowClass", "popupRowClass", "mobileChartWrapperClass", "negativePaletteColors", "positivePaletteColors", "salaryTableRowClass", "labelColumnClass", "daysColumnClass", "daysHeaderClass", "amountColumnClass", "salaryAmountColumnClass", "allowanceAmountColumnClass", "totalsColumnClass", "viewDetailsLinkClass", "allowancesRowClass", "allowanceDaysClass", "allowanceAmountWrapperClass", "allowanceAmountTextClass", "tooltipContainerClass", "tooltipTextClass", "tooltipCurrencyClass", "tooltipAmountClass", "dividerRowClass", "dividerColumnClass", "deductionsSectionRowClass", "deductionsSectionColumnClass", "deductionsInnerRowClass", "deductionDaysClass", "deductionAmountTextClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1089
|
+
}
|
|
1090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipWidgetComponent, decorators: [{
|
|
1091
|
+
type: Component,
|
|
1092
|
+
args: [{ selector: 'payroll-my-payslip-widget', standalone: true, imports: [CommonModule, EmptyPayslipCardComponent, PayslipDetailsCardComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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" }]
|
|
1093
|
+
}], ctorParameters: () => [], propDecorators: { baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", 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 }] }], 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 }] }], 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 }] }], 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 }] }], emptyCardContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyCardContainerClass", required: false }] }], emptyCardBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyCardBodyClass", required: false }] }], emptyIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyIconClass", required: false }] }], emptyMessageClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessageClass", required: false }] }], emptyHelpTextClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyHelpTextClass", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], hidePayslip: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidePayslip", required: false }] }], isFirstMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFirstMonth", required: false }] }], accessDeniedMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessDeniedMessage", required: false }] }], noPayslipMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "noPayslipMessage", required: false }] }], helpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpText", required: false }] }], accessDeniedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessDeniedIcon", required: false }] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }] } });
|
|
1094
|
+
|
|
1095
|
+
class MyPayslipJobInfoWidgetComponent {
|
|
1096
|
+
adminUnitIcon = input(faSitemap, ...(ngDevMode ? [{ debugName: "adminUnitIcon" }] : /* istanbul ignore next */ []));
|
|
1097
|
+
positionIcon = input(faUserTie, ...(ngDevMode ? [{ debugName: "positionIcon" }] : /* istanbul ignore next */ []));
|
|
1098
|
+
gradeIcon = input(faMedal, ...(ngDevMode ? [{ debugName: "gradeIcon" }] : /* istanbul ignore next */ []));
|
|
1099
|
+
joiningDateIcon = input(faCalendarAlt, ...(ngDevMode ? [{ debugName: "joiningDateIcon" }] : /* istanbul ignore next */ []));
|
|
1100
|
+
titleClass = input('fw-medium mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
1101
|
+
desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2', ...(ngDevMode ? [{ debugName: "desktopContainerClass" }] : /* istanbul ignore next */ []));
|
|
1102
|
+
mobileContainerClass = input('d-flex align-items-center justify-content-center w-100', ...(ngDevMode ? [{ debugName: "mobileContainerClass" }] : /* istanbul ignore next */ []));
|
|
1103
|
+
mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3', ...(ngDevMode ? [{ debugName: "mobileCardClass" }] : /* istanbul ignore next */ []));
|
|
1104
|
+
iconClass = input('fs-16 me-2 text-gray', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
1105
|
+
rowClass = input('d-flex align-items-center my-1 w-100', ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
|
|
1106
|
+
labelClass = input('fw-light fs-12 text-light-dark', ...(ngDevMode ? [{ debugName: "labelClass" }] : /* istanbul ignore next */ []));
|
|
1107
|
+
valueClass = input('fw-400 ms-1 text-light-dark fs-12', ...(ngDevMode ? [{ debugName: "valueClass" }] : /* istanbul ignore next */ []));
|
|
1108
|
+
title = input('JobInformation', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1109
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
1110
|
+
payMonth = input(null, ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
1111
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
1112
|
+
isPayslipAvailable = input(true, ...(ngDevMode ? [{ debugName: "isPayslipAvailable" }] : /* istanbul ignore next */ []));
|
|
1113
|
+
isLoadingChanged = output();
|
|
1114
|
+
errorOccurred = output();
|
|
1115
|
+
jobInfo = signal(null, ...(ngDevMode ? [{ debugName: "jobInfo" }] : /* istanbul ignore next */ []));
|
|
1116
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1117
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
1118
|
+
datePipe = inject(DatePipe);
|
|
1119
|
+
constructor() {
|
|
1120
|
+
effect(() => {
|
|
1121
|
+
if (this.baseUrl() && this.payMonth()) {
|
|
1122
|
+
this.loadJobInfo();
|
|
1123
|
+
}
|
|
1124
|
+
});
|
|
1125
|
+
}
|
|
1126
|
+
loadJobInfo() {
|
|
1127
|
+
const payMonth = this.payMonth();
|
|
1128
|
+
if (!this.isPayslipAvailable() || !payMonth) {
|
|
1129
|
+
this.jobInfo.set(null);
|
|
1130
|
+
return;
|
|
1131
|
+
}
|
|
1132
|
+
this.isLoading.set(true);
|
|
1133
|
+
this.isLoadingChanged.emit(true);
|
|
1134
|
+
this.payrollWidgetsService.getPayslipJobInfo(this.baseUrl(), payMonth).subscribe({
|
|
1135
|
+
next: res => {
|
|
1136
|
+
this.jobInfo.set(res?.ResponseData ?? null);
|
|
1137
|
+
this.isLoadingChanged.emit(false);
|
|
1138
|
+
this.isLoading.set(false);
|
|
1139
|
+
},
|
|
1140
|
+
error: (error) => {
|
|
1141
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
1142
|
+
this.isLoadingChanged.emit(false);
|
|
1143
|
+
this.isLoading.set(false);
|
|
1144
|
+
},
|
|
1145
|
+
});
|
|
1146
|
+
}
|
|
1147
|
+
display(value) {
|
|
1148
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1149
|
+
return '-';
|
|
1150
|
+
}
|
|
1151
|
+
return `${value}`;
|
|
1152
|
+
}
|
|
1153
|
+
formatDate(date) {
|
|
1154
|
+
if (this.isLoading() || !this.isPayslipAvailable() || !date) {
|
|
1155
|
+
return '-';
|
|
1156
|
+
}
|
|
1157
|
+
return this.datePipe.transform(date, 'dd/MM/yyyy') || '-';
|
|
1158
|
+
}
|
|
1159
|
+
items = computed(() => {
|
|
1160
|
+
return [
|
|
1161
|
+
{
|
|
1162
|
+
label: 'AdminUnit',
|
|
1163
|
+
icon: this.adminUnitIcon(),
|
|
1164
|
+
value: this.display(this.jobInfo()?.AdminUnitName),
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
label: 'Position',
|
|
1168
|
+
icon: this.positionIcon(),
|
|
1169
|
+
value: this.display(this.jobInfo()?.PositionName),
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
label: 'Grade',
|
|
1173
|
+
icon: this.gradeIcon(),
|
|
1174
|
+
value: this.display(this.jobInfo()?.GradeName),
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1177
|
+
label: 'JoiningDate',
|
|
1178
|
+
icon: this.joiningDateIcon(),
|
|
1179
|
+
value: this.formatDate(this.jobInfo()?.JoiningDate),
|
|
1180
|
+
},
|
|
1181
|
+
];
|
|
1182
|
+
}, ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
1183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipJobInfoWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipJobInfoWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-job-info-widget", inputs: { adminUnitIcon: { classPropertyName: "adminUnitIcon", publicName: "adminUnitIcon", isSignal: true, isRequired: false, transformFunction: null }, positionIcon: { classPropertyName: "positionIcon", publicName: "positionIcon", isSignal: true, isRequired: false, transformFunction: null }, gradeIcon: { classPropertyName: "gradeIcon", publicName: "gradeIcon", isSignal: true, isRequired: false, transformFunction: null }, joiningDateIcon: { classPropertyName: "joiningDateIcon", publicName: "joiningDateIcon", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, desktopContainerClass: { classPropertyName: "desktopContainerClass", publicName: "desktopContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileContainerClass: { classPropertyName: "mobileContainerClass", publicName: "mobileContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileCardClass: { classPropertyName: "mobileCardClass", publicName: "mobileCardClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, valueClass: { classPropertyName: "valueClass", publicName: "valueClass", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, isPayslipAvailable: { classPropertyName: "isPayslipAvailable", publicName: "isPayslipAvailable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: 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: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1185
|
+
}
|
|
1186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipJobInfoWidgetComponent, decorators: [{
|
|
1187
|
+
type: Component,
|
|
1188
|
+
args: [{ selector: 'payroll-my-payslip-job-info-widget', standalone: true, imports: [CommonModule, PayrollTranslatePipe, FaIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1189
|
+
}], ctorParameters: () => [], propDecorators: { adminUnitIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "adminUnitIcon", required: false }] }], positionIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "positionIcon", required: false }] }], gradeIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "gradeIcon", required: false }] }], joiningDateIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "joiningDateIcon", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], desktopContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "desktopContainerClass", required: false }] }], mobileContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileContainerClass", required: false }] }], mobileCardClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCardClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], valueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueClass", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], isPayslipAvailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPayslipAvailable", required: false }] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }] } });
|
|
1190
|
+
|
|
1191
|
+
class MyPayslipIndemnityWidgetComponent {
|
|
1192
|
+
amountIcon = input(faFileSignature, ...(ngDevMode ? [{ debugName: "amountIcon" }] : /* istanbul ignore next */ []));
|
|
1193
|
+
titleClass = input('fw-medium table-cell-md mb-2', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
1194
|
+
desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2', ...(ngDevMode ? [{ debugName: "desktopContainerClass" }] : /* istanbul ignore next */ []));
|
|
1195
|
+
mobileContainerClass = input('d-flex align-items-center justify-content-center w-100', ...(ngDevMode ? [{ debugName: "mobileContainerClass" }] : /* istanbul ignore next */ []));
|
|
1196
|
+
mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3', ...(ngDevMode ? [{ debugName: "mobileCardClass" }] : /* istanbul ignore next */ []));
|
|
1197
|
+
iconClass = input('fs-16 me-2 text-gray', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
1198
|
+
rowClass = input('d-flex align-items-center my-1 w-100', ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
|
|
1199
|
+
labelClass = input('fw-light fs-12 text-light-dark', ...(ngDevMode ? [{ debugName: "labelClass" }] : /* istanbul ignore next */ []));
|
|
1200
|
+
valueClass = input('fw-400 ms-1 text-light-dark fs-12', ...(ngDevMode ? [{ debugName: "valueClass" }] : /* istanbul ignore next */ []));
|
|
1201
|
+
currencyCodeClass = input('text-secondary fs-10', ...(ngDevMode ? [{ debugName: "currencyCodeClass" }] : /* istanbul ignore next */ []));
|
|
1202
|
+
title = input('Indemnity', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1203
|
+
indemnityDaysLabel = input('IndemnityDays', ...(ngDevMode ? [{ debugName: "indemnityDaysLabel" }] : /* istanbul ignore next */ []));
|
|
1204
|
+
indemnityAmountLabel = input('IndemnityAmount', ...(ngDevMode ? [{ debugName: "indemnityAmountLabel" }] : /* istanbul ignore next */ []));
|
|
1205
|
+
days = input('Days', ...(ngDevMode ? [{ debugName: "days" }] : /* istanbul ignore next */ []));
|
|
1206
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
1207
|
+
payMonth = input(null, ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
1208
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
1209
|
+
isPayslipAvailable = input(true, ...(ngDevMode ? [{ debugName: "isPayslipAvailable" }] : /* istanbul ignore next */ []));
|
|
1210
|
+
indemnity = signal(null, ...(ngDevMode ? [{ debugName: "indemnity" }] : /* istanbul ignore next */ []));
|
|
1211
|
+
errorOccurred = output();
|
|
1212
|
+
isLoadingChanged = output();
|
|
1213
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1214
|
+
balanceKey = 'Balance';
|
|
1215
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
1216
|
+
commonMethods = inject(CommonMethods);
|
|
1217
|
+
constructor() {
|
|
1218
|
+
effect(() => {
|
|
1219
|
+
if (this.baseUrl() && this.payMonth()) {
|
|
1220
|
+
this.loadIndemnity();
|
|
1221
|
+
}
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1224
|
+
loadIndemnity() {
|
|
1225
|
+
const payMonth = this.payMonth();
|
|
1226
|
+
if (!this.isPayslipAvailable() || !payMonth) {
|
|
1227
|
+
this.indemnity.set(null);
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1230
|
+
this.isLoading.set(true);
|
|
1231
|
+
this.isLoadingChanged.emit(true);
|
|
1232
|
+
this.payrollWidgetsService
|
|
1233
|
+
.getPayslipIndemnity(this.baseUrl(), payMonth)
|
|
1234
|
+
.pipe(finalize(() => {
|
|
1235
|
+
this.isLoading.set(false);
|
|
1236
|
+
this.isLoadingChanged.emit(false);
|
|
1237
|
+
}))
|
|
1238
|
+
.subscribe({
|
|
1239
|
+
next: res => {
|
|
1240
|
+
this.indemnity.set(res?.ResponseData ?? null);
|
|
1241
|
+
},
|
|
1242
|
+
error: () => {
|
|
1243
|
+
this.indemnity.set(null);
|
|
1244
|
+
},
|
|
1245
|
+
});
|
|
1246
|
+
}
|
|
1247
|
+
indemnityItems = computed(() => {
|
|
1248
|
+
return [
|
|
1249
|
+
{
|
|
1250
|
+
label: this.indemnityDaysLabel(),
|
|
1251
|
+
value: this.indemnity()?.IndemnityDays,
|
|
1252
|
+
suffixKey: this.days(),
|
|
1253
|
+
showSuffix: this.shouldShowValue(this.indemnity()?.IndemnityDays),
|
|
1254
|
+
},
|
|
1255
|
+
{
|
|
1256
|
+
label: this.indemnityAmountLabel(),
|
|
1257
|
+
icon: this.amountIcon(),
|
|
1258
|
+
value: this.displayAmount(this.indemnity()?.IndemnityAmount),
|
|
1259
|
+
},
|
|
1260
|
+
];
|
|
1261
|
+
}, ...(ngDevMode ? [{ debugName: "indemnityItems" }] : /* istanbul ignore next */ []));
|
|
1262
|
+
displayAmount(value) {
|
|
1263
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1264
|
+
return '-';
|
|
1265
|
+
}
|
|
1266
|
+
return this.commonMethods.currencyDecimalFormat(value, this.currencyDecimals()) ?? `${value}`;
|
|
1267
|
+
}
|
|
1268
|
+
shouldShowValue(value) {
|
|
1269
|
+
return !this.isLoading() && this.isPayslipAvailable() && value != null;
|
|
1270
|
+
}
|
|
1271
|
+
currencyDecimals = computed(() => this.indemnity()?.CurrencyDecimals ?? 2, ...(ngDevMode ? [{ debugName: "currencyDecimals" }] : /* istanbul ignore next */ []));
|
|
1272
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipIndemnityWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1273
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipIndemnityWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-indemnity-widget", inputs: { amountIcon: { classPropertyName: "amountIcon", publicName: "amountIcon", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, desktopContainerClass: { classPropertyName: "desktopContainerClass", publicName: "desktopContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileContainerClass: { classPropertyName: "mobileContainerClass", publicName: "mobileContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileCardClass: { classPropertyName: "mobileCardClass", publicName: "mobileCardClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, valueClass: { classPropertyName: "valueClass", publicName: "valueClass", isSignal: true, isRequired: false, transformFunction: null }, currencyCodeClass: { classPropertyName: "currencyCodeClass", publicName: "currencyCodeClass", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, indemnityDaysLabel: { classPropertyName: "indemnityDaysLabel", publicName: "indemnityDaysLabel", isSignal: true, isRequired: false, transformFunction: null }, indemnityAmountLabel: { classPropertyName: "indemnityAmountLabel", publicName: "indemnityAmountLabel", isSignal: true, isRequired: false, transformFunction: null }, days: { classPropertyName: "days", publicName: "days", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, isPayslipAvailable: { classPropertyName: "isPayslipAvailable", publicName: "isPayslipAvailable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { errorOccurred: "errorOccurred", isLoadingChanged: "isLoadingChanged" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: 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: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1274
|
+
}
|
|
1275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipIndemnityWidgetComponent, decorators: [{
|
|
1276
|
+
type: Component,
|
|
1277
|
+
args: [{ selector: 'payroll-my-payslip-indemnity-widget', standalone: true, imports: [CommonModule, FaIconComponent, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1278
|
+
}], ctorParameters: () => [], propDecorators: { amountIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "amountIcon", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], desktopContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "desktopContainerClass", required: false }] }], mobileContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileContainerClass", required: false }] }], mobileCardClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCardClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], valueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueClass", required: false }] }], currencyCodeClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCodeClass", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], indemnityDaysLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "indemnityDaysLabel", required: false }] }], indemnityAmountLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "indemnityAmountLabel", required: false }] }], days: [{ type: i0.Input, args: [{ isSignal: true, alias: "days", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], isPayslipAvailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPayslipAvailable", required: false }] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }] } });
|
|
1279
|
+
|
|
1280
|
+
class SalaryTransferPopupComponent {
|
|
1281
|
+
bankInformationDataSource = input([], ...(ngDevMode ? [{ debugName: "bankInformationDataSource" }] : /* istanbul ignore next */ []));
|
|
1282
|
+
visibleSalaryTransferPopup = input(false, ...(ngDevMode ? [{ debugName: "visibleSalaryTransferPopup" }] : /* istanbul ignore next */ []));
|
|
1283
|
+
currencyCode = input('', ...(ngDevMode ? [{ debugName: "currencyCode" }] : /* istanbul ignore next */ []));
|
|
1284
|
+
currencyDecimals = input(2, ...(ngDevMode ? [{ debugName: "currencyDecimals" }] : /* istanbul ignore next */ []));
|
|
1285
|
+
popupHeight = input('auto', ...(ngDevMode ? [{ debugName: "popupHeight" }] : /* istanbul ignore next */ []));
|
|
1286
|
+
popupMaxWidth = input('800px', ...(ngDevMode ? [{ debugName: "popupMaxWidth" }] : /* istanbul ignore next */ []));
|
|
1287
|
+
popupMinWidth = input('auto', ...(ngDevMode ? [{ debugName: "popupMinWidth" }] : /* istanbul ignore next */ []));
|
|
1288
|
+
containerClass = input('', ...(ngDevMode ? [{ debugName: "containerClass" }] : /* istanbul ignore next */ []));
|
|
1289
|
+
headerRowClass = input('fw-bold text-secondary pb-2 d-flex', ...(ngDevMode ? [{ debugName: "headerRowClass" }] : /* istanbul ignore next */ []));
|
|
1290
|
+
headerCell1Class = input('w-35 text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "headerCell1Class" }] : /* istanbul ignore next */ []));
|
|
1291
|
+
headerCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "headerCell2Class" }] : /* istanbul ignore next */ []));
|
|
1292
|
+
headerCell3Class = input('w-45 text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "headerCell3Class" }] : /* istanbul ignore next */ []));
|
|
1293
|
+
dataRowClass = input('py-2 d-flex', ...(ngDevMode ? [{ debugName: "dataRowClass" }] : /* istanbul ignore next */ []));
|
|
1294
|
+
dataCell1Class = input('w-35 text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "dataCell1Class" }] : /* istanbul ignore next */ []));
|
|
1295
|
+
dataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "dataCell2Class" }] : /* istanbul ignore next */ []));
|
|
1296
|
+
dataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "dataCell3Class" }] : /* istanbul ignore next */ []));
|
|
1297
|
+
openSalaryTransferPopupChange = output();
|
|
1298
|
+
visibleSalaryTransferPopupState = signal(false, ...(ngDevMode ? [{ debugName: "visibleSalaryTransferPopupState" }] : /* istanbul ignore next */ []));
|
|
1299
|
+
commonMethods = inject(CommonMethods);
|
|
1300
|
+
constructor() {
|
|
1301
|
+
effect(() => {
|
|
1302
|
+
this.visibleSalaryTransferPopupState.set(this.visibleSalaryTransferPopup());
|
|
1303
|
+
});
|
|
1304
|
+
}
|
|
1305
|
+
onVisibilityChange(visible) {
|
|
1306
|
+
this.visibleSalaryTransferPopupState.set(visible);
|
|
1307
|
+
this.openSalaryTransferPopupChange.emit(visible);
|
|
1308
|
+
}
|
|
1309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SalaryTransferPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1310
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SalaryTransferPopupComponent, isStandalone: true, selector: "payroll-salary-transfer-popup", inputs: { bankInformationDataSource: { classPropertyName: "bankInformationDataSource", publicName: "bankInformationDataSource", isSignal: true, isRequired: false, transformFunction: null }, visibleSalaryTransferPopup: { classPropertyName: "visibleSalaryTransferPopup", publicName: "visibleSalaryTransferPopup", isSignal: true, isRequired: false, transformFunction: null }, currencyCode: { classPropertyName: "currencyCode", publicName: "currencyCode", isSignal: true, isRequired: false, transformFunction: null }, currencyDecimals: { classPropertyName: "currencyDecimals", publicName: "currencyDecimals", isSignal: true, isRequired: false, transformFunction: null }, popupHeight: { classPropertyName: "popupHeight", publicName: "popupHeight", isSignal: true, isRequired: false, transformFunction: null }, popupMaxWidth: { classPropertyName: "popupMaxWidth", publicName: "popupMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, popupMinWidth: { classPropertyName: "popupMinWidth", publicName: "popupMinWidth", isSignal: true, isRequired: false, transformFunction: null }, containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, headerRowClass: { classPropertyName: "headerRowClass", publicName: "headerRowClass", isSignal: true, isRequired: false, transformFunction: null }, headerCell1Class: { classPropertyName: "headerCell1Class", publicName: "headerCell1Class", isSignal: true, isRequired: false, transformFunction: null }, headerCell2Class: { classPropertyName: "headerCell2Class", publicName: "headerCell2Class", isSignal: true, isRequired: false, transformFunction: null }, headerCell3Class: { classPropertyName: "headerCell3Class", publicName: "headerCell3Class", isSignal: true, isRequired: false, transformFunction: null }, dataRowClass: { classPropertyName: "dataRowClass", publicName: "dataRowClass", isSignal: true, isRequired: false, transformFunction: null }, dataCell1Class: { classPropertyName: "dataCell1Class", publicName: "dataCell1Class", isSignal: true, isRequired: false, transformFunction: null }, dataCell2Class: { classPropertyName: "dataCell2Class", publicName: "dataCell2Class", isSignal: true, isRequired: false, transformFunction: null }, dataCell3Class: { classPropertyName: "dataCell3Class", publicName: "dataCell3Class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openSalaryTransferPopupChange: "openSalaryTransferPopupChange" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$2.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1311
|
+
}
|
|
1312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SalaryTransferPopupComponent, decorators: [{
|
|
1313
|
+
type: Component,
|
|
1314
|
+
args: [{ selector: 'payroll-salary-transfer-popup', standalone: true, imports: [DxPopupModule, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1315
|
+
}], ctorParameters: () => [], propDecorators: { bankInformationDataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "bankInformationDataSource", required: false }] }], visibleSalaryTransferPopup: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibleSalaryTransferPopup", required: false }] }], currencyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyCode", required: false }] }], currencyDecimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencyDecimals", required: false }] }], popupHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeight", required: false }] }], popupMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupMaxWidth", required: false }] }], popupMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupMinWidth", required: false }] }], containerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "containerClass", required: false }] }], headerRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerRowClass", required: false }] }], headerCell1Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerCell1Class", required: false }] }], headerCell2Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerCell2Class", required: false }] }], headerCell3Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerCell3Class", required: false }] }], dataRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataRowClass", required: false }] }], dataCell1Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataCell1Class", required: false }] }], dataCell2Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataCell2Class", required: false }] }], dataCell3Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataCell3Class", required: false }] }], openSalaryTransferPopupChange: [{ type: i0.Output, args: ["openSalaryTransferPopupChange"] }] } });
|
|
1316
|
+
|
|
1317
|
+
class MyPayslipBankInfoWidgetComponent {
|
|
1318
|
+
bankIcon = input(faUniversity, ...(ngDevMode ? [{ debugName: "bankIcon" }] : /* istanbul ignore next */ []));
|
|
1319
|
+
accountIcon = input(faCreditCard, ...(ngDevMode ? [{ debugName: "accountIcon" }] : /* istanbul ignore next */ []));
|
|
1320
|
+
titleClass = input('fw-medium mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
1321
|
+
desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2', ...(ngDevMode ? [{ debugName: "desktopContainerClass" }] : /* istanbul ignore next */ []));
|
|
1322
|
+
mobileContainerClass = input('d-flex align-items-center justify-content-between w-100', ...(ngDevMode ? [{ debugName: "mobileContainerClass" }] : /* istanbul ignore next */ []));
|
|
1323
|
+
mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3', ...(ngDevMode ? [{ debugName: "mobileCardClass" }] : /* istanbul ignore next */ []));
|
|
1324
|
+
iconClass = input('fs-16 me-2 text-gray', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
1325
|
+
rowClass = input('d-flex align-items-center my-1 w-100', ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
|
|
1326
|
+
labelClass = input('fw-light fs-12 text-light-dark', ...(ngDevMode ? [{ debugName: "labelClass" }] : /* istanbul ignore next */ []));
|
|
1327
|
+
valueClass = input('fw-400 ms-1 text-light-dark fs-12', ...(ngDevMode ? [{ debugName: "valueClass" }] : /* istanbul ignore next */ []));
|
|
1328
|
+
actionClass = input('mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline', ...(ngDevMode ? [{ debugName: "actionClass" }] : /* istanbul ignore next */ []));
|
|
1329
|
+
exploreDetailsKey = input('ExploreSalaryTransferDetails', ...(ngDevMode ? [{ debugName: "exploreDetailsKey" }] : /* istanbul ignore next */ []));
|
|
1330
|
+
popupHeight = input('auto', ...(ngDevMode ? [{ debugName: "popupHeight" }] : /* istanbul ignore next */ []));
|
|
1331
|
+
popupMaxWidth = input('800px', ...(ngDevMode ? [{ debugName: "popupMaxWidth" }] : /* istanbul ignore next */ []));
|
|
1332
|
+
popupMinWidth = input('auto', ...(ngDevMode ? [{ debugName: "popupMinWidth" }] : /* istanbul ignore next */ []));
|
|
1333
|
+
popupContainerClass = input('', ...(ngDevMode ? [{ debugName: "popupContainerClass" }] : /* istanbul ignore next */ []));
|
|
1334
|
+
popupHeaderRowClass = input('fw-bold text-secondary pb-2 d-flex', ...(ngDevMode ? [{ debugName: "popupHeaderRowClass" }] : /* istanbul ignore next */ []));
|
|
1335
|
+
popupHeaderCell1Class = input('w-35 text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "popupHeaderCell1Class" }] : /* istanbul ignore next */ []));
|
|
1336
|
+
popupHeaderCell2Class = input('w-20 text-start text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "popupHeaderCell2Class" }] : /* istanbul ignore next */ []));
|
|
1337
|
+
popupHeaderCell3Class = input('w-45 text-dark-gray fs-12 fw-400', ...(ngDevMode ? [{ debugName: "popupHeaderCell3Class" }] : /* istanbul ignore next */ []));
|
|
1338
|
+
popupDataRowClass = input('py-2 d-flex', ...(ngDevMode ? [{ debugName: "popupDataRowClass" }] : /* istanbul ignore next */ []));
|
|
1339
|
+
popupDataCell1Class = input('w-35 text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "popupDataCell1Class" }] : /* istanbul ignore next */ []));
|
|
1340
|
+
popupDataCell2Class = input('w-20 text-start text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "popupDataCell2Class" }] : /* istanbul ignore next */ []));
|
|
1341
|
+
popupDataCell3Class = input('w-45 text-start text-dark-gray fs-14 fw-400', ...(ngDevMode ? [{ debugName: "popupDataCell3Class" }] : /* istanbul ignore next */ []));
|
|
1342
|
+
title = input('BankInformation', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1343
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
1344
|
+
payMonth = input('', ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
1345
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
1346
|
+
errorOccurred = output();
|
|
1347
|
+
isLoadingChanged = output();
|
|
1348
|
+
isPayslipAvailable = input(true, ...(ngDevMode ? [{ debugName: "isPayslipAvailable" }] : /* istanbul ignore next */ []));
|
|
1349
|
+
bankInformation = signal(null, ...(ngDevMode ? [{ debugName: "bankInformation" }] : /* istanbul ignore next */ []));
|
|
1350
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1351
|
+
visibleSalaryTransferPopup = signal(false, ...(ngDevMode ? [{ debugName: "visibleSalaryTransferPopup" }] : /* istanbul ignore next */ []));
|
|
1352
|
+
exploreDetailsClick = output();
|
|
1353
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
1354
|
+
constructor() {
|
|
1355
|
+
effect(() => {
|
|
1356
|
+
if (this.baseUrl() && this.payMonth()) {
|
|
1357
|
+
this.loadBankInformation();
|
|
1358
|
+
}
|
|
1359
|
+
});
|
|
1360
|
+
}
|
|
1361
|
+
loadBankInformation() {
|
|
1362
|
+
if (!this.isPayslipAvailable()) {
|
|
1363
|
+
this.bankInformation.set([]);
|
|
1364
|
+
return;
|
|
1365
|
+
}
|
|
1366
|
+
this.isLoading.set(true);
|
|
1367
|
+
this.isLoadingChanged.emit(true);
|
|
1368
|
+
this.payrollWidgetsService
|
|
1369
|
+
.getPayslipBankInformation(this.baseUrl(), this.payMonth())
|
|
1370
|
+
.pipe(finalize(() => {
|
|
1371
|
+
this.isLoading.set(false);
|
|
1372
|
+
this.isLoadingChanged.emit(false);
|
|
1373
|
+
}))
|
|
1374
|
+
.subscribe({
|
|
1375
|
+
next: res => {
|
|
1376
|
+
this.bankInformation.set(res?.ResponseData ?? []);
|
|
1377
|
+
},
|
|
1378
|
+
error: (error) => {
|
|
1379
|
+
this.isLoadingChanged.emit(false);
|
|
1380
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
1381
|
+
this.bankInformation.set([]);
|
|
1382
|
+
},
|
|
1383
|
+
});
|
|
1384
|
+
}
|
|
1385
|
+
mainBank = computed(() => this.bankInformation()?.find(bank => bank.IsMainBank) ?? this.bankInformation()?.[0] ?? null, ...(ngDevMode ? [{ debugName: "mainBank" }] : /* istanbul ignore next */ []));
|
|
1386
|
+
display(value) {
|
|
1387
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1388
|
+
return '-';
|
|
1389
|
+
}
|
|
1390
|
+
return `${value}`;
|
|
1391
|
+
}
|
|
1392
|
+
accountLabel(bank) {
|
|
1393
|
+
return bank?.BankAccountNumber != null ? (bank?.IBAN != null ? 'IBAN' : 'AC') : 'IBAN';
|
|
1394
|
+
}
|
|
1395
|
+
bankItems = computed(() => {
|
|
1396
|
+
const bank = this.mainBank();
|
|
1397
|
+
return [
|
|
1398
|
+
{
|
|
1399
|
+
key: 'Bank',
|
|
1400
|
+
label: 'Bank',
|
|
1401
|
+
icon: this.bankIcon(),
|
|
1402
|
+
value: this.display(bank?.BankName),
|
|
1403
|
+
},
|
|
1404
|
+
{
|
|
1405
|
+
key: this.accountLabel(bank),
|
|
1406
|
+
label: this.accountLabel(bank),
|
|
1407
|
+
icon: this.accountIcon(),
|
|
1408
|
+
value: this.display(bank?.IBAN || bank?.BankAccountNumber),
|
|
1409
|
+
},
|
|
1410
|
+
];
|
|
1411
|
+
}, ...(ngDevMode ? [{ debugName: "bankItems" }] : /* istanbul ignore next */ []));
|
|
1412
|
+
showExploreLink = computed(() => !!this.bankInformation()?.length && this.isPayslipAvailable(), ...(ngDevMode ? [{ debugName: "showExploreLink" }] : /* istanbul ignore next */ []));
|
|
1413
|
+
onExploreDetailsClick() {
|
|
1414
|
+
const hasObservedSubscribers = this.exploreDetailsClick.observed === true;
|
|
1415
|
+
if (hasObservedSubscribers) {
|
|
1416
|
+
this.exploreDetailsClick.emit();
|
|
1417
|
+
return;
|
|
1418
|
+
}
|
|
1419
|
+
this.visibleSalaryTransferPopup.set(true);
|
|
1420
|
+
}
|
|
1421
|
+
onSalaryTransferVisibilityChanged(visible) {
|
|
1422
|
+
this.visibleSalaryTransferPopup.set(visible);
|
|
1423
|
+
}
|
|
1424
|
+
currencyCode = computed(() => this.mainBank()?.CurrencyCode ?? '', ...(ngDevMode ? [{ debugName: "currencyCode" }] : /* istanbul ignore next */ []));
|
|
1425
|
+
currencyDecimals = computed(() => this.mainBank()?.CurrencyDecimals ?? 2, ...(ngDevMode ? [{ debugName: "currencyDecimals" }] : /* istanbul ignore next */ []));
|
|
1426
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipBankInfoWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1427
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipBankInfoWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-bank-info-widget", inputs: { bankIcon: { classPropertyName: "bankIcon", publicName: "bankIcon", isSignal: true, isRequired: false, transformFunction: null }, accountIcon: { classPropertyName: "accountIcon", publicName: "accountIcon", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, desktopContainerClass: { classPropertyName: "desktopContainerClass", publicName: "desktopContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileContainerClass: { classPropertyName: "mobileContainerClass", publicName: "mobileContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileCardClass: { classPropertyName: "mobileCardClass", publicName: "mobileCardClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, valueClass: { classPropertyName: "valueClass", publicName: "valueClass", isSignal: true, isRequired: false, transformFunction: null }, actionClass: { classPropertyName: "actionClass", publicName: "actionClass", isSignal: true, isRequired: false, transformFunction: null }, exploreDetailsKey: { classPropertyName: "exploreDetailsKey", publicName: "exploreDetailsKey", isSignal: true, isRequired: false, transformFunction: null }, popupHeight: { classPropertyName: "popupHeight", publicName: "popupHeight", isSignal: true, isRequired: false, transformFunction: null }, popupMaxWidth: { classPropertyName: "popupMaxWidth", publicName: "popupMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, popupMinWidth: { classPropertyName: "popupMinWidth", publicName: "popupMinWidth", isSignal: true, isRequired: false, transformFunction: null }, popupContainerClass: { classPropertyName: "popupContainerClass", publicName: "popupContainerClass", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderRowClass: { classPropertyName: "popupHeaderRowClass", publicName: "popupHeaderRowClass", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderCell1Class: { classPropertyName: "popupHeaderCell1Class", publicName: "popupHeaderCell1Class", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderCell2Class: { classPropertyName: "popupHeaderCell2Class", publicName: "popupHeaderCell2Class", isSignal: true, isRequired: false, transformFunction: null }, popupHeaderCell3Class: { classPropertyName: "popupHeaderCell3Class", publicName: "popupHeaderCell3Class", isSignal: true, isRequired: false, transformFunction: null }, popupDataRowClass: { classPropertyName: "popupDataRowClass", publicName: "popupDataRowClass", isSignal: true, isRequired: false, transformFunction: null }, popupDataCell1Class: { classPropertyName: "popupDataCell1Class", publicName: "popupDataCell1Class", isSignal: true, isRequired: false, transformFunction: null }, popupDataCell2Class: { classPropertyName: "popupDataCell2Class", publicName: "popupDataCell2Class", isSignal: true, isRequired: false, transformFunction: null }, popupDataCell3Class: { classPropertyName: "popupDataCell3Class", publicName: "popupDataCell3Class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, isPayslipAvailable: { classPropertyName: "isPayslipAvailable", publicName: "isPayslipAvailable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { errorOccurred: "errorOccurred", isLoadingChanged: "isLoadingChanged", exploreDetailsClick: "exploreDetailsClick" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: 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: SalaryTransferPopupComponent, selector: "payroll-salary-transfer-popup", inputs: ["bankInformationDataSource", "visibleSalaryTransferPopup", "currencyCode", "currencyDecimals", "popupHeight", "popupMaxWidth", "popupMinWidth", "containerClass", "headerRowClass", "headerCell1Class", "headerCell2Class", "headerCell3Class", "dataRowClass", "dataCell1Class", "dataCell2Class", "dataCell3Class"], outputs: ["openSalaryTransferPopupChange"] }, { kind: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1428
|
+
}
|
|
1429
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipBankInfoWidgetComponent, decorators: [{
|
|
1430
|
+
type: Component,
|
|
1431
|
+
args: [{ selector: 'payroll-my-payslip-bank-info-widget', standalone: true, imports: [CommonModule, FaIconComponent, PayrollTranslatePipe, SalaryTransferPopupComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1432
|
+
}], ctorParameters: () => [], propDecorators: { bankIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "bankIcon", required: false }] }], accountIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "accountIcon", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], desktopContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "desktopContainerClass", required: false }] }], mobileContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileContainerClass", required: false }] }], mobileCardClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCardClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], valueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueClass", required: false }] }], actionClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionClass", required: false }] }], exploreDetailsKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "exploreDetailsKey", required: false }] }], popupHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeight", required: false }] }], popupMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupMaxWidth", required: false }] }], popupMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupMinWidth", required: false }] }], popupContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupContainerClass", required: false }] }], popupHeaderRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderRowClass", required: false }] }], popupHeaderCell1Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderCell1Class", required: false }] }], popupHeaderCell2Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderCell2Class", required: false }] }], popupHeaderCell3Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeaderCell3Class", required: false }] }], popupDataRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupDataRowClass", required: false }] }], popupDataCell1Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupDataCell1Class", required: false }] }], popupDataCell2Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupDataCell2Class", required: false }] }], popupDataCell3Class: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupDataCell3Class", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }], isPayslipAvailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPayslipAvailable", required: false }] }], exploreDetailsClick: [{ type: i0.Output, args: ["exploreDetailsClick"] }] } });
|
|
1433
|
+
|
|
1434
|
+
class MyPayslipVacationBalanceWidgetComponent {
|
|
1435
|
+
vacationIcon = input(faIslandTropical, ...(ngDevMode ? [{ debugName: "vacationIcon" }] : /* istanbul ignore next */ []));
|
|
1436
|
+
titleClass = input('fw-medium mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
1437
|
+
desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2', ...(ngDevMode ? [{ debugName: "desktopContainerClass" }] : /* istanbul ignore next */ []));
|
|
1438
|
+
mobileContainerClass = input('d-flex align-items-center justify-content-center w-100', ...(ngDevMode ? [{ debugName: "mobileContainerClass" }] : /* istanbul ignore next */ []));
|
|
1439
|
+
mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3', ...(ngDevMode ? [{ debugName: "mobileCardClass" }] : /* istanbul ignore next */ []));
|
|
1440
|
+
iconClass = input('fs-16 me-2 text-gray', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
1441
|
+
rowClass = input('d-flex align-items-center my-1 w-100', ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
|
|
1442
|
+
labelClass = input('fw-light fs-12 text-light-dark', ...(ngDevMode ? [{ debugName: "labelClass" }] : /* istanbul ignore next */ []));
|
|
1443
|
+
valueClass = input('fw-400 ms-1 text-light-dark fs-12', ...(ngDevMode ? [{ debugName: "valueClass" }] : /* istanbul ignore next */ []));
|
|
1444
|
+
viewMoreLabel = input('ViewMore', ...(ngDevMode ? [{ debugName: "viewMoreLabel" }] : /* istanbul ignore next */ []));
|
|
1445
|
+
viewLessLabel = input('ViewLess', ...(ngDevMode ? [{ debugName: "viewLessLabel" }] : /* istanbul ignore next */ []));
|
|
1446
|
+
expandIcon = input(faChevronDown, ...(ngDevMode ? [{ debugName: "expandIcon" }] : /* istanbul ignore next */ []));
|
|
1447
|
+
collapseIcon = input(faChevronUp, ...(ngDevMode ? [{ debugName: "collapseIcon" }] : /* istanbul ignore next */ []));
|
|
1448
|
+
actionIconClass = input('fs-10 ms-1', ...(ngDevMode ? [{ debugName: "actionIconClass" }] : /* istanbul ignore next */ []));
|
|
1449
|
+
actionButtonClass = input('mt-2 fs-12 text-primary fw-400 cursor-pointer text-decoration-underline bg-transparent border-0 p-0', ...(ngDevMode ? [{ debugName: "actionButtonClass" }] : /* istanbul ignore next */ []));
|
|
1450
|
+
title = input('VacationBalance', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1451
|
+
daysLabel = input('Days', ...(ngDevMode ? [{ debugName: "daysLabel" }] : /* istanbul ignore next */ []));
|
|
1452
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
1453
|
+
payMonth = input(null, ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
1454
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
1455
|
+
isPayslipAvailable = input(true, ...(ngDevMode ? [{ debugName: "isPayslipAvailable" }] : /* istanbul ignore next */ []));
|
|
1456
|
+
isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : /* istanbul ignore next */ []));
|
|
1457
|
+
collapsedItemsCount = input(2, ...(ngDevMode ? [{ debugName: "collapsedItemsCount" }] : /* istanbul ignore next */ []));
|
|
1458
|
+
isLoadingChanged = output();
|
|
1459
|
+
errorOccurred = output();
|
|
1460
|
+
vacationBalances = signal(null, ...(ngDevMode ? [{ debugName: "vacationBalances" }] : /* istanbul ignore next */ []));
|
|
1461
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1462
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
1463
|
+
constructor() {
|
|
1464
|
+
effect(() => {
|
|
1465
|
+
if (this.baseUrl() && this.payMonth()) {
|
|
1466
|
+
this.loadVacationBalances();
|
|
1467
|
+
}
|
|
1468
|
+
});
|
|
1469
|
+
}
|
|
1470
|
+
loadVacationBalances() {
|
|
1471
|
+
const payMonth = this.payMonth();
|
|
1472
|
+
if (!this.isPayslipAvailable() || !payMonth) {
|
|
1473
|
+
this.vacationBalances.set([]);
|
|
1474
|
+
return;
|
|
1475
|
+
}
|
|
1476
|
+
this.isLoading.set(true);
|
|
1477
|
+
this.isLoadingChanged.emit(true);
|
|
1478
|
+
this.payrollWidgetsService
|
|
1479
|
+
.getPayslipVacationBalances(this.baseUrl(), payMonth)
|
|
1480
|
+
.pipe(finalize(() => {
|
|
1481
|
+
this.isLoading.set(false);
|
|
1482
|
+
this.isLoadingChanged.emit(false);
|
|
1483
|
+
}))
|
|
1484
|
+
.subscribe({
|
|
1485
|
+
next: res => {
|
|
1486
|
+
this.vacationBalances.set(res?.ResponseData ?? []);
|
|
1487
|
+
},
|
|
1488
|
+
error: (error) => {
|
|
1489
|
+
this.vacationBalances.set([]);
|
|
1490
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
1491
|
+
},
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
vacationItems = computed(() => {
|
|
1495
|
+
if ((!this.isPayslipAvailable() || this.isLoading()) && !this.vacationBalances()?.length) {
|
|
1496
|
+
return [
|
|
1497
|
+
{
|
|
1498
|
+
label: this.title(),
|
|
1499
|
+
value: '-',
|
|
1500
|
+
showDays: false,
|
|
1501
|
+
},
|
|
1502
|
+
];
|
|
1503
|
+
}
|
|
1504
|
+
if (!this.isPayslipAvailable() && !this.vacationBalances()?.length) {
|
|
1505
|
+
return [
|
|
1506
|
+
{
|
|
1507
|
+
label: this.title(),
|
|
1508
|
+
value: '-',
|
|
1509
|
+
showDays: false,
|
|
1510
|
+
},
|
|
1511
|
+
];
|
|
1512
|
+
}
|
|
1513
|
+
return (this.vacationBalances() ?? []).map(vacationBalance => ({
|
|
1514
|
+
label: this.getVacationTypeName(vacationBalance),
|
|
1515
|
+
value: this.getVacationBalance(vacationBalance.VacationBalance),
|
|
1516
|
+
showDays: this.showDaysLabel(vacationBalance.VacationBalance),
|
|
1517
|
+
}));
|
|
1518
|
+
}, ...(ngDevMode ? [{ debugName: "vacationItems" }] : /* istanbul ignore next */ []));
|
|
1519
|
+
visibleVacationBalances = computed(() => {
|
|
1520
|
+
const balances = this.vacationItems() ?? [];
|
|
1521
|
+
if (this.isExpanded()) {
|
|
1522
|
+
return balances;
|
|
1523
|
+
}
|
|
1524
|
+
return balances.slice(0, this.collapsedItemsCount());
|
|
1525
|
+
}, ...(ngDevMode ? [{ debugName: "visibleVacationBalances" }] : /* istanbul ignore next */ []));
|
|
1526
|
+
showViewMoreButton = computed(() => !!this.vacationBalances() && this.vacationBalances().length > this.collapsedItemsCount(), ...(ngDevMode ? [{ debugName: "showViewMoreButton" }] : /* istanbul ignore next */ []));
|
|
1527
|
+
expandButtonlabel = computed(() => (this.isExpanded() ? this.viewLessLabel() : this.viewMoreLabel()), ...(ngDevMode ? [{ debugName: "expandButtonlabel" }] : /* istanbul ignore next */ []));
|
|
1528
|
+
toggleExpanded() {
|
|
1529
|
+
this.isExpanded.update(value => !value);
|
|
1530
|
+
}
|
|
1531
|
+
getVacationTypeName(vacationBalance) {
|
|
1532
|
+
if (this.isLoading() || !this.isPayslipAvailable())
|
|
1533
|
+
return '-';
|
|
1534
|
+
return vacationBalance.VacationTypeName || '-';
|
|
1535
|
+
}
|
|
1536
|
+
getVacationBalance(value) {
|
|
1537
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null)
|
|
1538
|
+
return '-';
|
|
1539
|
+
return value.toFixed(2);
|
|
1540
|
+
}
|
|
1541
|
+
showDaysLabel(value) {
|
|
1542
|
+
const balance = this.getVacationBalance(value);
|
|
1543
|
+
return balance !== '-';
|
|
1544
|
+
}
|
|
1545
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipVacationBalanceWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1546
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipVacationBalanceWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-vacation-balance-widget", inputs: { vacationIcon: { classPropertyName: "vacationIcon", publicName: "vacationIcon", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, desktopContainerClass: { classPropertyName: "desktopContainerClass", publicName: "desktopContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileContainerClass: { classPropertyName: "mobileContainerClass", publicName: "mobileContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileCardClass: { classPropertyName: "mobileCardClass", publicName: "mobileCardClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, valueClass: { classPropertyName: "valueClass", publicName: "valueClass", isSignal: true, isRequired: false, transformFunction: null }, viewMoreLabel: { classPropertyName: "viewMoreLabel", publicName: "viewMoreLabel", isSignal: true, isRequired: false, transformFunction: null }, viewLessLabel: { classPropertyName: "viewLessLabel", publicName: "viewLessLabel", isSignal: true, isRequired: false, transformFunction: null }, expandIcon: { classPropertyName: "expandIcon", publicName: "expandIcon", isSignal: true, isRequired: false, transformFunction: null }, collapseIcon: { classPropertyName: "collapseIcon", publicName: "collapseIcon", isSignal: true, isRequired: false, transformFunction: null }, actionIconClass: { classPropertyName: "actionIconClass", publicName: "actionIconClass", isSignal: true, isRequired: false, transformFunction: null }, actionButtonClass: { classPropertyName: "actionButtonClass", publicName: "actionButtonClass", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, daysLabel: { classPropertyName: "daysLabel", publicName: "daysLabel", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, isPayslipAvailable: { classPropertyName: "isPayslipAvailable", publicName: "isPayslipAvailable", isSignal: true, isRequired: false, transformFunction: null }, collapsedItemsCount: { classPropertyName: "collapsedItemsCount", publicName: "collapsedItemsCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: 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: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1547
|
+
}
|
|
1548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipVacationBalanceWidgetComponent, decorators: [{
|
|
1549
|
+
type: Component,
|
|
1550
|
+
args: [{ selector: 'payroll-my-payslip-vacation-balance-widget', standalone: true, imports: [CommonModule, FaIconComponent, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1551
|
+
}], ctorParameters: () => [], propDecorators: { vacationIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "vacationIcon", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], desktopContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "desktopContainerClass", required: false }] }], mobileContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileContainerClass", required: false }] }], mobileCardClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCardClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], valueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueClass", required: false }] }], viewMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMoreLabel", required: false }] }], viewLessLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewLessLabel", required: false }] }], expandIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandIcon", required: false }] }], collapseIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseIcon", required: false }] }], actionIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionIconClass", required: false }] }], actionButtonClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionButtonClass", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], daysLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "daysLabel", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], isPayslipAvailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPayslipAvailable", required: false }] }], collapsedItemsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedItemsCount", required: false }] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }] } });
|
|
1552
|
+
|
|
1553
|
+
class MyPayslipTicketBalanceWidgetComponent {
|
|
1554
|
+
ticketIcon = input(faUser, ...(ngDevMode ? [{ debugName: "ticketIcon" }] : /* istanbul ignore next */ []));
|
|
1555
|
+
titleClass = input('fw-medium mb-2 table-cell-md', ...(ngDevMode ? [{ debugName: "titleClass" }] : /* istanbul ignore next */ []));
|
|
1556
|
+
desktopContainerClass = input('d-flex flex-column justify-content-start align-items-start mx-4 my-2', ...(ngDevMode ? [{ debugName: "desktopContainerClass" }] : /* istanbul ignore next */ []));
|
|
1557
|
+
mobileCardClass = input('p-3 h-50 card-shadow rounded-1 mb-3 mt-3 w-90 mh-150 mx-3', ...(ngDevMode ? [{ debugName: "mobileCardClass" }] : /* istanbul ignore next */ []));
|
|
1558
|
+
mobileContainerClass = input('d-flex align-items-center justify-content-center w-100', ...(ngDevMode ? [{ debugName: "mobileContainerClass" }] : /* istanbul ignore next */ []));
|
|
1559
|
+
iconClass = input('fs-16 me-2 text-gray', ...(ngDevMode ? [{ debugName: "iconClass" }] : /* istanbul ignore next */ []));
|
|
1560
|
+
rowClass = input('d-flex align-items-center my-1 w-100', ...(ngDevMode ? [{ debugName: "rowClass" }] : /* istanbul ignore next */ []));
|
|
1561
|
+
labelClass = input('fw-light fs-12 text-light-dark', ...(ngDevMode ? [{ debugName: "labelClass" }] : /* istanbul ignore next */ []));
|
|
1562
|
+
valueClass = input('fw-400 ms-1 text-light-dark fs-12', ...(ngDevMode ? [{ debugName: "valueClass" }] : /* istanbul ignore next */ []));
|
|
1563
|
+
title = input('TicketBalance', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
1564
|
+
tickets = input('Tickets', ...(ngDevMode ? [{ debugName: "tickets" }] : /* istanbul ignore next */ []));
|
|
1565
|
+
baseUrl = input('', ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
|
|
1566
|
+
payMonth = input(null, ...(ngDevMode ? [{ debugName: "payMonth" }] : /* istanbul ignore next */ []));
|
|
1567
|
+
isMobile = input(false, ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
1568
|
+
isPayslipAvailable = input(true, ...(ngDevMode ? [{ debugName: "isPayslipAvailable" }] : /* istanbul ignore next */ []));
|
|
1569
|
+
isLoadingChanged = output();
|
|
1570
|
+
errorOccurred = output();
|
|
1571
|
+
ticketBalances = signal(null, ...(ngDevMode ? [{ debugName: "ticketBalances" }] : /* istanbul ignore next */ []));
|
|
1572
|
+
isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1573
|
+
payrollWidgetsService = inject(PayrollSelfWidgetsService);
|
|
1574
|
+
constructor() {
|
|
1575
|
+
effect(() => {
|
|
1576
|
+
if (this.baseUrl() && this.payMonth()) {
|
|
1577
|
+
this.loadTicketBalances();
|
|
1578
|
+
}
|
|
1579
|
+
});
|
|
1580
|
+
}
|
|
1581
|
+
loadTicketBalances() {
|
|
1582
|
+
const payMonth = this.payMonth();
|
|
1583
|
+
if (!this.isPayslipAvailable() || !payMonth) {
|
|
1584
|
+
this.ticketBalances.set([]);
|
|
1585
|
+
return;
|
|
1586
|
+
}
|
|
1587
|
+
this.isLoading.set(true);
|
|
1588
|
+
this.isLoadingChanged.emit(true);
|
|
1589
|
+
this.payrollWidgetsService
|
|
1590
|
+
.getPayslipTicketBalances(this.baseUrl(), payMonth)
|
|
1591
|
+
.pipe(finalize(() => {
|
|
1592
|
+
this.isLoading.set(false);
|
|
1593
|
+
this.isLoadingChanged.emit(false);
|
|
1594
|
+
}))
|
|
1595
|
+
.subscribe({
|
|
1596
|
+
next: res => {
|
|
1597
|
+
this.ticketBalances.set(res?.ResponseData ?? []);
|
|
1598
|
+
},
|
|
1599
|
+
error: (error) => {
|
|
1600
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
1601
|
+
this.ticketBalances.set([]);
|
|
1602
|
+
},
|
|
1603
|
+
});
|
|
1604
|
+
}
|
|
1605
|
+
ticketItems = computed(() => {
|
|
1606
|
+
if ((!this.isPayslipAvailable() || this.isLoading()) && !this.ticketBalances()?.length) {
|
|
1607
|
+
return [
|
|
1608
|
+
{
|
|
1609
|
+
label: this.tickets(),
|
|
1610
|
+
value: '-',
|
|
1611
|
+
showTickets: false,
|
|
1612
|
+
},
|
|
1613
|
+
];
|
|
1614
|
+
}
|
|
1615
|
+
return (this.ticketBalances() ?? []).map(ticketBalance => ({
|
|
1616
|
+
label: this.displayLabel(ticketBalance.AgeGroupName || ticketBalance.AgeGroup),
|
|
1617
|
+
value: this.displayNumber(ticketBalance.TicketBalance),
|
|
1618
|
+
showTickets: this.showTicketsLabel(ticketBalance.TicketBalance),
|
|
1619
|
+
}));
|
|
1620
|
+
}, ...(ngDevMode ? [{ debugName: "ticketItems" }] : /* istanbul ignore next */ []));
|
|
1621
|
+
display(value) {
|
|
1622
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1623
|
+
return '-';
|
|
1624
|
+
}
|
|
1625
|
+
return `${value}`;
|
|
1626
|
+
}
|
|
1627
|
+
displayLabel(value) {
|
|
1628
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1629
|
+
return '-';
|
|
1630
|
+
}
|
|
1631
|
+
return `${value}`;
|
|
1632
|
+
}
|
|
1633
|
+
displayNumber(value) {
|
|
1634
|
+
if (this.isLoading() || !this.isPayslipAvailable() || value == null) {
|
|
1635
|
+
return '-';
|
|
1636
|
+
}
|
|
1637
|
+
return Number(value).toFixed(2);
|
|
1638
|
+
}
|
|
1639
|
+
showTicketsLabel(value) {
|
|
1640
|
+
return !this.isLoading() && this.isPayslipAvailable() && value != null;
|
|
1641
|
+
}
|
|
1642
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipTicketBalanceWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1643
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: MyPayslipTicketBalanceWidgetComponent, isStandalone: true, selector: "payroll-my-payslip-ticket-balance-widget", inputs: { ticketIcon: { classPropertyName: "ticketIcon", publicName: "ticketIcon", isSignal: true, isRequired: false, transformFunction: null }, titleClass: { classPropertyName: "titleClass", publicName: "titleClass", isSignal: true, isRequired: false, transformFunction: null }, desktopContainerClass: { classPropertyName: "desktopContainerClass", publicName: "desktopContainerClass", isSignal: true, isRequired: false, transformFunction: null }, mobileCardClass: { classPropertyName: "mobileCardClass", publicName: "mobileCardClass", isSignal: true, isRequired: false, transformFunction: null }, mobileContainerClass: { classPropertyName: "mobileContainerClass", publicName: "mobileContainerClass", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, labelClass: { classPropertyName: "labelClass", publicName: "labelClass", isSignal: true, isRequired: false, transformFunction: null }, valueClass: { classPropertyName: "valueClass", publicName: "valueClass", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, tickets: { classPropertyName: "tickets", publicName: "tickets", isSignal: true, isRequired: false, transformFunction: null }, baseUrl: { classPropertyName: "baseUrl", publicName: "baseUrl", isSignal: true, isRequired: false, transformFunction: null }, payMonth: { classPropertyName: "payMonth", publicName: "payMonth", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, isPayslipAvailable: { classPropertyName: "isPayslipAvailable", publicName: "isPayslipAvailable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: 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: "pipe", type: PayrollTranslatePipe, name: "PayrollTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1644
|
+
}
|
|
1645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: MyPayslipTicketBalanceWidgetComponent, decorators: [{
|
|
1646
|
+
type: Component,
|
|
1647
|
+
args: [{ selector: 'payroll-my-payslip-ticket-balance-widget', standalone: true, imports: [CommonModule, FaIconComponent, PayrollTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
|
|
1648
|
+
}], ctorParameters: () => [], propDecorators: { ticketIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "ticketIcon", required: false }] }], titleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleClass", required: false }] }], desktopContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "desktopContainerClass", required: false }] }], mobileCardClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCardClass", required: false }] }], mobileContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileContainerClass", required: false }] }], iconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconClass", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], labelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelClass", required: false }] }], valueClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueClass", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], tickets: [{ type: i0.Input, args: [{ isSignal: true, alias: "tickets", required: false }] }], baseUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseUrl", required: false }] }], payMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "payMonth", required: false }] }], isMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMobile", required: false }] }], isPayslipAvailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPayslipAvailable", required: false }] }], isLoadingChanged: [{ type: i0.Output, args: ["isLoadingChanged"] }], errorOccurred: [{ type: i0.Output, args: ["errorOccurred"] }] } });
|
|
1649
|
+
|
|
1650
|
+
/*
|
|
1651
|
+
* Public API Surface of payroll-ui
|
|
1652
|
+
*/
|
|
1653
|
+
|
|
1654
|
+
/**
|
|
1655
|
+
* Generated bundle index. Do not edit.
|
|
1656
|
+
*/
|
|
1657
|
+
|
|
1658
|
+
export { MyLoansPopupWidgetComponent, MyPayslipBankInfoWidgetComponent, MyPayslipIndemnityWidgetComponent, MyPayslipJobInfoWidgetComponent, MyPayslipTicketBalanceWidgetComponent, MyPayslipVacationBalanceWidgetComponent, MyPayslipWidgetComponent, PayrollTranslatePipe, PayrollTranslateService };
|
|
1659
|
+
//# sourceMappingURL=osama_amireh-bayan-payroll-widgets-ui.mjs.map
|