@the-liberators/ngx-scrumteamsurvey-tools 2.3.20 → 2.3.24

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 (239) hide show
  1. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +821 -666
  2. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
  3. package/lib/components/quantity-selector/quantity-selector.component.d.ts +20 -0
  4. package/lib/components/quantity-selector/quantity-selector.module.d.ts +12 -0
  5. package/package.json +8 -10
  6. package/public-api.d.ts +2 -2
  7. package/esm2022/lib/actions/actions.module.mjs +0 -128
  8. package/esm2022/lib/actions/components/action-list/action-list.component.mjs +0 -118
  9. package/esm2022/lib/actions/components/action-manage/action-manage.component.mjs +0 -164
  10. package/esm2022/lib/actions/components/action-tile/action-tile.component.mjs +0 -79
  11. package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.mjs +0 -75
  12. package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive.mjs +0 -30
  13. package/esm2022/lib/actions/dialogs/dialog-filters/dialog-filters.component.mjs +0 -113
  14. package/esm2022/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.mjs +0 -78
  15. package/esm2022/lib/actions/interfaces/IActionState.mjs +0 -2
  16. package/esm2022/lib/actions/models/actionDto.mjs +0 -43
  17. package/esm2022/lib/actions/models/actionOptionsDto.mjs +0 -9
  18. package/esm2022/lib/actions/models/actionPrefillDto.mjs +0 -3
  19. package/esm2022/lib/actions/models/actionResponseDto.mjs +0 -7
  20. package/esm2022/lib/actions/models/exportRequestDto.mjs +0 -3
  21. package/esm2022/lib/actions/pipes/interventionOwnerToString.pipe.mjs +0 -32
  22. package/esm2022/lib/actions/pipes/interventionStateToString.pipe.mjs +0 -26
  23. package/esm2022/lib/actions/pipes/interventionTypeToString.pipe.mjs +0 -30
  24. package/esm2022/lib/actions/services/actionClientConfig.mjs +0 -30
  25. package/esm2022/lib/actions/services/actionService.mjs +0 -66
  26. package/esm2022/lib/add-calendar/generators/base-calendar.generator.mjs +0 -46
  27. package/esm2022/lib/add-calendar/generators/google-calendar.generator.mjs +0 -16
  28. package/esm2022/lib/add-calendar/generators/ics-calendar.generator.mjs +0 -33
  29. package/esm2022/lib/add-calendar/generators/outlook-calendar.generator.mjs +0 -17
  30. package/esm2022/lib/add-calendar/generators/yahoo-calendar.generator.mjs +0 -28
  31. package/esm2022/lib/add-calendar/index.mjs +0 -4
  32. package/esm2022/lib/add-calendar/model/calendar-event.model.mjs +0 -2
  33. package/esm2022/lib/add-calendar/model/calendar-type.enum.mjs +0 -9
  34. package/esm2022/lib/add-calendar/ng-add-to-calendar.module.mjs +0 -18
  35. package/esm2022/lib/add-calendar/service/ng-add-to-calendar.service.mjs +0 -33
  36. package/esm2022/lib/alerts/alerts.module.mjs +0 -24
  37. package/esm2022/lib/alerts/components/alerts-list/alerts.component.mjs +0 -105
  38. package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.component.mjs +0 -25
  39. package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.directive.mjs +0 -35
  40. package/esm2022/lib/alerts/interfaces/IAlertState.mjs +0 -2
  41. package/esm2022/lib/alerts/models/alertDto.model.mjs +0 -3
  42. package/esm2022/lib/alerts/models/alertFilterDto.model.mjs +0 -3
  43. package/esm2022/lib/alerts/models/alertResponseDto.model.mjs +0 -7
  44. package/esm2022/lib/alerts/models/dismissAlertRequestDto.model.mjs +0 -3
  45. package/esm2022/lib/alerts/services/alertClientConfig.mjs +0 -30
  46. package/esm2022/lib/alerts/services/alerts.service.mjs +0 -31
  47. package/esm2022/lib/apiUrlToken.mjs +0 -30
  48. package/esm2022/lib/branding/brandBackground.directive.mjs +0 -46
  49. package/esm2022/lib/branding/brandConditionalBackgroundColor.directive.mjs +0 -58
  50. package/esm2022/lib/branding/brandConditionalColor.directive.mjs +0 -63
  51. package/esm2022/lib/branding/brandHoverColor.directive.mjs +0 -84
  52. package/esm2022/lib/branding/branding.module.mjs +0 -68
  53. package/esm2022/lib/branding/brandingProvider.service.mjs +0 -33
  54. package/esm2022/lib/branding/components/site-default-footer/site-default-footer.component.mjs +0 -37
  55. package/esm2022/lib/branding/components/site-default-header/site-default-header.component.mjs +0 -74
  56. package/esm2022/lib/branding/components/site-micro-footer/site-micro-footer.component.mjs +0 -34
  57. package/esm2022/lib/community/community.module.mjs +0 -31
  58. package/esm2022/lib/community/components/gethelp-form/gethelp-form.component.mjs +0 -79
  59. package/esm2022/lib/community/components/meetups/meetups.component.mjs +0 -69
  60. package/esm2022/lib/community/components/recentcontent/recentcontent.component.mjs +0 -29
  61. package/esm2022/lib/community/interfaces/ICommunityState.mjs +0 -2
  62. package/esm2022/lib/community/models/meetupDto.mjs +0 -6
  63. package/esm2022/lib/community/models/resourceDto.mjs +0 -6
  64. package/esm2022/lib/community/services/communityClientConfig.mjs +0 -30
  65. package/esm2022/lib/componentBase.mjs +0 -33
  66. package/esm2022/lib/componentWithViewStateBase.mjs +0 -38
  67. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -52
  68. package/esm2022/lib/components/checkbox/checkbox.module.mjs +0 -24
  69. package/esm2022/lib/components/expand/expand.component.mjs +0 -41
  70. package/esm2022/lib/components/expand/expand.module.mjs +0 -24
  71. package/esm2022/lib/components/loading/loading.component.mjs +0 -33
  72. package/esm2022/lib/components/loading/loading.module.mjs +0 -24
  73. package/esm2022/lib/components/mat-tags/mat-tags.component.mjs +0 -82
  74. package/esm2022/lib/components/mat-tags/mat-tags.module.mjs +0 -47
  75. package/esm2022/lib/components/metadata-input/metadata-input.component.mjs +0 -99
  76. package/esm2022/lib/components/metadata-input/metadata-input.module.mjs +0 -39
  77. package/esm2022/lib/components/multi-email-input/multi-email-input.component.mjs +0 -112
  78. package/esm2022/lib/components/multi-email-input/multi-email-input.module.mjs +0 -39
  79. package/esm2022/lib/components/paginator/paginator.component.mjs +0 -50
  80. package/esm2022/lib/components/paginator/paginator.module.mjs +0 -40
  81. package/esm2022/lib/components/select-list/select-list.component.mjs +0 -73
  82. package/esm2022/lib/components/select-list/select-list.module.mjs +0 -46
  83. package/esm2022/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.mjs +0 -30
  84. package/esm2022/lib/components/snapshot-inviteurls/snapshot-inviteurls.module.mjs +0 -36
  85. package/esm2022/lib/components/tabnavigator/tabnavigator.component.mjs +0 -36
  86. package/esm2022/lib/components/tabnavigator/tabnavigator.module.mjs +0 -32
  87. package/esm2022/lib/components/topicselector/customCheckValidator.mjs +0 -15
  88. package/esm2022/lib/components/topicselector/minTopicsSelectedValidator.mjs +0 -15
  89. package/esm2022/lib/components/topicselector/topic-selector.component.mjs +0 -220
  90. package/esm2022/lib/components/topicselector/topic-selector.module.mjs +0 -55
  91. package/esm2022/lib/dialogs/dialog-account/account.service.mjs +0 -29
  92. package/esm2022/lib/dialogs/dialog-account/dialog-account.component.mjs +0 -86
  93. package/esm2022/lib/dialogs/dialog-account/dialog-account.module.mjs +0 -21
  94. package/esm2022/lib/dialogs/dialog-account/resetPasswordRequestDto.model.mjs +0 -3
  95. package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.mjs +0 -48
  96. package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.mjs +0 -21
  97. package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.mjs +0 -76
  98. package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module.mjs +0 -23
  99. package/esm2022/lib/dialogs/dialog-resourcedownload/resourceDownload.service.mjs +0 -26
  100. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.component.mjs +0 -25
  101. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.directive.mjs +0 -30
  102. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.module.mjs +0 -19
  103. package/esm2022/lib/dialogs/dialog-support/contactDto.mjs +0 -2
  104. package/esm2022/lib/dialogs/dialog-support/contactService.service.mjs +0 -25
  105. package/esm2022/lib/dialogs/dialog-support/contactTypeDto.mjs +0 -2
  106. package/esm2022/lib/dialogs/dialog-support/dialog-support.component.mjs +0 -90
  107. package/esm2022/lib/dialogs/dialog-support/dialog-support.directive.mjs +0 -131
  108. package/esm2022/lib/dialogs/dialog-support/dialog-support.module.mjs +0 -27
  109. package/esm2022/lib/directives/backbutton/backbutton.directive.mjs +0 -34
  110. package/esm2022/lib/directives/backbutton/backbutton.module.mjs +0 -17
  111. package/esm2022/lib/directives/guards/guards.module.mjs +0 -30
  112. package/esm2022/lib/directives/guards/validChangeTokenGuard.mjs +0 -27
  113. package/esm2022/lib/directives/guards/validKeyGuard.mjs +0 -26
  114. package/esm2022/lib/directives/guards/validSnapshotKeyGuard.mjs +0 -27
  115. package/esm2022/lib/directives/guards/validTeamKeyGuard.mjs +0 -27
  116. package/esm2022/lib/errorhandling/error.model.mjs +0 -16
  117. package/esm2022/lib/errorhandling/errorHandler.mjs +0 -96
  118. package/esm2022/lib/errorhandling/errorService.module.mjs +0 -24
  119. package/esm2022/lib/errorhandling/errorServiceConfig.mjs +0 -34
  120. package/esm2022/lib/guides/components/imageslider/imageslider.component.mjs +0 -52
  121. package/esm2022/lib/guides/components/resumeguidehover/resumeguidehover.component.mjs +0 -40
  122. package/esm2022/lib/guides/dialogs/dialog-guide/dialog-guide.component.mjs +0 -144
  123. package/esm2022/lib/guides/dialogs/dialog-guides/dialog-guides.component.mjs +0 -90
  124. package/esm2022/lib/guides/directives/startguide/startguide.directive.mjs +0 -27
  125. package/esm2022/lib/guides/guides.module.mjs +0 -92
  126. package/esm2022/lib/guides/interfaces/IGuideState.mjs +0 -2
  127. package/esm2022/lib/guides/models/guideCollectionDto.mjs +0 -19
  128. package/esm2022/lib/guides/services/guidePopup.service.mjs +0 -80
  129. package/esm2022/lib/guides/services/guideStateInBackEnd.service.mjs +0 -54
  130. package/esm2022/lib/guides/services/guideStateInBrowser.service.mjs +0 -56
  131. package/esm2022/lib/guides/services/guidesClientConfig.mjs +0 -30
  132. package/esm2022/lib/guides/services/interfaces.mjs +0 -2
  133. package/esm2022/lib/models/brandingSettingsDto.mjs +0 -5
  134. package/esm2022/lib/models/channelDto.mjs +0 -18
  135. package/esm2022/lib/models/clientInfoDto.mjs +0 -7
  136. package/esm2022/lib/models/contextItemDto.mjs +0 -7
  137. package/esm2022/lib/models/featuresDto.mjs +0 -3
  138. package/esm2022/lib/models/keyValueDto.mjs +0 -7
  139. package/esm2022/lib/models/modelStructureDto.mjs +0 -46
  140. package/esm2022/lib/models/paginatedResponse.mjs +0 -6
  141. package/esm2022/lib/models/pagingOptions.mjs +0 -3
  142. package/esm2022/lib/models/selectListItem.mjs +0 -8
  143. package/esm2022/lib/models/userInfoDto.mjs +0 -16
  144. package/esm2022/lib/models/userSettingsDto.mjs +0 -65
  145. package/esm2022/lib/pipes/callback/callback.module.mjs +0 -17
  146. package/esm2022/lib/pipes/callback/callback.pipe.mjs +0 -20
  147. package/esm2022/lib/pipes/dateRange/ngx-dateRange.module.mjs +0 -17
  148. package/esm2022/lib/pipes/dateRange/ngx-dateRange.pipe.mjs +0 -36
  149. package/esm2022/lib/pipes/dateRange/ngx-dateRangeDto.model.mjs +0 -3
  150. package/esm2022/lib/pipes/segmentName/segmentName.module.mjs +0 -17
  151. package/esm2022/lib/pipes/segmentName/segmentName.pipe.mjs +0 -31
  152. package/esm2022/lib/pipes/slugify/ngx-slugify.module.mjs +0 -17
  153. package/esm2022/lib/pipes/slugify/ngx-slugify.pipe.mjs +0 -24
  154. package/esm2022/lib/results/components/age-indicator/age-indicator.component.mjs +0 -37
  155. package/esm2022/lib/results/components/arrow/arrow.component.mjs +0 -224
  156. package/esm2022/lib/results/components/badge/badge.component.mjs +0 -29
  157. package/esm2022/lib/results/components/badge-progression/badge-progression.component.mjs +0 -25
  158. package/esm2022/lib/results/components/badge-streak/badge-streak.component.mjs +0 -29
  159. package/esm2022/lib/results/components/badges/badges.component.mjs +0 -40
  160. package/esm2022/lib/results/components/benchmark-indicator/benchmark-indicator.component.mjs +0 -21
  161. package/esm2022/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.mjs +0 -28
  162. package/esm2022/lib/results/components/delta-arrow/delta-arrow.component.mjs +0 -37
  163. package/esm2022/lib/results/components/doityourself/doityourself.component.mjs +0 -17
  164. package/esm2022/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.mjs +0 -41
  165. package/esm2022/lib/results/components/factor-axis/factor-axis.component.mjs +0 -62
  166. package/esm2022/lib/results/components/factors/factors.component.mjs +0 -46
  167. package/esm2022/lib/results/components/filter-tags/filter-tags.component.mjs +0 -31
  168. package/esm2022/lib/results/components/focusareas/focusareas.component.mjs +0 -43
  169. package/esm2022/lib/results/components/footer/footer.component.mjs +0 -30
  170. package/esm2022/lib/results/components/impact-indicator/impact-indicator.component.mjs +0 -20
  171. package/esm2022/lib/results/components/liberatorkits/liberatorkits.component.mjs +0 -29
  172. package/esm2022/lib/results/components/limitationsapply/limitationsapply.component.mjs +0 -20
  173. package/esm2022/lib/results/components/model/model.component.mjs +0 -79
  174. package/esm2022/lib/results/components/model-factor/model-factor.component.mjs +0 -95
  175. package/esm2022/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.mjs +0 -44
  176. package/esm2022/lib/results/components/model-switcher/model-switcher.component.mjs +0 -33
  177. package/esm2022/lib/results/components/nav-button/nav-button.component.mjs +0 -85
  178. package/esm2022/lib/results/components/participants/participants.component.mjs +0 -78
  179. package/esm2022/lib/results/components/quicktips/quicktips.component.mjs +0 -77
  180. package/esm2022/lib/results/components/recommendation/recommendation.component.mjs +0 -53
  181. package/esm2022/lib/results/components/recommendations/recommendations.component.mjs +0 -57
  182. package/esm2022/lib/results/components/research/research.component.mjs +0 -16
  183. package/esm2022/lib/results/components/roadmap/roadmap.component.mjs +0 -29
  184. package/esm2022/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.mjs +0 -30
  185. package/esm2022/lib/results/components/teameffectiveness/teameffectiveness.component.mjs +0 -40
  186. package/esm2022/lib/results/components/termsupdated/termsupdated.component.mjs +0 -37
  187. package/esm2022/lib/results/components/tip-badge/tip-badge.component.mjs +0 -53
  188. package/esm2022/lib/results/components/trends/trends.component.mjs +0 -138
  189. package/esm2022/lib/results/components/update-in-progress/update-in-progress.component.mjs +0 -36
  190. package/esm2022/lib/results/components/userprofile/userprofile.component.mjs +0 -166
  191. package/esm2022/lib/results/components/video/video.component.mjs +0 -23
  192. package/esm2022/lib/results/components/widget-factorscore/widget-factorscore.component.mjs +0 -41
  193. package/esm2022/lib/results/components/widget-participationrate/widget-participationrate.component.mjs +0 -32
  194. package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.mjs +0 -94
  195. package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive.mjs +0 -30
  196. package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.mjs +0 -93
  197. package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive.mjs +0 -30
  198. package/esm2022/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.mjs +0 -84
  199. package/esm2022/lib/results/dialogs/dialog-notes/dialog-notes.component.mjs +0 -46
  200. package/esm2022/lib/results/dialogs/dialog-settings/dialog-settings.component.mjs +0 -167
  201. package/esm2022/lib/results/interfaces/IResultsState.mjs +0 -2
  202. package/esm2022/lib/results/models/badgeDto.mjs +0 -10
  203. package/esm2022/lib/results/models/dataSetDto.mjs +0 -7
  204. package/esm2022/lib/results/models/dimensionResultDto.mjs +0 -3
  205. package/esm2022/lib/results/models/exportRequestDto.mjs +0 -11
  206. package/esm2022/lib/results/models/factorScoreDto.mjs +0 -96
  207. package/esm2022/lib/results/models/localUserDto.model.mjs +0 -4
  208. package/esm2022/lib/results/models/participantDto.model.mjs +0 -4
  209. package/esm2022/lib/results/models/snapshotDto.model.mjs +0 -4
  210. package/esm2022/lib/results/models/snapshotMetaDataDto.mjs +0 -5
  211. package/esm2022/lib/results/models/teamDto.model.mjs +0 -4
  212. package/esm2022/lib/results/models/teamListResponseDto.mjs +0 -6
  213. package/esm2022/lib/results/models/teamMetaDataDto.mjs +0 -11
  214. package/esm2022/lib/results/models/trendDataRequestDto.model.mjs +0 -3
  215. package/esm2022/lib/results/models/userListResponseDto.mjs +0 -6
  216. package/esm2022/lib/results/models/widgetDataDto.mjs +0 -3
  217. package/esm2022/lib/results/results.module.mjs +0 -385
  218. package/esm2022/lib/results/services/account.service.mjs +0 -24
  219. package/esm2022/lib/results/services/dimissPopupService.mjs +0 -18
  220. package/esm2022/lib/results/services/exportService.mjs +0 -30
  221. package/esm2022/lib/results/services/factorService.mjs +0 -24
  222. package/esm2022/lib/results/services/resultsClientConfig.mjs +0 -30
  223. package/esm2022/lib/results/services/terms.service.mjs +0 -24
  224. package/esm2022/lib/results/services/trend.service.mjs +0 -24
  225. package/esm2022/lib/results/services/userProfile.service.mjs +0 -41
  226. package/esm2022/lib/validators/domainValidator.mjs +0 -14
  227. package/esm2022/lib/validators/matchInputValidator.mjs +0 -25
  228. package/esm2022/lib/validators/maxSelectedValidator.mjs +0 -9
  229. package/esm2022/lib/viewModel/interfaces.mjs +0 -6
  230. package/esm2022/lib/viewModel/reloadStrategies/noReloadStrategy.mjs +0 -22
  231. package/esm2022/lib/viewModel/reloadStrategies/reloadOnPushStrategy.mjs +0 -52
  232. package/esm2022/lib/viewModel/services/sessionIdInterceptor.service.mjs +0 -31
  233. package/esm2022/lib/viewModel/services/sessionIdProvider.service.mjs +0 -22
  234. package/esm2022/lib/viewModel/userSettings.service.mjs +0 -32
  235. package/esm2022/lib/viewModel/viewModelState.module.mjs +0 -31
  236. package/esm2022/lib/viewModel/viewModelState.service.mjs +0 -79
  237. package/esm2022/lib/viewModel/viewModelStateConfig.mjs +0 -30
  238. package/esm2022/public-api.mjs +0 -224
  239. package/esm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +0 -5
