@acorex/modules 21.0.0-next.5 → 21.0.0-next.7
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/application-management/index.d.ts +1 -0
- package/calendar-management/index.d.ts +6 -7
- package/document-management/index.d.ts +1545 -174
- package/fesm2022/acorex-modules-application-management.mjs +1 -0
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-C4_2RPxG.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-7S277fXg.mjs} +23 -23
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-7S277fXg.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D2YRh7ro.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-FnpwLbkS.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D2YRh7ro.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-FnpwLbkS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-B-S78gfQ.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-By0ETDZf.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-B-S78gfQ.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-By0ETDZf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C1BTgRTR.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-DxmjBgIo.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C1BTgRTR.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-DxmjBgIo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DwTlClTz.mjs → acorex-modules-assessment-management-assessment-case.entity-CBjAGtV3.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DwTlClTz.mjs.map → acorex-modules-assessment-management-assessment-case.entity-CBjAGtV3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-BmvacBUU.mjs → acorex-modules-assessment-management-assessment-session.entity-CMnJ44gj.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-BmvacBUU.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CMnJ44gj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-D7ZNQBo8.mjs → acorex-modules-assessment-management-fill-assessment-session.command-8OhZEoAp.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-D7ZNQBo8.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-8OhZEoAp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BQxlJax7.mjs → acorex-modules-assessment-management-preview-questionnaire.command-CUybKZFY.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BQxlJax7.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-CUybKZFY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CIjS5M1b.mjs → acorex-modules-assessment-management-question-bank-item.entity-C9gxvSqN.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CIjS5M1b.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-C9gxvSqN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DAYiqBeA.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-CUCT7Tcg.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DAYiqBeA.mjs.map → acorex-modules-assessment-management-questionnaire-builder-edit.component-CUCT7Tcg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-BTXwZu9a.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-QhZAjnIv.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-BTXwZu9a.mjs.map → acorex-modules-assessment-management-questionnaire-builder-view.component-QhZAjnIv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-BAR6Uee-.mjs → acorex-modules-assessment-management-questionnaire-builder.component-CvdVE1TW.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-BAR6Uee-.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-CvdVE1TW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DZ4TltLI.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-iDPvZ1Iu.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DZ4TltLI.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-iDPvZ1Iu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-B2GV_e0o.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-C2bz2R0N.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-B2GV_e0o.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-C2bz2R0N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-mOtlUkUO.mjs → acorex-modules-assessment-management-questionnaire.entity-kvgtbI_h.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-mOtlUkUO.mjs.map → acorex-modules-assessment-management-questionnaire.entity-kvgtbI_h.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQ-3r9YQ.mjs → acorex-modules-assessment-management-view-session-answers.command-Dfl4QTDD.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQ-3r9YQ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-Dfl4QTDD.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +46 -74
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +6 -3
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bnp1l18X.mjs → acorex-modules-document-management-attachment-widget.component-zsWIFXD7.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bnp1l18X.mjs.map → acorex-modules-document-management-attachment-widget.component-zsWIFXD7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-TfRh2Jom.mjs → acorex-modules-document-management-details-view.component-DD7P_Xz7.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-TfRh2Jom.mjs.map → acorex-modules-document-management-details-view.component-DD7P_Xz7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-nKUvSQuz.mjs → acorex-modules-document-management-document-signature-popup.component-DsCP-XfJ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-nKUvSQuz.mjs.map → acorex-modules-document-management-document-signature-popup.component-DsCP-XfJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CPQC_Qxe.mjs → acorex-modules-document-management-drive-choose.component-FUlvIsJu.mjs} +7 -7
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CPQC_Qxe.mjs.map → acorex-modules-document-management-drive-choose.component-FUlvIsJu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BP_4qwha.mjs → acorex-modules-document-management-large-icons-view.component-Dzc3SOKz.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BP_4qwha.mjs.map → acorex-modules-document-management-large-icons-view.component-Dzc3SOKz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CP9Ra0z9.mjs → acorex-modules-document-management-large-tiles-view.component-DrRbFkP4.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CP9Ra0z9.mjs.map → acorex-modules-document-management-large-tiles-view.component-DrRbFkP4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-nJmv07CR.mjs → acorex-modules-document-management-link-dialog.component-DKGpdhH1.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-nJmv07CR.mjs.map → acorex-modules-document-management-link-dialog.component-DKGpdhH1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-LhSA_duB.mjs → acorex-modules-document-management-list-view.component-C7cR3m4S.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-LhSA_duB.mjs.map → acorex-modules-document-management-list-view.component-C7cR3m4S.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DJABAVOV.mjs → acorex-modules-document-management-share-dialog.component-MK4UO_uy.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DJABAVOV.mjs.map → acorex-modules-document-management-share-dialog.component-MK4UO_uy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-Bh_FI1nk.mjs → acorex-modules-document-management-share-email-dialog.component-D5f4T_2K.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-Bh_FI1nk.mjs.map → acorex-modules-document-management-share-email-dialog.component-D5f4T_2K.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BOtJGiPU.mjs → acorex-modules-document-management-small-icons-view.component-BPWvSH3i.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BOtJGiPU.mjs.map → acorex-modules-document-management-small-icons-view.component-BPWvSH3i.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BiKZ-FyZ.mjs → acorex-modules-document-management-small-tiles-view.component-fIQ4RY_F.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BiKZ-FyZ.mjs.map → acorex-modules-document-management-small-tiles-view.component-fIQ4RY_F.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +9326 -1
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs +381 -0
- package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management.mjs +5 -2
- package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BIq_sJye.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BIq_sJye.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CL-zuLJ1.mjs → acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs} +3 -3
- package/fesm2022/acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +2 -0
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +3 -1
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-gQ5Sk1Sj.mjs → acorex-modules-settings-management-acorex-modules-settings-management-R6m7cpPE.mjs} +18 -18
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-gQ5Sk1Sj.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-R6m7cpPE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BEDGpTc8.mjs → acorex-modules-settings-management-permission-definition.provider-BNzuJQfL.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BEDGpTc8.mjs.map → acorex-modules-settings-management-permission-definition.provider-BNzuJQfL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BsA1TfMG.mjs → acorex-modules-settings-management-setting-page.component-B1SnxHdd.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BsA1TfMG.mjs.map → acorex-modules-settings-management-setting-page.component-B1SnxHdd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-C282orx7.mjs → acorex-modules-settings-management-setting-view.component-BsuZ-NQK.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-C282orx7.mjs.map → acorex-modules-settings-management-setting-view.component-BsuZ-NQK.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-CKgZoOGI.mjs → acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs} +529 -73
- package/fesm2022/acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +13 -6
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +394 -12
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/human-capital-management/index.d.ts +3 -1
- package/package.json +2 -2
- package/task-management/index.d.ts +31 -4
- package/workflow-management/index.d.ts +93 -6
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-C4_2RPxG.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dk4Z-JSv.mjs +0 -8995
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dk4Z-JSv.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-BzpH_FSJ.mjs +0 -388
- package/fesm2022/acorex-modules-document-management-drive.component-BzpH_FSJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-menu-list.component-CL-zuLJ1.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-CKgZoOGI.mjs.map +0 -1
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import * as i1 from '@acorex/components/button';
|
|
2
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
3
|
+
import * as i2 from '@acorex/components/decorators';
|
|
4
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
5
|
+
import * as i4 from '@acorex/core/translation';
|
|
6
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
7
|
+
import { AXPCommandExecutor } from '@acorex/platform/runtime';
|
|
8
|
+
import * as i3 from '@angular/common';
|
|
9
|
+
import { CommonModule } from '@angular/common';
|
|
10
|
+
import * as i0 from '@angular/core';
|
|
11
|
+
import { input, inject, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
12
|
+
import { AXPLeaveRequestDialogService } from './acorex-modules-human-capital-management.mjs';
|
|
13
|
+
import { AXPSystemStatuses } from '@acorex/platform/common';
|
|
14
|
+
|
|
15
|
+
class AXMLeaveRequestTaskPopoverComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.task = input.required(...(ngDevMode ? [{ debugName: "task" }] : []));
|
|
18
|
+
this.commandExecutor = inject(AXPCommandExecutor);
|
|
19
|
+
this.dialogService = inject(AXPLeaveRequestDialogService);
|
|
20
|
+
this.taskData = computed(() => {
|
|
21
|
+
const task = this.task();
|
|
22
|
+
return (task.data ||
|
|
23
|
+
task.payload);
|
|
24
|
+
}, ...(ngDevMode ? [{ debugName: "taskData" }] : []));
|
|
25
|
+
this.employeeName = computed(() => {
|
|
26
|
+
const data = this.taskData();
|
|
27
|
+
return data?.employee?.person?.displayName || this.task().reporter?.fullName || 'Unknown';
|
|
28
|
+
}, ...(ngDevMode ? [{ debugName: "employeeName" }] : []));
|
|
29
|
+
this.managerName = computed(() => {
|
|
30
|
+
const data = this.taskData();
|
|
31
|
+
return data?.employee?.manager?.person?.displayName || this.task().assignee?.fullName || '';
|
|
32
|
+
}, ...(ngDevMode ? [{ debugName: "managerName" }] : []));
|
|
33
|
+
this.leaveType = computed(() => {
|
|
34
|
+
const data = this.taskData();
|
|
35
|
+
// Extract leave type from task title or data
|
|
36
|
+
const title = this.task().title || '';
|
|
37
|
+
const parts = title.split(' - ');
|
|
38
|
+
return parts.length > 1 ? parts[1] : data?.leaveType?.title || 'N/A';
|
|
39
|
+
}, ...(ngDevMode ? [{ debugName: "leaveType" }] : []));
|
|
40
|
+
this.canApprove = computed(() => {
|
|
41
|
+
const statusId = this.task().status?.id;
|
|
42
|
+
return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Rejected.name;
|
|
43
|
+
}, ...(ngDevMode ? [{ debugName: "canApprove" }] : []));
|
|
44
|
+
this.canReject = computed(() => {
|
|
45
|
+
const statusId = this.task().status?.id;
|
|
46
|
+
return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Approved.name;
|
|
47
|
+
}, ...(ngDevMode ? [{ debugName: "canReject" }] : []));
|
|
48
|
+
this.canCancel = computed(() => {
|
|
49
|
+
const statusId = this.task().status?.id;
|
|
50
|
+
return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Approved.name;
|
|
51
|
+
}, ...(ngDevMode ? [{ debugName: "canCancel" }] : []));
|
|
52
|
+
}
|
|
53
|
+
formatDate(date) {
|
|
54
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
55
|
+
year: 'numeric',
|
|
56
|
+
month: 'short',
|
|
57
|
+
day: 'numeric',
|
|
58
|
+
}).format(new Date(date));
|
|
59
|
+
}
|
|
60
|
+
calculateDuration() {
|
|
61
|
+
const start = new Date(this.task().startDate);
|
|
62
|
+
const end = new Date(this.task().endDate);
|
|
63
|
+
const diffTime = Math.abs(end.getTime() - start.getTime());
|
|
64
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
65
|
+
return diffDays + 1; // Include both start and end days
|
|
66
|
+
}
|
|
67
|
+
async handleApprove() {
|
|
68
|
+
const task = this.task();
|
|
69
|
+
const leaveRequestId = task.id;
|
|
70
|
+
try {
|
|
71
|
+
const dialogResult = await this.dialogService.showApprovalDialog();
|
|
72
|
+
if (dialogResult?.cancelled) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const commandKey = 'HumanCapitalManagement.LeaveRequest:Approve';
|
|
76
|
+
const result = await this.commandExecutor.execute(commandKey, {
|
|
77
|
+
id: leaveRequestId,
|
|
78
|
+
reason: dialogResult?.reason,
|
|
79
|
+
note: dialogResult?.note,
|
|
80
|
+
});
|
|
81
|
+
if (result?.success) {
|
|
82
|
+
// Optionally emit an event or refresh the task
|
|
83
|
+
console.log('Leave request approved successfully');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('Failed to approve leave request:', error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async handleReject() {
|
|
91
|
+
const task = this.task();
|
|
92
|
+
const leaveRequestId = task.id;
|
|
93
|
+
try {
|
|
94
|
+
const dialogResult = await this.dialogService.showRejectionDialog();
|
|
95
|
+
if (dialogResult?.cancelled) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const commandKey = 'HumanCapitalManagement.LeaveRequest:Reject';
|
|
99
|
+
const result = await this.commandExecutor.execute(commandKey, {
|
|
100
|
+
id: leaveRequestId,
|
|
101
|
+
reason: dialogResult?.reason,
|
|
102
|
+
note: dialogResult?.note,
|
|
103
|
+
});
|
|
104
|
+
if (result?.success) {
|
|
105
|
+
console.log('Leave request rejected successfully');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error('Failed to reject leave request:', error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async handleCancel() {
|
|
113
|
+
const task = this.task();
|
|
114
|
+
const leaveRequestId = task.id;
|
|
115
|
+
try {
|
|
116
|
+
const dialogResult = await this.dialogService.showCancellationDialog();
|
|
117
|
+
if (dialogResult?.cancelled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const commandKey = 'HumanCapitalManagement.LeaveRequest:Cancel';
|
|
121
|
+
const result = await this.commandExecutor.execute(commandKey, {
|
|
122
|
+
id: leaveRequestId,
|
|
123
|
+
reason: dialogResult?.reason,
|
|
124
|
+
note: dialogResult?.note,
|
|
125
|
+
});
|
|
126
|
+
if (result?.success) {
|
|
127
|
+
console.log('Leave request cancelled successfully');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
console.error('Failed to cancel leave request:', error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXMLeaveRequestTaskPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXMLeaveRequestTaskPopoverComponent, isStandalone: true, selector: "axm-leave-request-task-popover", inputs: { task: { classPropertyName: "task", publicName: "task", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
136
|
+
<div class="leave-request-popover">
|
|
137
|
+
<!-- Employee Info -->
|
|
138
|
+
<div class="leave-request-popover__section">
|
|
139
|
+
<div class="leave-request-popover__section-header">
|
|
140
|
+
<i class="fa-light fa-user"></i>
|
|
141
|
+
<span>Employee Information</span>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="leave-request-popover__section-content">
|
|
144
|
+
<div class="leave-request-popover__info-row">
|
|
145
|
+
<span class="leave-request-popover__label">Employee:</span>
|
|
146
|
+
<span class="leave-request-popover__value">{{ employeeName() }}</span>
|
|
147
|
+
</div>
|
|
148
|
+
@if (managerName(); as manager) {
|
|
149
|
+
<div class="leave-request-popover__info-row">
|
|
150
|
+
<span class="leave-request-popover__label">Manager:</span>
|
|
151
|
+
<span class="leave-request-popover__value">{{ manager }}</span>
|
|
152
|
+
</div>
|
|
153
|
+
}
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
<!-- Leave Details -->
|
|
158
|
+
<div class="leave-request-popover__section">
|
|
159
|
+
<div class="leave-request-popover__section-header">
|
|
160
|
+
<i class="fa-light fa-calendar"></i>
|
|
161
|
+
<span>Leave Details</span>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="leave-request-popover__section-content">
|
|
164
|
+
<div class="leave-request-popover__info-row">
|
|
165
|
+
<span class="leave-request-popover__label">Leave Type:</span>
|
|
166
|
+
<span class="leave-request-popover__value">{{ leaveType() }}</span>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="leave-request-popover__info-row">
|
|
169
|
+
<span class="leave-request-popover__label">Start Date:</span>
|
|
170
|
+
<span class="leave-request-popover__value">{{ formatDate(task().startDate) }}</span>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="leave-request-popover__info-row">
|
|
173
|
+
<span class="leave-request-popover__label">End Date:</span>
|
|
174
|
+
<span class="leave-request-popover__value">{{ formatDate(task().endDate) }}</span>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="leave-request-popover__info-row">
|
|
177
|
+
<span class="leave-request-popover__label">Duration:</span>
|
|
178
|
+
<span class="leave-request-popover__value">{{ calculateDuration() }} days</span>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<!-- Reason -->
|
|
184
|
+
@if (task().description) {
|
|
185
|
+
<div class="leave-request-popover__section">
|
|
186
|
+
<div class="leave-request-popover__section-header">
|
|
187
|
+
<i class="fa-light fa-note-sticky"></i>
|
|
188
|
+
<span>Reason</span>
|
|
189
|
+
</div>
|
|
190
|
+
<div class="leave-request-popover__section-content">
|
|
191
|
+
<p class="leave-request-popover__reason">{{ task().description }}</p>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
<!-- Status -->
|
|
197
|
+
<div class="leave-request-popover__section">
|
|
198
|
+
<div class="leave-request-popover__section-header">
|
|
199
|
+
<i class="fa-light fa-flag"></i>
|
|
200
|
+
<span>Status</span>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="leave-request-popover__section-content">
|
|
203
|
+
<div class="leave-request-popover__status-badge" [attr.data-status]="task().status.id">
|
|
204
|
+
{{ task().status.title }}
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<!-- Actions -->
|
|
210
|
+
<div class="leave-request-popover__actions">
|
|
211
|
+
@if (canApprove()) {
|
|
212
|
+
<ax-button
|
|
213
|
+
[color]="'success'"
|
|
214
|
+
[look]="'blank'"
|
|
215
|
+
[text]="'@general:actions.approve.title' | translate | async"
|
|
216
|
+
(onClick)="handleApprove()"
|
|
217
|
+
class="leave-request-popover__action-btn"
|
|
218
|
+
>
|
|
219
|
+
<ax-prefix>
|
|
220
|
+
<i class="fa-light fa-check"></i>
|
|
221
|
+
</ax-prefix>
|
|
222
|
+
</ax-button>
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@if (canReject()) {
|
|
226
|
+
<ax-button
|
|
227
|
+
[color]="'danger'"
|
|
228
|
+
[look]="'blank'"
|
|
229
|
+
[text]="'@general:actions.reject.title' | translate | async"
|
|
230
|
+
(onClick)="handleReject()"
|
|
231
|
+
class="leave-request-popover__action-btn"
|
|
232
|
+
>
|
|
233
|
+
<ax-prefix>
|
|
234
|
+
<i class="fa-light fa-xmark"></i>
|
|
235
|
+
</ax-prefix>
|
|
236
|
+
</ax-button>
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@if (canCancel()) {
|
|
240
|
+
<ax-button
|
|
241
|
+
[color]="'secondary'"
|
|
242
|
+
[look]="'blank'"
|
|
243
|
+
[text]="'@general:actions.cancel.title' | translate | async"
|
|
244
|
+
(onClick)="handleCancel()"
|
|
245
|
+
class="leave-request-popover__action-btn"
|
|
246
|
+
>
|
|
247
|
+
<ax-prefix>
|
|
248
|
+
<i class="fa-light fa-ban"></i>
|
|
249
|
+
</ax-prefix>
|
|
250
|
+
</ax-button>
|
|
251
|
+
}
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
`, isInline: true, styles: [".leave-request-popover{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:360px}.leave-request-popover__section{display:flex;flex-direction:column;gap:6px}.leave-request-popover__section-header{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--ax-sys-color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--ax-sys-color-border)}.leave-request-popover__section-header i{font-size:13px;color:var(--ax-sys-color-text-neutral-600)}.leave-request-popover__section-content{display:flex;flex-direction:column;gap:6px}.leave-request-popover__info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:12px;line-height:1.4}.leave-request-popover__label{color:var(--ax-sys-color-text-neutral-600);font-weight:500;flex-shrink:0}.leave-request-popover__value{color:var(--ax-sys-color-text-primary);text-align:right;word-break:break-word}.leave-request-popover__reason{margin:0;padding:8px;background:var(--ax-sys-color-lighter-surface);border-radius:4px;font-size:12px;line-height:1.4;color:var(--ax-sys-color-text-primary)}.leave-request-popover__status-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.leave-request-popover__status-badge[data-status=pending]{background:var(--ax-sys-color-warning-lightest);color:var(--ax-sys-color-warning)}.leave-request-popover__status-badge[data-status=approved]{background:var(--ax-sys-color-success-lightest);color:var(--ax-sys-color-success)}.leave-request-popover__status-badge[data-status=rejected]{background:var(--ax-sys-color-danger-lightest);color:var(--ax-sys-color-danger)}.leave-request-popover__status-badge[data-status=cancelled]{background:var(--ax-sys-color-neutral-lightest);color:var(--ax-sys-color-neutral)}.leave-request-popover__actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--ax-sys-color-border)}.leave-request-popover__action-btn{flex:1;min-width:90px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
255
|
+
}
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXMLeaveRequestTaskPopoverComponent, decorators: [{
|
|
257
|
+
type: Component,
|
|
258
|
+
args: [{ selector: 'axm-leave-request-task-popover', template: `
|
|
259
|
+
<div class="leave-request-popover">
|
|
260
|
+
<!-- Employee Info -->
|
|
261
|
+
<div class="leave-request-popover__section">
|
|
262
|
+
<div class="leave-request-popover__section-header">
|
|
263
|
+
<i class="fa-light fa-user"></i>
|
|
264
|
+
<span>Employee Information</span>
|
|
265
|
+
</div>
|
|
266
|
+
<div class="leave-request-popover__section-content">
|
|
267
|
+
<div class="leave-request-popover__info-row">
|
|
268
|
+
<span class="leave-request-popover__label">Employee:</span>
|
|
269
|
+
<span class="leave-request-popover__value">{{ employeeName() }}</span>
|
|
270
|
+
</div>
|
|
271
|
+
@if (managerName(); as manager) {
|
|
272
|
+
<div class="leave-request-popover__info-row">
|
|
273
|
+
<span class="leave-request-popover__label">Manager:</span>
|
|
274
|
+
<span class="leave-request-popover__value">{{ manager }}</span>
|
|
275
|
+
</div>
|
|
276
|
+
}
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<!-- Leave Details -->
|
|
281
|
+
<div class="leave-request-popover__section">
|
|
282
|
+
<div class="leave-request-popover__section-header">
|
|
283
|
+
<i class="fa-light fa-calendar"></i>
|
|
284
|
+
<span>Leave Details</span>
|
|
285
|
+
</div>
|
|
286
|
+
<div class="leave-request-popover__section-content">
|
|
287
|
+
<div class="leave-request-popover__info-row">
|
|
288
|
+
<span class="leave-request-popover__label">Leave Type:</span>
|
|
289
|
+
<span class="leave-request-popover__value">{{ leaveType() }}</span>
|
|
290
|
+
</div>
|
|
291
|
+
<div class="leave-request-popover__info-row">
|
|
292
|
+
<span class="leave-request-popover__label">Start Date:</span>
|
|
293
|
+
<span class="leave-request-popover__value">{{ formatDate(task().startDate) }}</span>
|
|
294
|
+
</div>
|
|
295
|
+
<div class="leave-request-popover__info-row">
|
|
296
|
+
<span class="leave-request-popover__label">End Date:</span>
|
|
297
|
+
<span class="leave-request-popover__value">{{ formatDate(task().endDate) }}</span>
|
|
298
|
+
</div>
|
|
299
|
+
<div class="leave-request-popover__info-row">
|
|
300
|
+
<span class="leave-request-popover__label">Duration:</span>
|
|
301
|
+
<span class="leave-request-popover__value">{{ calculateDuration() }} days</span>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<!-- Reason -->
|
|
307
|
+
@if (task().description) {
|
|
308
|
+
<div class="leave-request-popover__section">
|
|
309
|
+
<div class="leave-request-popover__section-header">
|
|
310
|
+
<i class="fa-light fa-note-sticky"></i>
|
|
311
|
+
<span>Reason</span>
|
|
312
|
+
</div>
|
|
313
|
+
<div class="leave-request-popover__section-content">
|
|
314
|
+
<p class="leave-request-popover__reason">{{ task().description }}</p>
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
<!-- Status -->
|
|
320
|
+
<div class="leave-request-popover__section">
|
|
321
|
+
<div class="leave-request-popover__section-header">
|
|
322
|
+
<i class="fa-light fa-flag"></i>
|
|
323
|
+
<span>Status</span>
|
|
324
|
+
</div>
|
|
325
|
+
<div class="leave-request-popover__section-content">
|
|
326
|
+
<div class="leave-request-popover__status-badge" [attr.data-status]="task().status.id">
|
|
327
|
+
{{ task().status.title }}
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
<!-- Actions -->
|
|
333
|
+
<div class="leave-request-popover__actions">
|
|
334
|
+
@if (canApprove()) {
|
|
335
|
+
<ax-button
|
|
336
|
+
[color]="'success'"
|
|
337
|
+
[look]="'blank'"
|
|
338
|
+
[text]="'@general:actions.approve.title' | translate | async"
|
|
339
|
+
(onClick)="handleApprove()"
|
|
340
|
+
class="leave-request-popover__action-btn"
|
|
341
|
+
>
|
|
342
|
+
<ax-prefix>
|
|
343
|
+
<i class="fa-light fa-check"></i>
|
|
344
|
+
</ax-prefix>
|
|
345
|
+
</ax-button>
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
@if (canReject()) {
|
|
349
|
+
<ax-button
|
|
350
|
+
[color]="'danger'"
|
|
351
|
+
[look]="'blank'"
|
|
352
|
+
[text]="'@general:actions.reject.title' | translate | async"
|
|
353
|
+
(onClick)="handleReject()"
|
|
354
|
+
class="leave-request-popover__action-btn"
|
|
355
|
+
>
|
|
356
|
+
<ax-prefix>
|
|
357
|
+
<i class="fa-light fa-xmark"></i>
|
|
358
|
+
</ax-prefix>
|
|
359
|
+
</ax-button>
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
@if (canCancel()) {
|
|
363
|
+
<ax-button
|
|
364
|
+
[color]="'secondary'"
|
|
365
|
+
[look]="'blank'"
|
|
366
|
+
[text]="'@general:actions.cancel.title' | translate | async"
|
|
367
|
+
(onClick)="handleCancel()"
|
|
368
|
+
class="leave-request-popover__action-btn"
|
|
369
|
+
>
|
|
370
|
+
<ax-prefix>
|
|
371
|
+
<i class="fa-light fa-ban"></i>
|
|
372
|
+
</ax-prefix>
|
|
373
|
+
</ax-button>
|
|
374
|
+
}
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule], styles: [".leave-request-popover{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:360px}.leave-request-popover__section{display:flex;flex-direction:column;gap:6px}.leave-request-popover__section-header{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--ax-sys-color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--ax-sys-color-border)}.leave-request-popover__section-header i{font-size:13px;color:var(--ax-sys-color-text-neutral-600)}.leave-request-popover__section-content{display:flex;flex-direction:column;gap:6px}.leave-request-popover__info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:12px;line-height:1.4}.leave-request-popover__label{color:var(--ax-sys-color-text-neutral-600);font-weight:500;flex-shrink:0}.leave-request-popover__value{color:var(--ax-sys-color-text-primary);text-align:right;word-break:break-word}.leave-request-popover__reason{margin:0;padding:8px;background:var(--ax-sys-color-lighter-surface);border-radius:4px;font-size:12px;line-height:1.4;color:var(--ax-sys-color-text-primary)}.leave-request-popover__status-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.leave-request-popover__status-badge[data-status=pending]{background:var(--ax-sys-color-warning-lightest);color:var(--ax-sys-color-warning)}.leave-request-popover__status-badge[data-status=approved]{background:var(--ax-sys-color-success-lightest);color:var(--ax-sys-color-success)}.leave-request-popover__status-badge[data-status=rejected]{background:var(--ax-sys-color-danger-lightest);color:var(--ax-sys-color-danger)}.leave-request-popover__status-badge[data-status=cancelled]{background:var(--ax-sys-color-neutral-lightest);color:var(--ax-sys-color-neutral)}.leave-request-popover__actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--ax-sys-color-border)}.leave-request-popover__action-btn{flex:1;min-width:90px}\n"] }]
|
|
378
|
+
}], propDecorators: { task: [{ type: i0.Input, args: [{ isSignal: true, alias: "task", required: true }] }] } });
|
|
379
|
+
|
|
380
|
+
export { AXMLeaveRequestTaskPopoverComponent };
|
|
381
|
+
//# sourceMappingURL=acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs","sources":["../tmp-esm2022/human-capital-management/lib/features/leave-request/workflow-tasks/leave-request-task-popover.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPCommandExecutor } from '@acorex/platform/runtime';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXPLeaveRequestDialogService } from '../services/leave-request-dialog.service';\nimport { AXPSystemStatuses } from '@acorex/platform/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\nexport class AXMLeaveRequestTaskPopoverComponent {\n constructor() {\n this.task = input.required(...(ngDevMode ? [{ debugName: \"task\" }] : []));\n this.commandExecutor = inject(AXPCommandExecutor);\n this.dialogService = inject(AXPLeaveRequestDialogService);\n this.taskData = computed(() => {\n const task = this.task();\n return (task.data ||\n task.payload);\n }, ...(ngDevMode ? [{ debugName: \"taskData\" }] : []));\n this.employeeName = computed(() => {\n const data = this.taskData();\n return data?.employee?.person?.displayName || this.task().reporter?.fullName || 'Unknown';\n }, ...(ngDevMode ? [{ debugName: \"employeeName\" }] : []));\n this.managerName = computed(() => {\n const data = this.taskData();\n return data?.employee?.manager?.person?.displayName || this.task().assignee?.fullName || '';\n }, ...(ngDevMode ? [{ debugName: \"managerName\" }] : []));\n this.leaveType = computed(() => {\n const data = this.taskData();\n // Extract leave type from task title or data\n const title = this.task().title || '';\n const parts = title.split(' - ');\n return parts.length > 1 ? parts[1] : data?.leaveType?.title || 'N/A';\n }, ...(ngDevMode ? [{ debugName: \"leaveType\" }] : []));\n this.canApprove = computed(() => {\n const statusId = this.task().status?.id;\n return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Rejected.name;\n }, ...(ngDevMode ? [{ debugName: \"canApprove\" }] : []));\n this.canReject = computed(() => {\n const statusId = this.task().status?.id;\n return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Approved.name;\n }, ...(ngDevMode ? [{ debugName: \"canReject\" }] : []));\n this.canCancel = computed(() => {\n const statusId = this.task().status?.id;\n return statusId === AXPSystemStatuses.Pending.name || statusId === AXPSystemStatuses.Approved.name;\n }, ...(ngDevMode ? [{ debugName: \"canCancel\" }] : []));\n }\n formatDate(date) {\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }).format(new Date(date));\n }\n calculateDuration() {\n const start = new Date(this.task().startDate);\n const end = new Date(this.task().endDate);\n const diffTime = Math.abs(end.getTime() - start.getTime());\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays + 1; // Include both start and end days\n }\n async handleApprove() {\n const task = this.task();\n const leaveRequestId = task.id;\n try {\n const dialogResult = await this.dialogService.showApprovalDialog();\n if (dialogResult?.cancelled) {\n return;\n }\n const commandKey = 'HumanCapitalManagement.LeaveRequest:Approve';\n const result = await this.commandExecutor.execute(commandKey, {\n id: leaveRequestId,\n reason: dialogResult?.reason,\n note: dialogResult?.note,\n });\n if (result?.success) {\n // Optionally emit an event or refresh the task\n console.log('Leave request approved successfully');\n }\n }\n catch (error) {\n console.error('Failed to approve leave request:', error);\n }\n }\n async handleReject() {\n const task = this.task();\n const leaveRequestId = task.id;\n try {\n const dialogResult = await this.dialogService.showRejectionDialog();\n if (dialogResult?.cancelled) {\n return;\n }\n const commandKey = 'HumanCapitalManagement.LeaveRequest:Reject';\n const result = await this.commandExecutor.execute(commandKey, {\n id: leaveRequestId,\n reason: dialogResult?.reason,\n note: dialogResult?.note,\n });\n if (result?.success) {\n console.log('Leave request rejected successfully');\n }\n }\n catch (error) {\n console.error('Failed to reject leave request:', error);\n }\n }\n async handleCancel() {\n const task = this.task();\n const leaveRequestId = task.id;\n try {\n const dialogResult = await this.dialogService.showCancellationDialog();\n if (dialogResult?.cancelled) {\n return;\n }\n const commandKey = 'HumanCapitalManagement.LeaveRequest:Cancel';\n const result = await this.commandExecutor.execute(commandKey, {\n id: leaveRequestId,\n reason: dialogResult?.reason,\n note: dialogResult?.note,\n });\n if (result?.success) {\n console.log('Leave request cancelled successfully');\n }\n }\n catch (error) {\n console.error('Failed to cancel leave request:', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMLeaveRequestTaskPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMLeaveRequestTaskPopoverComponent, isStandalone: true, selector: \"axm-leave-request-task-popover\", inputs: { task: { classPropertyName: \"task\", publicName: \"task\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `\n <div class=\"leave-request-popover\">\n <!-- Employee Info -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-user\"></i>\n <span>Employee Information</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Employee:</span>\n <span class=\"leave-request-popover__value\">{{ employeeName() }}</span>\n </div>\n @if (managerName(); as manager) {\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Manager:</span>\n <span class=\"leave-request-popover__value\">{{ manager }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Leave Details -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-calendar\"></i>\n <span>Leave Details</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Leave Type:</span>\n <span class=\"leave-request-popover__value\">{{ leaveType() }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Start Date:</span>\n <span class=\"leave-request-popover__value\">{{ formatDate(task().startDate) }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">End Date:</span>\n <span class=\"leave-request-popover__value\">{{ formatDate(task().endDate) }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Duration:</span>\n <span class=\"leave-request-popover__value\">{{ calculateDuration() }} days</span>\n </div>\n </div>\n </div>\n\n <!-- Reason -->\n @if (task().description) {\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-note-sticky\"></i>\n <span>Reason</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <p class=\"leave-request-popover__reason\">{{ task().description }}</p>\n </div>\n </div>\n }\n\n <!-- Status -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-flag\"></i>\n <span>Status</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__status-badge\" [attr.data-status]=\"task().status.id\">\n {{ task().status.title }}\n </div>\n </div>\n </div>\n\n <!-- Actions -->\n <div class=\"leave-request-popover__actions\">\n @if (canApprove()) {\n <ax-button\n [color]=\"'success'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.approve.title' | translate | async\"\n (onClick)=\"handleApprove()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-check\"></i>\n </ax-prefix>\n </ax-button>\n }\n\n @if (canReject()) {\n <ax-button\n [color]=\"'danger'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.reject.title' | translate | async\"\n (onClick)=\"handleReject()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-xmark\"></i>\n </ax-prefix>\n </ax-button>\n }\n\n @if (canCancel()) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCancel()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-ban\"></i>\n </ax-prefix>\n </ax-button>\n }\n </div>\n </div>\n `, isInline: true, styles: [\".leave-request-popover{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:360px}.leave-request-popover__section{display:flex;flex-direction:column;gap:6px}.leave-request-popover__section-header{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--ax-sys-color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--ax-sys-color-border)}.leave-request-popover__section-header i{font-size:13px;color:var(--ax-sys-color-text-neutral-600)}.leave-request-popover__section-content{display:flex;flex-direction:column;gap:6px}.leave-request-popover__info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:12px;line-height:1.4}.leave-request-popover__label{color:var(--ax-sys-color-text-neutral-600);font-weight:500;flex-shrink:0}.leave-request-popover__value{color:var(--ax-sys-color-text-primary);text-align:right;word-break:break-word}.leave-request-popover__reason{margin:0;padding:8px;background:var(--ax-sys-color-lighter-surface);border-radius:4px;font-size:12px;line-height:1.4;color:var(--ax-sys-color-text-primary)}.leave-request-popover__status-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.leave-request-popover__status-badge[data-status=pending]{background:var(--ax-sys-color-warning-lightest);color:var(--ax-sys-color-warning)}.leave-request-popover__status-badge[data-status=approved]{background:var(--ax-sys-color-success-lightest);color:var(--ax-sys-color-success)}.leave-request-popover__status-badge[data-status=rejected]{background:var(--ax-sys-color-danger-lightest);color:var(--ax-sys-color-danger)}.leave-request-popover__status-badge[data-status=cancelled]{background:var(--ax-sys-color-neutral-lightest);color:var(--ax-sys-color-neutral)}.leave-request-popover__actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--ax-sys-color-border)}.leave-request-popover__action-btn{flex:1;min-width:90px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMLeaveRequestTaskPopoverComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-leave-request-task-popover', template: `\n <div class=\"leave-request-popover\">\n <!-- Employee Info -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-user\"></i>\n <span>Employee Information</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Employee:</span>\n <span class=\"leave-request-popover__value\">{{ employeeName() }}</span>\n </div>\n @if (managerName(); as manager) {\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Manager:</span>\n <span class=\"leave-request-popover__value\">{{ manager }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Leave Details -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-calendar\"></i>\n <span>Leave Details</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Leave Type:</span>\n <span class=\"leave-request-popover__value\">{{ leaveType() }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Start Date:</span>\n <span class=\"leave-request-popover__value\">{{ formatDate(task().startDate) }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">End Date:</span>\n <span class=\"leave-request-popover__value\">{{ formatDate(task().endDate) }}</span>\n </div>\n <div class=\"leave-request-popover__info-row\">\n <span class=\"leave-request-popover__label\">Duration:</span>\n <span class=\"leave-request-popover__value\">{{ calculateDuration() }} days</span>\n </div>\n </div>\n </div>\n\n <!-- Reason -->\n @if (task().description) {\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-note-sticky\"></i>\n <span>Reason</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <p class=\"leave-request-popover__reason\">{{ task().description }}</p>\n </div>\n </div>\n }\n\n <!-- Status -->\n <div class=\"leave-request-popover__section\">\n <div class=\"leave-request-popover__section-header\">\n <i class=\"fa-light fa-flag\"></i>\n <span>Status</span>\n </div>\n <div class=\"leave-request-popover__section-content\">\n <div class=\"leave-request-popover__status-badge\" [attr.data-status]=\"task().status.id\">\n {{ task().status.title }}\n </div>\n </div>\n </div>\n\n <!-- Actions -->\n <div class=\"leave-request-popover__actions\">\n @if (canApprove()) {\n <ax-button\n [color]=\"'success'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.approve.title' | translate | async\"\n (onClick)=\"handleApprove()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-check\"></i>\n </ax-prefix>\n </ax-button>\n }\n\n @if (canReject()) {\n <ax-button\n [color]=\"'danger'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.reject.title' | translate | async\"\n (onClick)=\"handleReject()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-xmark\"></i>\n </ax-prefix>\n </ax-button>\n }\n\n @if (canCancel()) {\n <ax-button\n [color]=\"'secondary'\"\n [look]=\"'blank'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCancel()\"\n class=\"leave-request-popover__action-btn\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-ban\"></i>\n </ax-prefix>\n </ax-button>\n }\n </div>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule], styles: [\".leave-request-popover{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:280px;max-width:360px}.leave-request-popover__section{display:flex;flex-direction:column;gap:6px}.leave-request-popover__section-header{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--ax-sys-color-text-primary);padding-bottom:6px;border-bottom:1px solid var(--ax-sys-color-border)}.leave-request-popover__section-header i{font-size:13px;color:var(--ax-sys-color-text-neutral-600)}.leave-request-popover__section-content{display:flex;flex-direction:column;gap:6px}.leave-request-popover__info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:12px;line-height:1.4}.leave-request-popover__label{color:var(--ax-sys-color-text-neutral-600);font-weight:500;flex-shrink:0}.leave-request-popover__value{color:var(--ax-sys-color-text-primary);text-align:right;word-break:break-word}.leave-request-popover__reason{margin:0;padding:8px;background:var(--ax-sys-color-lighter-surface);border-radius:4px;font-size:12px;line-height:1.4;color:var(--ax-sys-color-text-primary)}.leave-request-popover__status-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.leave-request-popover__status-badge[data-status=pending]{background:var(--ax-sys-color-warning-lightest);color:var(--ax-sys-color-warning)}.leave-request-popover__status-badge[data-status=approved]{background:var(--ax-sys-color-success-lightest);color:var(--ax-sys-color-success)}.leave-request-popover__status-badge[data-status=rejected]{background:var(--ax-sys-color-danger-lightest);color:var(--ax-sys-color-danger)}.leave-request-popover__status-badge[data-status=cancelled]{background:var(--ax-sys-color-neutral-lightest);color:var(--ax-sys-color-neutral)}.leave-request-popover__actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--ax-sys-color-border)}.leave-request-popover__action-btn{flex:1;min-width:90px}\\n\"] }]\n }], propDecorators: { task: [{ type: i0.Input, args: [{ isSignal: true, alias: \"task\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcmVxdWVzdC10YXNrLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2h1bWFuLWNhcGl0YWwtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2xlYXZlLXJlcXVlc3Qvd29ya2Zsb3ctdGFza3MvbGVhdmUtcmVxdWVzdC10YXNrLXBvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBK081RCxNQUFNLE9BQU8sbUNBQW1DO0lBN09oRDtRQThPRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsK0NBQVcsQ0FBQztRQUVoQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFNUQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxD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Z0hnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQVGFzaywgQVhQVGFza1BvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvdGFzay1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUENvbW1hbmRFeGVjdXRvciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1IdW1hbkNhcGl0YWxNYW5hZ2VtZW50TGVhdmVSZXF1ZXN0RW50aXR5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9sZWF2ZS1yZXF1ZXN0L2xlYXZlLXJlcXVlc3QudHlwZXMnO1xuaW1wb3J0IHsgQVhQTGVhdmVSZXF1ZXN0RGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xlYXZlLXJlcXVlc3QtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQU3lzdGVtU3RhdHVzZXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4bS1sZWF2ZS1yZXF1ZXN0LXRhc2stcG9wb3ZlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3ZlclwiPlxuICAgICAgPCEtLSBFbXBsb3llZSBJbmZvIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdXNlclwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj5FbXBsb3llZSBJbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3NlY3Rpb24tY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX2luZm8tcm93XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fbGFiZWxcIj5FbXBsb3llZTo8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fdmFsdWVcIj57eyBlbXBsb3llZU5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKG1hbmFnZXJOYW1lKCk7IGFzIG1hbmFnZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX2luZm8tcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19sYWJlbFwiPk1hbmFnZXI6PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fdmFsdWVcIj57eyBtYW5hZ2VyIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIExlYXZlIERldGFpbHMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3NlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jYWxlbmRhclwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj5MZWF2ZSBEZXRhaWxzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc2VjdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9faW5mby1yb3dcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19sYWJlbFwiPkxlYXZlIFR5cGU6PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3ZhbHVlXCI+e3sgbGVhdmVUeXBlKCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9faW5mby1yb3dcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19sYWJlbFwiPlN0YXJ0IERhdGU6PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3ZhbHVlXCI+e3sgZm9ybWF0RGF0ZSh0YXNrKCkuc3RhcnREYXRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19pbmZvLXJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX2xhYmVsXCI+RW5kIERhdGU6PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3ZhbHVlXCI+e3sgZm9ybWF0RGF0ZSh0YXNrKCkuZW5kRGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9faW5mby1yb3dcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19sYWJlbFwiPkR1cmF0aW9uOjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX192YWx1ZVwiPnt7IGNhbGN1bGF0ZUR1cmF0aW9uKCkgfX0gZGF5czwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSZWFzb24gLS0+XG4gICAgICBAaWYgKHRhc2soKS5kZXNjcmlwdGlvbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtbm90ZS1zdGlja3lcIj48L2k+XG4gICAgICAgICAgICA8c3Bhbj5SZWFzb248L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc2VjdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fcmVhc29uXCI+e3sgdGFzaygpLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBTdGF0dXMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVhdmUtcmVxdWVzdC1wb3BvdmVyX19zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3NlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1mbGFnXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPlN0YXR1czwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3NlY3Rpb24tY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3N0YXR1cy1iYWRnZVwiIFthdHRyLmRhdGEtc3RhdHVzXT1cInRhc2soKS5zdGF0dXMuaWRcIj5cbiAgICAgICAgICAgIHt7IHRhc2soKS5zdGF0dXMudGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBY3Rpb25zIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGNhbkFwcHJvdmUoKSkge1xuICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgIFtjb2xvcl09XCInc3VjY2VzcydcIlxuICAgICAgICAgICAgW2xvb2tdPVwiJ2JsYW5rJ1wiXG4gICAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5hcHByb3ZlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFwcHJvdmUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fYWN0aW9uLWJ0blwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChjYW5SZWplY3QoKSkge1xuICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgIFtjb2xvcl09XCInZGFuZ2VyJ1wiXG4gICAgICAgICAgICBbbG9va109XCInYmxhbmsnXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLnJlamVjdC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVSZWplY3QoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fYWN0aW9uLWJ0blwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bWFya1wiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChjYW5DYW5jZWwoKSkge1xuICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgIFtjb2xvcl09XCInc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICBbbG9va109XCInYmxhbmsnXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLmNhbmNlbC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDYW5jZWwoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fYWN0aW9uLWJ0blwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1iYW5cIj48L2k+XG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYFxuICAgIC5sZWF2ZS1yZXF1ZXN0LXBvcG92ZXIge1xuICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxMHB4O1xuICAgICAgbWluLXdpZHRoOiAyODBweDtcbiAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgfVxuXG4gICAgLmxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5sZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3NlY3Rpb24taGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6IHZhcigtLWF4LXN5cy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1heC1zeXMtY29sb3ItYm9yZGVyKTtcblxuICAgICAgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWF4LXN5cy1jb2xvci10ZXh0LW5ldXRyYWwtNjAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubGVhdmUtcmVxdWVzdC1wb3BvdmVyX19zZWN0aW9uLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDZweDtcbiAgICB9XG5cbiAgICAubGVhdmUtcmVxdWVzdC1wb3BvdmVyX19pbmZvLXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIC5sZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX2xhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1heC1zeXMtY29sb3ItdGV4dC1uZXV0cmFsLTYwMCk7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLmxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fdmFsdWUge1xuICAgICAgY29sb3I6IHZhcigtLWF4LXN5cy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIC5sZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX3JlYXNvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1heC1zeXMtY29sb3ItbGlnaHRlci1zdXJmYWNlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBjb2xvcjogdmFyKC0tYXgtc3lzLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgLmxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fc3RhdHVzLWJhZGdlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICAgICAgJltkYXRhLXN0YXR1cz0ncGVuZGluZyddIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXgtc3lzLWNvbG9yLXdhcm5pbmctbGlnaHRlc3QpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXgtc3lzLWNvbG9yLXdhcm5pbmcpO1xuICAgICAgfVxuXG4gICAgICAmW2RhdGEtc3RhdHVzPSdhcHByb3ZlZCddIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXgtc3lzLWNvbG9yLXN1Y2Nlc3MtbGlnaHRlc3QpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXgtc3lzLWNvbG9yLXN1Y2Nlc3MpO1xuICAgICAgfVxuXG4gICAgICAmW2RhdGEtc3RhdHVzPSdyZWplY3RlZCddIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXgtc3lzLWNvbG9yLWRhbmdlci1saWdodGVzdCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1heC1zeXMtY29sb3ItZGFuZ2VyKTtcbiAgICAgIH1cblxuICAgICAgJltkYXRhLXN0YXR1cz0nY2FuY2VsbGVkJ10ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1heC1zeXMtY29sb3ItbmV1dHJhbC1saWdodGVzdCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1heC1zeXMtY29sb3ItbmV1dHJhbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxlYXZlLXJlcXVlc3QtcG9wb3Zlcl9fYWN0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWF4LXN5cy1jb2xvci1ib3JkZXIpO1xuICAgIH1cblxuICAgIC5sZWF2ZS1yZXF1ZXN0LXBvcG92ZXJfX2FjdGlvbi1idG4ge1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogOTBweDtcbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1MZWF2ZVJlcXVlc3RUYXNrUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFYUFRhc2tQb3BvdmVyQ29tcG9uZW50IHtcbiAgdGFzayA9IGlucHV0LnJlcXVpcmVkPEFYUFRhc2s+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kRXhlY3V0b3IgPSBpbmplY3QoQVhQQ29tbWFuZEV4ZWN1dG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYUExlYXZlUmVxdWVzdERpYWxvZ1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB0YXNrRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0YXNrID0gdGhpcy50YXNrKCk7XG4gICAgcmV0dXJuIChcbiAgICAgICh0YXNrLmRhdGEgYXMgQVhNSHVtYW5DYXBpdGFsTWFuYWdlbWVudExlYXZlUmVxdWVzdEVudGl0eU1vZGVsKSB8fFxuICAgICAgKCh0YXNrIGFzIGFueSkucGF5bG9hZCBhcyBBWE1IdW1hbkNhcGl0YWxNYW5hZ2VtZW50TGVhdmVSZXF1ZXN0RW50aXR5TW9kZWwpXG4gICAgKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGVtcGxveWVlTmFtZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy50YXNrRGF0YSgpO1xuICAgIHJldHVybiBkYXRhPy5lbXBsb3llZT8ucGVyc29uPy5kaXNwbGF5TmFtZSB8fCB0aGlzLnRhc2soKS5yZXBvcnRlcj8uZnVsbE5hbWUgfHwgJ1Vua25vd24nO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgbWFuYWdlck5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMudGFza0RhdGEoKTtcbiAgICByZXR1cm4gZGF0YT8uZW1wbG95ZWU/Lm1hbmFnZXI/LnBlcnNvbj8uZGlzcGxheU5hbWUgfHwgdGhpcy50YXNrKCkuYXNzaWduZWU/LmZ1bGxOYW1lIHx8ICcnO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgbGVhdmVUeXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnRhc2tEYXRhKCk7XG4gICAgLy8gRXh0cmFjdCBsZWF2ZSB0eXBlIGZyb20gdGFzayB0aXRsZSBvciBkYXRhXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRhc2soKS50aXRsZSB8fCAnJztcbiAgICBjb25zdCBwYXJ0cyA9IHRpdGxlLnNwbGl0KCcgLSAnKTtcbiAgICByZXR1cm4gcGFydHMubGVuZ3RoID4gMSA/IHBhcnRzWzFdIDogZGF0YT8ubGVhdmVUeXBlPy50aXRsZSB8fCAnTi9BJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGNhbkFwcHJvdmUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdHVzSWQgPSB0aGlzLnRhc2soKS5zdGF0dXM/LmlkO1xuICAgIHJldHVybiBzdGF0dXNJZCA9PT0gQVhQU3lzdGVtU3RhdHVzZXMuUGVuZGluZy5uYW1lIHx8IHN0YXR1c0lkID09PSBBWFBTeXN0ZW1TdGF0dXNlcy5SZWplY3RlZC5uYW1lO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgY2FuUmVqZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1c0lkID0gdGhpcy50YXNrKCkuc3RhdHVzPy5pZDtcbiAgICByZXR1cm4gc3RhdHVzSWQgPT09IEFYUFN5c3RlbVN0YXR1c2VzLlBlbmRpbmcubmFtZSB8fCBzdGF0dXNJZCA9PT0gQVhQU3lzdGVtU3RhdHVzZXMuQXBwcm92ZWQubmFtZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGNhbkNhbmNlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0dXNJZCA9IHRoaXMudGFzaygpLnN0YXR1cz8uaWQ7XG4gICAgcmV0dXJuIHN0YXR1c0lkID09PSBBWFBTeXN0ZW1TdGF0dXNlcy5QZW5kaW5nLm5hbWUgfHwgc3RhdHVzSWQgPT09IEFYUFN5c3RlbVN0YXR1c2VzLkFwcHJvdmVkLm5hbWU7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH0pLmZvcm1hdChuZXcgRGF0ZShkYXRlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlRHVyYXRpb24oKTogbnVtYmVyIHtcbiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRoaXMudGFzaygpLnN0YXJ0RGF0ZSk7XG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUodGhpcy50YXNrKCkuZW5kRGF0ZSk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSBNYXRoLmFicyhlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKTtcbiAgICBjb25zdCBkaWZmRGF5cyA9IE1hdGguY2VpbChkaWZmVGltZSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgcmV0dXJuIGRpZmZEYXlzICsgMTsgLy8gSW5jbHVkZSBib3RoIHN0YXJ0IGFuZCBlbmQgZGF5c1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFwcHJvdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGFzayA9IHRoaXMudGFzaygpO1xuICAgIGNvbnN0IGxlYXZlUmVxdWVzdElkID0gdGFzay5pZDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FwcHJvdmFsRGlhbG9nKCk7XG4gICAgICBpZiAoZGlhbG9nUmVzdWx0Py5jYW5jZWxsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21tYW5kS2V5ID0gJ0h1bWFuQ2FwaXRhbE1hbmFnZW1lbnQuTGVhdmVSZXF1ZXN0OkFwcHJvdmUnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21tYW5kRXhlY3V0b3IuZXhlY3V0ZShjb21tYW5kS2V5LCB7XG4gICAgICAgIGlkOiBsZWF2ZVJlcXVlc3RJZCxcbiAgICAgICAgcmVhc29uOiBkaWFsb2dSZXN1bHQ/LnJlYXNvbixcbiAgICAgICAgbm90ZTogZGlhbG9nUmVzdWx0Py5ub3RlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgLy8gT3B0aW9uYWxseSBlbWl0IGFuIGV2ZW50IG9yIHJlZnJlc2ggdGhlIHRhc2tcbiAgICAgICAgY29uc29sZS5sb2coJ0xlYXZlIHJlcXVlc3QgYXBwcm92ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBhcHByb3ZlIGxlYXZlIHJlcXVlc3Q6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVSZWplY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGFzayA9IHRoaXMudGFzaygpO1xuICAgIGNvbnN0IGxlYXZlUmVxdWVzdElkID0gdGFzay5pZDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1JlamVjdGlvbkRpYWxvZygpO1xuICAgICAgaWYgKGRpYWxvZ1Jlc3VsdD8uY2FuY2VsbGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tbWFuZEtleSA9ICdIdW1hbkNhcGl0YWxNYW5hZ2VtZW50LkxlYXZlUmVxdWVzdDpSZWplY3QnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21tYW5kRXhlY3V0b3IuZXhlY3V0ZShjb21tYW5kS2V5LCB7XG4gICAgICAgIGlkOiBsZWF2ZVJlcXVlc3RJZCxcbiAgICAgICAgcmVhc29uOiBkaWFsb2dSZXN1bHQ/LnJlYXNvbixcbiAgICAgICAgbm90ZTogZGlhbG9nUmVzdWx0Py5ub3RlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0xlYXZlIHJlcXVlc3QgcmVqZWN0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZWplY3QgbGVhdmUgcmVxdWVzdDonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0YXNrID0gdGhpcy50YXNrKCk7XG4gICAgY29uc3QgbGVhdmVSZXF1ZXN0SWQgPSB0YXNrLmlkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q2FuY2VsbGF0aW9uRGlhbG9nKCk7XG4gICAgICBpZiAoZGlhbG9nUmVzdWx0Py5jYW5jZWxsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21tYW5kS2V5ID0gJ0h1bWFuQ2FwaXRhbE1hbmFnZW1lbnQuTGVhdmVSZXF1ZXN0OkNhbmNlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbW1hbmRFeGVjdXRvci5leGVjdXRlKGNvbW1hbmRLZXksIHtcbiAgICAgICAgaWQ6IGxlYXZlUmVxdWVzdElkLFxuICAgICAgICByZWFzb246IGRpYWxvZ1Jlc3VsdD8ucmVhc29uLFxuICAgICAgICBub3RlOiBkaWFsb2dSZXN1bHQ/Lm5vdGUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKHJlc3VsdD8uc3VjY2Vzcykge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVhdmUgcmVxdWVzdCBjYW5jZWxsZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjYW5jZWwgbGVhdmUgcmVxdWVzdDonLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0="],"names":[],"mappings":";;;;;;;;;;;;;;AAaO,MAAM,mCAAmC,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACjE,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACpC,YAAY,QAAQ,IAAI,CAAC,IAAI;AAC7B,gBAAgB,IAAI,CAAC,OAAO;AAC5B,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,YAAY,OAAO,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,IAAI,SAAS;AACrG,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,YAAY,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACvG,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE;AACjD,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,YAAY,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK;AAChF,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;AACnD,YAAY,OAAO,QAAQ,KAAK,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,KAAK,iBAAiB,CAAC,QAAQ,CAAC,IAAI;AAC9G,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;AACnD,YAAY,OAAO,QAAQ,KAAK,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,KAAK,iBAAiB,CAAC,QAAQ,CAAC,IAAI;AAC9G,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;AACnD,YAAY,OAAO,QAAQ,KAAK,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,KAAK,iBAAiB,CAAC,QAAQ,CAAC,IAAI;AAC9G,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAChD,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE,SAAS;AAC1B,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;AACrD,QAAQ,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;AACjD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,QAAQ,OAAO,QAAQ,GAAG,CAAC,CAAC;AAC5B,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAChC,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;AAC9E,YAAY,IAAI,YAAY,EAAE,SAAS,EAAE;AACzC,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,UAAU,GAAG,6CAA6C;AAC5E,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE;AAC1E,gBAAgB,EAAE,EAAE,cAAc;AAClC,gBAAgB,MAAM,EAAE,YAAY,EAAE,MAAM;AAC5C,gBAAgB,IAAI,EAAE,YAAY,EAAE,IAAI;AACxC,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC;AACA,gBAAgB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;AAClE,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC;AACpE,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAChC,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;AAC/E,YAAY,IAAI,YAAY,EAAE,SAAS,EAAE;AACzC,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,UAAU,GAAG,4CAA4C;AAC3E,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE;AAC1E,gBAAgB,EAAE,EAAE,cAAc;AAClC,gBAAgB,MAAM,EAAE,YAAY,EAAE,MAAM;AAC5C,gBAAgB,IAAI,EAAE,YAAY,EAAE,IAAI;AACxC,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;AAClE,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACnE,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAChC,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE;AAClF,YAAY,IAAI,YAAY,EAAE,SAAS,EAAE;AACzC,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,UAAU,GAAG,4CAA4C;AAC3E,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE;AAC1E,gBAAgB,EAAE,EAAE,cAAc;AAClC,gBAAgB,MAAM,EAAE,YAAY,EAAE,MAAM;AAC5C,gBAAgB,IAAI,EAAE,YAAY,EAAE,IAAI;AACxC,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;AACnE,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACnE,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,mCAAmC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,++DAA++D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACj+F;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,++DAA++D,CAAC,EAAE;AACzqE,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
2
2
|
import { AXPWorkflowTaskProvider, AXP_WORKFLOW_TASK_PROVIDER } from '@acorex/modules/task-management';
|
|
3
|
-
import { AXPSystemStatuses, AXPStatusProvider, systemStatusToDefinition, AXPSystemStatusType, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER } from '@acorex/platform/common';
|
|
4
|
-
import { AXPEntityService, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
|
5
3
|
import { AXPCommandExecutor, AXPCommandEventsService, AXPRuntimeModule } from '@acorex/platform/runtime';
|
|
6
4
|
import * as i0 from '@angular/core';
|
|
7
5
|
import { inject, Injectable, DestroyRef, signal, NgModule, Injector } from '@angular/core';
|
|
8
6
|
import { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
|
|
7
|
+
import { AXPEntityService, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
|
8
|
+
import { AXPSystemStatuses, AXPStatusProvider, systemStatusToDefinition, AXPSystemStatusType, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER } from '@acorex/platform/common';
|
|
9
9
|
import { AXPTaskBadgeProvider, AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';
|
|
10
10
|
import { AXP_IDENTIFIER_RULES } from '@acorex/modules/identifier-management';
|
|
11
11
|
import { AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex/platform/core';
|
|
@@ -391,6 +391,9 @@ class AXMLeaveRequestTaskProvider extends AXPWorkflowTaskProvider {
|
|
|
391
391
|
return 'medium';
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
|
+
getComponent() {
|
|
395
|
+
return () => import('./acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs').then((m) => m.AXMLeaveRequestTaskPopoverComponent);
|
|
396
|
+
}
|
|
394
397
|
}
|
|
395
398
|
|
|
396
399
|
//#endregion
|