@colijnit/sharedcomponents 1.0.69 → 254.1.1

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 (165) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +3285 -4
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +36 -0
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +37 -1
  6. package/esm2015/lib/components/activity-list-header/activity-list-header.component.js +67 -0
  7. package/esm2015/lib/components/activity-list-header/activity-list-header.module.js +28 -0
  8. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.js +55 -0
  9. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.component.js +103 -0
  10. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.module.js +34 -0
  11. package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +129 -0
  12. package/esm2015/lib/components/activity-overview-component/component-activity-overview.module.js +26 -0
  13. package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +284 -0
  14. package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.js +100 -0
  15. package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.js +25 -0
  16. package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +134 -0
  17. package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +118 -0
  18. package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.js +27 -0
  19. package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +88 -0
  20. package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.js +24 -0
  21. package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +77 -0
  22. package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.js +24 -0
  23. package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +71 -0
  24. package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.js +25 -0
  25. package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +102 -0
  26. package/esm2015/lib/components/modify-task-form/components/task-details/task-details.module.js +25 -0
  27. package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +258 -0
  28. package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +33 -0
  29. package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +293 -0
  30. package/esm2015/lib/components/open-activity-list/component-activity-list.module.js +30 -0
  31. package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +264 -0
  32. package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.js +41 -0
  33. package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..js +19 -0
  34. package/esm2015/lib/components/task-modifyer/task-modifier.component.js +270 -0
  35. package/esm2015/lib/components/task-modifyer/task-modifyer.module..js +31 -0
  36. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.js +53 -0
  37. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.js +81 -0
  38. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.js +34 -0
  39. package/esm2015/lib/directives/absolute-overlay-template.directive.js +29 -0
  40. package/esm2015/lib/directives/align-with.directive.js +174 -0
  41. package/esm2015/lib/directives/click-outside.directive.js +25 -0
  42. package/esm2015/lib/directives/directives.module.js +22 -0
  43. package/esm2015/lib/enum/activity-cfg-name.enum.js +29 -0
  44. package/esm2015/lib/enum/app-button-type.enum.js +11 -0
  45. package/esm2015/lib/enum/icon.enum.js +13 -1
  46. package/esm2015/lib/interface/activities-task-config-names.js +2 -0
  47. package/esm2015/lib/interface/operation-callback-activity.js +5 -0
  48. package/esm2015/lib/interface/operation-callback-function-with-validation.js +5 -0
  49. package/esm2015/lib/model/icon-svg.js +13 -1
  50. package/esm2015/lib/service/app-absolute-overlay-outlet.service.js +20 -0
  51. package/esm2015/lib/service/shared-connector.service.js +121 -1
  52. package/esm2015/lib/service/shared.service.js +50 -1
  53. package/esm2015/lib/utils/browser-utils.js +100 -0
  54. package/esm2015/lib/utils/event-utils.js +59 -0
  55. package/esm2015/lib/utils/string-utils.js +5 -1
  56. package/esm2015/public-api.js +3 -1
  57. package/fesm2015/colijnit-sharedcomponents.js +3413 -3
  58. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  59. package/lib/components/activity-list-header/activity-list-header.component.d.ts +25 -0
  60. package/lib/components/activity-list-header/activity-list-header.module.d.ts +2 -0
  61. package/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.d.ts +11 -0
  62. package/lib/components/activity-list-header/components/period-filter/period-filter.component.d.ts +26 -0
  63. package/lib/components/activity-list-header/components/period-filter/period-filter.module.d.ts +2 -0
  64. package/lib/components/activity-list-header/components/period-filter/style/_layout.scss +62 -0
  65. package/lib/components/activity-list-header/components/period-filter/style/_material-definition.scss +1 -0
  66. package/lib/components/activity-list-header/components/period-filter/style/_theme.scss +5 -0
  67. package/lib/components/activity-list-header/components/period-filter/style/material.scss +4 -0
  68. package/lib/components/activity-list-header/style/_layout.scss +84 -0
  69. package/lib/components/activity-list-header/style/_material-definition.scss +1 -0
  70. package/lib/components/activity-list-header/style/_theme.scss +5 -0
  71. package/lib/components/activity-list-header/style/material.scss +4 -0
  72. package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +13 -0
  73. package/lib/components/activity-overview-component/component-activity-overview.module.d.ts +2 -0
  74. package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +84 -0
  75. package/lib/components/activity-overview-component/style/_layout.scss +107 -0
  76. package/lib/components/activity-overview-component/style/_material-definition.scss +1 -0
  77. package/lib/components/activity-overview-component/style/_theme.scss +5 -0
  78. package/lib/components/activity-overview-component/style/material.scss +4 -0
  79. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.d.ts +31 -0
  80. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.d.ts +2 -0
  81. package/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +139 -0
  82. package/lib/components/modify-task-form/components/activity-summary-block/style/_material-definition.scss +0 -0
  83. package/lib/components/modify-task-form/components/activity-summary-block/style/_theme.scss +5 -0
  84. package/lib/components/modify-task-form/components/activity-summary-block/style/material.scss +4 -0
  85. package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +53 -0
  86. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.d.ts +28 -0
  87. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.d.ts +2 -0
  88. package/lib/components/modify-task-form/components/creation-summary-block/style/_layout.scss +5 -0
  89. package/lib/components/modify-task-form/components/creation-summary-block/style/_material-definition.scss +0 -0
  90. package/lib/components/modify-task-form/components/creation-summary-block/style/_theme.scss +5 -0
  91. package/lib/components/modify-task-form/components/creation-summary-block/style/material.scss +4 -0
  92. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +24 -0
  93. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.d.ts +2 -0
  94. package/lib/components/modify-task-form/components/executive-summary-block/style/_layout.scss +5 -0
  95. package/lib/components/modify-task-form/components/executive-summary-block/style/_material-definition.scss +0 -0
  96. package/lib/components/modify-task-form/components/executive-summary-block/style/_theme.scss +5 -0
  97. package/lib/components/modify-task-form/components/executive-summary-block/style/material.scss +4 -0
  98. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.d.ts +23 -0
  99. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.d.ts +2 -0
  100. package/lib/components/modify-task-form/components/notification-summary-block/style/_layout.scss +161 -0
  101. package/lib/components/modify-task-form/components/notification-summary-block/style/_material-definition.scss +0 -0
  102. package/lib/components/modify-task-form/components/notification-summary-block/style/_theme.scss +5 -0
  103. package/lib/components/modify-task-form/components/notification-summary-block/style/material.scss +4 -0
  104. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +15 -0
  105. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.d.ts +2 -0
  106. package/lib/components/modify-task-form/components/status-summary-block/style/_layout.scss +18 -0
  107. package/lib/components/modify-task-form/components/status-summary-block/style/_material-definition.scss +0 -0
  108. package/lib/components/modify-task-form/components/status-summary-block/style/_theme.scss +5 -0
  109. package/lib/components/modify-task-form/components/status-summary-block/style/material.scss +4 -0
  110. package/lib/components/modify-task-form/components/task-details/style/_layout.scss +142 -0
  111. package/lib/components/modify-task-form/components/task-details/style/_material-definition.scss +0 -0
  112. package/lib/components/modify-task-form/components/task-details/style/_theme.scss +5 -0
  113. package/lib/components/modify-task-form/components/task-details/style/material.scss +4 -0
  114. package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +21 -0
  115. package/lib/components/modify-task-form/components/task-details/task-details.module.d.ts +2 -0
  116. package/lib/components/modify-task-form/modify-task-form.component.d.ts +49 -0
  117. package/lib/components/modify-task-form/modify-task-form.module.d.ts +2 -0
  118. package/lib/components/modify-task-form/style/_layout.scss +135 -0
  119. package/lib/components/modify-task-form/style/_material-definition.scss +0 -0
  120. package/lib/components/modify-task-form/style/_theme.scss +5 -0
  121. package/lib/components/modify-task-form/style/material.scss +4 -0
  122. package/lib/components/open-activity-list/component-activity-list.component.d.ts +69 -0
  123. package/lib/components/open-activity-list/component-activity-list.module.d.ts +2 -0
  124. package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +46 -0
  125. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.d.ts +4 -0
  126. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..d.ts +2 -0
  127. package/lib/components/open-activity-list/components/personal-activity-overview/style/_layout.scss +105 -0
  128. package/lib/components/open-activity-list/components/personal-activity-overview/style/_material-definition.scss +0 -0
  129. package/lib/components/open-activity-list/components/personal-activity-overview/style/_theme.scss +4 -0
  130. package/lib/components/open-activity-list/components/personal-activity-overview/style/material.scss +4 -0
  131. package/lib/components/open-activity-list/style/_layout.scss +26 -0
  132. package/lib/components/open-activity-list/style/_material-definition.scss +0 -0
  133. package/lib/components/open-activity-list/style/_theme.scss +4 -0
  134. package/lib/components/open-activity-list/style/material.scss +4 -0
  135. package/lib/components/task-modifyer/style/_layout.scss +5 -0
  136. package/lib/components/task-modifyer/style/_material-definition.scss +0 -0
  137. package/lib/components/task-modifyer/style/_theme.scss +4 -0
  138. package/lib/components/task-modifyer/style/material.scss +4 -0
  139. package/lib/components/task-modifyer/task-modifier.component.d.ts +67 -0
  140. package/lib/components/task-modifyer/task-modifyer.module..d.ts +2 -0
  141. package/lib/components/workflow-notification-toggle/style/_layout.scss +59 -0
  142. package/lib/components/workflow-notification-toggle/style/_material-definition.scss +0 -0
  143. package/lib/components/workflow-notification-toggle/style/_theme.scss +4 -0
  144. package/lib/components/workflow-notification-toggle/style/material.scss +4 -0
  145. package/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.d.ts +15 -0
  146. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.d.ts +28 -0
  147. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.d.ts +2 -0
  148. package/lib/directives/absolute-overlay-template.directive.d.ts +9 -0
  149. package/lib/directives/align-with.directive.d.ts +35 -0
  150. package/lib/directives/click-outside.directive.d.ts +7 -0
  151. package/lib/directives/directives.module.d.ts +2 -0
  152. package/lib/enum/activity-cfg-name.enum.d.ts +27 -0
  153. package/lib/enum/app-button-type.enum.d.ts +9 -0
  154. package/lib/enum/icon.enum.d.ts +12 -0
  155. package/lib/interface/activities-task-config-names.d.ts +12 -0
  156. package/lib/interface/operation-callback-activity.d.ts +5 -0
  157. package/lib/interface/operation-callback-function-with-validation.d.ts +5 -0
  158. package/lib/service/app-absolute-overlay-outlet.service.d.ts +9 -0
  159. package/lib/service/shared-connector.service.d.ts +18 -0
  160. package/lib/service/shared.service.d.ts +16 -0
  161. package/lib/utils/browser-utils.d.ts +15 -0
  162. package/lib/utils/event-utils.d.ts +12 -0
  163. package/lib/utils/string-utils.d.ts +1 -0
  164. package/package.json +6 -5
  165. package/public-api.d.ts +2 -0