@@ -1,164 +0,0 @@
1
- import { Component, Inject, Input } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import { ComponentBase } from '../../../componentBase';
4
- import { SelectItem } from '../../../models/selectListItem';
5
- import { VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';
6
- import { InterventionStateEnum } from '../../models/actionDto';
7
- import { ActionOptionDto } from '../../models/actionOptionsDto';
8
- import { ActionPrefillDto } from '../../models/actionPrefillDto';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/dialog";
11
- import * as i2 from "@angular/forms";
12
- import * as i3 from "../../services/actionService";
13
- import * as i4 from "@angular/material/snack-bar";
14
- import * as i5 from "@angular/material/form-field";
15
- import * as i6 from "@angular/material/select";
16
- import * as i7 from "@angular/material/core";
17
- import * as i8 from "@angular/common";
18
- import * as i9 from "@angular/material/input";
19
- import * as i10 from "@angular/material/datepicker";
20
- import * as i11 from "../../../viewModel/viewModelState.service";
21
- export class ActionManageComponent extends ComponentBase {
22
- constructor(dialogRef, formBuilder, actionService, viewModelState, snackBar) {
23
- super(snackBar);
24
- this.dialogRef = dialogRef;
25
- this.formBuilder = formBuilder;
26
- this.actionService = actionService;
27
- this.viewModelState = viewModelState;
28
- this.snackBar = snackBar;
29
- this.teams = [];
30
- this.showTeamSelector = true;
31
- }
32
- ngOnInit() {
33
- this.createForm();
34
- this.ownerList = this.actionService.getOwnerOptions();
35
- this.interventionTypeList = this.actionService.getTypeOptions();
36
- this.stateList = this.actionService.getStateOptions();
37
- this.viewStateSubscription = this.viewModelState.data.subscribe(success => {
38
- if (success.loaded) {
39
- this.factors = this.getFactors(success.factorScores.modelStructure);
40
- this.expectedEffectOnList = success.factorScores.factorScores.map(p => new ActionOptionDto(p.key, p.name));
41
- if (success.teamMetaData != null) {
42
- this.teams.push(new ActionOptionDto(success.teamMetaData.teamKey, success.teamMetaData.name));
43
- }
44
- else {
45
- this.teams = success.factorScores.composition.points.points.map(p => new ActionOptionDto(p.publicKey, p.name));
46
- }
47
- if (this.teams.length == 1) {
48
- this.prefill.teamKey = this.teams[0].key;
49
- }
50
- this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);
51
- this.applyPrefill();
52
- }
53
- });
54
- if (this.action && this.action.publicKey) {
55
- this.form.controls.teamKey.setValue(this.action.team.publicKey);
56
- this.form.controls.publicKey.setValue(this.action.publicKey);
57
- this.form.controls.description.setValue(this.action.description);
58
- this.form.controls.url.setValue(this.action.url);
59
- this.form.controls.expectedImpactOn.setValue(this.action.expectedImpactOn);
60
- this.form.controls.type.setValue(this.action.type);
61
- this.form.controls.owner.setValue(this.action.owner);
62
- this.form.controls.state.setValue(this.action.state);
63
- this.form.controls.due.setValue(this.action.due);
64
- this.form.controls.quickTipPublicKey.setValue(this.action.quickTipPublicKey);
65
- this.showTeamSelector = false;
66
- }
67
- }
68
- async onSubmit(formDirective) {
69
- if (!this.form.valid) {
70
- return;
71
- }
72
- if (this.form.controls.publicKey.value) {
73
- await this.actionService.update(this.form.controls.teamKey.value, this.form.getRawValue());
74
- }
75
- else {
76
- await this.actionService.create(this.form.controls.teamKey.value, this.form.getRawValue());
77
- }
78
- this.dialogRef.closeAll();
79
- this.viewModelState.updating.next(true);
80
- }
81
- async delete() {
82
- if (window.confirm("Are you sure you want to delete this intervention?")) {
83
- await this.actionService.delete(this.form.controls.teamKey.value, this.form.controls.publicKey.value);
84
- this.dialogRef.closeAll();
85
- this.viewModelState.updating.next(true);
86
- }
87
- }
88
- cancel() {
89
- this.resetForm(null);
90
- this.dialogRef.closeAll();
91
- }
92
- resetForm(formDirective) {
93
- this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);
94
- this.form.reset();
95
- this.action = null;
96
- if (formDirective) {
97
- formDirective.resetForm();
98
- }
99
- this.form.controls.state.setValue(InterventionStateEnum.open);
100
- this.applyPrefill();
101
- }
102
- getFactors(model) {
103
- if (model == null || model.definition == null || model.definition.factors == null) {
104
- return null;
105
- }
106
- var result = [];
107
- for (var factor of model.definition.factors.filter(p => p.parentKey == null)) {
108
- result.push(new SelectItem(factor.publicKey, factor.name, false));
109
- for (var lowerDimension of factor.lower) {
110
- result.push(new SelectItem(lowerDimension.publicKey, lowerDimension.name, true));
111
- }
112
- }
113
- return result;
114
- }
115
- createForm() {
116
- this.form = this.formBuilder.group({
117
- publicKey: [""],
118
- teamKey: ["", [Validators.required]],
119
- quickTipPublicKey: [""],
120
- description: ["", [Validators.required, Validators.maxLength(500)]],
121
- url: ["", [Validators.maxLength(500)]],
122
- owner: ["", Validators.required],
123
- state: ["", Validators.required],
124
- type: ["", Validators.required],
125
- due: [""],
126
- expectedImpactOn: ["", Validators.required]
127
- });
128
- }
129
- applyPrefill() {
130
- if (this.prefill) {
131
- this.form.controls.teamKey.setValue(this.prefill.teamKey);
132
- this.form.controls.description.setValue(this.prefill.description);
133
- this.form.controls.expectedImpactOn.setValue(this.prefill.expectedImpactOn);
134
- this.form.controls.type.setValue(this.prefill.type);
135
- this.form.controls.owner.setValue(this.prefill.owner);
136
- this.form.controls.state.setValue(this.prefill.state);
137
- this.form.controls.url.setValue(this.prefill.url);
138
- this.form.controls.quickTipPublicKey.setValue(this.prefill.quickTipPublicKey);
139
- }
140
- else {
141
- this.prefill = new ActionPrefillDto();
142
- this.prefill.expectedImpactOn = [];
143
- }
144
- }
145
- ngOnDestroy() {
146
- if (this.viewStateSubscription) {
147
- this.viewStateSubscription.unsubscribe();
148
- }
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ActionManageComponent, deps: [{ token: i1.MatDialog }, { token: i2.FormBuilder }, { token: i3.ActionService }, { token: VIEWSTATE_PROVIDER }, { token: i4.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ActionManageComponent, selector: "action-manage", inputs: { prefill: "prefill", action: "action" }, usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"manage-action-form\">\n <mat-form-field appearance=\"fill\" *ngIf=\"showTeamSelector\" subscriptSizing=\"dynamic\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter short description</mat-label>\n <textarea matInput formControlName=\"description\" id=\"description\" rows=\"2\" maxlength=\"500\"></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.owner\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n <mat-option class=\"select-option\" *ngFor=\"let owner of ownerList\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.type\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n <mat-option class=\"select-option\" *ngFor=\"let interventionType of interventionTypeList\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.state || action\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.url || prefill.url.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Url for additional details (e.g. JIRA or Trello)</mat-label>\n <input matInput formControlName=\"url\" id=\"url\" rows=\"1\" maxlength=\"500\">\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>When should it be done?</mat-label>\n <input matInput [matDatepicker]=\"picker\" formControlName=\"due\" id=\"due\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\" *ngIf=\"action\"><span class=\"icon ph-trash\"></span> delete</a>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty || action\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\n", styles: ["form{margin-top:20px;position:sticky;top:20px}form .mat-form-field{width:100%;margin-bottom:10px}form .toolbar .button.cancel{padding-left:0;margin-left:0}@media only screen and (min-width: 992px){form .toolbar .delete{padding-left:0;margin-left:0}}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i10.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i10.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
152
- }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ActionManageComponent, decorators: [{
154
- type: Component,
155
- args: [{ selector: 'action-manage', template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"manage-action-form\">\n <mat-form-field appearance=\"fill\" *ngIf=\"showTeamSelector\" subscriptSizing=\"dynamic\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter short description</mat-label>\n <textarea matInput formControlName=\"description\" id=\"description\" rows=\"2\" maxlength=\"500\"></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.owner\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n <mat-option class=\"select-option\" *ngFor=\"let owner of ownerList\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.type\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n <mat-option class=\"select-option\" *ngFor=\"let interventionType of interventionTypeList\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.state || action\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.url || prefill.url.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Url for additional details (e.g. JIRA or Trello)</mat-label>\n <input matInput formControlName=\"url\" id=\"url\" rows=\"1\" maxlength=\"500\">\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>When should it be done?</mat-label>\n <input matInput [matDatepicker]=\"picker\" formControlName=\"due\" id=\"due\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\" *ngIf=\"action\"><span class=\"icon ph-trash\"></span> delete</a>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty || action\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\n", styles: ["form{margin-top:20px;position:sticky;top:20px}form .mat-form-field{width:100%;margin-bottom:10px}form .toolbar .button.cancel{padding-left:0;margin-left:0}@media only screen and (min-width: 992px){form .toolbar .delete{padding-left:0;margin-left:0}}.mat-mdc-option.lower{margin-left:20px}\n"] }]
156
- }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.FormBuilder }, { type: i3.ActionService }, { type: i11.ViewModelStateBase, decorators: [{
157
- type: Inject,
158
- args: [VIEWSTATE_PROVIDER]
159
- }] }, { type: i4.MatSnackBar }], propDecorators: { prefill: [{
160
- type: Input
161
- }], action: [{
162
- type: Input
163
- }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUE4QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBc0IsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRyxPQUFPLEVBQWEscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFjckQsWUFBb0IsU0FBb0IsRUFBVSxXQUF3QixFQUFVLGFBQTRCLEVBQXNDLGNBQWdELEVBQVksUUFBcUI7UUFDcE8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGdCQUFXLEdB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OzBCQWtCMEYsTUFBTTsyQkFBQyxrQkFBa0I7bUVBYjVILE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudEJhc2UnO1xuaW1wb3J0IHsgTW9kZWxTdHJ1Y3R1cmVEdG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxTdHJ1Y3R1cmVEdG8nO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZWxlY3RMaXN0SXRlbSc7XG5pbXBvcnQgeyBWSUVXU1RBVEVfUFJPVklERVIsIFZpZXdNb2RlbFN0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC92aWV3TW9kZWxTdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFjdGlvblN0YXRlJztcbmltcG9ydCB7IEFjdGlvbkR0bywgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbkR0byc7XG5pbXBvcnQgeyBBY3Rpb25PcHRpb25EdG8gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uT3B0aW9uc0R0byc7XG5pbXBvcnQgeyBBY3Rpb25QcmVmaWxsRHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvblByZWZpbGxEdG8nO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvblNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnYWN0aW9uLW1hbmFnZScsXG4gICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWFuYWdlLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTWFuYWdlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7XG4gICBASW5wdXQoKSBwdWJsaWMgcHJlZmlsbDogQWN0aW9uUHJlZmlsbER0bztcbiAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb246IEFjdGlvbkR0bztcbiAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gICBwdWJsaWMgaW50ZXJ2ZW50aW9uVHlwZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIGV4cGVjdGVkRWZmZWN0T25MaXN0OiBBY3Rpb25PcHRpb25EdG9bXTtcbiAgIHB1YmxpYyBzdGF0ZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIG93bmVyTGlzdDogQWN0aW9uT3B0aW9uRHRvW107XG4gICBwdWJsaWMgdGVhbXM6IEFjdGlvbk9wdGlvbkR0b1tdID0gW107XG4gICBwdWJsaWMgbXVsdGlwbGVUZWFtczogYm9vbGVhbjtcbiAgIHB1YmxpYyB2aWV3U3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgIHB1YmxpYyBzaG93VGVhbVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgIHB1YmxpYyBmYWN0b3JzOiBTZWxlY3RJdGVtW107XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2csIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsIEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcml2YXRlIHZpZXdNb2RlbFN0YXRlOiBWaWV3TW9kZWxTdGF0ZUJhc2U8SUFjdGlvblN0YXRlPiwgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xuICAgICAgc3VwZXIoc25hY2tCYXIpXG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgdGhpcy5vd25lckxpc3QgPSB0aGlzLmFjdGlvblNlcnZpY2UuZ2V0T3duZXJPcHRpb25zKCk7XG4gICAgICB0aGlzLmludGVydmVudGlvblR5cGVMaXN0ID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmdldFR5cGVPcHRpb25zKCk7XG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRTdGF0ZU9wdGlvbnMoKTtcblxuICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdNb2RlbFN0YXRlLmRhdGEuc3Vic2NyaWJlKHN1Y2Nlc3MgPT4ge1xuICAgICAgICAgaWYgKHN1Y2Nlc3MubG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvcnMgPSB0aGlzLmdldEZhY3RvcnMoc3VjY2Vzcy5mYWN0b3JTY29yZXMubW9kZWxTdHJ1Y3R1cmUpO1xuICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVmZmVjdE9uTGlzdCA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmZhY3RvclNjb3Jlcy5tYXAocCA9PiBuZXcgQWN0aW9uT3B0aW9uRHRvKHAua2V5LCBwLm5hbWUpKTtcblxuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MudGVhbU1ldGFEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgIHRoaXMudGVhbXMucHVzaChuZXcgQWN0aW9uT3B0aW9uRHRvKHN1Y2Nlc3MudGVhbU1ldGFEYXRhLnRlYW1LZXksIHN1Y2Nlc3MudGVhbU1ldGFEYXRhLm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgdGhpcy50ZWFtcyA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmNvbXBvc2l0aW9uLnBvaW50cy5wb2ludHMubWFwKHAgPT4gbmV3IEFjdGlvbk9wdGlvbkR0byhwLnB1YmxpY0tleSwgcC5uYW1lKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRlYW1zLmxlbmd0aCA9PSAxKSB7IHRoaXMucHJlZmlsbC50ZWFtS2V5ID0gdGhpcy50ZWFtc1swXS5rZXk7IH1cbiAgICAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ucHVibGljS2V5KSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50ZWFtLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZGVzY3JpcHRpb24pO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVybC5zZXRWYWx1ZSh0aGlzLmFjdGlvbi51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmV4cGVjdGVkSW1wYWN0T24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZXhwZWN0ZWRJbXBhY3RPbik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudHlwZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5vd25lcik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUodGhpcy5hY3Rpb24uc3RhdGUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmR1ZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5kdWUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnF1aWNrVGlwUHVibGljS2V5KTtcbiAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9IGZhbHNlO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgYXN5bmMgb25TdWJtaXQoZm9ybURpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cblxuICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy5wdWJsaWNLZXkudmFsdWUpIHtcbiAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uU2VydmljZS51cGRhdGUodGhpcy5mb3JtLmNvbnRyb2xzLnRlYW1LZXkudmFsdWUsIHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICBhd2FpdCB0aGlzLmFjdGlvblNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS5jb250cm9scy50ZWFtS2V5LnZhbHVlLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlQWxsKCk7XG4gICAgICB0aGlzLnZpZXdNb2RlbFN0YXRlLnVwZGF0aW5nLm5leHQodHJ1ZSk7XG4gICB9XG5cbiAgIHB1YmxpYyBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAod2luZG93LmNvbmZpcm0oXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaW50ZXJ2ZW50aW9uP1wiKSkge1xuICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25TZXJ2aWNlLmRlbGV0ZSh0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS52YWx1ZSwgdGhpcy5mb3JtLmNvbnRyb2xzLnB1YmxpY0tleS52YWx1ZSk7XG4gICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgICAgICAgdGhpcy52aWV3TW9kZWxTdGF0ZS51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgdGhpcy5yZXNldEZvcm0obnVsbCk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgfVxuXG4gICBwcml2YXRlIHJlc2V0Rm9ybShmb3JtRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLmFjdGlvbiA9IG51bGw7XG5cbiAgICAgIGlmIChmb3JtRGlyZWN0aXZlKSB7XG4gICAgICAgICBmb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUoSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9wZW4pO1xuICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRGYWN0b3JzKG1vZGVsOiBNb2RlbFN0cnVjdHVyZUR0byk6IFNlbGVjdEl0ZW1bXSB7XG4gICAgICBpZiAobW9kZWwgPT0gbnVsbCB8fCBtb2RlbC5kZWZpbml0aW9uID09IG51bGwgfHwgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzID09IG51bGwpIHsgcmV0dXJuIG51bGw7IH1cbiAgICAgIHZhciByZXN1bHQ6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBmYWN0b3Igb2YgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzLmZpbHRlcihwID0+IHAucGFyZW50S2V5ID09IG51bGwpKSB7XG4gICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShmYWN0b3IucHVibGljS2V5LCBmYWN0b3IubmFtZSwgZmFsc2UpKTtcblxuICAgICAgICAgZm9yICh2YXIgbG93ZXJEaW1lbnNpb24gb2YgZmFjdG9yLmxvd2VyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShsb3dlckRpbWVuc2lvbi5wdWJsaWNLZXksIGxvd2VyRGltZW5zaW9uLm5hbWUsIHRydWUpKTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBwdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIHRlYW1LZXk6IFtcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgcXVpY2tUaXBQdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwMCldXSxcbiAgICAgICAgIHVybDogW1wiXCIsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MDApXV0sXG4gICAgICAgICBvd25lcjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgc3RhdGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHR5cGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIGR1ZTogW1wiXCJdLFxuICAgICAgICAgZXhwZWN0ZWRJbXBhY3RPbjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBhcHBseVByZWZpbGwoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5wcmVmaWxsKSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLnByZWZpbGwudGVhbUtleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5wcmVmaWxsLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5leHBlY3RlZEltcGFjdE9uLnNldFZhbHVlKHRoaXMucHJlZmlsbC5leHBlY3RlZEltcGFjdE9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy50eXBlLnNldFZhbHVlKHRoaXMucHJlZmlsbC50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLnByZWZpbGwub3duZXIpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlLnNldFZhbHVlKHRoaXMucHJlZmlsbC5zdGF0ZSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudXJsLnNldFZhbHVlKHRoaXMucHJlZmlsbC51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMucHJlZmlsbC5xdWlja1RpcFB1YmxpY0tleSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMucHJlZmlsbCA9IG5ldyBBY3Rpb25QcmVmaWxsRHRvKCk7XG4gICAgICAgICB0aGlzLnByZWZpbGwuZXhwZWN0ZWRJbXBhY3RPbiA9IFtdO1xuICAgICAgfVxuICAgfVxuXG4gICBuZ09uRGVzdHJveSgpIHtcbiAgICAgIGlmICh0aGlzLnZpZXdTdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdChmb3JtRGlyZWN0aXZlKVwiICNmb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgY2xhc3M9XCJtYW5hZ2UtYWN0aW9uLWZvcm1cIj5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwic2hvd1RlYW1TZWxlY3RvclwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hpY2ggdGVhbSBvd25zIHRoaXMgYWN0aW9uPzwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidGVhbUtleVwiIGlkPVwidGVhbUtleVwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IHRlYW0gb2YgdGVhbXNcIiBbdmFsdWVdPVwidGVhbS5rZXlcIj57e3RlYW0ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPkVudGVyIHNob3J0IGRlc2NyaXB0aW9uPC9tYXQtbGFiZWw+XG4gICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBpZD1cImRlc2NyaXB0aW9uXCIgcm93cz1cIjJcIiBtYXhsZW5ndGg9XCI1MDBcIj48L3RleHRhcmVhPlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwiIXByZWZpbGwuZXhwZWN0ZWRJbXBhY3RPbiB8fCBwcmVmaWxsLmV4cGVjdGVkSW1wYWN0T24ubGVuZ3RoID09IDBcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPldoZXJlIGRvIHlvdSBleHBlY3QgaW1wcm92ZW1lbnQ/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBtdWx0aXBsZSBmb3JtQ29udHJvbE5hbWU9XCJleHBlY3RlZEltcGFjdE9uXCIgaWQ9XCJleHBlY3RlZEltcGFjdE9uXCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiBbbmdDbGFzc109XCJ7J2xvd2VyJyA6IGZhY3Rvci5sb3dlcn1cIiAqbmdGb3I9XCJsZXQgZmFjdG9yIG9mIGZhY3RvcnNcIiBbdmFsdWVdPVwiZmFjdG9yLnZhbHVlXCI+e3tmYWN0b3IubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiAqbmdJZj1cIiFwcmVmaWxsLm93bmVyXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaG8gb3ducyB0aGlzIGFjdGlvbj88L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm93bmVyXCIgaWQ9XCJvd25lclwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IG93bmVyIG9mIG93bmVyTGlzdFwiIFt2YWx1ZV09XCJvd25lci5rZXlcIj57e293bmVyLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC50eXBlXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaGF0IGlzIHRoZSB0eXBlIG9mIGFjdGlvbj88L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInR5cGVcIiBpZD1cInR5cGVcIj5cbiAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpbnRlcnZlbnRpb25UeXBlIG9mIGludGVydmVudGlvblR5cGVMaXN0XCIgW3ZhbHVlXT1cImludGVydmVudGlvblR5cGUua2V5XCI+e3tpbnRlcnZlbnRpb25UeXBlLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC5zdGF0ZSB8fCBhY3Rpb25cIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPldoYXQgaXMgdGhlIHN0YXRlIG9mIHRoaXMgYWN0aW9uPzwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic3RhdGVcIiBpZD1cInN0YXRlXCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgc3RhdGUgb2Ygc3RhdGVMaXN0XCIgW3ZhbHVlXT1cInN0YXRlLmtleVwiPnt7c3RhdGUubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiAqbmdJZj1cIiFwcmVmaWxsLnVybCB8fCBwcmVmaWxsLnVybC5sZW5ndGggPT0gMFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+VXJsIGZvciBhZGRpdGlvbmFsIGRldGFpbHMgKGUuZy4gSklSQSBvciBUcmVsbG8pPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgaWQ9XCJ1cmxcIiByb3dzPVwiMVwiIG1heGxlbmd0aD1cIjUwMFwiPlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hlbiBzaG91bGQgaXQgYmUgZG9uZT88L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJkdWVcIiBpZD1cImR1ZVwiPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPGRpdiBjbGFzcz1cInRvb2xiYXIgbGVmdHJpZ2h0XCI+XG4gICAgICA8ZGl2PlxuICAgICAgICAgPGEgY2xhc3M9XCJidXR0b24gYm9yZGVybGVzcyBkZWxldGVcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKG51bGwpO1wiIChjbGljayk9XCJkZWxldGUoKVwiIGlkPVwiZGVsZXRlXCIgKm5nSWY9XCJhY3Rpb25cIj48c3BhbiBjbGFzcz1cImljb24gcGgtdHJhc2hcIj48L3NwYW4+IGRlbGV0ZTwvYT5cbiAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uIGJvcmRlcmxlc3MgY2FuY2VsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZChudWxsKTtcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBpZD1cImNhbmNlbFwiICpuZ0lmPVwiZm9ybS5kaXJ0eSB8fCBhY3Rpb25cIj48c3BhbiBjbGFzcz1cImljb24gcGgteC1jaXJjbGVcIj48L3NwYW4+IGNhbmNlbDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgaWQ9XCJzdWJtaXRcIiB2YWx1ZT1cInNhdmVcIiAvPlxuICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -1,79 +0,0 @@
1
- import { Component, Inject, Input } from '@angular/core';
2
- import { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';
3
- import { VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';
4
- import { InterventionStateEnum } from '../../models/actionDto';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/snack-bar";
7
- import * as i2 from "../../services/actionService";
8
- import * as i3 from "@angular/router";
9
- import * as i4 from "@angular/material/tooltip";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "../../dialogs/dialog-manageaction/dialog-manageaction.component";
12
- import * as i7 from "../../pipes/interventionTypeToString.pipe";
13
- import * as i8 from "../../pipes/interventionOwnerToString.pipe";
14
- import * as i9 from "../../../viewModel/viewModelState.service";
15
- export class ActionTileComponent extends ComponentWithViewStateBase {
16
- constructor(snackBar, actionService, viewModelState, route) {
17
- super(viewModelState, snackBar);
18
- this.snackBar = snackBar;
19
- this.actionService = actionService;
20
- this.viewModelState = viewModelState;
21
- this.route = route;
22
- }
23
- ngOnInit() {
24
- super.ngOnInit();
25
- }
26
- async obsolete(event, action) {
27
- event.stopPropagation();
28
- await this.changeState(action, InterventionStateEnum.obsolete);
29
- action.state = InterventionStateEnum.obsolete;
30
- this.viewModelState.updating.next(true);
31
- }
32
- async complete(event, action) {
33
- event.stopPropagation();
34
- await this.changeState(action, InterventionStateEnum.completed);
35
- action.state = InterventionStateEnum.completed;
36
- this.viewModelState.updating.next(true);
37
- }
38
- async open(event, action) {
39
- event.stopPropagation();
40
- await this.changeState(action, InterventionStateEnum.open);
41
- action.state = InterventionStateEnum.open;
42
- this.viewModelState.updating.next(true);
43
- }
44
- async impede(event, action) {
45
- event.stopPropagation();
46
- await this.actionService.changeState(action.team.publicKey, action.publicKey, InterventionStateEnum.impeded);
47
- action.state = InterventionStateEnum.impeded;
48
- this.viewModelState.updating.next(true);
49
- }
50
- async unimpede(event, action) {
51
- event.stopPropagation();
52
- await this.changeState(action, InterventionStateEnum.open);
53
- action.state = InterventionStateEnum.open;
54
- this.viewModelState.updating.next(true);
55
- }
56
- async changeState(action, state) {
57
- await this.actionService.changeState(action.team.publicKey, action.publicKey, state);
58
- this.viewModelState.updating.next(true);
59
- }
60
- onDataUpdate(data) {
61
- }
62
- ;
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ActionTileComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.ActionService }, { token: VIEWSTATE_PROVIDER }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ActionTileComponent, selector: "action-tile", inputs: { action: "action", multipleTeams: "multipleTeams", actionManageComponent: "actionManageComponent" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.OpenEditActionDialogDirective, selector: "[editActionDialog]", inputs: ["action"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i7.InterventionTypeToStringPipe, name: "interventionTypeToString" }, { kind: "pipe", type: i8.InterventionOwnerToStringPipe, name: "interventionOwnerToString" }] }); }
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ActionTileComponent, decorators: [{
67
- type: Component,
68
- args: [{ selector: 'action-tile', template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"] }]
69
- }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.ActionService }, { type: i9.ViewModelStateBase, decorators: [{
70
- type: Inject,
71
- args: [VIEWSTATE_PROVIDER]
72
- }] }, { type: i3.ActivatedRoute }], propDecorators: { action: [{
73
- type: Input
74
- }], multipleTeams: [{
75
- type: Input
76
- }], actionManageComponent: [{
77
- type: Input
78
- }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2FjdGlvbnMvY29tcG9uZW50cy9hY3Rpb24tdGlsZS9hY3Rpb24tdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi10aWxlL2FjdGlvbi10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQXNCLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkcsT0FBTyxFQUFhLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7O0FBUzFFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwwQkFBd0M7SUFLOUUsWUFBc0IsUUFBcUIsRUFBWSxhQUE0QixFQUFzQyxjQUFnRCxFQUFZLEtBQXFCO1FBQ3ZNLEtBQUssQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFEWixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVksa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBc0MsbUJBQWMsR0FBZCxjQUFjLENBQWtDO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFMU0sQ0FBQztJQUVELFFBQVE7UUFDTCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBaUIsRUFBRSxNQUFpQjtRQUN2RCxLQUFLLENB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LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSc7XG5pbXBvcnQgeyBWaWV3TW9kZWxTdGF0ZUJhc2UsIFZJRVdTVEFURV9QUk9WSURFUiB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC92aWV3TW9kZWxTdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFjdGlvblN0YXRlJztcbmltcG9ydCB7IEFjdGlvbkR0bywgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbkR0byc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25NYW5hZ2VDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tbWFuYWdlL2FjdGlvbi1tYW5hZ2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogJ2FjdGlvbi10aWxlJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tdGlsZS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblRpbGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZTxJQWN0aW9uU3RhdGU+IHtcbiAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb246IEFjdGlvbkR0bztcbiAgIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZVRlYW1zOiBib29sZWFuO1xuICAgQElucHV0KCkgcHVibGljIGFjdGlvbk1hbmFnZUNvbXBvbmVudDogQWN0aW9uTWFuYWdlQ29tcG9uZW50O1xuXG4gICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcm90ZWN0ZWQgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSwgQEluamVjdChWSUVXU1RBVEVfUFJPVklERVIpIHByaXZhdGUgdmlld01vZGVsU3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJQWN0aW9uU3RhdGU+LCBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICBzdXBlcih2aWV3TW9kZWxTdGF0ZSwgc25hY2tCYXIpXG4gICB9XG5cbiAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgIH1cblxuICAgcHVibGljIGFzeW5jIG9ic29sZXRlKGV2ZW50OiBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbkR0byk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmNoYW5nZVN0YXRlKGFjdGlvbiwgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9ic29sZXRlKTtcbiAgICAgIGFjdGlvbi5zdGF0ZSA9IEludGVydmVudGlvblN0YXRlRW51bS5vYnNvbGV0ZTtcbiAgICAgIHRoaXMudmlld01vZGVsU3RhdGUudXBkYXRpbmcubmV4dCh0cnVlKTtcbiAgIH1cblxuICAgcHVibGljIGFzeW5jIGNvbXBsZXRlKGV2ZW50OiBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbkR0byk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmNoYW5nZVN0YXRlKGFjdGlvbiwgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLmNvbXBsZXRlZCk7XG4gICAgICBhY3Rpb24uc3RhdGUgPSBJbnRlcnZlbnRpb25TdGF0ZUVudW0uY29tcGxldGVkO1xuICAgICAgdGhpcy52aWV3TW9kZWxTdGF0ZS51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgfVxuXG4gICBwdWJsaWMgYXN5bmMgb3BlbihldmVudDogTW91c2VFdmVudCwgYWN0aW9uOiBBY3Rpb25EdG8pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgYXdhaXQgdGhpcy5jaGFuZ2VTdGF0ZShhY3Rpb24sIEludGVydmVudGlvblN0YXRlRW51bS5vcGVuKTtcbiAgICAgIGFjdGlvbi5zdGF0ZSA9IEludGVydmVudGlvblN0YXRlRW51bS5vcGVuO1xuICAgICAgdGhpcy52aWV3TW9kZWxTdGF0ZS51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgfVxuXG4gICBwdWJsaWMgYXN5bmMgaW1wZWRlKGV2ZW50OiBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbkR0byk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmFjdGlvblNlcnZpY2UuY2hhbmdlU3RhdGUoYWN0aW9uLnRlYW0ucHVibGljS2V5LCBhY3Rpb24ucHVibGljS2V5LCBJbnRlcnZlbnRpb25TdGF0ZUVudW0uaW1wZWRlZCk7XG4gICAgICBhY3Rpb24uc3RhdGUgPSBJbnRlcnZlbnRpb25TdGF0ZUVudW0uaW1wZWRlZDtcbiAgICAgIHRoaXMudmlld01vZGVsU3RhdGUudXBkYXRpbmcubmV4dCh0cnVlKTtcbiAgIH1cblxuICAgcHVibGljIGFzeW5jIHVuaW1wZWRlKGV2ZW50OiBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbkR0byk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmNoYW5nZVN0YXRlKGFjdGlvbiwgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9wZW4pO1xuICAgICAgYWN0aW9uLnN0YXRlID0gSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9wZW47XG4gICAgICB0aGlzLnZpZXdNb2RlbFN0YXRlLnVwZGF0aW5nLm5leHQodHJ1ZSk7XG4gICB9XG5cbiAgIHByaXZhdGUgYXN5bmMgY2hhbmdlU3RhdGUoYWN0aW9uOiBBY3Rpb25EdG8sIHN0YXRlOiBJbnRlcnZlbnRpb25TdGF0ZUVudW0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9uU2VydmljZS5jaGFuZ2VTdGF0ZShhY3Rpb24udGVhbS5wdWJsaWNLZXksIGFjdGlvbi5wdWJsaWNLZXksIHN0YXRlKTtcbiAgICAgIHRoaXMudmlld01vZGVsU3RhdGUudXBkYXRpbmcubmV4dCh0cnVlKTtcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJQWN0aW9uU3RhdGUpOiB2b2lkIHtcbiAgIH07XG59XG4iLCI8ZGl2IFtpZF09XCInYWN0aW9uLScgKyBhY3Rpb24ucHVibGljS2V5XCIgY2xhc3M9XCJ3aXJlYm94IGFjdGlvbiBjb250ZW50d2l0aGJvcmRlcnNcIiBbbmdDbGFzc109XCJbbXVsdGlwbGVUZWFtcyA/IGFjdGlvbi50ZWFtLmNvbG9yU3RyaW5nIDogJycsIGFjdGlvbi5pc0R1ZSA/ICdkdWUnIDogJyddXCIgKm5nSWY9XCIhYWN0aW9uLmRlbGV0ZWRcIiBlZGl0QWN0aW9uRGlhbG9nIFthY3Rpb25dPVwiYWN0aW9uXCI+XG4gICA8ZGl2IGNsYXNzPVwic3VtbWFyeSBwcm9wZXJ0eS1kZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCI+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJleHBlY3RlZGVmZmVjdFwiPlxuICAgICAgPGg0PlNob3VsZCBpbXByb3ZlPC9oND5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgcG9zaXRpdmVcIiAqbmdGb3I9XCJsZXQgYXJlYSBvZiBhY3Rpb24uZXhwZWN0ZWRJbXBhY3RPbkxhYmVsc1wiPnt7IGFyZWEgfX08L3NwYW4+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydGllc1wiPlxuICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5IHByb3BlcnR5LWFnZVwiPjxpIGNsYXNzPVwicGgtY2xvY2stYm9sZCBpY29uXCI+PC9pPiB7e2FjdGlvbi5hZ2VJbkRheXN9fSBkYXlzIG9sZDwvZGl2PlxuICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5IHByb3BlcnR5LXRlYW1cIiAqbmdJZj1cIm11bHRpcGxlVGVhbXNcIj48aSBjbGFzcz1cInBoLXVzZXJzLXRocmVlLWJvbGQgaWNvblwiPjwvaT4ge3thY3Rpb24udGVhbS5uYW1lfX08L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eSBwcm9wZXJ0eS1vd25lclwiPjxpIGNsYXNzPVwicGgtdXNlci1ib2xkIGljb25cIj48L2k+IHt7YWN0aW9uLm93bmVyIHwgaW50ZXJ2ZW50aW9uT3duZXJUb1N0cmluZ319PC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHkgcHJvcGVydHktdHlwZVwiPjxpIGNsYXNzPVwicGgtdGFnLWJvbGQgaWNvblwiPjwvaT4ge3thY3Rpb24udHlwZSB8IGludGVydmVudGlvblR5cGVUb1N0cmluZ319PC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHkgcHJvcGVydHktdXJsXCIgKm5nSWY9XCJhY3Rpb24udXJsXCI+PGkgY2xhc3M9XCJwaC1hcnJvdy1zcXVhcmUtaW4tYm9sZCBpY29uXCI+PC9pPiA8YSBbaHJlZl09XCJhY3Rpb24udXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCI+b3BlbiBkZXRhaWwgdXJsPC9hPjwvZGl2PlxuICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5IHByb3BlcnR5LWR1ZVwiICpuZ0lmPVwiYWN0aW9uLmR1ZVwiPjxpIGNsYXNzPVwicGgtY2FsZW5kYXItYm9sZCBpY29uXCIgKm5nSWY9XCIhYWN0aW9uLmlzRHVlXCI+PC9pPjxpIGNsYXNzPVwicGgtYmVsbC1zaW1wbGUtcmluZ2luZy1ib2xkXCIgKm5nSWY9XCJhY3Rpb24uaXNEdWVcIj48L2k+IER1ZSBvbiB7e2FjdGlvbi5kdWUgfCBkYXRlfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMgdW5pbXBlZGVkIHBoLWZpcmUtc2ltcGxlXCIgbWF0VG9vbHRpcD1cIk1hcmsgdGhpcyBpdGVtIGFzIGltcGVkZWQuIFRoaXMgbWVhbnMgdGhhdCBoZWxwIGZyb20gb3V0c2lkZSB0aGUgdGVhbSAoZS5nLiBtYW5hZ2VtZW50LCBjb2FjaGVzKSBpcyB1cmdlbnRseSBuZWVkZWQgdG8gY29tcGxldGUgb24gdGhpcyBhY3Rpb24uIEltcGVkZWQgYWN0aW9ucyBhcmUgaGlnaGxpZ2h0ZWQgaW4gdGhlIFRlYW1zIERhc2hib2FyZC4nXCIgKm5nSWY9XCJhY3Rpb24uc3RhdGUgPT0gJ09wZW4nXCIgKGNsaWNrKT1cImltcGVkZSgkZXZlbnQsIGFjdGlvbilcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cyBpbXBlZGVkXCIgbWF0VG9vbHRpcD1cIlRoaXMgYWN0aW9uIGlzIGltcGVkZWQuIFRoZSB0ZWFtIG5lZWRzIHVyZ2VudCBoZWxwIGZyb20gb3V0c2lkZSB0ZWFtIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLlwiICpuZ0lmPVwiYWN0aW9uLnN0YXRlID09ICdJbXBlZGVkJ1wiIChjbGljayk9XCJ1bmltcGVkZSgkZXZlbnQsIGFjdGlvbilcIj5cbiAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaW1wZWRlZC5zdmdcIiBjbGFzcz1cImljb25cIj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXY+XG4gICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cyBvYnNvbGV0ZSBwaC1leWUtc2xhc2gtYm9sZFwiIG1hdFRvb2x0aXA9XCJUaGlzIGFjdGlvbiB3YXMgbWFya2VkIG9ic29sZXRlLiBDbGljayB0byByZS1vcGVuIHRoaXMgYWN0aW9uXCIgKm5nSWY9XCJhY3Rpb24uc3RhdGUgPT0gJ09ic29sZXRlJ1wiIChjbGljayk9XCJvcGVuKCRldmVudCwgYWN0aW9uKVwiPjwvc3Bhbj5cbiAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzIGNoZWNrZWQgcGgtY2hlY2stY2lyY2xlLWZpbGxcIiBtYXRUb29sdGlwPVwiTWFyayB0aGlzIGFjdGlvbiBhcyB1bmNvbXBsZXRlZFwiICpuZ0lmPVwiYWN0aW9uLnN0YXRlID09ICdDb21wbGV0ZWQnXCIgKGNsaWNrKT1cIm9wZW4oJGV2ZW50LCBhY3Rpb24pXCI+PC9zcGFuPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMgdW5jaGVja2VkIHBoLWNpcmNsZVwiIG1hdFRvb2x0aXA9XCJNYXJrIHRoaXMgYWN0aW9uIGFzIGNvbXBsZXRlZFwiICpuZ0lmPVwiYWN0aW9uLnN0YXRlID09ICdPcGVuJyB8fCBhY3Rpb24uc3RhdGUgPT0gJ0ltcGVkZWQnXCIgKGNsaWNrKT1cImNvbXBsZXRlKCRldmVudCwgYWN0aW9uKVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,75 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import * as moment from 'moment';
4
- import { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';
5
- import { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';
6
- import { VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';
7
- import { ExportActionsRequestDto } from '../../models/exportRequestDto';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/snack-bar";
10
- import * as i2 from "../../services/actionService";
11
- import * as i3 from "@angular/material/dialog";
12
- import * as i4 from "@angular/forms";
13
- import * as i5 from "@angular/material/form-field";
14
- import * as i6 from "@angular/common";
15
- import * as i7 from "@angular/material/datepicker";
16
- import * as i8 from "../../../viewModel/viewModelState.service";
17
- export class DialogExportActionsComponent extends ComponentWithViewStateBase {
18
- constructor(state, snackBar, actionService, dialogRef, formBuilder) {
19
- super(state, snackBar);
20
- this.state = state;
21
- this.snackBar = snackBar;
22
- this.actionService = actionService;
23
- this.dialogRef = dialogRef;
24
- this.formBuilder = formBuilder;
25
- }
26
- ngOnInit() {
27
- this.createForm();
28
- this.form.controls.start.setValue(moment.utc().subtract(6, 'months').toISOString());
29
- this.form.controls.end.setValue(moment.utc().toISOString());
30
- }
31
- async submit() {
32
- this.submitted = true;
33
- if (!this.form.valid) {
34
- return;
35
- }
36
- var request = new ExportActionsRequestDto();
37
- request.dateRange = new DateRangeDto();
38
- request.dateRange.from = this.form.controls.start.value;
39
- request.dateRange.to = this.form.controls.end.value;
40
- this.sending = true;
41
- this.actionService.exportActions(request).subscribe(success => {
42
- let binaryData = [];
43
- binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom
44
- binaryData.push(success);
45
- let downloadLink = document.createElement('a');
46
- downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: success.type }));
47
- downloadLink.setAttribute('download', 'export-actions.csv');
48
- document.body.appendChild(downloadLink);
49
- downloadLink.click();
50
- this.dialogRef.close();
51
- this.sending = false;
52
- this.showSuccess("Download started. You may have to allow it in your browser.");
53
- });
54
- }
55
- onDataUpdate(data) {
56
- }
57
- ;
58
- createForm() {
59
- this.form = this.formBuilder.group({
60
- start: [{ value: "" }, Validators.required],
61
- end: [{ value: "" }, Validators.required],
62
- });
63
- }
64
- ;
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DialogExportActionsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.ActionService }, { token: i3.MatDialogRef }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DialogExportActionsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"], dependencies: [{ kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DialogExportActionsComponent, decorators: [{
69
- type: Component,
70
- args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"] }]
71
- }], ctorParameters: () => [{ type: i8.ViewModelStateBase, decorators: [{
72
- type: Inject,
73
- args: [VIEWSTATE_PROVIDER]
74
- }] }, { type: i1.MatSnackBar }, { type: i2.ActionService }, { type: i3.MatDialogRef }, { type: i4.FormBuilder }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWV4cG9ydC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9hY3Rpb25zL2RpYWxvZ3MvZGlhbG9nLWV4cG9ydC1hY3Rpb25zL2RpYWxvZy1leHBvcnQtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9kaWFsb2dzL2RpYWxvZy1leHBvcnQtYWN0aW9ucy9kaWFsb2ctZXhwb3J0LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFL0UsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBT3hFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBc0M7SUFLckYsWUFBZ0QsS0FBcUMsRUFBWSxRQUFxQixFQUFVLGFBQTRCLEVBQVUsU0FBcUQsRUFBVSxXQUF3QjtRQUMxUCxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRHNCLFVBQUssR0FBTCxLQUFLLENBQWdDO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFV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QUFDOytHQWhEUSw0QkFBNEIsa0JBS2xCLGtCQUFrQjttR0FMNUIsNEJBQTRCLDJFQ2hCekMsZzhDQXlCQTs7NEZEVGEsNEJBQTRCO2tCQUp4QyxTQUFTOzs7MEJBU00sTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IENvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2UnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRHRvIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZGF0ZVJhbmdlL25neC1kYXRlUmFuZ2VEdG8ubW9kZWwnO1xuaW1wb3J0IHsgSVZpZXdTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFZpZXdNb2RlbFN0YXRlQmFzZSwgVklFV1NUQVRFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vLi4vdmlld01vZGVsL3ZpZXdNb2RlbFN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwb3J0QWN0aW9uc1JlcXVlc3REdG8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0UmVxdWVzdER0byc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWN0aW9uU2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1leHBvcnQtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctZXhwb3J0LWFjdGlvbnMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dFeHBvcnRBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2U8SVZpZXdTdGF0ZT4ge1xuICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgIHB1YmxpYyBzZW5kaW5nOiBib29sZWFuO1xuICAgcHVibGljIHN1Ym1pdHRlZDogYm9vbGVhbjtcblxuICAgY29uc3RydWN0b3IoQEluamVjdChWSUVXU1RBVEVfUFJPVklERVIpIHByaXZhdGUgc3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJVmlld1N0YXRlPiwgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0JhciwgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLCBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ0V4cG9ydEFjdGlvbnNDb21wb25lbnQ+LCBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgICAgc3VwZXIoc3RhdGUsIHNuYWNrQmFyKTtcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGFydC5zZXRWYWx1ZShtb21lbnQudXRjKCkuc3VidHJhY3QoNiwgJ21vbnRocycpLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZShtb21lbnQudXRjKCkudG9JU09TdHJpbmcoKSk7XG4gICB9XG5cbiAgIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cblxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgRXhwb3J0QWN0aW9uc1JlcXVlc3REdG8oKTtcbiAgICAgIHJlcXVlc3QuZGF0ZVJhbmdlID0gbmV3IERhdGVSYW5nZUR0bygpO1xuICAgICAgcmVxdWVzdC5kYXRlUmFuZ2UuZnJvbSA9IHRoaXMuZm9ybS5jb250cm9scy5zdGFydC52YWx1ZTtcbiAgICAgIHJlcXVlc3QuZGF0ZVJhbmdlLnRvID0gdGhpcy5mb3JtLmNvbnRyb2xzLmVuZC52YWx1ZTtcblxuICAgICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5leHBvcnRBY3Rpb25zKHJlcXVlc3QpLnN1YnNjcmliZShzdWNjZXNzID0+IHtcbiAgICAgICAgIGxldCBiaW5hcnlEYXRhID0gW107XG4gICAgICAgICBiaW5hcnlEYXRhLnB1c2gobmV3IFVpbnQ4QXJyYXkoWzB4RUYsIDB4QkIsIDB4QkZdKSk7IC8vIFVURjggYm9tXG4gICAgICAgICBiaW5hcnlEYXRhLnB1c2goc3VjY2Vzcyk7XG4gICAgICAgICBsZXQgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihiaW5hcnlEYXRhLCB7IHR5cGU6IHN1Y2Nlc3MudHlwZSB9KSk7XG4gICAgICAgICBkb3dubG9hZExpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsICdleHBvcnQtYWN0aW9ucy5jc3YnKTtcbiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcbiAgICAgICAgIGRvd25sb2FkTGluay5jbGljaygpO1xuICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgIHRoaXMuc2VuZGluZyA9IGZhbHNlO1xuICAgICAgICAgdGhpcy5zaG93U3VjY2VzcyhcIkRvd25sb2FkIHN0YXJ0ZWQuIFlvdSBtYXkgaGF2ZSB0byBhbGxvdyBpdCBpbiB5b3VyIGJyb3dzZXIuXCIpO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIHByb3RlY3RlZCBvbkRhdGFVcGRhdGUoZGF0YTogSVZpZXdTdGF0ZSk6IHZvaWQge1xuICAgfTtcblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBzdGFydDogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICBlbmQ6IFt7IHZhbHVlOiBcIlwiIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgfSk7XG4gICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPkV4cG9ydCBhY3Rpb25zPC9oMT5cbiAgIDxkaXYgY2xhc3M9XCJjbG9zZVwiIG1hdC1kaWFsb2ctY2xvc2U+PGkgY2xhc3M9XCJyZXNwb25zaXZlIGljb24gcGgteC1ib2xkXCI+PC9pPjwvZGl2PlxuPC9kaXY+XG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgPHA+RXhwb3J0IGFjdGlvbnMgdG8gLmNzdiBmb3IgeW91ciBvd24gYW5hbHlzZXMuIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vdGhlbGliZXJhdG9ycy9zY3J1bXRlYW1zdXJ2ZXkuZG9jcy93aWtpL0V4cG9ydC1GaWxlLURlZmluaXRpb25zXCI+T3VyIFdpa2k8L2E+IGhhcyBhIGRlZmluaXRpb24uPC9wPlxuICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCBkYXRlIHJhbmdlIChjcmVhdGlvbiBkYXRlKTwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIiBwbGFjZWhvbGRlcj1cIlN0YXJ0IGRhdGVcIj5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIHBsYWNlaG9sZGVyPVwiRW5kIGRhdGVcIj5cbiAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuc3RhcnQuaGFzRXJyb3IoJ21hdFN0YXJ0RGF0ZUludmFsaWQnKVwiPkludmFsaWQgc3RhcnQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW5kLmhhc0Vycm9yKCdtYXRFbmREYXRlSW52YWxpZCcpXCI+SW52YWxpZCBlbmQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBzZW5kaW5nIH1cIiBbZGlzYWJsZWRdPVwic2VuZGluZ1wiPmV4cG9ydDwvYnV0dG9uPlxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIG1hdC1kaWFsb2ctY2xvc2U+Y2FuY2VsPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuIl19
@@ -1,30 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import { MatDialogConfig } from '@angular/material/dialog';
3
- import { DialogExportActionsComponent } from './dialog-export-actions.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/dialog";
6
- export class OpenExportActionsDialogDirective {
7
- constructor(dialog) {
8
- this.dialog = dialog;
9
- }
10
- onClick() {
11
- const dialogConfig = new MatDialogConfig();
12
- dialogConfig.panelClass = ['dialog', 'export'];
13
- dialogConfig.autoFocus = false;
14
- dialogConfig.enterAnimationDuration = 0;
15
- dialogConfig.exitAnimationDuration = 0;
16
- this.dialog.open(DialogExportActionsComponent, dialogConfig);
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OpenExportActionsDialogDirective, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: OpenExportActionsDialogDirective, selector: "[exportActionsDialog]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OpenExportActionsDialogDirective, decorators: [{
22
- type: Directive,
23
- args: [{
24
- selector: '[exportActionsDialog]',
25
- }]
26
- }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { onClick: [{
27
- type: HostListener,
28
- args: ['click']
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWV4cG9ydC1hY3Rpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9hY3Rpb25zL2RpYWxvZ3MvZGlhbG9nLWV4cG9ydC1hY3Rpb25zL2RpYWxvZy1leHBvcnQtYWN0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFLakYsTUFBTSxPQUFPLGdDQUFnQztJQUMxQyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQ3JDLENBQUM7SUFHRCxPQUFPO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUMzQyxZQUFZLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQy9CLFlBQVksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQVpTLGdDQUFnQzttR0FBaEMsZ0NBQWdDOzs0RkFBaEMsZ0NBQWdDO2tCQUg1QyxTQUFTO21CQUFDO29CQUNSLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ25DOzhFQU1FLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ0V4cG9ydEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1leHBvcnQtYWN0aW9ucy5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgIHNlbGVjdG9yOiAnW2V4cG9ydEFjdGlvbnNEaWFsb2ddJyxcbn0pXG5leHBvcnQgY2xhc3MgT3BlbkV4cG9ydEFjdGlvbnNEaWFsb2dEaXJlY3RpdmUge1xuICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgZGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MgPSBbJ2RpYWxvZycsICdleHBvcnQnXTtcbiAgICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSBmYWxzZTtcbiAgICAgIGRpYWxvZ0NvbmZpZy5lbnRlckFuaW1hdGlvbkR1cmF0aW9uID0gMDtcbiAgICAgIGRpYWxvZ0NvbmZpZy5leGl0QW5pbWF0aW9uRHVyYXRpb24gPSAwO1xuICAgICAgdGhpcy5kaWFsb2cub3BlbihEaWFsb2dFeHBvcnRBY3Rpb25zQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgfVxufVxuIl19