@senior-gestao-relacionamento/angular-components 2.0.0-master-d6f488bf → 2.0.0-master-eb758aaf

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.
Files changed (39) hide show
  1. package/esm2022/lib/components/schedule/entities/participant-lookup.interface.mjs +2 -0
  2. package/esm2022/lib/components/schedule/entities/schedule-type.interface.mjs +2 -0
  3. package/esm2022/lib/components/schedule/entities/schedule.interface.mjs +2 -0
  4. package/esm2022/lib/components/schedule/enums/schedule.enums.mjs +65 -0
  5. package/esm2022/lib/components/schedule/helpers/schedule-date.helpers.mjs +109 -0
  6. package/esm2022/lib/components/schedule/helpers/schedule-display.helpers.mjs +108 -0
  7. package/esm2022/lib/components/schedule/schedule-detail/schedule-detail.component.mjs +79 -0
  8. package/esm2022/lib/components/schedule/schedule-form/schedule-form.component.mjs +731 -0
  9. package/esm2022/lib/components/schedule/services/schedule-type.service.mjs +23 -10
  10. package/esm2022/lib/components/schedule/services/schedule.service.mjs +30 -33
  11. package/esm2022/public-api.mjs +7 -5
  12. package/fesm2022/senior-gestao-relacionamento-angular-components.mjs +797 -739
  13. package/fesm2022/senior-gestao-relacionamento-angular-components.mjs.map +1 -1
  14. package/lib/components/schedule/entities/participant-lookup.interface.d.ts +38 -0
  15. package/lib/components/schedule/entities/schedule-type.interface.d.ts +10 -0
  16. package/lib/components/schedule/{models → entities}/schedule.interface.d.ts +19 -15
  17. package/lib/components/schedule/{models → enums}/schedule.enums.d.ts +5 -0
  18. package/lib/components/schedule/helpers/schedule-date.helpers.d.ts +9 -0
  19. package/lib/components/schedule/helpers/schedule-display.helpers.d.ts +17 -0
  20. package/lib/components/schedule/schedule-detail/schedule-detail.component.d.ts +43 -0
  21. package/lib/components/schedule/schedule-form/schedule-form.component.d.ts +139 -0
  22. package/lib/components/schedule/services/schedule-type.service.d.ts +14 -6
  23. package/lib/components/schedule/services/schedule.service.d.ts +21 -51
  24. package/package.json +3 -3
  25. package/public-api.d.ts +8 -5
  26. package/esm2022/lib/components/schedule/components/index.mjs +0 -3
  27. package/esm2022/lib/components/schedule/components/schedule-detail.component.mjs +0 -204
  28. package/esm2022/lib/components/schedule/components/schedule-form.component.mjs +0 -780
  29. package/esm2022/lib/components/schedule/index.mjs +0 -6
  30. package/esm2022/lib/components/schedule/models/index.mjs +0 -2
  31. package/esm2022/lib/components/schedule/models/schedule.enums.mjs +0 -59
  32. package/esm2022/lib/components/schedule/models/schedule.interface.mjs +0 -2
  33. package/esm2022/lib/components/schedule/services/index.mjs +0 -3
  34. package/lib/components/schedule/components/index.d.ts +0 -2
  35. package/lib/components/schedule/components/schedule-detail.component.d.ts +0 -53
  36. package/lib/components/schedule/components/schedule-form.component.d.ts +0 -98
  37. package/lib/components/schedule/index.d.ts +0 -5
  38. package/lib/components/schedule/models/index.d.ts +0 -2
  39. package/lib/components/schedule/services/index.d.ts +0 -2
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhbnQtbG9va3VwLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvZW50aXRpZXMvcGFydGljaXBhbnQtbG9va3VwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGFydGljaXBhbnRPcmlnaW4gPSAnQUNDT1VOVCcgfCAnQUNDT1VOVF9DT05UQUNUJyB8ICdDT0xMQUJPUkFUT1InIHwgJ0VYVEVSTkFMX1BBUlRJQ0lQQU5UJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWNpcGFudExvb2t1cCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVmZXJlbmNlTmFtZT86IHN0cmluZztcbiAgcmVmZXJlbmNlSWQ/OiBzdHJpbmc7XG4gIG9yaWdpbjogUGFydGljaXBhbnRPcmlnaW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVTdW1tYXJ5QnlEYXRlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzY2hlZHVsZVR5cGU6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG4gIHdpdGhSZWN1cnJlbmNlOiBib29sZWFuO1xuICB3aGVuT2NjdXJzOiBzdHJpbmc7XG4gIGFsbERheTogYm9vbGVhbjtcbiAgc3RhcnRUaW1lPzogc3RyaW5nO1xuICBlbmRUaW1lPzogc3RyaW5nO1xuICBwcmlvcml0eTogc3RyaW5nO1xuICByZWN1cnJlbmNlczogdW5rbm93bltdO1xuICBwYXJ0aWNpcGFudE9yZ2FuaXplcjoge1xuICAgIGNvbGxhYm9yYXRvcj86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgfTtcbiAgY3VycmVudFBhcnRpY2lwYW50OiB7XG4gICAgY29sbGFib3JhdG9yPzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfTtcbiAgICBjb25maXJtYXRpb246IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtdHlwZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL2VudGl0aWVzL3NjaGVkdWxlLXR5cGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0dXMgfSBmcm9tICcuLi9lbnVtcy9zY2hlZHVsZS5lbnVtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVUeXBlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IFN0YXR1cztcbiAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQnk/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IERhdGU7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9lbnRpdGllcy9zY2hlZHVsZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVkdWxlUHJpb3JpdHksIFNjaGVkdWxlUmVjdXJyZW5jZSwgV2Vla0RheSwgUmVwZWF0V2hlbiwgT3JkaW5hbFdlZWtEYXksIE1vbnRoIH0gZnJvbSAnLi4vZW51bXMvc2NoZWR1bGUuZW51bXMnO1xuaW1wb3J0IHsgU2NoZWR1bGVUeXBlIH0gZnJvbSAnLi9zY2hlZHVsZS10eXBlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU/OiBTY2hlZHVsZVR5cGU7XG4gIHByaW9yaXR5OiBTY2hlZHVsZVByaW9yaXR5O1xuICBhbGxEYXk6IGJvb2xlYW47XG4gIHdpdGhSZWN1cnJlbmNlOiBib29sZWFuO1xuICBzdGFydERhdGU6IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbiAgc3RhcnRUaW1lPzogc3RyaW5nO1xuICBlbmRUaW1lPzogc3RyaW5nO1xuICB3aGVuT2NjdXJzPzogc3RyaW5nO1xuICByZWN1cnJlbmNlOiBTY2hlZHVsZVJlY3VycmVuY2U7XG4gIHJlY3VycmVuY2VJbnRlcnZhbD86IG51bWJlcjtcbiAgd2Vla0RheXM/OiBXZWVrRGF5W107XG4gIHJlcGVhdFdoZW4/OiBSZXBlYXRXaGVuO1xuICByZXBlYXRXaGVuRGF5PzogbnVtYmVyO1xuICByZXBlYXRXaGVuT3JkaW5hbFdlZWtEYXk/OiBPcmRpbmFsV2Vla0RheTtcbiAgcmVwZWF0V2hlbldlZWtNb250aD86IFdlZWtEYXk7XG4gIHJlcGVhdFdoZW5Nb250aD86IE1vbnRoO1xuICBjb21tZW50cz86IHN0cmluZztcbiAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQnk/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVSZWN1cnJlbmNlSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNjaGVkdWxlOiBTY2hlZHVsZTtcbiAgYXREYXRlOiBzdHJpbmc7XG4gIHN0YXJ0VGltZT86IHN0cmluZztcbiAgZW5kVGltZT86IHN0cmluZztcbiAgY2FuY2VsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdXJyZW5jZURhdGVzUmVjb3JkIHtcbiAgZGF0ZTogc3RyaW5nO1xuICBzY2hlZHVsZXNJZDogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVQYXJ0aWNpcGFudCB7XG4gIGlkPzogc3RyaW5nO1xuICBjb2xsYWJvcmF0b3I/OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgZW1haWw/OiBzdHJpbmcgfTtcbiAgYWNjb3VudD86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBjb2RlPzogbnVtYmVyIH07XG4gIGFjY291bnRDb250YWN0PzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nOyBhY2NvdW50PzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSB9O1xuICBleHRlcm5hbFBhcnRpY2lwYW50PzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nIH07XG4gIGNvbmZpcm1hdGlvbjogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIG9yZ2FuaXplcj86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,65 @@
1
+ export var SchedulePriority;
2
+ (function (SchedulePriority) {
3
+ SchedulePriority["Low"] = "LOW";
4
+ SchedulePriority["Medium"] = "MEDIUM";
5
+ SchedulePriority["High"] = "HIGH";
6
+ SchedulePriority["Critical"] = "CRITICAL";
7
+ })(SchedulePriority || (SchedulePriority = {}));
8
+ export var ScheduleRecurrence;
9
+ (function (ScheduleRecurrence) {
10
+ ScheduleRecurrence["Daily"] = "DAILY";
11
+ ScheduleRecurrence["Weekly"] = "WEEKLY";
12
+ ScheduleRecurrence["Monthly"] = "MONTHLY";
13
+ ScheduleRecurrence["Yearly"] = "YEARLY";
14
+ })(ScheduleRecurrence || (ScheduleRecurrence = {}));
15
+ export var WeekDay;
16
+ (function (WeekDay) {
17
+ WeekDay["Sunday"] = "SUNDAY";
18
+ WeekDay["Monday"] = "MONDAY";
19
+ WeekDay["Tuesday"] = "TUESDAY";
20
+ WeekDay["Wednesday"] = "WEDNESDAY";
21
+ WeekDay["Thursday"] = "THURSDAY";
22
+ WeekDay["Friday"] = "FRIDAY";
23
+ WeekDay["Saturday"] = "SATURDAY";
24
+ })(WeekDay || (WeekDay = {}));
25
+ export var Month;
26
+ (function (Month) {
27
+ Month["January"] = "JANUARY";
28
+ Month["February"] = "FEBRUARY";
29
+ Month["March"] = "MARCH";
30
+ Month["April"] = "APRIL";
31
+ Month["May"] = "MAY";
32
+ Month["June"] = "JUNE";
33
+ Month["July"] = "JULY";
34
+ Month["August"] = "AUGUST";
35
+ Month["September"] = "SEPTEMBER";
36
+ Month["October"] = "OCTOBER";
37
+ Month["November"] = "NOVEMBER";
38
+ Month["December"] = "DECEMBER";
39
+ })(Month || (Month = {}));
40
+ export var RepeatWhen;
41
+ (function (RepeatWhen) {
42
+ RepeatWhen["InDay"] = "IN_DAY";
43
+ RepeatWhen["InOrdinalWeekDay"] = "IN_ORDINAL_WEEK_DAY";
44
+ })(RepeatWhen || (RepeatWhen = {}));
45
+ export var OrdinalWeekDay;
46
+ (function (OrdinalWeekDay) {
47
+ OrdinalWeekDay["First"] = "FIRST";
48
+ OrdinalWeekDay["Second"] = "SECOND";
49
+ OrdinalWeekDay["Third"] = "THIRD";
50
+ OrdinalWeekDay["Fourth"] = "FOURTH";
51
+ OrdinalWeekDay["Last"] = "LAST";
52
+ })(OrdinalWeekDay || (OrdinalWeekDay = {}));
53
+ export var ParticipantConfirmation;
54
+ (function (ParticipantConfirmation) {
55
+ ParticipantConfirmation["Yes"] = "YES";
56
+ ParticipantConfirmation["Pending"] = "PENDING";
57
+ ParticipantConfirmation["No"] = "NO";
58
+ })(ParticipantConfirmation || (ParticipantConfirmation = {}));
59
+ export var Status;
60
+ (function (Status) {
61
+ Status["Active"] = "ACTIVE";
62
+ Status["Inactive"] = "INACTIVE";
63
+ Status["Deleted"] = "DELETED";
64
+ })(Status || (Status = {}));
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL2VudW1zL3NjaGVkdWxlLmVudW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0JBQVcsQ0FBQTtJQUNYLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYix5Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIscUNBQWUsQ0FBQTtJQUNmLHVDQUFpQixDQUFBO0lBQ2pCLHlDQUFtQixDQUFBO0lBQ25CLHVDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCO0FBRUQsTUFBTSxDQUFOLElBQVksT0FRWDtBQVJELFdBQVksT0FBTztJQUNqQiw0QkFBaUIsQ0FBQTtJQUNqQiw0QkFBaUIsQ0FBQTtJQUNqQiw4QkFBbUIsQ0FBQTtJQUNuQixrQ0FBdUIsQ0FBQTtJQUN2QixnQ0FBcUIsQ0FBQTtJQUNyQiw0QkFBaUIsQ0FBQTtJQUNqQixnQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsT0FBTyxLQUFQLE9BQU8sUUFRbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxLQWFYO0FBYkQsV0FBWSxLQUFLO0lBQ2YsNEJBQW1CLENBQUE7SUFDbkIsOEJBQXFCLENBQUE7SUFDckIsd0JBQWUsQ0FBQTtJQUNmLHdCQUFlLENBQUE7SUFDZixvQkFBVyxDQUFBO0lBQ1gsc0JBQWEsQ0FBQTtJQUNiLHNCQUFhLENBQUE7SUFDYiwwQkFBaUIsQ0FBQTtJQUNqQixnQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBbUIsQ0FBQTtJQUNuQiw4QkFBcUIsQ0FBQTtJQUNyQiw4QkFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBYlcsS0FBSyxLQUFMLEtBQUssUUFhaEI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLDhCQUFnQixDQUFBO0lBQ2hCLHNEQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDeEIsaUNBQWUsQ0FBQTtJQUNmLG1DQUFpQixDQUFBO0lBQ2pCLGlDQUFlLENBQUE7SUFDZixtQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLGNBQWMsS0FBZCxjQUFjLFFBTXpCO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBSVg7QUFKRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsOENBQW1CLENBQUE7SUFDbkIsb0NBQVMsQ0FBQTtBQUNYLENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBRUQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQiwyQkFBaUIsQ0FBQTtJQUNqQiwrQkFBcUIsQ0FBQTtJQUNyQiw2QkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsTUFBTSxLQUFOLE1BQU0sUUFJakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTY2hlZHVsZVByaW9yaXR5IHtcbiAgTG93ID0gJ0xPVycsXG4gIE1lZGl1bSA9ICdNRURJVU0nLFxuICBIaWdoID0gJ0hJR0gnLFxuICBDcml0aWNhbCA9ICdDUklUSUNBTCdcbn1cblxuZXhwb3J0IGVudW0gU2NoZWR1bGVSZWN1cnJlbmNlIHtcbiAgRGFpbHkgPSAnREFJTFknLFxuICBXZWVrbHkgPSAnV0VFS0xZJyxcbiAgTW9udGhseSA9ICdNT05USExZJyxcbiAgWWVhcmx5ID0gJ1lFQVJMWSdcbn1cblxuZXhwb3J0IGVudW0gV2Vla0RheSB7XG4gIFN1bmRheSA9ICdTVU5EQVknLFxuICBNb25kYXkgPSAnTU9OREFZJyxcbiAgVHVlc2RheSA9ICdUVUVTREFZJyxcbiAgV2VkbmVzZGF5ID0gJ1dFRE5FU0RBWScsXG4gIFRodXJzZGF5ID0gJ1RIVVJTREFZJyxcbiAgRnJpZGF5ID0gJ0ZSSURBWScsXG4gIFNhdHVyZGF5ID0gJ1NBVFVSREFZJ1xufVxuXG5leHBvcnQgZW51bSBNb250aCB7XG4gIEphbnVhcnkgPSAnSkFOVUFSWScsXG4gIEZlYnJ1YXJ5ID0gJ0ZFQlJVQVJZJyxcbiAgTWFyY2ggPSAnTUFSQ0gnLFxuICBBcHJpbCA9ICdBUFJJTCcsXG4gIE1heSA9ICdNQVknLFxuICBKdW5lID0gJ0pVTkUnLFxuICBKdWx5ID0gJ0pVTFknLFxuICBBdWd1c3QgPSAnQVVHVVNUJyxcbiAgU2VwdGVtYmVyID0gJ1NFUFRFTUJFUicsXG4gIE9jdG9iZXIgPSAnT0NUT0JFUicsXG4gIE5vdmVtYmVyID0gJ05PVkVNQkVSJyxcbiAgRGVjZW1iZXIgPSAnREVDRU1CRVInXG59XG5cbmV4cG9ydCBlbnVtIFJlcGVhdFdoZW4ge1xuICBJbkRheSA9ICdJTl9EQVknLFxuICBJbk9yZGluYWxXZWVrRGF5ID0gJ0lOX09SRElOQUxfV0VFS19EQVknXG59XG5cbmV4cG9ydCBlbnVtIE9yZGluYWxXZWVrRGF5IHtcbiAgRmlyc3QgPSAnRklSU1QnLFxuICBTZWNvbmQgPSAnU0VDT05EJyxcbiAgVGhpcmQgPSAnVEhJUkQnLFxuICBGb3VydGggPSAnRk9VUlRIJyxcbiAgTGFzdCA9ICdMQVNUJ1xufVxuXG5leHBvcnQgZW51bSBQYXJ0aWNpcGFudENvbmZpcm1hdGlvbiB7XG4gIFllcyA9ICdZRVMnLFxuICBQZW5kaW5nID0gJ1BFTkRJTkcnLFxuICBObyA9ICdOTydcbn1cblxuZXhwb3J0IGVudW0gU3RhdHVzIHtcbiAgQWN0aXZlID0gJ0FDVElWRScsXG4gIEluYWN0aXZlID0gJ0lOQUNUSVZFJyxcbiAgRGVsZXRlZCA9ICdERUxFVEVEJ1xufVxuIl19
@@ -0,0 +1,109 @@
1
+ import { WeekDay, Month, OrdinalWeekDay } from '../enums/schedule.enums';
2
+ const MINUTES_HALF_HOUR = 30;
3
+ const DAYS_IN_WEEK = 7;
4
+ const ORDINAL_THIRD_WEEK = 3;
5
+ const HOURS_IN_DAY = 24;
6
+ const MINUTES_IN_HOUR = 60;
7
+ const DATE_STRING_LENGTH = 10;
8
+ const TIME_SHORT_LENGTH = 5;
9
+ export function formatDateToString(d) {
10
+ return d.toISOString().split('T')[0];
11
+ }
12
+ export function toDateString(v) {
13
+ if (!v) {
14
+ return '';
15
+ }
16
+ if (v instanceof Date) {
17
+ return formatDateToString(v);
18
+ }
19
+ const s = String(v);
20
+ return s.length > DATE_STRING_LENGTH ? s.substring(0, DATE_STRING_LENGTH) : s;
21
+ }
22
+ export function toTimeString(v) {
23
+ if (!v) {
24
+ return '';
25
+ }
26
+ if (v instanceof Date) {
27
+ return formatTime(v.getHours(), v.getMinutes());
28
+ }
29
+ const s = String(v);
30
+ if (s.includes('T')) {
31
+ const d = new Date(s);
32
+ return formatTime(d.getHours(), d.getMinutes());
33
+ }
34
+ return s.length === TIME_SHORT_LENGTH ? s + ':00' : s;
35
+ }
36
+ export function getDefaultStartTime(d) {
37
+ let h = d.getHours();
38
+ let m = d.getMinutes();
39
+ if (m < MINUTES_HALF_HOUR) {
40
+ m = MINUTES_HALF_HOUR;
41
+ }
42
+ else {
43
+ h++;
44
+ m = 0;
45
+ }
46
+ if (h >= HOURS_IN_DAY) {
47
+ h = 0;
48
+ }
49
+ return formatTime(h, m);
50
+ }
51
+ export function getDefaultEndTime(startTime) {
52
+ const [hS, mS] = startTime.split(':');
53
+ let h = +hS;
54
+ let m = +mS + MINUTES_HALF_HOUR;
55
+ if (m >= MINUTES_IN_HOUR) {
56
+ h++;
57
+ m -= MINUTES_IN_HOUR;
58
+ }
59
+ if (h >= HOURS_IN_DAY) {
60
+ h = 0;
61
+ }
62
+ return formatTime(h, m);
63
+ }
64
+ export function getCurrentWeekDay(d) {
65
+ const days = [
66
+ WeekDay.Sunday, WeekDay.Monday, WeekDay.Tuesday,
67
+ WeekDay.Wednesday, WeekDay.Thursday, WeekDay.Friday,
68
+ WeekDay.Saturday
69
+ ];
70
+ return days[d.getDay()];
71
+ }
72
+ export function getCurrentMonth(d) {
73
+ const months = [
74
+ Month.January, Month.February, Month.March,
75
+ Month.April, Month.May, Month.June,
76
+ Month.July, Month.August, Month.September,
77
+ Month.October, Month.November, Month.December
78
+ ];
79
+ return months[d.getMonth()];
80
+ }
81
+ export function getOrdinalForDate(d) {
82
+ const dom = d.getDate();
83
+ const wn = Math.ceil(dom / DAYS_IN_WEEK);
84
+ const ld = new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate();
85
+ if (dom + DAYS_IN_WEEK > ld && wn >= 4) {
86
+ return OrdinalWeekDay.Last;
87
+ }
88
+ switch (wn) {
89
+ case 1: {
90
+ return OrdinalWeekDay.First;
91
+ }
92
+ case 2: {
93
+ return OrdinalWeekDay.Second;
94
+ }
95
+ case ORDINAL_THIRD_WEEK: {
96
+ return OrdinalWeekDay.Third;
97
+ }
98
+ case 4: {
99
+ return OrdinalWeekDay.Fourth;
100
+ }
101
+ default: {
102
+ return OrdinalWeekDay.Last;
103
+ }
104
+ }
105
+ }
106
+ function formatTime(h, m) {
107
+ return `${String(h).padStart(2, '0')}:${String(m).padStart(2, '0')}:00`;
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGF0ZS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9oZWxwZXJzL3NjaGVkdWxlLWRhdGUuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RSxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUMzQixNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUM5QixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUU1QixNQUFNLFVBQVUsa0JBQWtCLENBQUMsQ0FBTztJQUN4QyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FB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QztZQUNQLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUN0QyxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2Vla0RheSwgTW9udGgsIE9yZGluYWxXZWVrRGF5IH0gZnJvbSAnLi4vZW51bXMvc2NoZWR1bGUuZW51bXMnO1xuXG5jb25zdCBNSU5VVEVTX0hBTEZfSE9VUiA9IDMwO1xuY29uc3QgREFZU19JTl9XRUVLID0gNztcbmNvbnN0IE9SRElOQUxfVEhJUkRfV0VFSyA9IDM7XG5jb25zdCBIT1VSU19JTl9EQVkgPSAyNDtcbmNvbnN0IE1JTlVURVNfSU5fSE9VUiA9IDYwO1xuY29uc3QgREFURV9TVFJJTkdfTEVOR1RIID0gMTA7XG5jb25zdCBUSU1FX1NIT1JUX0xFTkdUSCA9IDU7XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlVG9TdHJpbmcoZDogRGF0ZSk6IHN0cmluZyB7XG4gIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0ZVN0cmluZyh2OiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKCF2KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmICh2IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBmb3JtYXREYXRlVG9TdHJpbmcodik7XG4gIH1cbiAgY29uc3QgcyA9IFN0cmluZyh2KTtcbiAgcmV0dXJuIHMubGVuZ3RoID4gREFURV9TVFJJTkdfTEVOR1RIID8gcy5zdWJzdHJpbmcoMCwgREFURV9TVFJJTkdfTEVOR1RIKSA6IHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1RpbWVTdHJpbmcodjogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICghdikge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAodiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gZm9ybWF0VGltZSh2LmdldEhvdXJzKCksIHYuZ2V0TWludXRlcygpKTtcbiAgfVxuICBjb25zdCBzID0gU3RyaW5nKHYpO1xuICBpZiAocy5pbmNsdWRlcygnVCcpKSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHMpO1xuICAgIHJldHVybiBmb3JtYXRUaW1lKGQuZ2V0SG91cnMoKSwgZC5nZXRNaW51dGVzKCkpO1xuICB9XG4gIHJldHVybiBzLmxlbmd0aCA9PT0gVElNRV9TSE9SVF9MRU5HVEggPyBzICsgJzowMCcgOiBzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFN0YXJ0VGltZShkOiBEYXRlKTogc3RyaW5nIHtcbiAgbGV0IGggPSBkLmdldEhvdXJzKCk7XG4gIGxldCBtID0gZC5nZXRNaW51dGVzKCk7XG4gIGlmIChtIDwgTUlOVVRFU19IQUxGX0hPVVIpIHtcbiAgICBtID0gTUlOVVRFU19IQUxGX0hPVVI7XG4gIH0gZWxzZSB7XG4gICAgaCsrO1xuICAgIG0gPSAwO1xuICB9XG4gIGlmIChoID49IEhPVVJTX0lOX0RBWSkge1xuICAgIGggPSAwO1xuICB9XG4gIHJldHVybiBmb3JtYXRUaW1lKGgsIG0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEVuZFRpbWUoc3RhcnRUaW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBbaFMsIG1TXSA9IHN0YXJ0VGltZS5zcGxpdCgnOicpO1xuICBsZXQgaCA9ICtoUztcbiAgbGV0IG0gPSArbVMgKyBNSU5VVEVTX0hBTEZfSE9VUjtcbiAgaWYgKG0gPj0gTUlOVVRFU19JTl9IT1VSKSB7XG4gICAgaCsrO1xuICAgIG0gLT0gTUlOVVRFU19JTl9IT1VSO1xuICB9XG4gIGlmIChoID49IEhPVVJTX0lOX0RBWSkge1xuICAgIGggPSAwO1xuICB9XG4gIHJldHVybiBmb3JtYXRUaW1lKGgsIG0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudFdlZWtEYXkoZDogRGF0ZSk6IFdlZWtEYXkge1xuICBjb25zdCBkYXlzID0gW1xuICAgIFdlZWtEYXkuU3VuZGF5LCBXZWVrRGF5Lk1vbmRheSwgV2Vla0RheS5UdWVzZGF5LFxuICAgIFdlZWtEYXkuV2VkbmVzZGF5LCBXZWVrRGF5LlRodXJzZGF5LCBXZWVrRGF5LkZyaWRheSxcbiAgICBXZWVrRGF5LlNhdHVyZGF5XG4gIF07XG4gIHJldHVybiBkYXlzW2QuZ2V0RGF5KCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudE1vbnRoKGQ6IERhdGUpOiBNb250aCB7XG4gIGNvbnN0IG1vbnRocyA9IFtcbiAgICBNb250aC5KYW51YXJ5LCBNb250aC5GZWJydWFyeSwgTW9udGguTWFyY2gsXG4gICAgTW9udGguQXByaWwsIE1vbnRoLk1heSwgTW9udGguSnVuZSxcbiAgICBNb250aC5KdWx5LCBNb250aC5BdWd1c3QsIE1vbnRoLlNlcHRlbWJlcixcbiAgICBNb250aC5PY3RvYmVyLCBNb250aC5Ob3ZlbWJlciwgTW9udGguRGVjZW1iZXJcbiAgXTtcbiAgcmV0dXJuIG1vbnRoc1tkLmdldE1vbnRoKCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JkaW5hbEZvckRhdGUoZDogRGF0ZSk6IE9yZGluYWxXZWVrRGF5IHtcbiAgY29uc3QgZG9tID0gZC5nZXREYXRlKCk7XG4gIGNvbnN0IHduID0gTWF0aC5jZWlsKGRvbSAvIERBWVNfSU5fV0VFSyk7XG4gIGNvbnN0IGxkID0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCkgKyAxLCAwKS5nZXREYXRlKCk7XG4gIGlmIChkb20gKyBEQVlTX0lOX1dFRUsgPiBsZCAmJiB3biA+PSA0KSB7XG4gICAgcmV0dXJuIE9yZGluYWxXZWVrRGF5Lkxhc3Q7XG4gIH1cbiAgc3dpdGNoICh3bikge1xuICAgIGNhc2UgMToge1xuICAgICAgcmV0dXJuIE9yZGluYWxXZWVrRGF5LkZpcnN0O1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIHJldHVybiBPcmRpbmFsV2Vla0RheS5TZWNvbmQ7XG4gICAgfVxuICAgIGNhc2UgT1JESU5BTF9USElSRF9XRUVLOiB7XG4gICAgICByZXR1cm4gT3JkaW5hbFdlZWtEYXkuVGhpcmQ7XG4gICAgfVxuICAgIGNhc2UgNDoge1xuICAgICAgcmV0dXJuIE9yZGluYWxXZWVrRGF5LkZvdXJ0aDtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIE9yZGluYWxXZWVrRGF5Lkxhc3Q7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFRpbWUoaDogbnVtYmVyLCBtOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7U3RyaW5nKGgpLnBhZFN0YXJ0KDIsICcwJyl9OiR7U3RyaW5nKG0pLnBhZFN0YXJ0KDIsICcwJyl9OjAwYDtcbn1cbiJdfQ==
@@ -0,0 +1,108 @@
1
+ import { SchedulePriority } from '../enums/schedule.enums';
2
+ const ICON_PI_USER = 'pi pi-user';
3
+ const ORIGIN_LABELS = {
4
+ ACCOUNT: 'crmx.components.schedule_participant_account',
5
+ ACCOUNT_CONTACT: 'crmx.components.schedule_participant_account_contact',
6
+ COLLABORATOR: 'crmx.components.schedule_participant_collaborator',
7
+ EXTERNAL_PARTICIPANT: 'crmx.components.schedule_participant_external'
8
+ };
9
+ const ORIGIN_ICONS = {
10
+ ACCOUNT: 'pi pi-building',
11
+ ACCOUNT_CONTACT: 'pi pi-id-card',
12
+ COLLABORATOR: ICON_PI_USER,
13
+ EXTERNAL_PARTICIPANT: 'pi pi-user-plus'
14
+ };
15
+ export function getOriginLabel(t, o) {
16
+ return t.translate(ORIGIN_LABELS[o] ?? o);
17
+ }
18
+ export function getOriginIcon(o) {
19
+ return ORIGIN_ICONS[o] ?? ICON_PI_USER;
20
+ }
21
+ export function getParticipantName(p) {
22
+ const candidates = [
23
+ p.collaborator?.name,
24
+ p.account?.name,
25
+ p.accountContact?.name,
26
+ p.externalParticipant?.name
27
+ ];
28
+ return candidates.find(name => name != null) ?? '-';
29
+ }
30
+ export function getParticipantType(t, p) {
31
+ if (p.collaborator) {
32
+ return t.translate('crmx.components.schedule_participant_collaborator');
33
+ }
34
+ if (p.account) {
35
+ return t.translate('crmx.components.schedule_participant_account');
36
+ }
37
+ if (p.accountContact) {
38
+ return t.translate('crmx.components.schedule_participant_account_contact');
39
+ }
40
+ if (p.externalParticipant) {
41
+ return t.translate('crmx.components.schedule_participant_external');
42
+ }
43
+ return '-';
44
+ }
45
+ export function getParticipantTypeIcon(p) {
46
+ if (p.collaborator) {
47
+ return ICON_PI_USER;
48
+ }
49
+ if (p.account) {
50
+ return 'pi pi-building';
51
+ }
52
+ if (p.accountContact) {
53
+ return 'pi pi-id-card';
54
+ }
55
+ if (p.externalParticipant) {
56
+ return 'pi pi-user-plus';
57
+ }
58
+ return ICON_PI_USER;
59
+ }
60
+ export function getPrioritySeverity(p) {
61
+ switch (p) {
62
+ case SchedulePriority.Low: {
63
+ return 'success';
64
+ }
65
+ case SchedulePriority.Medium: {
66
+ return 'info';
67
+ }
68
+ case SchedulePriority.High: {
69
+ return 'warn';
70
+ }
71
+ case SchedulePriority.Critical: {
72
+ return 'danger';
73
+ }
74
+ default: {
75
+ return 'info';
76
+ }
77
+ }
78
+ }
79
+ export function getPriorityLabel(t, p) {
80
+ return t.translate(`crmx.components.schedule_priority_${p.toLowerCase()}`);
81
+ }
82
+ export function getConfirmationSeverity(c) {
83
+ switch (c) {
84
+ case 'YES': {
85
+ return 'success';
86
+ }
87
+ case 'NO': {
88
+ return 'danger';
89
+ }
90
+ default: {
91
+ return 'warn';
92
+ }
93
+ }
94
+ }
95
+ export function getConfirmationLabel(t, c) {
96
+ switch (c) {
97
+ case 'YES': {
98
+ return t.translate('crmx.components.schedule_confirmation_yes');
99
+ }
100
+ case 'NO': {
101
+ return t.translate('crmx.components.schedule_confirmation_no');
102
+ }
103
+ default: {
104
+ return t.translate('crmx.components.schedule_confirmation_pending');
105
+ }
106
+ }
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGlzcGxheS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9oZWxwZXJzL3NjaGVkdWxlLWRpc3BsYXkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVMzRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFFbEMsTUFBTSxhQUFhLEdBQTJCO0lBQzVDLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsZUFBZSxFQUFFLHNEQUFzRDtJQUN2RSxZQUFZLEVBQUUsbURBQW1EO0lBQ2pFLG9CQUFvQixFQUFFLCtDQUErQztDQUN0RSxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQTJCO0lBQzNDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsWUFBWSxFQUFFLFlBQVk7SUFDMUIsb0JBQW9CLEVBQUUsaUJBQWlCO0NBQ3hDLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUFDLENBQWEsRUFBRSxDQUFvQjtJQUNoRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQW9CO0lBQ2hELE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQXNCO0lBQ3ZELE1BQU0sVUFBVSxHQUFHO1FBQ2pCLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSTtRQUNwQixDQUFDLENBQUMsT0FBTyxFQUFFLElBQUk7UUFDZixDQUFDLENBQUMsY0FBYyxFQUFFLElBQUk7UUFDdEIs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QUM7UUFDVixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlZHVsZVBhcnRpY2lwYW50IH0gZnJvbSAnLi4vZW50aXRpZXMvc2NoZWR1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBhcnRpY2lwYW50T3JpZ2luIH0gZnJvbSAnLi4vZW50aXRpZXMvcGFydGljaXBhbnQtbG9va3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTY2hlZHVsZVByaW9yaXR5IH0gZnJvbSAnLi4vZW51bXMvc2NoZWR1bGUuZW51bXMnO1xuXG5leHBvcnQgdHlwZSBQcmlvcml0eVNldmVyaXR5ID0gJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Rhbmdlcic7XG5leHBvcnQgdHlwZSBDb25maXJtYXRpb25TZXZlcml0eSA9ICdzdWNjZXNzJyB8ICd3YXJuJyB8ICdkYW5nZXInO1xuXG5pbnRlcmZhY2UgVHJhbnNsYXRvciB7XG4gIHRyYW5zbGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZztcbn1cblxuY29uc3QgSUNPTl9QSV9VU0VSID0gJ3BpIHBpLXVzZXInO1xuXG5jb25zdCBPUklHSU5fTEFCRUxTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBBQ0NPVU5UOiAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X2FjY291bnQnLFxuICBBQ0NPVU5UX0NPTlRBQ1Q6ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcGFydGljaXBhbnRfYWNjb3VudF9jb250YWN0JyxcbiAgQ09MTEFCT1JBVE9SOiAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X2NvbGxhYm9yYXRvcicsXG4gIEVYVEVSTkFMX1BBUlRJQ0lQQU5UOiAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X2V4dGVybmFsJ1xufTtcblxuY29uc3QgT1JJR0lOX0lDT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBBQ0NPVU5UOiAncGkgcGktYnVpbGRpbmcnLFxuICBBQ0NPVU5UX0NPTlRBQ1Q6ICdwaSBwaS1pZC1jYXJkJyxcbiAgQ09MTEFCT1JBVE9SOiBJQ09OX1BJX1VTRVIsXG4gIEVYVEVSTkFMX1BBUlRJQ0lQQU5UOiAncGkgcGktdXNlci1wbHVzJ1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9yaWdpbkxhYmVsKHQ6IFRyYW5zbGF0b3IsIG86IFBhcnRpY2lwYW50T3JpZ2luKTogc3RyaW5nIHtcbiAgcmV0dXJuIHQudHJhbnNsYXRlKE9SSUdJTl9MQUJFTFNbb10gPz8gbyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5JY29uKG86IFBhcnRpY2lwYW50T3JpZ2luKTogc3RyaW5nIHtcbiAgcmV0dXJuIE9SSUdJTl9JQ09OU1tvXSA/PyBJQ09OX1BJX1VTRVI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJ0aWNpcGFudE5hbWUocDogU2NoZWR1bGVQYXJ0aWNpcGFudCk6IHN0cmluZyB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgcC5jb2xsYWJvcmF0b3I/Lm5hbWUsXG4gICAgcC5hY2NvdW50Py5uYW1lLFxuICAgIHAuYWNjb3VudENvbnRhY3Q/Lm5hbWUsXG4gICAgcC5leHRlcm5hbFBhcnRpY2lwYW50Py5uYW1lXG4gIF07XG4gIHJldHVybiBjYW5kaWRhdGVzLmZpbmQobmFtZSA9PiBuYW1lICE9IG51bGwpID8/ICctJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnRpY2lwYW50VHlwZSh0OiBUcmFuc2xhdG9yLCBwOiBTY2hlZHVsZVBhcnRpY2lwYW50KTogc3RyaW5nIHtcbiAgaWYgKHAuY29sbGFib3JhdG9yKSB7XG4gICAgcmV0dXJuIHQudHJhbnNsYXRlKCdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcGFydGljaXBhbnRfY29sbGFib3JhdG9yJyk7XG4gIH1cbiAgaWYgKHAuYWNjb3VudCkge1xuICAgIHJldHVybiB0LnRyYW5zbGF0ZSgnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X2FjY291bnQnKTtcbiAgfVxuICBpZiAocC5hY2NvdW50Q29udGFjdCkge1xuICAgIHJldHVybiB0LnRyYW5zbGF0ZSgnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X2FjY291bnRfY29udGFjdCcpO1xuICB9XG4gIGlmIChwLmV4dGVybmFsUGFydGljaXBhbnQpIHtcbiAgICByZXR1cm4gdC50cmFuc2xhdGUoJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9wYXJ0aWNpcGFudF9leHRlcm5hbCcpO1xuICB9XG4gIHJldHVybiAnLSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJ0aWNpcGFudFR5cGVJY29uKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpOiBzdHJpbmcge1xuICBpZiAocC5jb2xsYWJvcmF0b3IpIHtcbiAgICByZXR1cm4gSUNPTl9QSV9VU0VSO1xuICB9XG4gIGlmIChwLmFjY291bnQpIHtcbiAgICByZXR1cm4gJ3BpIHBpLWJ1aWxkaW5nJztcbiAgfVxuICBpZiAocC5hY2NvdW50Q29udGFjdCkge1xuICAgIHJldHVybiAncGkgcGktaWQtY2FyZCc7XG4gIH1cbiAgaWYgKHAuZXh0ZXJuYWxQYXJ0aWNpcGFudCkge1xuICAgIHJldHVybiAncGkgcGktdXNlci1wbHVzJztcbiAgfVxuICByZXR1cm4gSUNPTl9QSV9VU0VSO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJpb3JpdHlTZXZlcml0eShwOiBzdHJpbmcpOiBQcmlvcml0eVNldmVyaXR5IHtcbiAgc3dpdGNoIChwKSB7XG4gICAgY2FzZSBTY2hlZHVsZVByaW9yaXR5Lkxvdzoge1xuICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICB9XG4gICAgY2FzZSBTY2hlZHVsZVByaW9yaXR5Lk1lZGl1bToge1xuICAgICAgcmV0dXJuICdpbmZvJztcbiAgICB9XG4gICAgY2FzZSBTY2hlZHVsZVByaW9yaXR5LkhpZ2g6IHtcbiAgICAgIHJldHVybiAnd2Fybic7XG4gICAgfVxuICAgIGNhc2UgU2NoZWR1bGVQcmlvcml0eS5Dcml0aWNhbDoge1xuICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gJ2luZm8nO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJpb3JpdHlMYWJlbCh0OiBUcmFuc2xhdG9yLCBwOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdC50cmFuc2xhdGUoYGNybXguY29tcG9uZW50cy5zY2hlZHVsZV9wcmlvcml0eV8ke3AudG9Mb3dlckNhc2UoKX1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpcm1hdGlvblNldmVyaXR5KGM6IHN0cmluZyk6IENvbmZpcm1hdGlvblNldmVyaXR5IHtcbiAgc3dpdGNoIChjKSB7XG4gICAgY2FzZSAnWUVTJzoge1xuICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICB9XG4gICAgY2FzZSAnTk8nOiB7XG4gICAgICByZXR1cm4gJ2Rhbmdlcic7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiAnd2Fybic7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maXJtYXRpb25MYWJlbCh0OiBUcmFuc2xhdG9yLCBjOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGMpIHtcbiAgICBjYXNlICdZRVMnOiB7XG4gICAgICByZXR1cm4gdC50cmFuc2xhdGUoJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9jb25maXJtYXRpb25feWVzJyk7XG4gICAgfVxuICAgIGNhc2UgJ05PJzoge1xuICAgICAgcmV0dXJuIHQudHJhbnNsYXRlKCdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfY29uZmlybWF0aW9uX25vJyk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiB0LnRyYW5zbGF0ZSgnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX2NvbmZpcm1hdGlvbl9wZW5kaW5nJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DialogModule } from 'primeng/dialog';
4
+ import { DividerModule } from 'primeng/divider';
5
+ import { TagModule } from 'primeng/tag';
6
+ import { TableModule } from 'primeng/table';
7
+ import { TranslatePipe } from '@seniorsistemas/components-ai';
8
+ import { getParticipantName, getParticipantType, getParticipantTypeIcon, getPrioritySeverity, getPriorityLabel, getConfirmationSeverity, getConfirmationLabel } from '../helpers/schedule-display.helpers';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../services/schedule.service";
11
+ import * as i2 from "@seniorsistemas/components-ai";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "primeng/dialog";
14
+ import * as i5 from "primeng/api";
15
+ import * as i6 from "primeng/divider";
16
+ import * as i7 from "primeng/tag";
17
+ import * as i8 from "primeng/table";
18
+ export class ScheduleDetailComponent {
19
+ scheduleService;
20
+ t;
21
+ visible = false;
22
+ visibleChange = new EventEmitter();
23
+ schedule = null;
24
+ scheduleData = null;
25
+ participants = [];
26
+ participantsLoading = false;
27
+ loading = false;
28
+ constructor(scheduleService, t) {
29
+ this.scheduleService = scheduleService;
30
+ this.t = t;
31
+ }
32
+ open(scheduleId) {
33
+ this.schedule = null;
34
+ this.scheduleData = null;
35
+ this.participants = [];
36
+ this.loading = true;
37
+ this.participantsLoading = true;
38
+ this.visible = true;
39
+ this.visibleChange.emit(true);
40
+ this.scheduleService.get(scheduleId).subscribe({
41
+ next: (data) => {
42
+ this.scheduleData = data;
43
+ this.schedule = {
44
+ id: data.id, name: data.name,
45
+ scheduleType: data.type ?? null,
46
+ withRecurrence: data.withRecurrence,
47
+ whenOccurs: data.whenOccurs ?? '',
48
+ allDay: data.allDay, startTime: data.startTime,
49
+ endTime: data.endTime, priority: data.priority
50
+ };
51
+ this.loading = false;
52
+ },
53
+ error: () => { this.loading = false; }
54
+ });
55
+ this.scheduleService.listParticipants(scheduleId).subscribe({
56
+ next: (r) => { this.participants = r.contents ?? []; this.participantsLoading = false; },
57
+ error: () => { this.participantsLoading = false; }
58
+ });
59
+ }
60
+ onClose() { this.visible = false; this.visibleChange.emit(false); }
61
+ getParticipantName(p) { return getParticipantName(p); }
62
+ getParticipantType(p) { return getParticipantType(this.t, p); }
63
+ getParticipantTypeIcon(p) { return getParticipantTypeIcon(p); }
64
+ getPrioritySeverity(p) { return getPrioritySeverity(p); }
65
+ getPriorityLabel(p) { return getPriorityLabel(this.t, p); }
66
+ getConfirmationSeverity(c) { return getConfirmationSeverity(c); }
67
+ getConfirmationLabel(c) { return getConfirmationLabel(this.t, c); }
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.ScheduleService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i6.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i7.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 's-schedule-detail', standalone: true, imports: [CommonModule, DialogModule, DividerModule, TagModule, TableModule, TranslatePipe], template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"] }]
74
+ }], ctorParameters: () => [{ type: i1.ScheduleService }, { type: i2.TranslationService }], propDecorators: { visible: [{
75
+ type: Input
76
+ }], visibleChange: [{
77
+ type: Output
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUtZGV0YWlsL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL3NjaGVkdWxlLWRldGFpbC9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUdsRixPQUFPLEVBQ0wsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQzlELG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUM5RCxvQkFBb0IsRUFDckIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQVM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBaUJmO0lBQ0E7SUFqQlYsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNmLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRE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QUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixnQkFBZ0IsQ0FBQyxDQUFTLElBQVksT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSx1QkFBdUIsQ0FBQyxDQUFTLElBQTBCLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9GLG9CQUFvQixDQUFDLENBQVMsSUFBWSxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dHQTNEeEUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsMEpDdEJwQyxnMktBa0xBLDRsQ0RoS1ksWUFBWSxrSUFBRSxZQUFZLDBnQ0FBRSxhQUFhLDBKQUFFLFNBQVMsK0pBQUUsV0FBVyx1K0RBQUUsYUFBYTs7NEZBSS9FLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7cUhBS2xGLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcbmltcG9ydCB7IFRhZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFnJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvY29tcG9uZW50cy1haSc7XG5pbXBvcnQgeyBTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY2hlZHVsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjaGVkdWxlLCBTY2hlZHVsZVBhcnRpY2lwYW50IH0gZnJvbSAnLi4vZW50aXRpZXMvc2NoZWR1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGdldFBhcnRpY2lwYW50TmFtZSwgZ2V0UGFydGljaXBhbnRUeXBlLCBnZXRQYXJ0aWNpcGFudFR5cGVJY29uLFxuICBnZXRQcmlvcml0eVNldmVyaXR5LCBnZXRQcmlvcml0eUxhYmVsLCBnZXRDb25maXJtYXRpb25TZXZlcml0eSxcbiAgZ2V0Q29uZmlybWF0aW9uTGFiZWwsIFByaW9yaXR5U2V2ZXJpdHksIENvbmZpcm1hdGlvblNldmVyaXR5XG59IGZyb20gJy4uL2hlbHBlcnMvc2NoZWR1bGUtZGlzcGxheS5oZWxwZXJzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1zY2hlZHVsZS1kZXRhaWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIERpdmlkZXJNb2R1bGUsIFRhZ01vZHVsZSwgVGFibGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNjaGVkdWxlOiB7XG4gICAgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nO1xuICAgIHNjaGVkdWxlVHlwZTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSB8IG51bGw7XG4gICAgd2l0aFJlY3VycmVuY2U6IGJvb2xlYW47IHdoZW5PY2N1cnM6IHN0cmluZztcbiAgICBhbGxEYXk6IGJvb2xlYW47IHN0YXJ0VGltZT86IHN0cmluZzsgZW5kVGltZT86IHN0cmluZztcbiAgICBwcmlvcml0eTogc3RyaW5nOyBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9IHwgbnVsbCA9IG51bGw7XG4gIHNjaGVkdWxlRGF0YTogU2NoZWR1bGUgfCBudWxsID0gbnVsbDtcbiAgcGFydGljaXBhbnRzOiBTY2hlZHVsZVBhcnRpY2lwYW50W10gPSBbXTtcbiAgcGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY2hlZHVsZVNlcnZpY2U6IFNjaGVkdWxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHQ6IFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgb3BlbihzY2hlZHVsZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlID0gbnVsbDtcbiAgICB0aGlzLnNjaGVkdWxlRGF0YSA9IG51bGw7XG4gICAgdGhpcy5wYXJ0aWNpcGFudHMgPSBbXTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgIHRoaXMuc2NoZWR1bGVTZXJ2aWNlLmdldChzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5zY2hlZHVsZURhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnNjaGVkdWxlID0ge1xuICAgICAgICAgIGlkOiBkYXRhLmlkLCBuYW1lOiBkYXRhLm5hbWUsXG4gICAgICAgICAgc2NoZWR1bGVUeXBlOiBkYXRhLnR5cGUgPz8gbnVsbCxcbiAgICAgICAgICB3aXRoUmVjdXJyZW5jZTogZGF0YS53aXRoUmVjdXJyZW5jZSxcbiAgICAgICAgICB3aGVuT2NjdXJzOiBkYXRhLndoZW5PY2N1cnMgPz8gJycsXG4gICAgICAgICAgYWxsRGF5OiBkYXRhLmFsbERheSwgc3RhcnRUaW1lOiBkYXRhLnN0YXJ0VGltZSxcbiAgICAgICAgICBlbmRUaW1lOiBkYXRhLmVuZFRpbWUsIHByaW9yaXR5OiBkYXRhLnByaW9yaXR5XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMubG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVNlcnZpY2UubGlzdFBhcnRpY2lwYW50cyhzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHIpID0+IHsgdGhpcy5wYXJ0aWNpcGFudHMgPSByLmNvbnRlbnRzID8/IFtdOyB0aGlzLnBhcnRpY2lwYW50c0xvYWRpbmcgPSBmYWxzZTsgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQgeyB0aGlzLnZpc2libGUgPSBmYWxzZTsgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpOyB9XG5cbiAgZ2V0UGFydGljaXBhbnROYW1lKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpOiBzdHJpbmcgeyByZXR1cm4gZ2V0UGFydGljaXBhbnROYW1lKHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZShwOiBTY2hlZHVsZVBhcnRpY2lwYW50KTogc3RyaW5nIHsgcmV0dXJuIGdldFBhcnRpY2lwYW50VHlwZSh0aGlzLnQsIHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZUljb24ocDogU2NoZWR1bGVQYXJ0aWNpcGFudCk6IHN0cmluZyB7IHJldHVybiBnZXRQYXJ0aWNpcGFudFR5cGVJY29uKHApOyB9XG4gIGdldFByaW9yaXR5U2V2ZXJpdHkocDogc3RyaW5nKTogUHJpb3JpdHlTZXZlcml0eSB7IHJldHVybiBnZXRQcmlvcml0eVNldmVyaXR5KHApOyB9XG4gIGdldFByaW9yaXR5TGFiZWwocDogc3RyaW5nKTogc3RyaW5nIHsgcmV0dXJuIGdldFByaW9yaXR5TGFiZWwodGhpcy50LCBwKTsgfVxuICBnZXRDb25maXJtYXRpb25TZXZlcml0eShjOiBzdHJpbmcpOiBDb25maXJtYXRpb25TZXZlcml0eSB7IHJldHVybiBnZXRDb25maXJtYXRpb25TZXZlcml0eShjKTsgfVxuICBnZXRDb25maXJtYXRpb25MYWJlbChjOiBzdHJpbmcpOiBzdHJpbmcgeyByZXR1cm4gZ2V0Q29uZmlybWF0aW9uTGFiZWwodGhpcy50LCBjKTsgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJdPVwic2NoZWR1bGU/Lm5hbWUgfHwgJydcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIHN0eWxlQ2xhc3M9XCJkZXRhaWwtZGlhbG9nXCJcbiAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gIFtyZXNpemFibGVdPVwiZmFsc2VcIlxuICAob25IaWRlKT1cIm9uQ2xvc2UoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLWJvZHlcIiAqbmdJZj1cInNjaGVkdWxlXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXNlY3Rpb25cIlxuICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGFcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcHJpb3JpdHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHAtdGFnXG4gICAgICAgICAgW3ZhbHVlXT1cImdldFByaW9yaXR5TGFiZWwoc2NoZWR1bGUucHJpb3JpdHkpXCJcbiAgICAgICAgICBbc2V2ZXJpdHldPVwiZ2V0UHJpb3JpdHlTZXZlcml0eShzY2hlZHVsZS5wcmlvcml0eSlcIlxuICAgICAgICA+PC9wLXRhZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS5zY2hlZHVsZVR5cGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfdHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBzY2hlZHVsZS5zY2hlZHVsZVR5cGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGFydF9kYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IHNjaGVkdWxlRGF0YS5zdGFydERhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiXG4gICAgICAgICpuZ0lmPVwic2NoZWR1bGVEYXRhLmVuZERhdGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfZW5kX2RhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGVEYXRhLmVuZERhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiXG4gICAgICAgICpuZ0lmPVwiIXNjaGVkdWxlLmFsbERheSAmJiBzY2hlZHVsZS5zdGFydFRpbWVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhcnRfdGltZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyBzY2hlZHVsZS5zdGFydFRpbWUgfX0gLSB7eyBzY2hlZHVsZS5lbmRUaW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS5hbGxEYXlcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhcnRfdGltZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX2FsbF9kYXknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS53aGVuT2NjdXJzXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3JlY3VycmVuY2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGUud2hlbk9jY3VycyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGEuY29tbWVudHNcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfY29tbWVudHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGVEYXRhLmNvbW1lbnRzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHAtZGl2aWRlciAqbmdJZj1cInNjaGVkdWxlRGF0YVwiPjwvcC1kaXZpZGVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1zZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwic2NoZWR1bGVEYXRhXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlcnNcIj48L2k+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcGFydGljaXBhbnRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwLXRhYmxlXG4gICAgICAgIFt2YWx1ZV09XCJwYXJ0aWNpcGFudHNcIlxuICAgICAgICBbbG9hZGluZ109XCJwYXJ0aWNpcGFudHNMb2FkaW5nXCJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtIHAtZGF0YXRhYmxlLXN0cmlwZWRcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfbmFtZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC1wYXJ0aWNpcGFudC10eXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9wYXJ0aWNpcGFudF90eXBlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29sLXN0YXR1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhdHVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1wPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0UGFydGljaXBhbnROYW1lKHApIH19PC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50LXR5cGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0UGFydGljaXBhbnRUeXBlSWNvbihwKVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFBhcnRpY2lwYW50VHlwZShwKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8cC10YWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cInAub3JnYW5pemVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X29yZ2FuaXplcl9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHNldmVyaXR5PVwiaW5mb1wiXG4gICAgICAgICAgICAgID48L3AtdGFnPlxuICAgICAgICAgICAgICA8cC10YWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFwLm9yZ2FuaXplclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIlxuICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlybWF0aW9uTGFiZWwocC5jb25maXJtYXRpb24pXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwiXG4gICAgICAgICAgICAgICAgICBnZXRDb25maXJtYXRpb25TZXZlcml0eShwLmNvbmZpcm1hdGlvbilcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9wLXRhZz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhbnRzLWVtcHR5XCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2Vyc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfbm9fcGFydGljaXBhbnRzJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L3AtdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9wLWRpYWxvZz5cbiJdfQ==