@@ -0,0 +1,129 @@
1
+ import { Component, HostBinding } from "@angular/core";
2
+ import { CoreDialogService } from "@colijnit/corecomponents_v12";
3
+ import { animate, state, style, transition, trigger } from "@angular/animations";
4
+ import { BaseActivityOverviewComponent } from "./components/base-activity-overview.component";
5
+ import { Icon } from "../../enum/icon.enum";
6
+ import { IconCacheService } from "../../service/icon-cache.service";
7
+ import { DictionaryService } from "../../service/dictionary.service";
8
+ export class ComponentActivityOverviewComponent extends BaseActivityOverviewComponent {
9
+ constructor(iconCacheService, dialogService, dictionaryService) {
10
+ super(dialogService, dictionaryService);
11
+ this.iconCacheService = iconCacheService;
12
+ this.dialogService = dialogService;
13
+ this.dictionaryService = dictionaryService;
14
+ this.Icon = Icon;
15
+ }
16
+ showClass() {
17
+ return true;
18
+ }
19
+ }
20
+ ComponentActivityOverviewComponent.decorators = [
21
+ { type: Component, args: [{
22
+ selector: "co-component-activity-overview",
23
+ template: `
24
+ <div class="overview-wrapper">
25
+ <div class="overview-wrapper-icons">
26
+ <co-icon *ngIf="userIsSupervisor && (!isTask || firstTriggerToCloseWF === undefined)" icon="supervisor"
27
+ class="supervisor-icon big dark"
28
+ [title]="'MY_TASKS_SUPERVISOR' | localize"></co-icon>
29
+ </div>
30
+ <div class="overview-wrapper-labels">
31
+ <div class="activity-title" [textContent]="activityTitle"></div>
32
+ <div class="activity-context-title" [textContent]="activityContextTitle"></div>
33
+ </div>
34
+ <div class="overview-wrapper-date">
35
+ <div class="date-wrapper" [class.overdue]="overDue">
36
+ <ng-container *ngIf="!sameDates">
37
+ <div class="date" [textContent]="targetDate | date:'dd-MM-YYYY'"></div>
38
+ <div class="date-divider" [textContent]="'-'"></div>
39
+ </ng-container>
40
+ <div class="date" [textContent]="deadlineDate | date:'dd-MM-YYYY'"></div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class="overview-main">
45
+ <ng-container *ngIf="isTask && firstTriggerToCloseWF !== undefined">
46
+ <co-button class="trans-green custom-text button-trigger no-margin" [label]="firstTriggerToCloseWF.description"
47
+ (click)="handleButtonEndClick()"></co-button>
48
+ </ng-container>
49
+ <ng-container *ngIf="openButtonLabel">
50
+ <co-button class="trans-green default-bg custom-text button-trigger-icon action-hover no-margin"
51
+ iconClass="custom small" [iconData]="iconCacheService.getIcon(icon.DetailView)" [label]="openButtonLabel | localize"
52
+ (click)="handleOpenLink($event)"></co-button>
53
+ </ng-container>
54
+ <!--TODO reinstate this when we figure out how to trigger a screen change. -->
55
+ <!--<ng-container *ngIf="urls && urls.length > 0">
56
+ <button-colijn *ngFor="let url of urls"
57
+ class="trans-green custom-text button-trigger-icon action-hover no-margin"
58
+ [icon]="icon.DetailView"
59
+ [label]="'OPEN_LINK' | localize"
60
+ iconClass="custom small"
61
+ (click)="handleOpenLink($event, url)"></button-colijn>
62
+ </ng-container>-->
63
+ <ng-container *ngIf="!isTask && hasTriggers">
64
+ <co-button class="trans-green custom-text action-hover button-trigger no-margin" *ngFor="let trigger of workFlow.manualGenericTriggers"
65
+ [class.button-trigger-icon]="trigger.isTaskTrigger"
66
+ [label]="trigger.triggerButtonName"
67
+ [iconData]="trigger.isTaskTrigger ? iconCacheService.getIcon(icon.Account): null"
68
+ iconClass="custom small"
69
+ (click)="handleGenericTriggerClick(trigger)"
70
+ ></co-button>
71
+ <co-button class="trans-green custom-text action-hover button-trigger no-margin" *ngFor="let trigger of workFlow.manualTriggers"
72
+ [class.high-prio]="trigger.overDue"
73
+ [class.button-trigger-icon]="trigger.isTaskTrigger"
74
+ [label]="trigger.triggerButtonName"
75
+ [iconData]="trigger.isTaskTrigger ? iconCacheService.getIcon(icon.DetailView): null"
76
+ iconClass="custom small"
77
+ (click)="handleTriggerClick(trigger)"
78
+ ></co-button >
79
+ </ng-container>
80
+ </div>
81
+ <!--TODO reinstate this when we figure out how to trigger a screen change. -->
82
+ <!-- <formbuilder-user-form *ngIf="showCreateForm"
83
+ [showPopup]="showCreateForm"
84
+ [table]="table"
85
+ [key]="key"
86
+ [form]="form"
87
+ (cancelForm)="doCancelForm()"
88
+ (saveForm)="doSaveForm($event)"
89
+ ></formbuilder-user-form>-->
90
+ <co-task-modifier
91
+ [userGroupId]="userGroupId"
92
+ [relationId]="userRelationId"
93
+ [tryLockTaskOperation]="lockTaskOperation"
94
+ [deleteActivityOperation]="deleteActivityOperation"
95
+ [upsertActivityOperation]="upsertActivityOperation"
96
+ (editingComplete)="onSaveActivity($event)"
97
+ (activityDeleted)="onDeleteActivity($event)"
98
+ (showWorkLog)="showTaskFormAndWorkLog()"
99
+ ></co-task-modifier>
100
+
101
+ `,
102
+ /* providers: [
103
+ {provide: BaseModuleScreenConfigService, useExisting: ScreenConfigurationMockService}
104
+ ],*/
105
+ animations: [
106
+ trigger("fadeInOut", [
107
+ state("void", style({ opacity: 0 })),
108
+ state("*", style({ opacity: 1 })),
109
+ transition(":enter, :leave", animate("200ms ease-in-out")),
110
+ ]),
111
+ trigger("showHideExtended", [
112
+ state("void", style({ "transform-origin": "top center", transform: "scaleY(0)" })),
113
+ state("*", style({ "transform-origin": "top center", transform: "scaleY(1)" })),
114
+ transition(":enter, :leave", [
115
+ animate("200ms ease-in-out")
116
+ ])
117
+ ])
118
+ ]
119
+ },] }
120
+ ];
121
+ ComponentActivityOverviewComponent.ctorParameters = () => [
122
+ { type: IconCacheService },
123
+ { type: CoreDialogService },
124
+ { type: DictionaryService }
125
+ ];
126
+ ComponentActivityOverviewComponent.propDecorators = {
127
+ showClass: [{ type: HostBinding, args: ["class.co-component-activity-overview",] }]
128
+ };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LW92ZXJ2aWV3LWNvbXBvbmVudC9jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBc0duRSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsNkJBQTZCO0lBT25GLFlBQW1CLGdCQUFrQyxFQUNsQyxhQUFnQyxFQUNoQyxpQkFBb0M7UUFFckQsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBYSxDQUFDO1FBSm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFSdkMsU0FBSSxHQUFnQixJQUFJLENBQUM7SUFXekMsQ0FBQztJQVJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OztZQXpHRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztnQkFDMUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4RVQ7Z0JBQ0g7O3NCQUVNO2dCQUNKLFVBQVUsRUFBRTtvQkFDUixPQUFPLENBQUMsV0FBVyxFQUFFO3dCQUNuQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3dCQUNsQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3dCQUMvQixVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUJBQzNELENBQUM7b0JBQ0YsT0FBTyxDQUFDLGtCQUFrQixFQUFFO3dCQUN4QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQzt3QkFDaEYsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7d0JBQzdFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTs0QkFDekIsT0FBTyxDQUFDLG1CQUFtQixDQUFDO3lCQUMvQixDQUFDO3FCQUNMLENBQUM7aUJBQ0w7YUFDSjs7O1lBdEdPLGdCQUFnQjtZQUpoQixpQkFBaUI7WUFLakIsaUJBQWlCOzs7d0JBeUd0QixXQUFXLFNBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvcmVEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlld1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctd3JhcHBlci1pY29uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJ1c2VySXNTdXBlcnZpc29yICYmICghaXNUYXNrIHx8IGZpcnN0VHJpZ2dlclRvQ2xvc2VXRiA9PT0gdW5kZWZpbmVkKVwiIGljb249XCJzdXBlcnZpc29yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VwZXJ2aXNvci1pY29uIGJpZyBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInTVlfVEFTS1NfU1VQRVJWSVNPUicgfCBsb2NhbGl6ZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy13cmFwcGVyLWxhYmVsc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXRpdGxlXCIgW3RleHRDb250ZW50XT1cImFjdGl2aXR5VGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1jb250ZXh0LXRpdGxlXCIgW3RleHRDb250ZW50XT1cImFjdGl2aXR5Q29udGV4dFRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctd3JhcHBlci1kYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS13cmFwcGVyXCIgW2NsYXNzLm92ZXJkdWVdPVwib3ZlckR1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2FtZURhdGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCIgW3RleHRDb250ZW50XT1cInRhcmdldERhdGUgfCBkYXRlOidkZC1NTS1ZWVlZJ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1kaXZpZGVyXCIgW3RleHRDb250ZW50XT1cIictJ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCIgW3RleHRDb250ZW50XT1cImRlYWRsaW5lRGF0ZSB8IGRhdGU6J2RkLU1NLVlZWVknXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LW1haW5cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGFzayAmJiBmaXJzdFRyaWdnZXJUb0Nsb3NlV0YgIT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zLWdyZWVuIGN1c3RvbS10ZXh0IGJ1dHRvbi10cmlnZ2VyIG5vLW1hcmdpblwiIFtsYWJlbF09XCJmaXJzdFRyaWdnZXJUb0Nsb3NlV0YuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkVuZENsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcGVuQnV0dG9uTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJ0cmFucy1ncmVlbiBkZWZhdWx0LWJnIGN1c3RvbS10ZXh0IGJ1dHRvbi10cmlnZ2VyLWljb24gYWN0aW9uLWhvdmVyIG5vLW1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3M9XCJjdXN0b20gc21hbGxcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb24uRGV0YWlsVmlldylcIiBbbGFiZWxdPVwib3BlbkJ1dHRvbkxhYmVsIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wZW5MaW5rKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS1UT0RPIHJlaW5zdGF0ZSB0aGlzIHdoZW4gd2UgZmlndXJlIG91dCBob3cgdG8gdHJpZ2dlciBhIHNjcmVlbiBjaGFuZ2UuIC0tPlxyXG4gICAgICAgICAgICA8IS0tPG5nLWNvbnRhaW5lciAqbmdJZj1cInVybHMgJiYgdXJscy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uLWNvbGlqbiAqbmdGb3I9XCJsZXQgdXJsIG9mIHVybHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFucy1ncmVlbiBjdXN0b20tdGV4dCBidXR0b24tdHJpZ2dlci1pY29uIGFjdGlvbi1ob3ZlciBuby1tYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvbi5EZXRhaWxWaWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT1BFTl9MSU5LJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImN1c3RvbSBzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3BlbkxpbmsoJGV2ZW50LCB1cmwpXCI+PC9idXR0b24tY29saWpuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4tLT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1Rhc2sgJiYgaGFzVHJpZ2dlcnNcIj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gICAgIGNsYXNzPVwidHJhbnMtZ3JlZW4gY3VzdG9tLXRleHQgYWN0aW9uLWhvdmVyIGJ1dHRvbi10cmlnZ2VyIG5vLW1hcmdpblwiICpuZ0Zvcj1cImxldCB0cmlnZ2VyIG9mIHdvcmtGbG93Lm1hbnVhbEdlbmVyaWNUcmlnZ2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLXRyaWdnZXItaWNvbl09XCJ0cmlnZ2VyLmlzVGFza1RyaWdnZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInRyaWdnZXIudHJpZ2dlckJ1dHRvbk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cInRyaWdnZXIuaXNUYXNrVHJpZ2dlciA/IGljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uLkFjY291bnQpOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImN1c3RvbSBzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlR2VuZXJpY1RyaWdnZXJDbGljayh0cmlnZ2VyKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICAgICBjbGFzcz1cInRyYW5zLWdyZWVuIGN1c3RvbS10ZXh0IGFjdGlvbi1ob3ZlciBidXR0b24tdHJpZ2dlciBuby1tYXJnaW5cIiAqbmdGb3I9XCJsZXQgdHJpZ2dlciBvZiB3b3JrRmxvdy5tYW51YWxUcmlnZ2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaC1wcmlvXT1cInRyaWdnZXIub3ZlckR1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLXRyaWdnZXItaWNvbl09XCJ0cmlnZ2VyLmlzVGFza1RyaWdnZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInRyaWdnZXIudHJpZ2dlckJ1dHRvbk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cInRyaWdnZXIuaXNUYXNrVHJpZ2dlciA/IGljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uLkRldGFpbFZpZXcpOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImN1c3RvbSBzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVHJpZ2dlckNsaWNrKHRyaWdnZXIpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLWJ1dHRvbiA+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1UT0RPIHJlaW5zdGF0ZSB0aGlzIHdoZW4gd2UgZmlndXJlIG91dCBob3cgdG8gdHJpZ2dlciBhIHNjcmVlbiBjaGFuZ2UuIC0tPlxyXG4gICAgICAgIDwhLS0gPGZvcm1idWlsZGVyLXVzZXItZm9ybSAqbmdJZj1cInNob3dDcmVhdGVGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dQb3B1cF09XCJzaG93Q3JlYXRlRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZV09XCJ0YWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxGb3JtKT1cImRvQ2FuY2VsRm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVGb3JtKT1cImRvU2F2ZUZvcm0oJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvZm9ybWJ1aWxkZXItdXNlci1mb3JtPi0tPlxyXG4gICAgICAgIDxjby10YXNrLW1vZGlmaWVyXHJcbiAgICAgICAgICAgICAgICBbdXNlckdyb3VwSWRdPVwidXNlckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgW3JlbGF0aW9uSWRdPVwidXNlclJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgW3RyeUxvY2tUYXNrT3BlcmF0aW9uXT1cImxvY2tUYXNrT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtkZWxldGVBY3Rpdml0eU9wZXJhdGlvbl09XCJkZWxldGVBY3Rpdml0eU9wZXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbdXBzZXJ0QWN0aXZpdHlPcGVyYXRpb25dPVwidXBzZXJ0QWN0aXZpdHlPcGVyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGVkaXRpbmdDb21wbGV0ZSk9XCJvblNhdmVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChhY3Rpdml0eURlbGV0ZWQpPVwib25EZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChzaG93V29ya0xvZyk9XCJzaG93VGFza0Zvcm1BbmRXb3JrTG9nKClcIlxyXG4gICAgICAgID48L2NvLXRhc2stbW9kaWZpZXI+XHJcblxyXG4gICAgYCxcclxuICAvKiAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogU2NyZWVuQ29uZmlndXJhdGlvbk1vY2tTZXJ2aWNlfVxyXG4gICAgXSwqL1xyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoXCJmYWRlSW5PdXRcIiwgW1xyXG4gICAgICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHtvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgc3RhdGUoXCIqXCIsIHN0eWxlKHtvcGFjaXR5OiAxfSkpLFxyXG4gICAgICAgICAgdHJhbnNpdGlvbihcIjplbnRlciwgOmxlYXZlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSksXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlRXh0ZW5kZWRcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe1widHJhbnNmb3JtLW9yaWdpblwiOiBcInRvcCBjZW50ZXJcIiwgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwifSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe1widHJhbnNmb3JtLW9yaWdpblwiOiBcInRvcCBjZW50ZXJcIiwgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwifSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmVudGVyLCA6bGVhdmVcIiwgW1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSlcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQgZXh0ZW5kcyBCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgZGlhbG9nU2VydmljZTogQ29yZURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICAgICAgICAvKnB1YmxpYyByb3V0ZXI6IFJvdXRlciovKSB7XHJcbiAgICBzdXBlcihkaWFsb2dTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgLypyb3V0ZXIqLyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { ComponentActivityOverviewComponent } from "./component-activity-overview.component";
3
+ import { ButtonModule, IconModule } from "@colijnit/corecomponents_v12";
4
+ import { CommonModule } from "@angular/common";
5
+ import { LocalizationModule } from "../../localization/localization.module";
6
+ import { TaskModifyerModule } from "../task-modifyer/task-modifyer.module.";
7
+ export class ComponentActivityOverviewModule {
8
+ }
9
+ ComponentActivityOverviewModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ imports: [
12
+ ButtonModule,
13
+ CommonModule,
14
+ LocalizationModule,
15
+ IconModule,
16
+ TaskModifyerModule
17
+ ],
18
+ declarations: [
19
+ ComponentActivityOverviewComponent
20
+ ],
21
+ exports: [
22
+ ComponentActivityOverviewComponent
23
+ ],
24
+ },] }
25
+ ];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LW92ZXJ2aWV3LWNvbXBvbmVudC9jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFpQjFFLE1BQU0sT0FBTywrQkFBK0I7OztZQWYzQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLFVBQVU7b0JBQ1Ysa0JBQWtCO2lCQUNuQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osa0NBQWtDO2lCQUNuQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asa0NBQWtDO2lCQUNuQzthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21wb25lbnRBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0xvY2FsaXphdGlvbk1vZHVsZX0gZnJvbSBcIi4uLy4uL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlXCI7XHJcbmltcG9ydCB7VGFza01vZGlmeWVyTW9kdWxlfSBmcm9tIFwiLi4vdGFzay1tb2RpZnllci90YXNrLW1vZGlmeWVyLm1vZHVsZS5cIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIFRhc2tNb2RpZnllck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDb21wb25lbnRBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21wb25lbnRBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50XHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEFjdGl2aXR5T3ZlcnZpZXdNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,284 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Directive, EventEmitter, Injectable, Input, Output, ViewChild } from "@angular/core";
3
+ import { Activity } from "@colijnit/mainapi/build/model/activity.bo";
4
+ import { ActivityType } from "@colijnit/mainapi/build/enum/activity-type";
5
+ import { Task } from "@colijnit/mainapi/build/model/task.bo";
6
+ import { isNill } from "@colijnit/ioneconnector/build/utils/function/is-nill.function";
7
+ import { CoreDialogService } from "@colijnit/corecomponents_v12";
8
+ import { Icon } from "../../../enum/icon.enum";
9
+ import { ActivityCfgName } from "../../../enum/activity-cfg-name.enum";
10
+ import { OperationWithAlwaysSuccessCallback } from "../../../interface/operation-callback-simple-function";
11
+ import { OperationWithValidationCallback } from "../../../interface/operation-callback-function-with-validation";
12
+ import { InputBoolean } from "../../../decorator/input-boolean.decorator";
13
+ import { DictionaryService } from "../../../service/dictionary.service";
14
+ import { DateUtils } from "../../../utils/date-utils";
15
+ import { TaskModifierComponent } from "../../task-modifyer/task-modifier.component";
16
+ export class BaseActivityOverviewComponent {
17
+ constructor(_dialogService, _dictionaryService) {
18
+ this._dialogService = _dialogService;
19
+ this._dictionaryService = _dictionaryService;
20
+ this.icon = Icon;
21
+ this.cfgNames = ActivityCfgName;
22
+ this.taskCfgNames = {
23
+ timeRegistrationMandatory: ActivityCfgName.TimeRegistrationMandatory,
24
+ deleteActivityTaskButton: ActivityCfgName.DeleteActivityTaskButton,
25
+ statusSummaryHeader: ActivityCfgName.StatusSummaryHeader,
26
+ creationSummaryHeader: ActivityCfgName.CreationSummaryHeader,
27
+ executiveSummaryHeader: ActivityCfgName.ExecutiveSummaryHeader,
28
+ planningSummaryHeader: ActivityCfgName.PlanningSummaryHeader,
29
+ attachmentsHeader: ActivityCfgName.AttachmentsHeader,
30
+ notificationsSummaryHeader: ActivityCfgName.NotificationsSummaryHeader,
31
+ tagsHeader: ActivityCfgName.TagsHeader,
32
+ taskInvoice: ActivityCfgName.TaskInvoice
33
+ };
34
+ this.canFireTriggerOperation = OperationWithAlwaysSuccessCallback;
35
+ this.prepareWorkflowOperation = OperationWithAlwaysSuccessCallback;
36
+ this.lockTaskOperation = OperationWithAlwaysSuccessCallback;
37
+ this.deleteActivityOperation = OperationWithAlwaysSuccessCallback;
38
+ this.upsertActivityOperation = OperationWithAlwaysSuccessCallback;
39
+ this.fireGenericTriggerOperation = OperationWithValidationCallback;
40
+ this.fireTriggerOperation = OperationWithValidationCallback;
41
+ this.handleOpenLinkSidebar = false;
42
+ this.activityChange = new EventEmitter();
43
+ this.activityDeleted = new EventEmitter();
44
+ this.triggerFired = new EventEmitter();
45
+ this.genericTriggerFired = new EventEmitter();
46
+ this.formCreated = new EventEmitter();
47
+ this.openLink = new EventEmitter();
48
+ this.linkClicked = new EventEmitter();
49
+ this.overDue = false;
50
+ this.userIsSupervisor = false;
51
+ this.urls = [];
52
+ this.isTask = false;
53
+ this.hasTriggers = false;
54
+ this.sameDates = false;
55
+ this._activity = new Activity();
56
+ }
57
+ set viewModel(value) {
58
+ this._viewModel = value;
59
+ this.overDue = value.overDue;
60
+ this.activity = value.activity;
61
+ }
62
+ set triggerToFireOnSave(value) {
63
+ this._triggerToFireOnSave = value;
64
+ }
65
+ get triggerToFireOnSave() {
66
+ return this._triggerToFireOnSave;
67
+ }
68
+ set activity(value) {
69
+ this._activity = value;
70
+ this._prepareData();
71
+ }
72
+ get activity() {
73
+ return this._activity;
74
+ }
75
+ handleButtonEndClick() {
76
+ this.handleTriggerClick(this.firstTriggerToCloseWF);
77
+ }
78
+ handleGenericTriggerClick(event) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const result = yield this.fireGenericTriggerOperation(this.workFlow.workflowProcessId, event.genericTransitionId, this.userRelationId);
81
+ if (result.success) {
82
+ this.genericTriggerFired.next(this.activity);
83
+ }
84
+ else {
85
+ const messages = [];
86
+ const len = result.messages.length;
87
+ for (let i = 0; i < len; i++) {
88
+ messages.push(this._dictionaryService.get(result.messages[i].message.toUpperCase()));
89
+ }
90
+ this._dialogService.showError(messages.toString());
91
+ }
92
+ });
93
+ }
94
+ handleTriggerClick(eventTrigger) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ if (eventTrigger.isTaskTrigger && eventTrigger.taskId) {
97
+ //prepare task on the activity object, so the task modifier can handle it
98
+ this.activity.task = new Task();
99
+ this.activity.activityType = ActivityType.Task;
100
+ this.activity.task.taskId = eventTrigger.taskId;
101
+ this.taskModifier.startModifyingTask(this.activity);
102
+ }
103
+ else if (eventTrigger.isFormTrigger) {
104
+ //TODO reinstate when we know what to do with the formbuilder
105
+ /*this.form = await this._formRepo.getForm(eventTrigger.formId);
106
+ this.table = this.workFlow.table;
107
+ this.key = this.workFlow.key;
108
+ this.showCreateForm = true;*/
109
+ }
110
+ else {
111
+ /*if (eventTrigger.toClosedState && !await this.canFireTriggerOperation({activity: this.activity, task: this.activity.task})) {
112
+ await this.prepareWorkflowOperation({table: this.workFlow.table, key: this.workFlow.key});
113
+ this.triggerToFireOnSave = eventTrigger;
114
+ this.showTaskFormAndWorkLog();
115
+ return;
116
+ }*/
117
+ const result = yield this.fireTriggerOperation(this.workFlow.workflowProcessId, this.workFlow.sequence, eventTrigger.triggerId);
118
+ if (result.success) {
119
+ this.triggerFired.next(this.activity);
120
+ }
121
+ else {
122
+ const messages = [];
123
+ const len = result.messages.length;
124
+ for (let i = 0; i < len; i++) {
125
+ messages.push(this._dictionaryService.get(result.messages[i].message.toUpperCase()));
126
+ }
127
+ this._dialogService.showError(messages.toString());
128
+ }
129
+ }
130
+ });
131
+ }
132
+ handleOpenLink(event, url) {
133
+ this._stopEventPropagation(event);
134
+ if (url) { // breadCrumbs to url
135
+ this._openUrl(url);
136
+ }
137
+ else {
138
+ this.startModifyingTask();
139
+ }
140
+ }
141
+ handleOpenLinkOrUrl(event) {
142
+ this._stopEventPropagation(event);
143
+ if (this.link && this.link.module) {
144
+ this.linkClicked.next({ module: this.link.module, id: this.link.id });
145
+ }
146
+ else if (this.urls && this.urls.length) {
147
+ this._openUrl(this.urls[0]);
148
+ }
149
+ else {
150
+ this.startModifyingTask();
151
+ }
152
+ }
153
+ startModifyingTask() {
154
+ if (this.workFlow && this.workFlow.workFlowHasOneTaskTrigger) {
155
+ this.activity.task = new Task();
156
+ this.activity.activityType = ActivityType.Task;
157
+ this.activity.task.taskId = this.workFlow.taskIdFromTaskTrigger;
158
+ }
159
+ if (this.activity.task) {
160
+ if (this.handleOpenLinkSidebar === true) {
161
+ this.openLink.next(this.activity);
162
+ }
163
+ else {
164
+ this.taskModifier.startModifyingTask(this.activity);
165
+ }
166
+ }
167
+ // TODO: for now a message is shown.
168
+ else if (this.workFlow) {
169
+ this._dialogService.showInformation("Component: " + this.workFlow.component + " key: " + this.workFlow.displayKey);
170
+ }
171
+ }
172
+ showTaskFormAndWorkLog() {
173
+ if (this.activity.task) {
174
+ //TODO REINSTATE AFTER FIXING FORM
175
+ //this.taskModifier.startModifyingTaskAndWorkLog(this.activity);
176
+ }
177
+ }
178
+ onSaveActivity(activity) {
179
+ this.activity = activity;
180
+ this.activityChange.next(this.activity);
181
+ }
182
+ onDeleteActivity(activity) {
183
+ if (this.activity.getId() === activity.getId()) {
184
+ if (this._viewModel) {
185
+ this._viewModel.deleted = true;
186
+ this._viewModel.showing = false;
187
+ this._viewModel.refreshViewModel();
188
+ }
189
+ this.activityDeleted.emit(activity);
190
+ }
191
+ }
192
+ //TODO Reinstate once we know what to do with the formbuilder
193
+ /*public doCancelForm(): void {
194
+ this.showCreateForm = false;
195
+ }
196
+
197
+ public async doSaveForm(form: FormResponse): Promise<void> {
198
+ const result: ValidationResult = await this._formRepo.insertFormResponse(form);
199
+ if (result.success) {
200
+ this.formCreated.next();
201
+ this.showCreateForm = false;
202
+ }
203
+ }*/
204
+ _prepareData() {
205
+ this.workFlow = this._activity.workflow;
206
+ if (this.workFlow) {
207
+ this.workFlow.useSingleTaskTriggerAsTask = true;
208
+ this.urls = this.workFlow.urls;
209
+ this.hasTriggers = this.workFlow.hasTriggers;
210
+ }
211
+ this.activityName = this.activity.name;
212
+ this.link = this.activity.link;
213
+ this.linkDescription = this.activity.linkDescription;
214
+ this.targetDate = this.activity.targetDateTime;
215
+ this.deadlineDate = this.activity.deadlineDateTime;
216
+ this.openButtonLabel = this.activity.linkLabel;
217
+ this.activityTitle = this.activity.activityTitle;
218
+ this.activityContextTitle = this.activity.activityContextTitle;
219
+ this.isTask = this._activity.IsTask;
220
+ this.sameDates = DateUtils.IsSameDay(this.targetDate, this.deadlineDate);
221
+ this._setFirstTriggerToCloseWF();
222
+ }
223
+ _setFirstTriggerToCloseWF() {
224
+ if (isNill(this.workFlow) || isNill(this.workFlow.manualTriggers)) {
225
+ return;
226
+ }
227
+ this.firstTriggerToCloseWF = undefined;
228
+ const len = this.workFlow.manualTriggers.length;
229
+ for (let i = 0; i < len; i++) {
230
+ if (this.workFlow.manualTriggers[i].toClosedState) {
231
+ this.firstTriggerToCloseWF = this.workFlow.manualTriggers[i];
232
+ break;
233
+ }
234
+ }
235
+ }
236
+ _openUrl(url) {
237
+ const regEx = new RegExp(/(http)|(www.)/);
238
+ if (regEx.test(url)) {
239
+ window.open(url.indexOf("http") === -1 ? "http://" + url : url, "_blank");
240
+ }
241
+ else {
242
+ //this._router.navigateByUrl(url);
243
+ }
244
+ }
245
+ _stopEventPropagation(event) {
246
+ event.preventDefault();
247
+ event.stopPropagation();
248
+ event.stopImmediatePropagation();
249
+ }
250
+ }
251
+ BaseActivityOverviewComponent.decorators = [
252
+ { type: Directive },
253
+ { type: Injectable }
254
+ ];
255
+ BaseActivityOverviewComponent.ctorParameters = () => [
256
+ { type: CoreDialogService },
257
+ { type: DictionaryService }
258
+ ];
259
+ BaseActivityOverviewComponent.propDecorators = {
260
+ taskModifier: [{ type: ViewChild, args: [TaskModifierComponent, { static: true },] }],
261
+ viewModel: [{ type: Input }],
262
+ triggerToFireOnSave: [{ type: Input }],
263
+ canFireTriggerOperation: [{ type: Input }],
264
+ prepareWorkflowOperation: [{ type: Input }],
265
+ lockTaskOperation: [{ type: Input }],
266
+ deleteActivityOperation: [{ type: Input }],
267
+ upsertActivityOperation: [{ type: Input }],
268
+ fireGenericTriggerOperation: [{ type: Input }],
269
+ fireTriggerOperation: [{ type: Input }],
270
+ userRelationId: [{ type: Input }],
271
+ userGroupId: [{ type: Input }],
272
+ handleOpenLinkSidebar: [{ type: Input }],
273
+ activityChange: [{ type: Output }],
274
+ activityDeleted: [{ type: Output }],
275
+ triggerFired: [{ type: Output }],
276
+ genericTriggerFired: [{ type: Output }],
277
+ formCreated: [{ type: Output }],
278
+ openLink: [{ type: Output }],
279
+ linkClicked: [{ type: Output }]
280
+ };
281
+ __decorate([
282
+ InputBoolean()
283
+ ], BaseActivityOverviewComponent.prototype, "handleOpenLinkSidebar", void 0);
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpdml0eS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1vdmVydmlldy1jb21wb25lbnQvY29tcG9uZW50cy9iYXNlLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUluRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUdyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbkMsTUFBTSx1REFBdUQsQ0FBQztBQUUvRCxPQUFPLEVBRUwsK0JBQStCLEVBQ2hDLE1BQU0sZ0VBQWdFLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFB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LENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs7WUE3VEosU0FBUztZQUNULFVBQVU7OztZQXJCSCxpQkFBaUI7WUFjakIsaUJBQWlCOzs7MkJBMEJwQixTQUFTLFNBQUMscUJBQXFCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO3dCQUcvQyxLQUFLO2tDQU9MLEtBQUs7c0NBU0wsS0FBSzt1Q0FHTCxLQUFLO2dDQUdMLEtBQUs7c0NBR0wsS0FBSztzQ0FHTCxLQUFLOzBDQUdMLEtBQUs7bUNBR0wsS0FBSzs2QkFHTCxLQUFLOzBCQUdMLEtBQUs7b0NBR0wsS0FBSzs2QkFJTCxNQUFNOzhCQUdOLE1BQU07MkJBR04sTUFBTTtrQ0FHTixNQUFNOzBCQUdOLE1BQU07dUJBR04sTUFBTTswQkFHTixNQUFNOztBQXBCUDtJQURDLFlBQVksRUFBRTs0RUFDK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge1dvcmtmbG93fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29ya2Zsb3cuYm9cIjtcclxuaW1wb3J0IHtXb3JrZmxvd1RyaWdnZXJ9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC93b3JrZmxvdy10cmlnZ2VyLmJvXCI7XHJcbmltcG9ydCB7TW9kdWxlTmF2aWdhdGlvbkxpbmt9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL21vZHVsZS1uYXZpZ2F0aW9uLWxpbmtcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFzay5ib1wiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtXb3JrZmxvd0dlbmVyaWNUcmFuc2l0aW9ufSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29ya2Zsb3ctZ2VuZXJpYy10cmFuc2l0aW9uLmJvXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlWaWV3TW9kZWx9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS12aWV3LW1vZGVsXCI7XHJcbmltcG9ydCB7Q29yZURpYWxvZ1NlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlDZmdOYW1lfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9hY3Rpdml0eS1jZmctbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdGllc1Rhc2tDb25maWdOYW1lc30gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZS9hY3Rpdml0aWVzLXRhc2stY29uZmlnLW5hbWVzXCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbixcclxuICBPcGVyYXRpb25XaXRoQWx3YXlzU3VjY2Vzc0NhbGxiYWNrXHJcbn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbixcclxuICBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrXHJcbn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stZnVuY3Rpb24td2l0aC12YWxpZGF0aW9uXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0RhdGVVdGlsc30gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RhdGUtdXRpbHNcIjtcclxuaW1wb3J0IHtUYXNrTW9kaWZpZXJDb21wb25lbnR9IGZyb20gXCIuLi8uLi90YXNrLW1vZGlmeWVyL3Rhc2stbW9kaWZpZXIuY29tcG9uZW50XCI7XHJcblxyXG5cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIEFjdGl2aXR5Q2ZnTmFtZSA9IEFjdGl2aXR5Q2ZnTmFtZTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFza0NmZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzID0ge1xyXG4gICAgICAgIHRpbWVSZWdpc3RyYXRpb25NYW5kYXRvcnk6IEFjdGl2aXR5Q2ZnTmFtZS5UaW1lUmVnaXN0cmF0aW9uTWFuZGF0b3J5LFxyXG4gICAgICAgIGRlbGV0ZUFjdGl2aXR5VGFza0J1dHRvbjogQWN0aXZpdHlDZmdOYW1lLkRlbGV0ZUFjdGl2aXR5VGFza0J1dHRvbixcclxuICAgICAgICBzdGF0dXNTdW1tYXJ5SGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuU3RhdHVzU3VtbWFyeUhlYWRlcixcclxuICAgICAgICBjcmVhdGlvblN1bW1hcnlIZWFkZXI6IEFjdGl2aXR5Q2ZnTmFtZS5DcmVhdGlvblN1bW1hcnlIZWFkZXIsXHJcbiAgICAgICAgZXhlY3V0aXZlU3VtbWFyeUhlYWRlcjogQWN0aXZpdHlDZmdOYW1lLkV4ZWN1dGl2ZVN1bW1hcnlIZWFkZXIsXHJcbiAgICAgICAgcGxhbm5pbmdTdW1tYXJ5SGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuUGxhbm5pbmdTdW1tYXJ5SGVhZGVyLFxyXG4gICAgICAgIGF0dGFjaG1lbnRzSGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuQXR0YWNobWVudHNIZWFkZXIsXHJcbiAgICAgICAgbm90aWZpY2F0aW9uc1N1bW1hcnlIZWFkZXI6IEFjdGl2aXR5Q2ZnTmFtZS5Ob3RpZmljYXRpb25zU3VtbWFyeUhlYWRlcixcclxuICAgICAgICB0YWdzSGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuVGFnc0hlYWRlcixcclxuICAgICAgICB0YXNrSW52b2ljZTogQWN0aXZpdHlDZmdOYW1lLlRhc2tJbnZvaWNlXHJcbiAgICB9O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoVGFza01vZGlmaWVyQ29tcG9uZW50LCB7c3RhdGljOiB0cnVlfSlcclxuICAgIHB1YmxpYyB0YXNrTW9kaWZpZXI6IFRhc2tNb2RpZmllckNvbXBvbmVudDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB2aWV3TW9kZWwodmFsdWU6IEFjdGl2aXR5Vmlld01vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5fdmlld01vZGVsID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdmVyRHVlID0gdmFsdWUub3ZlckR1ZTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5ID0gdmFsdWUuYWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJpZ2dlclRvRmlyZU9uU2F2ZSh2YWx1ZTogV29ya2Zsb3dUcmlnZ2VyKSB7XHJcbiAgICAgIHRoaXMuX3RyaWdnZXJUb0ZpcmVPblNhdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyaWdnZXJUb0ZpcmVPblNhdmUoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyVG9GaXJlT25TYXZlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FuRmlyZVRyaWdnZXJPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24gPSBPcGVyYXRpb25XaXRoQWx3YXlzU3VjY2Vzc0NhbGxiYWNrO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcHJlcGFyZVdvcmtmbG93T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxvY2tUYXNrT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRlbGV0ZUFjdGl2aXR5T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVwc2VydEFjdGl2aXR5T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpcmVHZW5lcmljVHJpZ2dlck9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uID0gT3BlcmF0aW9uV2l0aFZhbGlkYXRpb25DYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpcmVUcmlnZ2VyT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24gPSBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdXNlclJlbGF0aW9uSWQ6IG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVzZXJHcm91cElkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFjdGl2aXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eURlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHRyaWdnZXJGaXJlZDogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZ2VuZXJpY1RyaWdnZXJGaXJlZDogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBvcGVuTGluazogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgbGlua0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7bW9kdWxlOiBzdHJpbmcsIGlkOiBzdHJpbmd9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e21vZHVsZTogc3RyaW5nLCBpZDogc3RyaW5nfT4oKTtcclxuXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2aXR5KHZhbHVlOiBBY3Rpdml0eSkge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2aXR5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZURhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdvcmtGbG93OiBXb3JrZmxvdztcclxuICAgIHB1YmxpYyB0YXJnZXREYXRlOiBEYXRlO1xyXG4gICAgcHVibGljIGRlYWRsaW5lRGF0ZTogRGF0ZTtcclxuICAgIHB1YmxpYyBhY3Rpdml0eU5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBhY3Rpdml0eURlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWN0aXZpdHlUaXRsZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGFjdGl2aXR5Q29udGV4dFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG9wZW5CdXR0b25MYWJlbDogc3RyaW5nO1xyXG4gICAgcHVibGljIG92ZXJEdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyB1c2VySXNTdXBlcnZpc29yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvL1RPRE8gUmVpbnN0YXRlIG9uY2Ugd2Uga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlIGZvcm1idWlsZGVyXHJcbiAgICAvL3B1YmxpYyBzaG93Q3JlYXRlRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLy9wdWJsaWMgZm9ybTogRm9ybUZ1bGxPYmplY3QgPSBOVUxMX0ZPUk1fRlVMTF9PQkpFQ1Q7XHJcbiAgICBwdWJsaWMgdGFibGU6IHN0cmluZztcclxuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcclxuICAgIHB1YmxpYyB1cmxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpcnN0VHJpZ2dlclRvQ2xvc2VXRjogV29ya2Zsb3dUcmlnZ2VyO1xyXG4gICAgcHVibGljIGlzVGFzazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGhhc1RyaWdnZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGxpbms6IE1vZHVsZU5hdmlnYXRpb25MaW5rO1xyXG4gICAgcHVibGljIGxpbmtEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgcHVibGljIHNhbWVEYXRlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2FjdGl2aXR5OiBBY3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgpO1xyXG4gICAgcHJpdmF0ZSBfdmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbDtcclxuICAgIHByaXZhdGUgX3RyaWdnZXJUb0ZpcmVPblNhdmU6IFdvcmtmbG93VHJpZ2dlcjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IENvcmVEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICAgICAgICAvL1RPRE8gcmVpbnN0YXRlIHdoZW4gZm9ybWJ1aWxkZXIgaXMgdHJhbnNmZXJyZWRcclxuICAgICAgICAgICAgICAvL3ByaXZhdGUgX2Zvcm1SZXBvOiBGb3JtRGFsUmVwb3NpdG9yeSxcclxuICAgICAgICAgICAgICAvKnByaXZhdGUgX3JvdXRlcjogUm91dGVyKi9cclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVCdXR0b25FbmRDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVRyaWdnZXJDbGljayh0aGlzLmZpcnN0VHJpZ2dlclRvQ2xvc2VXRik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZUdlbmVyaWNUcmlnZ2VyQ2xpY2soZXZlbnQ6IFdvcmtmbG93R2VuZXJpY1RyYW5zaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLmZpcmVHZW5lcmljVHJpZ2dlck9wZXJhdGlvbihcclxuICAgICAgICAgICAgdGhpcy53b3JrRmxvdy53b3JrZmxvd1Byb2Nlc3NJZCwgZXZlbnQuZ2VuZXJpY1RyYW5zaXRpb25JZCwgdGhpcy51c2VyUmVsYXRpb25JZCApO1xyXG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVyaWNUcmlnZ2VyRmlyZWQubmV4dCh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSByZXN1bHQubWVzc2FnZXMubGVuZ3RoO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2godGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KHJlc3VsdC5tZXNzYWdlc1tpXS5tZXNzYWdlLnRvVXBwZXJDYXNlKCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcihtZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZVRyaWdnZXJDbGljayhldmVudFRyaWdnZXI6IFdvcmtmbG93VHJpZ2dlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmIChldmVudFRyaWdnZXIuaXNUYXNrVHJpZ2dlciAmJiBldmVudFRyaWdnZXIudGFza0lkKSB7XHJcbiAgICAgICAgICAgIC8vcHJlcGFyZSB0YXNrIG9uIHRoZSBhY3Rpdml0eSBvYmplY3QsIHNvIHRoZSB0YXNrIG1vZGlmaWVyIGNhbiBoYW5kbGUgaXRcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS50YXNrID0gbmV3IFRhc2soKTtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuVGFzaztcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS50YXNrLnRhc2tJZCA9IGV2ZW50VHJpZ2dlci50YXNrSWQ7XHJcbiAgICAgICAgICAgIHRoaXMudGFza01vZGlmaWVyLnN0YXJ0TW9kaWZ5aW5nVGFzayh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHJpZ2dlci5pc0Zvcm1UcmlnZ2VyKSB7XHJcbiAgICAgICAgICAgIC8vVE9ETyByZWluc3RhdGUgd2hlbiB3ZSBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGUgZm9ybWJ1aWxkZXJcclxuICAgICAgICAgICAgLyp0aGlzLmZvcm0gPSBhd2FpdCB0aGlzLl9mb3JtUmVwby5nZXRGb3JtKGV2ZW50VHJpZ2dlci5mb3JtSWQpO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlID0gdGhpcy53b3JrRmxvdy50YWJsZTtcclxuICAgICAgICAgICAgdGhpcy5rZXkgPSB0aGlzLndvcmtGbG93LmtleTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q3JlYXRlRm9ybSA9IHRydWU7Ki9cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvKmlmIChldmVudFRyaWdnZXIudG9DbG9zZWRTdGF0ZSAmJiAhYXdhaXQgdGhpcy5jYW5GaXJlVHJpZ2dlck9wZXJhdGlvbih7YWN0aXZpdHk6IHRoaXMuYWN0aXZpdHksIHRhc2s6IHRoaXMuYWN0aXZpdHkudGFza30pKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVXb3JrZmxvd09wZXJhdGlvbih7dGFibGU6IHRoaXMud29ya0Zsb3cudGFibGUsIGtleTogdGhpcy53b3JrRmxvdy5rZXl9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclRvRmlyZU9uU2F2ZSA9IGV2ZW50VHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rhc2tGb3JtQW5kV29ya0xvZygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9Ki9cclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5maXJlVHJpZ2dlck9wZXJhdGlvbihcclxuICAgICAgICAgICAgICB0aGlzLndvcmtGbG93LndvcmtmbG93UHJvY2Vzc0lkLCB0aGlzLndvcmtGbG93LnNlcXVlbmNlLCBldmVudFRyaWdnZXIudHJpZ2dlcklkKTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRmlyZWQubmV4dCh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHJlc3VsdC5tZXNzYWdlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChyZXN1bHQubWVzc2FnZXNbaV0ubWVzc2FnZS50b1VwcGVyQ2FzZSgpKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKG1lc3NhZ2VzLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlT3BlbkxpbmsoZXZlbnQ6IE1vdXNlRXZlbnQsIHVybD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTtcclxuICAgICAgICBpZiAodXJsKSB7IC8vIGJyZWFkQ3J1bWJzIHRvIHVybFxyXG4gICAgICAgICAgICB0aGlzLl9vcGVuVXJsKHVybCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rT3JVcmwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGluayAmJiB0aGlzLmxpbmsubW9kdWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlua0NsaWNrZWQubmV4dCh7bW9kdWxlOiB0aGlzLmxpbmsubW9kdWxlLCBpZDogdGhpcy5saW5rLmlkfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVybHMgJiYgdGhpcy51cmxzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGVuVXJsKHRoaXMudXJsc1swXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0TW9kaWZ5aW5nVGFzaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy53b3JrRmxvdyAmJiB0aGlzLndvcmtGbG93LndvcmtGbG93SGFzT25lVGFza1RyaWdnZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS50YXNrID0gbmV3IFRhc2soKTtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuVGFzaztcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eS50YXNrLnRhc2tJZCA9IHRoaXMud29ya0Zsb3cudGFza0lkRnJvbVRhc2tUcmlnZ2VyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0eS50YXNrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhhbmRsZU9wZW5MaW5rU2lkZWJhciA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTGluay5uZXh0KHRoaXMuYWN0aXZpdHkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFza01vZGlmaWVyLnN0YXJ0TW9kaWZ5aW5nVGFzayh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBUT0RPOiBmb3Igbm93IGEgbWVzc2FnZSBpcyBzaG93bi5cclxuICAgICAgICBlbHNlIGlmICh0aGlzLndvcmtGbG93KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKFwiQ29tcG9uZW50OiBcIiArIHRoaXMud29ya0Zsb3cuY29tcG9uZW50ICsgXCIga2V5OiBcIiArIHRoaXMud29ya0Zsb3cuZGlzcGxheUtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93VGFza0Zvcm1BbmRXb3JrTG9nKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgIC8vVE9ETyBSRUlOU1RBVEUgQUZURVIgRklYSU5HIEZPUk1cclxuICAgICAgICAgIC8vdGhpcy50YXNrTW9kaWZpZXIuc3RhcnRNb2RpZnlpbmdUYXNrQW5kV29ya0xvZyh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2F2ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHkgPSBhY3Rpdml0eTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5Q2hhbmdlLm5leHQodGhpcy5hY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRGVsZXRlQWN0aXZpdHkoYWN0aXZpdHk6IEFjdGl2aXR5KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmlld01vZGVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3TW9kZWwuZGVsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3TW9kZWwuc2hvd2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld01vZGVsLnJlZnJlc2hWaWV3TW9kZWwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5RGVsZXRlZC5lbWl0KGFjdGl2aXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vVE9ETyBSZWluc3RhdGUgb25jZSB3ZSBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGUgZm9ybWJ1aWxkZXJcclxuICAgIC8qcHVibGljIGRvQ2FuY2VsRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dDcmVhdGVGb3JtID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvU2F2ZUZvcm0oZm9ybTogRm9ybVJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5fZm9ybVJlcG8uaW5zZXJ0Rm9ybVJlc3BvbnNlKGZvcm0pO1xyXG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLm5leHQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q3JlYXRlRm9ybSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG5cclxuICAgIHByaXZhdGUgX3ByZXBhcmVEYXRhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMud29ya0Zsb3cgPSB0aGlzLl9hY3Rpdml0eS53b3JrZmxvdztcclxuICAgICAgICBpZiAodGhpcy53b3JrRmxvdykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtGbG93LnVzZVNpbmdsZVRhc2tUcmlnZ2VyQXNUYXNrID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy51cmxzID0gdGhpcy53b3JrRmxvdy51cmxzO1xyXG4gICAgICAgICAgICB0aGlzLmhhc1RyaWdnZXJzID0gdGhpcy53b3JrRmxvdy5oYXNUcmlnZ2VycztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eU5hbWUgPSB0aGlzLmFjdGl2aXR5Lm5hbWU7XHJcbiAgICAgICAgdGhpcy5saW5rID0gdGhpcy5hY3Rpdml0eS5saW5rO1xyXG4gICAgICAgIHRoaXMubGlua0Rlc2NyaXB0aW9uID0gdGhpcy5hY3Rpdml0eS5saW5rRGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy50YXJnZXREYXRlID0gdGhpcy5hY3Rpdml0eS50YXJnZXREYXRlVGltZTtcclxuICAgICAgICB0aGlzLmRlYWRsaW5lRGF0ZSA9IHRoaXMuYWN0aXZpdHkuZGVhZGxpbmVEYXRlVGltZTtcclxuICAgICAgICB0aGlzLm9wZW5CdXR0b25MYWJlbCA9IHRoaXMuYWN0aXZpdHkubGlua0xhYmVsO1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlUaXRsZSA9IHRoaXMuYWN0aXZpdHkuYWN0aXZpdHlUaXRsZTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5Q29udGV4dFRpdGxlID0gdGhpcy5hY3Rpdml0eS5hY3Rpdml0eUNvbnRleHRUaXRsZTtcclxuICAgICAgICB0aGlzLmlzVGFzayA9IHRoaXMuX2FjdGl2aXR5LklzVGFzaztcclxuICAgICAgICB0aGlzLnNhbWVEYXRlcyA9IERhdGVVdGlscy5Jc1NhbWVEYXkodGhpcy50YXJnZXREYXRlLCB0aGlzLmRlYWRsaW5lRGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fc2V0Rmlyc3RUcmlnZ2VyVG9DbG9zZVdGKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0Rmlyc3RUcmlnZ2VyVG9DbG9zZVdGKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc05pbGwodGhpcy53b3JrRmxvdykgfHwgaXNOaWxsKHRoaXMud29ya0Zsb3cubWFudWFsVHJpZ2dlcnMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlyc3RUcmlnZ2VyVG9DbG9zZVdGID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gdGhpcy53b3JrRmxvdy5tYW51YWxUcmlnZ2Vycy5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLndvcmtGbG93Lm1hbnVhbFRyaWdnZXJzW2ldLnRvQ2xvc2VkU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlyc3RUcmlnZ2VyVG9DbG9zZVdGID0gdGhpcy53b3JrRmxvdy5tYW51YWxUcmlnZ2Vyc1tpXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29wZW5VcmwodXJsOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCByZWdFeDogUmVnRXhwID0gbmV3IFJlZ0V4cCgvKGh0dHApfCh3d3cuKS8pO1xyXG4gICAgICAgIGlmIChyZWdFeC50ZXN0KHVybCkpIHtcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLmluZGV4T2YoXCJodHRwXCIpID09PSAtMSA/IFwiaHR0cDovL1wiICsgdXJsIDogdXJsLCBcIl9ibGFua1wiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvL3RoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,100 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from "@angular/core";
3
+ import { FormComponent, FormMasterService } from "@colijnit/corecomponents_v12";
4
+ import { Icon } from "../../../../enum/icon.enum";
5
+ import { InputBoolean } from "../../../../decorator/input-boolean.decorator";
6
+ export class ActivitySummaryBlockComponent {
7
+ constructor(_formMaster, elementRef) {
8
+ this._formMaster = _formMaster;
9
+ this.elementRef = elementRef;
10
+ this.Icon = Icon;
11
+ this.noBorder = false;
12
+ this.readonly = false;
13
+ this.showButtons = false;
14
+ this.hideCancel = false;
15
+ this.actionIcon = false;
16
+ this.expandable = false;
17
+ this.saveClick = new EventEmitter();
18
+ this.cancelClick = new EventEmitter();
19
+ }
20
+ showClass() {
21
+ return true;
22
+ }
23
+ get summaryElement() {
24
+ return this.elementRef;
25
+ }
26
+ ngOnDestroy() {
27
+ this.elementRef = undefined;
28
+ }
29
+ handleOkClick(event) {
30
+ if (this.mainForm) {
31
+ this.mainForm.submit();
32
+ }
33
+ }
34
+ handleCancelClick(event) {
35
+ this.cancelClick.next(event);
36
+ }
37
+ onValid() {
38
+ this.saveClick.next(null);
39
+ }
40
+ }
41
+ ActivitySummaryBlockComponent.decorators = [
42
+ { type: Component, args: [{
43
+ selector: "co-activity-summary-block",
44
+ template: `
45
+ <div class="block-wrapper border">
46
+ <div class="activity-summary-block-edit-template" [id]="cssId">
47
+ <co-form (validSubmit)="onValid()">
48
+ <div class="template-wrapper">
49
+ <ng-template [templateWrapper]="editTemplate" *ngIf="editTemplate"></ng-template>
50
+ </div>
51
+ </co-form>
52
+ <div class="ok-cancel-buttons" *ngIf="showButtons">
53
+ <co-button [disabled]="readonly" [textContent]="'OK' | localize" (click)="handleOkClick($event)"></co-button>
54
+ <co-button *ngIf="hideCancel" [textContent]="'STICKER' | localize" (click)="handleCancelClick($event)"></co-button>
55
+ <ng-template [templateWrapper]="extraButtonsTemplate" *ngIf="extraButtonsTemplate"></ng-template>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ `,
60
+ providers: [
61
+ FormMasterService
62
+ ]
63
+ },] }
64
+ ];
65
+ ActivitySummaryBlockComponent.ctorParameters = () => [
66
+ { type: FormMasterService },
67
+ { type: ElementRef }
68
+ ];
69
+ ActivitySummaryBlockComponent.propDecorators = {
70
+ mainForm: [{ type: ViewChild, args: [FormComponent,] }],
71
+ cssId: [{ type: Input }],
72
+ noBorder: [{ type: HostBinding, args: ["class.no-border",] }, { type: Input }],
73
+ icon: [{ type: Input }],
74
+ editIcon: [{ type: Input }],
75
+ image: [{ type: Input }],
76
+ editTitle: [{ type: Input }],
77
+ editTemplate: [{ type: Input }],
78
+ extraButtonsTemplate: [{ type: Input }],
79
+ readonly: [{ type: Input }],
80
+ showButtons: [{ type: Input }],
81
+ hideCancel: [{ type: Input }],
82
+ actionIcon: [{ type: HostBinding, args: ["class.icon-action",] }, { type: Input }],
83
+ expandable: [{ type: Input }],
84
+ saveClick: [{ type: Output }],
85
+ cancelClick: [{ type: Output }],
86
+ showClass: [{ type: HostBinding, args: ["class.co-activity-summary-block",] }]
87
+ };
88
+ __decorate([
89
+ InputBoolean()
90
+ ], ActivitySummaryBlockComponent.prototype, "noBorder", void 0);
91
+ __decorate([
92
+ InputBoolean()
93
+ ], ActivitySummaryBlockComponent.prototype, "hideCancel", void 0);
94
+ __decorate([
95
+ InputBoolean()
96
+ ], ActivitySummaryBlockComponent.prototype, "actionIcon", void 0);
97
+ __decorate([
98
+ InputBoolean()
99
+ ], ActivitySummaryBlockComponent.prototype, "expandable", void 0);
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktc3VtbWFyeS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL2NvbXBvbmVudHMvYWN0aXZpdHktc3VtbWFyeS1ibG9jay9hY3Rpdml0eS1zdW1tYXJ5LWJsb2NrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFlLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQXdCM0UsTUFBTSxPQUFPLDZCQUE2QjtJQW1FdEMsWUFBb0IsV0FBOEIsRUFBUyxVQUFzQjtRQUE3RCxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakVqRSxTQUFJLEdBQWdCLElBQUksQ0FBQztRQVdsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBcUIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFLNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUk1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd2RCxnQkFBVyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO0lBYTlFLENBQUM7SUFWTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBTUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBaUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQTdHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsaUJBQWlCO2lCQUNwQjthQUNKOzs7WUF6QnNCLGlCQUFpQjtZQURyQixVQUFVOzs7dUJBK0J4QixTQUFTLFNBQUMsYUFBYTtvQkFHdkIsS0FBSzt1QkFHTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLO29CQUdMLEtBQUs7d0JBR0wsS0FBSzsyQkFHTCxLQUFLO21DQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBSUwsV0FBVyxTQUFDLG1CQUFtQixjQUMvQixLQUFLO3lCQUlMLEtBQUs7d0JBSUwsTUFBTTswQkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxpQ0FBaUM7O0FBN0M5QztJQURDLFlBQVksRUFBRTsrREFDa0I7QUE0QmpDO0lBREMsWUFBWSxFQUFFO2lFQUNvQjtBQUtuQztJQURDLFlBQVksRUFBRTtpRUFDb0I7QUFJbkM7SUFEQyxZQUFZLEVBQUU7aUVBQ29CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi8uLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tYWN0aXZpdHktc3VtbWFyeS1ibG9ja1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2std3JhcHBlciBib3JkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXN1bW1hcnktYmxvY2stZWRpdC10ZW1wbGF0ZVwiIFtpZF09XCJjc3NJZFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWZvcm0gKHZhbGlkU3VibWl0KT1cIm9uVmFsaWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbdGVtcGxhdGVXcmFwcGVyXT1cImVkaXRUZW1wbGF0ZVwiICpuZ0lmPVwiZWRpdFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvay1jYW5jZWwtYnV0dG9uc1wiICpuZ0lmPVwic2hvd0J1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBbdGV4dENvbnRlbnRdPVwiJ09LJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soJGV2ZW50KVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiaGlkZUNhbmNlbFwiIFt0ZXh0Q29udGVudF09XCInU1RJQ0tFUicgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJoYW5kbGVDYW5jZWxDbGljaygkZXZlbnQpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbdGVtcGxhdGVXcmFwcGVyXT1cImV4dHJhQnV0dG9uc1RlbXBsYXRlXCIgKm5nSWY9XCJleHRyYUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRm9ybU1hc3RlclNlcnZpY2VcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVN1bW1hcnlCbG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgbWFpbkZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjc3NJZDogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLm5vLWJvcmRlclwiKVxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vQm9yZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpY29uOiBJY29uO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZWRpdEljb246IEljb247XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZWRpdFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlZGl0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBleHRyYUJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlQ2FuY2VsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaWNvbi1hY3Rpb25cIilcclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBhY3Rpb25JY29uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGV4cGFuZGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzYXZlQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1hY3Rpdml0eS1zdW1tYXJ5LWJsb2NrXCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1bW1hcnlFbGVtZW50KCk6IEVsZW1lbnRSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlT2tDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1haW5Gb3JtKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpbkZvcm0uc3VibWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDYW5jZWxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2submV4dChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVmFsaWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zYXZlQ2xpY2submV4dChudWxsKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19