@colijnit/sharedcomponents 1.0.69 → 253.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 (205) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +3863 -56
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +38 -0
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +39 -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 +130 -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 +278 -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 +132 -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 +74 -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 +105 -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 +284 -0
  28. package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +40 -0
  29. package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +278 -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 +266 -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/simple-tags/simple-tags.component.js +5 -147
  35. package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
  36. package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
  37. package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
  38. package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +3 -3
  39. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +28 -2
  40. package/esm2015/lib/components/stock/localization/translation.js +3 -1
  41. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +7 -2
  42. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +144 -85
  43. package/esm2015/lib/components/stock/stock.component.js +11 -42
  44. package/esm2015/lib/components/stock/stock.module.js +4 -3
  45. package/esm2015/lib/components/task-modifyer/task-modifier.component.js +270 -0
  46. package/esm2015/lib/components/task-modifyer/task-modifyer.module..js +31 -0
  47. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
  48. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
  49. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
  50. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
  51. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.js +53 -0
  52. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.js +81 -0
  53. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.js +34 -0
  54. package/esm2015/lib/directives/absolute-overlay-template.directive.js +29 -0
  55. package/esm2015/lib/directives/align-with.directive.js +174 -0
  56. package/esm2015/lib/directives/click-outside.directive.js +25 -0
  57. package/esm2015/lib/directives/directives.module.js +22 -0
  58. package/esm2015/lib/enum/activity-cfg-name.enum.js +29 -0
  59. package/esm2015/lib/enum/app-button-type.enum.js +11 -0
  60. package/esm2015/lib/enum/icon.enum.js +13 -1
  61. package/esm2015/lib/interface/activities-task-config-names.js +2 -0
  62. package/esm2015/lib/interface/operation-callback-activity.js +5 -0
  63. package/esm2015/lib/interface/operation-callback-function-with-validation.js +5 -0
  64. package/esm2015/lib/model/icon-svg.js +13 -1
  65. package/esm2015/lib/service/app-absolute-overlay-outlet.service.js +20 -0
  66. package/esm2015/lib/service/shared-connector.service.js +213 -1
  67. package/esm2015/lib/service/shared.service.js +93 -1
  68. package/esm2015/lib/utils/browser-utils.js +100 -0
  69. package/esm2015/lib/utils/event-utils.js +59 -0
  70. package/esm2015/lib/utils/string-utils.js +5 -1
  71. package/esm2015/public-api.js +7 -1
  72. package/fesm2015/colijnit-sharedcomponents.js +4044 -228
  73. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  74. package/lib/components/activity-list-header/activity-list-header.component.d.ts +25 -0
  75. package/lib/components/activity-list-header/activity-list-header.module.d.ts +2 -0
  76. package/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.d.ts +11 -0
  77. package/lib/components/activity-list-header/components/period-filter/period-filter.component.d.ts +26 -0
  78. package/lib/components/activity-list-header/components/period-filter/period-filter.module.d.ts +2 -0
  79. package/lib/components/activity-list-header/components/period-filter/style/_layout.scss +62 -0
  80. package/lib/components/activity-list-header/components/period-filter/style/_material-definition.scss +1 -0
  81. package/lib/components/activity-list-header/components/period-filter/style/_theme.scss +5 -0
  82. package/lib/components/activity-list-header/components/period-filter/style/material.scss +4 -0
  83. package/lib/components/activity-list-header/style/_layout.scss +84 -0
  84. package/lib/components/activity-list-header/style/_material-definition.scss +1 -0
  85. package/lib/components/activity-list-header/style/_theme.scss +5 -0
  86. package/lib/components/activity-list-header/style/material.scss +4 -0
  87. package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +15 -0
  88. package/lib/components/activity-overview-component/component-activity-overview.module.d.ts +2 -0
  89. package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +79 -0
  90. package/lib/components/activity-overview-component/style/_layout.scss +107 -0
  91. package/lib/components/activity-overview-component/style/_material-definition.scss +1 -0
  92. package/lib/components/activity-overview-component/style/_theme.scss +5 -0
  93. package/lib/components/activity-overview-component/style/material.scss +4 -0
  94. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.d.ts +31 -0
  95. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.d.ts +2 -0
  96. package/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +139 -0
  97. package/lib/components/modify-task-form/components/activity-summary-block/style/_material-definition.scss +0 -0
  98. package/lib/components/modify-task-form/components/activity-summary-block/style/_theme.scss +5 -0
  99. package/lib/components/modify-task-form/components/activity-summary-block/style/material.scss +4 -0
  100. package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +52 -0
  101. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.d.ts +28 -0
  102. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.d.ts +2 -0
  103. package/lib/components/modify-task-form/components/creation-summary-block/style/_layout.scss +5 -0
  104. package/lib/components/modify-task-form/components/creation-summary-block/style/_material-definition.scss +0 -0
  105. package/lib/components/modify-task-form/components/creation-summary-block/style/_theme.scss +5 -0
  106. package/lib/components/modify-task-form/components/creation-summary-block/style/material.scss +4 -0
  107. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +24 -0
  108. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.d.ts +2 -0
  109. package/lib/components/modify-task-form/components/executive-summary-block/style/_layout.scss +5 -0
  110. package/lib/components/modify-task-form/components/executive-summary-block/style/_material-definition.scss +0 -0
  111. package/lib/components/modify-task-form/components/executive-summary-block/style/_theme.scss +5 -0
  112. package/lib/components/modify-task-form/components/executive-summary-block/style/material.scss +4 -0
  113. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.d.ts +23 -0
  114. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.d.ts +2 -0
  115. package/lib/components/modify-task-form/components/notification-summary-block/style/_layout.scss +161 -0
  116. package/lib/components/modify-task-form/components/notification-summary-block/style/_material-definition.scss +0 -0
  117. package/lib/components/modify-task-form/components/notification-summary-block/style/_theme.scss +5 -0
  118. package/lib/components/modify-task-form/components/notification-summary-block/style/material.scss +4 -0
  119. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +17 -0
  120. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.d.ts +2 -0
  121. package/lib/components/modify-task-form/components/status-summary-block/style/_layout.scss +18 -0
  122. package/lib/components/modify-task-form/components/status-summary-block/style/_material-definition.scss +0 -0
  123. package/lib/components/modify-task-form/components/status-summary-block/style/_theme.scss +5 -0
  124. package/lib/components/modify-task-form/components/status-summary-block/style/material.scss +4 -0
  125. package/lib/components/modify-task-form/components/task-details/style/_layout.scss +142 -0
  126. package/lib/components/modify-task-form/components/task-details/style/_material-definition.scss +0 -0
  127. package/lib/components/modify-task-form/components/task-details/style/_theme.scss +5 -0
  128. package/lib/components/modify-task-form/components/task-details/style/material.scss +4 -0
  129. package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +23 -0
  130. package/lib/components/modify-task-form/components/task-details/task-details.module.d.ts +2 -0
  131. package/lib/components/modify-task-form/modify-task-form.component.d.ts +54 -0
  132. package/lib/components/modify-task-form/modify-task-form.module.d.ts +2 -0
  133. package/lib/components/modify-task-form/style/_layout.scss +139 -0
  134. package/lib/components/modify-task-form/style/_material-definition.scss +0 -0
  135. package/lib/components/modify-task-form/style/_theme.scss +5 -0
  136. package/lib/components/modify-task-form/style/material.scss +4 -0
  137. package/lib/components/open-activity-list/component-activity-list.component.d.ts +67 -0
  138. package/lib/components/open-activity-list/component-activity-list.module.d.ts +2 -0
  139. package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +48 -0
  140. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.d.ts +4 -0
  141. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..d.ts +2 -0
  142. package/lib/components/open-activity-list/components/personal-activity-overview/style/_layout.scss +105 -0
  143. package/lib/components/open-activity-list/components/personal-activity-overview/style/_material-definition.scss +0 -0
  144. package/lib/components/open-activity-list/components/personal-activity-overview/style/_theme.scss +4 -0
  145. package/lib/components/open-activity-list/components/personal-activity-overview/style/material.scss +4 -0
  146. package/lib/components/open-activity-list/style/_layout.scss +26 -0
  147. package/lib/components/open-activity-list/style/_material-definition.scss +0 -0
  148. package/lib/components/open-activity-list/style/_theme.scss +4 -0
  149. package/lib/components/open-activity-list/style/material.scss +4 -0
  150. package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
  151. package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
  152. package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
  153. package/lib/components/simple-tags-form/style/_layout.scss +257 -0
  154. package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
  155. package/lib/components/simple-tags-form/style/_theme.scss +4 -0
  156. package/lib/components/simple-tags-form/style/material.scss +4 -0
  157. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +7 -1
  158. package/lib/components/stock/localization/translation.d.ts +2 -0
  159. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +2 -0
  160. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +19 -6
  161. package/lib/components/stock/stock.component.d.ts +3 -0
  162. package/lib/components/stock/style/_layout.scss +64 -31
  163. package/lib/components/task-modifyer/style/_layout.scss +5 -0
  164. package/lib/components/task-modifyer/style/_material-definition.scss +0 -0
  165. package/lib/components/task-modifyer/style/_theme.scss +4 -0
  166. package/lib/components/task-modifyer/style/material.scss +4 -0
  167. package/lib/components/task-modifyer/task-modifier.component.d.ts +65 -0
  168. package/lib/components/task-modifyer/task-modifyer.module..d.ts +2 -0
  169. package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
  170. package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
  171. package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
  172. package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
  173. package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
  174. package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
  175. package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
  176. package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
  177. package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
  178. package/lib/components/workflow-info-tiles/style/material.scss +4 -0
  179. package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
  180. package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
  181. package/lib/components/workflow-notification-toggle/style/_layout.scss +59 -0
  182. package/lib/components/workflow-notification-toggle/style/_material-definition.scss +0 -0
  183. package/lib/components/workflow-notification-toggle/style/_theme.scss +4 -0
  184. package/lib/components/workflow-notification-toggle/style/material.scss +4 -0
  185. package/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.d.ts +15 -0
  186. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.d.ts +28 -0
  187. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.d.ts +2 -0
  188. package/lib/directives/absolute-overlay-template.directive.d.ts +9 -0
  189. package/lib/directives/align-with.directive.d.ts +35 -0
  190. package/lib/directives/click-outside.directive.d.ts +7 -0
  191. package/lib/directives/directives.module.d.ts +2 -0
  192. package/lib/enum/activity-cfg-name.enum.d.ts +27 -0
  193. package/lib/enum/app-button-type.enum.d.ts +9 -0
  194. package/lib/enum/icon.enum.d.ts +12 -0
  195. package/lib/interface/activities-task-config-names.d.ts +12 -0
  196. package/lib/interface/operation-callback-activity.d.ts +5 -0
  197. package/lib/interface/operation-callback-function-with-validation.d.ts +5 -0
  198. package/lib/service/app-absolute-overlay-outlet.service.d.ts +9 -0
  199. package/lib/service/shared-connector.service.d.ts +28 -0
  200. package/lib/service/shared.service.d.ts +28 -0
  201. package/lib/utils/browser-utils.d.ts +15 -0
  202. package/lib/utils/event-utils.d.ts +12 -0
  203. package/lib/utils/string-utils.d.ts +1 -0
  204. package/package.json +7 -5
  205. package/public-api.d.ts +6 -0
@@ -0,0 +1,130 @@
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
+ import { SharedService } from "../../service/shared.service";
9
+ export class ComponentActivityOverviewComponent extends BaseActivityOverviewComponent {
10
+ constructor(iconCacheService, dialogService, dictionaryService, sharedService
11
+ /*public router: Router*/ ) {
12
+ super(dialogService, dictionaryService, sharedService /*router*/);
13
+ this.iconCacheService = iconCacheService;
14
+ this.dialogService = dialogService;
15
+ this.dictionaryService = dictionaryService;
16
+ this.sharedService = sharedService;
17
+ this.Icon = Icon;
18
+ }
19
+ showClass() {
20
+ return true;
21
+ }
22
+ }
23
+ ComponentActivityOverviewComponent.decorators = [
24
+ { type: Component, args: [{
25
+ selector: "co-component-activity-overview",
26
+ template: `
27
+ <div class="overview-wrapper">
28
+ <div class="overview-wrapper-icons">
29
+ <co-icon *ngIf="userIsSupervisor && (!isTask || firstTriggerToCloseWF === undefined)" icon="supervisor"
30
+ class="supervisor-icon big dark"
31
+ [title]="'MY_TASKS_SUPERVISOR' | localize"></co-icon>
32
+ </div>
33
+ <div class="overview-wrapper-labels">
34
+ <div class="activity-title" [textContent]="activityTitle"></div>
35
+ <div class="activity-context-title" [textContent]="activityContextTitle"></div>
36
+ </div>
37
+ <div class="overview-wrapper-date">
38
+ <div class="date-wrapper" [class.overdue]="overDue">
39
+ <ng-container *ngIf="!sameDates">
40
+ <div class="date" [textContent]="targetDate | date:'dd-MM-YYYY'"></div>
41
+ <div class="date-divider" [textContent]="'-'"></div>
42
+ </ng-container>
43
+ <div class="date" [textContent]="deadlineDate | date:'dd-MM-YYYY'"></div>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div class="overview-main">
48
+ <ng-container *ngIf="isTask && firstTriggerToCloseWF !== undefined">
49
+ <co-button class="trans-green custom-text button-trigger no-margin" [label]="firstTriggerToCloseWF.description"
50
+ (click)="handleButtonEndClick()"></co-button>
51
+ </ng-container>
52
+ <ng-container *ngIf="openButtonLabel">
53
+ <co-button class="trans-green default-bg custom-text button-trigger-icon action-hover no-margin"
54
+ iconClass="custom small" [iconData]="iconCacheService.getIcon(icon.DetailView)" [label]="openButtonLabel | localize"
55
+ (click)="handleOpenLink($event)"></co-button>
56
+ </ng-container>
57
+ <!--TODO reinstate this when we figure out how to trigger a screen change. -->
58
+ <!--<ng-container *ngIf="urls && urls.length > 0">
59
+ <button-colijn *ngFor="let url of urls"
60
+ class="trans-green custom-text button-trigger-icon action-hover no-margin"
61
+ [icon]="icon.DetailView"
62
+ [label]="'OPEN_LINK' | localize"
63
+ iconClass="custom small"
64
+ (click)="handleOpenLink($event, url)"></button-colijn>
65
+ </ng-container>-->
66
+ <ng-container *ngIf="!isTask && hasTriggers">
67
+ <co-button class="trans-green custom-text action-hover button-trigger no-margin" *ngFor="let trigger of workFlow.manualGenericTriggers"
68
+ [class.button-trigger-icon]="trigger.isTaskTrigger"
69
+ [label]="trigger.triggerButtonName"
70
+ [iconData]="trigger.isTaskTrigger ? iconCacheService.getIcon(icon.Account): null"
71
+ iconClass="custom small"
72
+ (click)="handleGenericTriggerClick(trigger)"
73
+ ></co-button>
74
+ <co-button class="trans-green custom-text action-hover button-trigger no-margin" *ngFor="let trigger of workFlow.manualTriggers"
75
+ [class.high-prio]="trigger.overDue"
76
+ [class.button-trigger-icon]="trigger.isTaskTrigger"
77
+ [label]="trigger.triggerButtonName"
78
+ [iconData]="trigger.isTaskTrigger ? iconCacheService.getIcon(icon.DetailView): null"
79
+ iconClass="custom small"
80
+ (click)="handleTriggerClick(trigger)"
81
+ ></co-button >
82
+ </ng-container>
83
+ </div>
84
+ <!--TODO reinstate this when we figure out how to trigger a screen change. -->
85
+ <!-- <formbuilder-user-form *ngIf="showCreateForm"
86
+ [showPopup]="showCreateForm"
87
+ [table]="table"
88
+ [key]="key"
89
+ [form]="form"
90
+ (cancelForm)="doCancelForm()"
91
+ (saveForm)="doSaveForm($event)"
92
+ ></formbuilder-user-form>-->
93
+ <co-task-modifier
94
+ [userGroupId]="userGroupId"
95
+ [relationId]="userRelationId"
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
+ { type: SharedService }
126
+ ];
127
+ ComponentActivityOverviewComponent.propDecorators = {
128
+ showClass: [{ type: HostBinding, args: ["class.co-component-activity-overview",] }]
129
+ };
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LW92ZXJ2aWV3LWNvbXBvbmVudC9jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQW1HM0QsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLDZCQUE2QjtJQU9uRixZQUFtQixnQkFBa0MsRUFDbEMsYUFBZ0MsRUFDaEMsaUJBQW9DLEVBQ2pDLGFBQTRCO0lBQ3RDLHlCQUF5QjtRQUNuQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQSxVQUFVLENBQUMsQ0FBQztRQUxoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVGxDLFNBQUksR0FBZ0IsSUFBSSxDQUFDO0lBWXpDLENBQUM7SUFUTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUF0R0YsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkVUO2dCQUNIOztzQkFFTTtnQkFDSixVQUFVLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt3QkFDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt3QkFDL0IsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUMzRCxDQUFDO29CQUNGLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTt3QkFDeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7d0JBQ2hGLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO3dCQUM3RSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3pCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDL0IsQ0FBQztxQkFDTCxDQUFDO2lCQUNMO2FBQ0o7OztZQXBHTyxnQkFBZ0I7WUFKaEIsaUJBQWlCO1lBS2pCLGlCQUFpQjtZQUNqQixhQUFhOzs7d0JBc0dsQixXQUFXLFNBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvcmVEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3XCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy13cmFwcGVyLWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInVzZXJJc1N1cGVydmlzb3IgJiYgKCFpc1Rhc2sgfHwgZmlyc3RUcmlnZ2VyVG9DbG9zZVdGID09PSB1bmRlZmluZWQpXCIgaWNvbj1cInN1cGVydmlzb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdXBlcnZpc29yLWljb24gYmlnIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidNWV9UQVNLU19TVVBFUlZJU09SJyB8IGxvY2FsaXplXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LXdyYXBwZXItbGFiZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiYWN0aXZpdHlUaXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWNvbnRleHQtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiYWN0aXZpdHlDb250ZXh0VGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy13cmFwcGVyLWRhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXdyYXBwZXJcIiBbY2xhc3Mub3ZlcmR1ZV09XCJvdmVyRHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzYW1lRGF0ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIiBbdGV4dENvbnRlbnRdPVwidGFyZ2V0RGF0ZSB8IGRhdGU6J2RkLU1NLVlZWVknXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLWRpdmlkZXJcIiBbdGV4dENvbnRlbnRdPVwiJy0nXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIiBbdGV4dENvbnRlbnRdPVwiZGVhZGxpbmVEYXRlIHwgZGF0ZTonZGQtTU0tWVlZWSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctbWFpblwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUYXNrICYmIGZpcnN0VHJpZ2dlclRvQ2xvc2VXRiAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwidHJhbnMtZ3JlZW4gY3VzdG9tLXRleHQgYnV0dG9uLXRyaWdnZXIgbm8tbWFyZ2luXCIgW2xhYmVsXT1cImZpcnN0VHJpZ2dlclRvQ2xvc2VXRi5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uRW5kQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW5CdXR0b25MYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zLWdyZWVuIGRlZmF1bHQtYmcgY3VzdG9tLXRleHQgYnV0dG9uLXRyaWdnZXItaWNvbiBhY3Rpb24taG92ZXIgbm8tbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImN1c3RvbSBzbWFsbFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5EZXRhaWxWaWV3KVwiIFtsYWJlbF09XCJvcGVuQnV0dG9uTGFiZWwgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3BlbkxpbmsoJGV2ZW50KVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPCEtLVRPRE8gcmVpbnN0YXRlIHRoaXMgd2hlbiB3ZSBmaWd1cmUgb3V0IGhvdyB0byB0cmlnZ2VyIGEgc2NyZWVuIGNoYW5nZS4gLS0+XHJcbiAgICAgICAgICAgIDwhLS08bmctY29udGFpbmVyICpuZ0lmPVwidXJscyAmJiB1cmxzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24tY29saWpuICpuZ0Zvcj1cImxldCB1cmwgb2YgdXJsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zLWdyZWVuIGN1c3RvbS10ZXh0IGJ1dHRvbi10cmlnZ2VyLWljb24gYWN0aW9uLWhvdmVyIG5vLW1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uLkRldGFpbFZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidPUEVOX0xJTksnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwiY3VzdG9tIHNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcGVuTGluaygkZXZlbnQsIHVybClcIj48L2J1dHRvbi1jb2xpam4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPi0tPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGFzayAmJiBoYXNUcmlnZ2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiAgICAgY2xhc3M9XCJ0cmFucy1ncmVlbiBjdXN0b20tdGV4dCBhY3Rpb24taG92ZXIgYnV0dG9uLXRyaWdnZXIgbm8tbWFyZ2luXCIgKm5nRm9yPVwibGV0IHRyaWdnZXIgb2Ygd29ya0Zsb3cubWFudWFsR2VuZXJpY1RyaWdnZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idXR0b24tdHJpZ2dlci1pY29uXT1cInRyaWdnZXIuaXNUYXNrVHJpZ2dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidHJpZ2dlci50cmlnZ2VyQnV0dG9uTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwidHJpZ2dlci5pc1Rhc2tUcmlnZ2VyID8gaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb24uQWNjb3VudCk6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwiY3VzdG9tIHNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVHZW5lcmljVHJpZ2dlckNsaWNrKHRyaWdnZXIpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gICAgIGNsYXNzPVwidHJhbnMtZ3JlZW4gY3VzdG9tLXRleHQgYWN0aW9uLWhvdmVyIGJ1dHRvbi10cmlnZ2VyIG5vLW1hcmdpblwiICpuZ0Zvcj1cImxldCB0cmlnZ2VyIG9mIHdvcmtGbG93Lm1hbnVhbFRyaWdnZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWdoLXByaW9dPVwidHJpZ2dlci5vdmVyRHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idXR0b24tdHJpZ2dlci1pY29uXT1cInRyaWdnZXIuaXNUYXNrVHJpZ2dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidHJpZ2dlci50cmlnZ2VyQnV0dG9uTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwidHJpZ2dlci5pc1Rhc2tUcmlnZ2VyID8gaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb24uRGV0YWlsVmlldyk6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwiY3VzdG9tIHNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVUcmlnZ2VyQ2xpY2sodHJpZ2dlcilcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tYnV0dG9uID5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLVRPRE8gcmVpbnN0YXRlIHRoaXMgd2hlbiB3ZSBmaWd1cmUgb3V0IGhvdyB0byB0cmlnZ2VyIGEgc2NyZWVuIGNoYW5nZS4gLS0+XHJcbiAgICAgICAgPCEtLSA8Zm9ybWJ1aWxkZXItdXNlci1mb3JtICpuZ0lmPVwic2hvd0NyZWF0ZUZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1BvcHVwXT1cInNob3dDcmVhdGVGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlXT1cInRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbEZvcm0pPVwiZG9DYW5jZWxGb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZUZvcm0pPVwiZG9TYXZlRm9ybSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9mb3JtYnVpbGRlci11c2VyLWZvcm0+LS0+XHJcbiAgICAgICAgPGNvLXRhc2stbW9kaWZpZXJcclxuICAgICAgICAgICAgICAgIFt1c2VyR3JvdXBJZF09XCJ1c2VyR3JvdXBJZFwiXHJcbiAgICAgICAgICAgICAgICBbcmVsYXRpb25JZF09XCJ1c2VyUmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgICAoZWRpdGluZ0NvbXBsZXRlKT1cIm9uU2F2ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJvbkRlbGV0ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHNob3dXb3JrTG9nKT1cInNob3dUYXNrRm9ybUFuZFdvcmtMb2coKVwiXHJcbiAgICAgICAgPjwvY28tdGFzay1tb2RpZmllcj5cclxuXHJcbiAgICBgLFxyXG4gIC8qICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBTY3JlZW5Db25maWd1cmF0aW9uTW9ja1NlcnZpY2V9XHJcbiAgICBdLCovXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcImZhZGVJbk91dFwiLCBbXHJcbiAgICAgICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe29wYWNpdHk6IDB9KSksXHJcbiAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe29wYWNpdHk6IDF9KSksXHJcbiAgICAgICAgICB0cmFuc2l0aW9uKFwiOmVudGVyLCA6bGVhdmVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVFeHRlbmRlZFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7XCJ0cmFuc2Zvcm0tb3JpZ2luXCI6IFwidG9wIGNlbnRlclwiLCB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7XCJ0cmFuc2Zvcm0tb3JpZ2luXCI6IFwidG9wIGNlbnRlclwiLCB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXIsIDpsZWF2ZVwiLCBbXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIilcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlPdmVydmlld0NvbXBvbmVudCBleHRlbmRzIEJhc2VBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgSWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLypwdWJsaWMgcm91dGVyOiBSb3V0ZXIqLykge1xyXG4gICAgc3VwZXIoZGlhbG9nU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHNoYXJlZFNlcnZpY2UvKnJvdXRlciovKTtcclxuICB9XHJcbn1cclxuIl19
@@ -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,278 @@
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 { InputBoolean } from "../../../decorator/input-boolean.decorator";
12
+ import { DictionaryService } from "../../../service/dictionary.service";
13
+ import { DateUtils } from "../../../utils/date-utils";
14
+ import { TaskModifierComponent } from "../../task-modifyer/task-modifier.component";
15
+ import { SharedService } from "../../../service/shared.service";
16
+ export class BaseActivityOverviewComponent {
17
+ constructor(_dialogService, _dictionaryService, _sharedService
18
+ //TODO reinstate when formbuilder is transferred
19
+ //private _formRepo: FormDalRepository,
20
+ /*private _router: Router*/
21
+ ) {
22
+ this._dialogService = _dialogService;
23
+ this._dictionaryService = _dictionaryService;
24
+ this._sharedService = _sharedService;
25
+ this.icon = Icon;
26
+ this.cfgNames = ActivityCfgName;
27
+ this.taskCfgNames = {
28
+ timeRegistrationMandatory: ActivityCfgName.TimeRegistrationMandatory,
29
+ deleteActivityTaskButton: ActivityCfgName.DeleteActivityTaskButton,
30
+ statusSummaryHeader: ActivityCfgName.StatusSummaryHeader,
31
+ creationSummaryHeader: ActivityCfgName.CreationSummaryHeader,
32
+ executiveSummaryHeader: ActivityCfgName.ExecutiveSummaryHeader,
33
+ planningSummaryHeader: ActivityCfgName.PlanningSummaryHeader,
34
+ attachmentsHeader: ActivityCfgName.AttachmentsHeader,
35
+ notificationsSummaryHeader: ActivityCfgName.NotificationsSummaryHeader,
36
+ tagsHeader: ActivityCfgName.TagsHeader,
37
+ taskInvoice: ActivityCfgName.TaskInvoice
38
+ };
39
+ this.prepareWorkflowOperation = OperationWithAlwaysSuccessCallback;
40
+ this.handleOpenLinkSidebar = false;
41
+ this.activityChange = new EventEmitter();
42
+ this.activityDeleted = new EventEmitter();
43
+ this.triggerFired = new EventEmitter();
44
+ this.genericTriggerFired = new EventEmitter();
45
+ this.formCreated = new EventEmitter();
46
+ this.openLink = new EventEmitter();
47
+ this.linkClicked = new EventEmitter();
48
+ this.overDue = false;
49
+ this.userIsSupervisor = false;
50
+ this.urls = [];
51
+ this.isTask = false;
52
+ this.hasTriggers = false;
53
+ this.sameDates = false;
54
+ this._activity = new Activity();
55
+ }
56
+ set viewModel(value) {
57
+ this._viewModel = value;
58
+ this.overDue = value.overDue;
59
+ this.activity = value.activity;
60
+ }
61
+ set triggerToFireOnSave(value) {
62
+ this._triggerToFireOnSave = value;
63
+ }
64
+ get triggerToFireOnSave() {
65
+ return this._triggerToFireOnSave;
66
+ }
67
+ set activity(value) {
68
+ this._activity = value;
69
+ this._prepareData();
70
+ }
71
+ get activity() {
72
+ return this._activity;
73
+ }
74
+ handleButtonEndClick() {
75
+ this.handleTriggerClick(this.firstTriggerToCloseWF);
76
+ }
77
+ handleGenericTriggerClick(event) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const result = yield this._sharedService.fireGenericTrigger(this.workFlow.workflowProcessId, event.genericTransitionId, this.userRelationId);
80
+ if (result.success) {
81
+ this.genericTriggerFired.next(this.activity);
82
+ }
83
+ else {
84
+ const messages = [];
85
+ const len = result.messages.length;
86
+ for (let i = 0; i < len; i++) {
87
+ messages.push(this._dictionaryService.get(result.messages[i].message.toUpperCase()));
88
+ }
89
+ this._dialogService.showError(messages.toString());
90
+ }
91
+ });
92
+ }
93
+ handleTriggerClick(eventTrigger) {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ if (eventTrigger.isTaskTrigger && eventTrigger.taskId) {
96
+ //prepare task on the activity object, so the task modifier can handle it
97
+ this.activity.task = new Task();
98
+ this.activity.activityType = ActivityType.Task;
99
+ this.activity.task.taskId = eventTrigger.taskId;
100
+ this.taskModifier.startModifyingTask(this.activity);
101
+ }
102
+ else if (eventTrigger.isFormTrigger) {
103
+ //TODO reinstate when we know what to do with the formbuilder
104
+ /*this.form = await this._formRepo.getForm(eventTrigger.formId);
105
+ this.table = this.workFlow.table;
106
+ this.key = this.workFlow.key;
107
+ this.showCreateForm = true;*/
108
+ }
109
+ else {
110
+ if (eventTrigger.toClosedState && !this._sharedService.canFireTrigger(this.activity, this.activity.task)) {
111
+ yield this.prepareWorkflowOperation({ table: this.workFlow.table, key: this.workFlow.key });
112
+ this.triggerToFireOnSave = eventTrigger;
113
+ this.showTaskFormAndWorkLog();
114
+ return;
115
+ }
116
+ const result = yield this._sharedService.fireTrigger(this.workFlow.workflowProcessId, this.workFlow.sequence, eventTrigger.triggerId);
117
+ if (result.success) {
118
+ this.triggerFired.next(this.activity);
119
+ }
120
+ else {
121
+ const messages = [];
122
+ const len = result.messages.length;
123
+ for (let i = 0; i < len; i++) {
124
+ messages.push(this._dictionaryService.get(result.messages[i].message.toUpperCase()));
125
+ }
126
+ this._dialogService.showError(messages.toString());
127
+ }
128
+ }
129
+ });
130
+ }
131
+ handleOpenLink(event, url) {
132
+ this._stopEventPropagation(event);
133
+ if (url) { // breadCrumbs to url
134
+ this._openUrl(url);
135
+ }
136
+ else {
137
+ this.startModifyingTask();
138
+ }
139
+ }
140
+ handleOpenLinkOrUrl(event) {
141
+ this._stopEventPropagation(event);
142
+ if (this.link && this.link.module) {
143
+ this.linkClicked.next({ module: this.link.module, id: this.link.id });
144
+ }
145
+ else if (this.urls && this.urls.length) {
146
+ this._openUrl(this.urls[0]);
147
+ }
148
+ else {
149
+ this.startModifyingTask();
150
+ }
151
+ }
152
+ startModifyingTask() {
153
+ if (this.workFlow && this.workFlow.workFlowHasOneTaskTrigger) {
154
+ this.activity.task = new Task();
155
+ this.activity.activityType = ActivityType.Task;
156
+ this.activity.task.taskId = this.workFlow.taskIdFromTaskTrigger;
157
+ }
158
+ if (this.activity.task) {
159
+ if (this.handleOpenLinkSidebar === true) {
160
+ this.openLink.next(this.activity);
161
+ }
162
+ else {
163
+ this.taskModifier.startModifyingTask(this.activity);
164
+ }
165
+ }
166
+ // TODO: for now a message is shown.
167
+ else if (this.workFlow) {
168
+ this._dialogService.showInformation("Component: " + this.workFlow.component + " key: " + this.workFlow.displayKey);
169
+ }
170
+ }
171
+ showTaskFormAndWorkLog() {
172
+ if (this.activity.task) {
173
+ //TODO REINSTATE AFTER FIXING FORM
174
+ //this.taskModifier.startModifyingTaskAndWorkLog(this.activity);
175
+ }
176
+ }
177
+ onSaveActivity(activity) {
178
+ this.activity = activity;
179
+ this.activityChange.next(this.activity);
180
+ }
181
+ onDeleteActivity(activity) {
182
+ if (this.activity.getId() === activity.getId()) {
183
+ if (this._viewModel) {
184
+ this._viewModel.deleted = true;
185
+ this._viewModel.showing = false;
186
+ this._viewModel.refreshViewModel();
187
+ }
188
+ this.activityDeleted.emit(activity);
189
+ }
190
+ }
191
+ //TODO Reinstate once we know what to do with the formbuilder
192
+ /*public doCancelForm(): void {
193
+ this.showCreateForm = false;
194
+ }
195
+
196
+ public async doSaveForm(form: FormResponse): Promise<void> {
197
+ const result: ValidationResult = await this._formRepo.insertFormResponse(form);
198
+ if (result.success) {
199
+ this.formCreated.next();
200
+ this.showCreateForm = false;
201
+ }
202
+ }*/
203
+ _prepareData() {
204
+ this.workFlow = this._activity.workflow;
205
+ if (this.workFlow) {
206
+ this.workFlow.useSingleTaskTriggerAsTask = true;
207
+ this.urls = this.workFlow.urls;
208
+ this.hasTriggers = this.workFlow.hasTriggers;
209
+ }
210
+ this.activityName = this.activity.name;
211
+ this.link = this.activity.link;
212
+ this.linkDescription = this.activity.linkDescription;
213
+ this.targetDate = this.activity.targetDateTime;
214
+ this.deadlineDate = this.activity.deadlineDateTime;
215
+ this.openButtonLabel = this.activity.linkLabel;
216
+ this.activityTitle = this.activity.activityTitle;
217
+ this.activityContextTitle = this.activity.activityContextTitle;
218
+ this.isTask = this._activity.IsTask;
219
+ this.sameDates = DateUtils.IsSameDay(this.targetDate, this.deadlineDate);
220
+ this._setFirstTriggerToCloseWF();
221
+ }
222
+ _setFirstTriggerToCloseWF() {
223
+ if (isNill(this.workFlow) || isNill(this.workFlow.manualTriggers)) {
224
+ return;
225
+ }
226
+ this.firstTriggerToCloseWF = undefined;
227
+ const len = this.workFlow.manualTriggers.length;
228
+ for (let i = 0; i < len; i++) {
229
+ if (this.workFlow.manualTriggers[i].toClosedState) {
230
+ this.firstTriggerToCloseWF = this.workFlow.manualTriggers[i];
231
+ break;
232
+ }
233
+ }
234
+ }
235
+ _openUrl(url) {
236
+ const regEx = new RegExp(/(http)|(www.)/);
237
+ if (regEx.test(url)) {
238
+ window.open(url.indexOf("http") === -1 ? "http://" + url : url, "_blank");
239
+ }
240
+ else {
241
+ //this._router.navigateByUrl(url);
242
+ }
243
+ }
244
+ _stopEventPropagation(event) {
245
+ event.preventDefault();
246
+ event.stopPropagation();
247
+ event.stopImmediatePropagation();
248
+ }
249
+ }
250
+ BaseActivityOverviewComponent.decorators = [
251
+ { type: Directive },
252
+ { type: Injectable }
253
+ ];
254
+ BaseActivityOverviewComponent.ctorParameters = () => [
255
+ { type: CoreDialogService },
256
+ { type: DictionaryService },
257
+ { type: SharedService }
258
+ ];
259
+ BaseActivityOverviewComponent.propDecorators = {
260
+ taskModifier: [{ type: ViewChild, args: [TaskModifierComponent, { static: true },] }],
261
+ viewModel: [{ type: Input }],
262
+ triggerToFireOnSave: [{ type: Input }],
263
+ prepareWorkflowOperation: [{ type: Input }],
264
+ userRelationId: [{ type: Input }],
265
+ userGroupId: [{ type: Input }],
266
+ handleOpenLinkSidebar: [{ type: Input }],
267
+ activityChange: [{ type: Output }],
268
+ activityDeleted: [{ type: Output }],
269
+ triggerFired: [{ type: Output }],
270
+ genericTriggerFired: [{ type: Output }],
271
+ formCreated: [{ type: Output }],
272
+ openLink: [{ type: Output }],
273
+ linkClicked: [{ type: Output }]
274
+ };
275
+ __decorate([
276
+ InputBoolean()
277
+ ], BaseActivityOverviewComponent.prototype, "handleOpenLinkSidebar", void 0);
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpdml0eS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1vdmVydmlldy1jb21wb25lbnQvY29tcG9uZW50cy9iYXNlLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUluRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUdyRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbkMsTUFBTSx1REFBdUQsQ0FBQztBQU0vRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxp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QUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDN0U7YUFBTTtZQUNILGtDQUFrQztTQUNyQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFpQjtRQUMzQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OztZQTVTSixTQUFTO1lBQ1QsVUFBVTs7O1lBdEJILGlCQUFpQjtZQWNqQixpQkFBaUI7WUFHakIsYUFBYTs7OzJCQXdCaEIsU0FBUyxTQUFDLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzt3QkFHL0MsS0FBSztrQ0FPTCxLQUFLO3VDQVNMLEtBQUs7NkJBR0wsS0FBSzswQkFHTCxLQUFLO29DQUdMLEtBQUs7NkJBSUwsTUFBTTs4QkFHTixNQUFNOzJCQUdOLE1BQU07a0NBR04sTUFBTTswQkFHTixNQUFNO3VCQUdOLE1BQU07MEJBR04sTUFBTTs7QUFwQlA7SUFEQyxZQUFZLEVBQUU7NEVBQytCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtXb3JrZmxvd30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3dvcmtmbG93LmJvXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dUcmlnZ2VyfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29ya2Zsb3ctdHJpZ2dlci5ib1wiO1xyXG5pbXBvcnQge01vZHVsZU5hdmlnYXRpb25MaW5rfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9tb2R1bGUtbmF2aWdhdGlvbi1saW5rXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS10eXBlXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dHZW5lcmljVHJhbnNpdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3dvcmtmbG93LWdlbmVyaWMtdHJhbnNpdGlvbi5ib1wiO1xyXG5pbXBvcnQge0FjdGl2aXR5Vmlld01vZGVsfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktdmlldy1tb2RlbFwiO1xyXG5pbXBvcnQge0NvcmVEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5Q2ZnTmFtZX0gZnJvbSBcIi4uLy4uLy4uL2VudW0vYWN0aXZpdHktY2ZnLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2UvYWN0aXZpdGllcy10YXNrLWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24sXHJcbiAgT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvblwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24sXHJcbiAgT3BlcmF0aW9uV2l0aFZhbGlkYXRpb25DYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtdmFsaWRhdGlvblwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7VGFza01vZGlmaWVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdGFzay1tb2RpZnllci90YXNrLW1vZGlmaWVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcblxyXG5cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIEFjdGl2aXR5Q2ZnTmFtZSA9IEFjdGl2aXR5Q2ZnTmFtZTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFza0NmZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzID0ge1xyXG4gICAgICAgIHRpbWVSZWdpc3RyYXRpb25NYW5kYXRvcnk6IEFjdGl2aXR5Q2ZnTmFtZS5UaW1lUmVnaXN0cmF0aW9uTWFuZGF0b3J5LFxyXG4gICAgICAgIGRlbGV0ZUFjdGl2aXR5VGFza0J1dHRvbjogQWN0aXZpdHlDZmdOYW1lLkRlbGV0ZUFjdGl2aXR5VGFza0J1dHRvbixcclxuICAgICAgICBzdGF0dXNTdW1tYXJ5SGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuU3RhdHVzU3VtbWFyeUhlYWRlcixcclxuICAgICAgICBjcmVhdGlvblN1bW1hcnlIZWFkZXI6IEFjdGl2aXR5Q2ZnTmFtZS5DcmVhdGlvblN1bW1hcnlIZWFkZXIsXHJcbiAgICAgICAgZXhlY3V0aXZlU3VtbWFyeUhlYWRlcjogQWN0aXZpdHlDZmdOYW1lLkV4ZWN1dGl2ZVN1bW1hcnlIZWFkZXIsXHJcbiAgICAgICAgcGxhbm5pbmdTdW1tYXJ5SGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuUGxhbm5pbmdTdW1tYXJ5SGVhZGVyLFxyXG4gICAgICAgIGF0dGFjaG1lbnRzSGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuQXR0YWNobWVudHNIZWFkZXIsXHJcbiAgICAgICAgbm90aWZpY2F0aW9uc1N1bW1hcnlIZWFkZXI6IEFjdGl2aXR5Q2ZnTmFtZS5Ob3RpZmljYXRpb25zU3VtbWFyeUhlYWRlcixcclxuICAgICAgICB0YWdzSGVhZGVyOiBBY3Rpdml0eUNmZ05hbWUuVGFnc0hlYWRlcixcclxuICAgICAgICB0YXNrSW52b2ljZTogQWN0aXZpdHlDZmdOYW1lLlRhc2tJbnZvaWNlXHJcbiAgICB9O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoVGFza01vZGlmaWVyQ29tcG9uZW50LCB7c3RhdGljOiB0cnVlfSlcclxuICAgIHB1YmxpYyB0YXNrTW9kaWZpZXI6IFRhc2tNb2RpZmllckNvbXBvbmVudDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB2aWV3TW9kZWwodmFsdWU6IEFjdGl2aXR5Vmlld01vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5fdmlld01vZGVsID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdmVyRHVlID0gdmFsdWUub3ZlckR1ZTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5ID0gdmFsdWUuYWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJpZ2dlclRvRmlyZU9uU2F2ZSh2YWx1ZTogV29ya2Zsb3dUcmlnZ2VyKSB7XHJcbiAgICAgIHRoaXMuX3RyaWdnZXJUb0ZpcmVPblNhdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyaWdnZXJUb0ZpcmVPblNhdmUoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyVG9GaXJlT25TYXZlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcHJlcGFyZVdvcmtmbG93T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVzZXJSZWxhdGlvbklkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGlua1NpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBhY3Rpdml0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZpdHlEZWxldGVkOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0cmlnZ2VyRmlyZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGdlbmVyaWNUcmlnZ2VyRmlyZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvcm1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb3Blbkxpbms6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxpbmtDbGlja2VkOiBFdmVudEVtaXR0ZXI8e21vZHVsZTogc3RyaW5nLCBpZDogc3RyaW5nfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+KCk7XHJcblxyXG4gICAgcHVibGljIHNldCBhY3Rpdml0eSh2YWx1ZTogQWN0aXZpdHkpIHtcclxuICAgICAgICB0aGlzLl9hY3Rpdml0eSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3Rpdml0eSgpOiBBY3Rpdml0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB3b3JrRmxvdzogV29ya2Zsb3c7XHJcbiAgICBwdWJsaWMgdGFyZ2V0RGF0ZTogRGF0ZTtcclxuICAgIHB1YmxpYyBkZWFkbGluZURhdGU6IERhdGU7XHJcbiAgICBwdWJsaWMgYWN0aXZpdHlOYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWN0aXZpdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgcHVibGljIGFjdGl2aXR5VGl0bGU6IHN0cmluZztcclxuICAgIHB1YmxpYyBhY3Rpdml0eUNvbnRleHRUaXRsZTogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBvcGVuQnV0dG9uTGFiZWw6IHN0cmluZztcclxuICAgIHB1YmxpYyBvdmVyRHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdXNlcklzU3VwZXJ2aXNvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLy9UT0RPIFJlaW5zdGF0ZSBvbmNlIHdlIGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBmb3JtYnVpbGRlclxyXG4gICAgLy9wdWJsaWMgc2hvd0NyZWF0ZUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8vcHVibGljIGZvcm06IEZvcm1GdWxsT2JqZWN0ID0gTlVMTF9GT1JNX0ZVTExfT0JKRUNUO1xyXG4gICAgcHVibGljIHRhYmxlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdXJsczogc3RyaW5nW10gPSBbXTtcclxuICAgIHB1YmxpYyBmaXJzdFRyaWdnZXJUb0Nsb3NlV0Y6IFdvcmtmbG93VHJpZ2dlcjtcclxuICAgIHB1YmxpYyBpc1Rhc2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYXNUcmlnZ2VyczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBsaW5rOiBNb2R1bGVOYXZpZ2F0aW9uTGluaztcclxuICAgIHB1YmxpYyBsaW5rRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIHB1YmxpYyBzYW1lRGF0ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9hY3Rpdml0eTogQWN0aXZpdHkgPSBuZXcgQWN0aXZpdHkoKTtcclxuICAgIHByaXZhdGUgX3ZpZXdNb2RlbDogQWN0aXZpdHlWaWV3TW9kZWw7XHJcbiAgICBwcml2YXRlIF90cmlnZ2VyVG9GaXJlT25TYXZlOiBXb3JrZmxvd1RyaWdnZXI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICAgICAgICAgICAgIC8vVE9ETyByZWluc3RhdGUgd2hlbiBmb3JtYnVpbGRlciBpcyB0cmFuc2ZlcnJlZFxyXG4gICAgICAgICAgICAgIC8vcHJpdmF0ZSBfZm9ybVJlcG86IEZvcm1EYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgICAgICAgIC8qcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIqL1xyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUJ1dHRvbkVuZENsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlVHJpZ2dlckNsaWNrKHRoaXMuZmlyc3RUcmlnZ2VyVG9DbG9zZVdGKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgaGFuZGxlR2VuZXJpY1RyaWdnZXJDbGljayhldmVudDogV29ya2Zsb3dHZW5lcmljVHJhbnNpdGlvbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMuX3NoYXJlZFNlcnZpY2UuZmlyZUdlbmVyaWNUcmlnZ2VyKFxyXG4gICAgICAgICAgICB0aGlzLndvcmtGbG93LndvcmtmbG93UHJvY2Vzc0lkLCBldmVudC5nZW5lcmljVHJhbnNpdGlvbklkLCB0aGlzLnVzZXJSZWxhdGlvbklkICk7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJpY1RyaWdnZXJGaXJlZC5uZXh0KHRoaXMuYWN0aXZpdHkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHJlc3VsdC5tZXNzYWdlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocmVzdWx0Lm1lc3NhZ2VzW2ldLm1lc3NhZ2UudG9VcHBlckNhc2UoKSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKG1lc3NhZ2VzLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgaGFuZGxlVHJpZ2dlckNsaWNrKGV2ZW50VHJpZ2dlcjogV29ya2Zsb3dUcmlnZ2VyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKGV2ZW50VHJpZ2dlci5pc1Rhc2tUcmlnZ2VyICYmIGV2ZW50VHJpZ2dlci50YXNrSWQpIHtcclxuICAgICAgICAgICAgLy9wcmVwYXJlIHRhc2sgb24gdGhlIGFjdGl2aXR5IG9iamVjdCwgc28gdGhlIHRhc2sgbW9kaWZpZXIgY2FuIGhhbmRsZSBpdFxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5LnRhc2sgPSBuZXcgVGFzaygpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5UYXNrO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5LnRhc2sudGFza0lkID0gZXZlbnRUcmlnZ2VyLnRhc2tJZDtcclxuICAgICAgICAgICAgdGhpcy50YXNrTW9kaWZpZXIuc3RhcnRNb2RpZnlpbmdUYXNrKHRoaXMuYWN0aXZpdHkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUcmlnZ2VyLmlzRm9ybVRyaWdnZXIpIHtcclxuICAgICAgICAgICAgLy9UT0RPIHJlaW5zdGF0ZSB3aGVuIHdlIGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBmb3JtYnVpbGRlclxyXG4gICAgICAgICAgICAvKnRoaXMuZm9ybSA9IGF3YWl0IHRoaXMuX2Zvcm1SZXBvLmdldEZvcm0oZXZlbnRUcmlnZ2VyLmZvcm1JZCk7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUgPSB0aGlzLndvcmtGbG93LnRhYmxlO1xyXG4gICAgICAgICAgICB0aGlzLmtleSA9IHRoaXMud29ya0Zsb3cua2V5O1xyXG4gICAgICAgICAgICB0aGlzLnNob3dDcmVhdGVGb3JtID0gdHJ1ZTsqL1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudFRyaWdnZXIudG9DbG9zZWRTdGF0ZSAmJiAhdGhpcy5fc2hhcmVkU2VydmljZS5jYW5GaXJlVHJpZ2dlcih0aGlzLmFjdGl2aXR5LCB0aGlzLmFjdGl2aXR5LnRhc2spKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVXb3JrZmxvd09wZXJhdGlvbih7dGFibGU6IHRoaXMud29ya0Zsb3cudGFibGUsIGtleTogdGhpcy53b3JrRmxvdy5rZXl9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclRvRmlyZU9uU2F2ZSA9IGV2ZW50VHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rhc2tGb3JtQW5kV29ya0xvZygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMuX3NoYXJlZFNlcnZpY2UuZmlyZVRyaWdnZXIoXHJcbiAgICAgICAgICAgICAgdGhpcy53b3JrRmxvdy53b3JrZmxvd1Byb2Nlc3NJZCwgdGhpcy53b3JrRmxvdy5zZXF1ZW5jZSwgZXZlbnRUcmlnZ2VyLnRyaWdnZXJJZCk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJpZ2dlckZpcmVkLm5leHQodGhpcy5hY3Rpdml0eSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSByZXN1bHQubWVzc2FnZXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocmVzdWx0Lm1lc3NhZ2VzW2ldLm1lc3NhZ2UudG9VcHBlckNhc2UoKSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcihtZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rKGV2ZW50OiBNb3VzZUV2ZW50LCB1cmw/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XHJcbiAgICAgICAgaWYgKHVybCkgeyAvLyBicmVhZENydW1icyB0byB1cmxcclxuICAgICAgICAgICAgdGhpcy5fb3BlblVybCh1cmwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGlua09yVXJsKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xyXG4gICAgICAgIGlmICh0aGlzLmxpbmsgJiYgdGhpcy5saW5rLm1vZHVsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxpbmtDbGlja2VkLm5leHQoe21vZHVsZTogdGhpcy5saW5rLm1vZHVsZSwgaWQ6IHRoaXMubGluay5pZH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy51cmxzICYmIHRoaXMudXJscy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BlblVybCh0aGlzLnVybHNbMF0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydE1vZGlmeWluZ1Rhc2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya0Zsb3cgJiYgdGhpcy53b3JrRmxvdy53b3JrRmxvd0hhc09uZVRhc2tUcmlnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHkudGFzayA9IG5ldyBUYXNrKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHkuYWN0aXZpdHlUeXBlID0gQWN0aXZpdHlUeXBlLlRhc2s7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHkudGFzay50YXNrSWQgPSB0aGlzLndvcmtGbG93LnRhc2tJZEZyb21UYXNrVHJpZ2dlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHkudGFzaykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5oYW5kbGVPcGVuTGlua1NpZGViYXIgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlbkxpbmsubmV4dCh0aGlzLmFjdGl2aXR5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhc2tNb2RpZmllci5zdGFydE1vZGlmeWluZ1Rhc2sodGhpcy5hY3Rpdml0eSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVE9ETzogZm9yIG5vdyBhIG1lc3NhZ2UgaXMgc2hvd24uXHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy53b3JrRmxvdykge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbihcIkNvbXBvbmVudDogXCIgKyB0aGlzLndvcmtGbG93LmNvbXBvbmVudCArIFwiIGtleTogXCIgKyB0aGlzLndvcmtGbG93LmRpc3BsYXlLZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd1Rhc2tGb3JtQW5kV29ya0xvZygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0eS50YXNrKSB7XHJcbiAgICAgICAgICAvL1RPRE8gUkVJTlNUQVRFIEFGVEVSIEZJWElORyBGT1JNXHJcbiAgICAgICAgICAvL3RoaXMudGFza01vZGlmaWVyLnN0YXJ0TW9kaWZ5aW5nVGFza0FuZFdvcmtMb2codGhpcy5hY3Rpdml0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblNhdmVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNoYW5nZS5uZXh0KHRoaXMuYWN0aXZpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkRlbGV0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXR5LmdldElkKCkgPT09IGFjdGl2aXR5LmdldElkKCkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld01vZGVsLmRlbGV0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld01vZGVsLnNob3dpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdNb2RlbC5yZWZyZXNoVmlld01vZGVsKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eURlbGV0ZWQuZW1pdChhY3Rpdml0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL1RPRE8gUmVpbnN0YXRlIG9uY2Ugd2Uga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlIGZvcm1idWlsZGVyXHJcbiAgICAvKnB1YmxpYyBkb0NhbmNlbEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93Q3JlYXRlRm9ybSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1NhdmVGb3JtKGZvcm06IEZvcm1SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMuX2Zvcm1SZXBvLmluc2VydEZvcm1SZXNwb25zZShmb3JtKTtcclxuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ3JlYXRlZC5uZXh0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NyZWF0ZUZvcm0gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlRGF0YSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLndvcmtGbG93ID0gdGhpcy5fYWN0aXZpdHkud29ya2Zsb3c7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya0Zsb3cpIHtcclxuICAgICAgICAgICAgdGhpcy53b3JrRmxvdy51c2VTaW5nbGVUYXNrVHJpZ2dlckFzVGFzayA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudXJscyA9IHRoaXMud29ya0Zsb3cudXJscztcclxuICAgICAgICAgICAgdGhpcy5oYXNUcmlnZ2VycyA9IHRoaXMud29ya0Zsb3cuaGFzVHJpZ2dlcnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlOYW1lID0gdGhpcy5hY3Rpdml0eS5uYW1lO1xyXG4gICAgICAgIHRoaXMubGluayA9IHRoaXMuYWN0aXZpdHkubGluaztcclxuICAgICAgICB0aGlzLmxpbmtEZXNjcmlwdGlvbiA9IHRoaXMuYWN0aXZpdHkubGlua0Rlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMudGFyZ2V0RGF0ZSA9IHRoaXMuYWN0aXZpdHkudGFyZ2V0RGF0ZVRpbWU7XHJcbiAgICAgICAgdGhpcy5kZWFkbGluZURhdGUgPSB0aGlzLmFjdGl2aXR5LmRlYWRsaW5lRGF0ZVRpbWU7XHJcbiAgICAgICAgdGhpcy5vcGVuQnV0dG9uTGFiZWwgPSB0aGlzLmFjdGl2aXR5LmxpbmtMYWJlbDtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5VGl0bGUgPSB0aGlzLmFjdGl2aXR5LmFjdGl2aXR5VGl0bGU7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNvbnRleHRUaXRsZSA9IHRoaXMuYWN0aXZpdHkuYWN0aXZpdHlDb250ZXh0VGl0bGU7XHJcbiAgICAgICAgdGhpcy5pc1Rhc2sgPSB0aGlzLl9hY3Rpdml0eS5Jc1Rhc2s7XHJcbiAgICAgICAgdGhpcy5zYW1lRGF0ZXMgPSBEYXRlVXRpbHMuSXNTYW1lRGF5KHRoaXMudGFyZ2V0RGF0ZSwgdGhpcy5kZWFkbGluZURhdGUpO1xyXG4gICAgICAgIHRoaXMuX3NldEZpcnN0VHJpZ2dlclRvQ2xvc2VXRigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldEZpcnN0VHJpZ2dlclRvQ2xvc2VXRigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaXNOaWxsKHRoaXMud29ya0Zsb3cpIHx8IGlzTmlsbCh0aGlzLndvcmtGbG93Lm1hbnVhbFRyaWdnZXJzKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpcnN0VHJpZ2dlclRvQ2xvc2VXRiA9IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHRoaXMud29ya0Zsb3cubWFudWFsVHJpZ2dlcnMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy53b3JrRmxvdy5tYW51YWxUcmlnZ2Vyc1tpXS50b0Nsb3NlZFN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpcnN0VHJpZ2dlclRvQ2xvc2VXRiA9IHRoaXMud29ya0Zsb3cubWFudWFsVHJpZ2dlcnNbaV07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vcGVuVXJsKHVybDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcmVnRXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoLyhodHRwKXwod3d3LikvKTtcclxuICAgICAgICBpZiAocmVnRXgudGVzdCh1cmwpKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybC5pbmRleE9mKFwiaHR0cFwiKSA9PT0gLTEgPyBcImh0dHA6Ly9cIiArIHVybCA6IHVybCwgXCJfYmxhbmtcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy90aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -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