@valtimo/components 4.15.2-next-main.15 → 4.15.3-next-main.16

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 (202) hide show
  1. package/bundles/valtimo-components.umd.js +4731 -4795
  2. package/bundles/valtimo-components.umd.js.map +1 -1
  3. package/bundles/valtimo-components.umd.min.js +2 -2
  4. package/bundles/valtimo-components.umd.min.js.map +1 -1
  5. package/esm2015/lib/alert/alert.component.js +140 -142
  6. package/esm2015/lib/alert/alert.module.js +28 -28
  7. package/esm2015/lib/alert/alert.service.js +81 -81
  8. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +160 -160
  9. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.module.js +28 -30
  10. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +93 -93
  11. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +30 -34
  12. package/esm2015/lib/camunda/form/camunda-form.components.js +37 -37
  13. package/esm2015/lib/camunda/form/camunda-form.module.js +30 -38
  14. package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +42 -42
  15. package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +28 -34
  16. package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +69 -69
  17. package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +58 -63
  18. package/esm2015/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +27 -28
  19. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +64 -64
  20. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +66 -67
  21. package/esm2015/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +40 -38
  22. package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +66 -66
  23. package/esm2015/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +30 -31
  24. package/esm2015/lib/camunda/form/generated/formfield/formfield.model.js +16 -16
  25. package/esm2015/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +27 -28
  26. package/esm2015/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +27 -28
  27. package/esm2015/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +27 -28
  28. package/esm2015/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +35 -36
  29. package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +60 -60
  30. package/esm2015/lib/card/card.component.js +36 -37
  31. package/esm2015/lib/card/card.module.js +28 -30
  32. package/esm2015/lib/components.module.js +22 -22
  33. package/esm2015/lib/data-list/data-list.component.js +33 -34
  34. package/esm2015/lib/data-list/data-list.module.js +28 -30
  35. package/esm2015/lib/dropzone/dropzone.component.js +143 -143
  36. package/esm2015/lib/dropzone/dropzone.module.js +32 -32
  37. package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +35 -35
  38. package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +28 -32
  39. package/esm2015/lib/file-size/file-size.module.js +28 -30
  40. package/esm2015/lib/file-size/file-size.pipe.js +38 -45
  41. package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +46 -46
  42. package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +28 -30
  43. package/esm2015/lib/form-io/form-io-builder.component.js +38 -39
  44. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +90 -90
  45. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +74 -72
  46. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +26 -26
  47. package/esm2015/lib/form-io/form-io.component.js +163 -158
  48. package/esm2015/lib/form-io/form-io.module.js +56 -56
  49. package/esm2015/lib/form-io/formio-config.js +22 -22
  50. package/esm2015/lib/form-io/services/form-io-dom.service.js +23 -23
  51. package/esm2015/lib/form-io/services/form-io-state.service.js +24 -24
  52. package/esm2015/lib/left-sidebar/left-sidebar.component.js +114 -114
  53. package/esm2015/lib/left-sidebar/left-sidebar.module.js +30 -34
  54. package/esm2015/lib/list/ListFilterPipe.directive.js +31 -35
  55. package/esm2015/lib/list/list.component.js +179 -177
  56. package/esm2015/lib/list/list.module.js +33 -33
  57. package/esm2015/lib/menu/menu-item-text.component.js +35 -33
  58. package/esm2015/lib/menu/menu-routing.module.js +27 -29
  59. package/esm2015/lib/menu/menu.component.js +65 -65
  60. package/esm2015/lib/menu/menu.init.js +34 -34
  61. package/esm2015/lib/menu/menu.module.js +34 -39
  62. package/esm2015/lib/menu/menu.service.js +126 -127
  63. package/esm2015/lib/menu/submenu-item-text.component.js +29 -29
  64. package/esm2015/lib/modal/modal.component.js +48 -48
  65. package/esm2015/lib/modal/modal.module.js +28 -28
  66. package/esm2015/lib/page-header/page-header.component.js +29 -29
  67. package/esm2015/lib/page-header/page-header.module.js +30 -34
  68. package/esm2015/lib/page-title/page-title.component.js +76 -76
  69. package/esm2015/lib/page-title/page-title.module.js +29 -32
  70. package/esm2015/lib/progress-bar/progress-bar.component.js +26 -26
  71. package/esm2015/lib/progress-bar/progress-bar.module.js +28 -30
  72. package/esm2015/lib/right-sidebar/right-sidebar.component.js +133 -131
  73. package/esm2015/lib/right-sidebar/right-sidebar.module.js +49 -49
  74. package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +187 -185
  75. package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +29 -29
  76. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +52 -52
  77. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +30 -30
  78. package/esm2015/lib/spinner/spinner.component.js +45 -45
  79. package/esm2015/lib/spinner/spinner.module.js +30 -36
  80. package/esm2015/lib/timeline/timeline.component.js +29 -29
  81. package/esm2015/lib/timeline/timeline.module.js +29 -32
  82. package/esm2015/lib/topbar/topbar.component.js +28 -29
  83. package/esm2015/lib/topbar/topbar.module.js +29 -32
  84. package/esm2015/lib/uploader/uploader-drag-drop.directive.js +49 -49
  85. package/esm2015/lib/uploader/uploader.component.js +69 -70
  86. package/esm2015/lib/uploader/uploader.module.js +30 -33
  87. package/esm2015/lib/version/version.service.js +38 -38
  88. package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +29 -29
  89. package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +30 -30
  90. package/esm2015/lib/view-content/type-converters/enumTypeConverter.js +24 -24
  91. package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +24 -24
  92. package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +27 -27
  93. package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +24 -24
  94. package/esm2015/lib/view-content/type-converters/type-converters.model.js +37 -37
  95. package/esm2015/lib/view-content/view-content.service.js +51 -51
  96. package/esm2015/lib/webcam/webcam.component.js +102 -103
  97. package/esm2015/lib/webcam/webcam.module.js +29 -32
  98. package/esm2015/lib/widget/widget.component.js +80 -80
  99. package/esm2015/lib/widget/widget.module.js +28 -30
  100. package/esm2015/public_api.js +84 -84
  101. package/esm2015/valtimo-components.js +27 -27
  102. package/fesm2015/valtimo-components.js +4221 -4309
  103. package/fesm2015/valtimo-components.js.map +1 -1
  104. package/lib/alert/alert.component.d.ts +21 -21
  105. package/lib/alert/alert.module.d.ts +2 -2
  106. package/lib/alert/alert.service.d.ts +21 -21
  107. package/lib/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +27 -27
  108. package/lib/bpmn-js-diagram/bpmn-js-diagram.module.d.ts +2 -2
  109. package/lib/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +14 -14
  110. package/lib/breadcrumb-navigation/breadcrumb-navigation.module.d.ts +2 -2
  111. package/lib/camunda/form/camunda-form.components.d.ts +9 -9
  112. package/lib/camunda/form/camunda-form.module.d.ts +2 -2
  113. package/lib/camunda/form/custom/camunda-custom-form.component.d.ts +8 -8
  114. package/lib/camunda/form/custom/camunda-custom-form.module.d.ts +2 -2
  115. package/lib/camunda/form/generated/camunda-generated-form.component.d.ts +19 -19
  116. package/lib/camunda/form/generated/camunda-generated-form.module.d.ts +2 -2
  117. package/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +7 -7
  118. package/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +13 -13
  119. package/lib/camunda/form/generated/formfield/camunda-formfield.service.d.ts +7 -7
  120. package/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +12 -12
  121. package/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +14 -14
  122. package/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +10 -10
  123. package/lib/camunda/form/generated/formfield/formfield.model.d.ts +20 -20
  124. package/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +7 -7
  125. package/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +7 -7
  126. package/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +7 -7
  127. package/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +10 -10
  128. package/lib/camunda/form/generated/formfield/validation/date.validators.d.ts +3 -3
  129. package/lib/card/card.component.d.ts +16 -16
  130. package/lib/card/card.module.d.ts +2 -2
  131. package/lib/components.module.d.ts +2 -2
  132. package/lib/data-list/data-list.component.d.ts +7 -7
  133. package/lib/data-list/data-list.module.d.ts +2 -2
  134. package/lib/dropzone/dropzone.component.d.ts +38 -38
  135. package/lib/dropzone/dropzone.module.d.ts +2 -2
  136. package/lib/field-auto-focus/field-auto-focus.directive.d.ts +6 -6
  137. package/lib/field-auto-focus/field-auto-focus.module.d.ts +2 -2
  138. package/lib/file-size/file-size.module.d.ts +2 -2
  139. package/lib/file-size/file-size.pipe.d.ts +5 -5
  140. package/lib/filter-sidebar/filter-sidebar.component.d.ts +8 -8
  141. package/lib/filter-sidebar/filter-sidebar.module.d.ts +2 -2
  142. package/lib/form-io/form-io-builder.component.d.ts +8 -8
  143. package/lib/form-io/form-io-uploader/form-io-uploader-edit-form.d.ts +61 -61
  144. package/lib/form-io/form-io-uploader/form-io-uploader.component.d.ts +29 -29
  145. package/lib/form-io/form-io-uploader/form-io-uploader.formio.d.ts +3 -3
  146. package/lib/form-io/form-io.component.d.ts +47 -44
  147. package/lib/form-io/form-io.module.d.ts +2 -2
  148. package/lib/form-io/formio-config.d.ts +6 -6
  149. package/lib/form-io/services/form-io-dom.service.d.ts +6 -6
  150. package/lib/form-io/services/form-io-state.service.d.ts +10 -10
  151. package/lib/left-sidebar/left-sidebar.component.d.ts +34 -34
  152. package/lib/left-sidebar/left-sidebar.module.d.ts +2 -2
  153. package/lib/list/ListFilterPipe.directive.d.ts +4 -4
  154. package/lib/list/list.component.d.ts +43 -43
  155. package/lib/list/list.module.d.ts +2 -2
  156. package/lib/menu/menu-item-text.component.d.ts +4 -4
  157. package/lib/menu/menu-routing.module.d.ts +2 -2
  158. package/lib/menu/menu.component.d.ts +18 -18
  159. package/lib/menu/menu.init.d.ts +3 -3
  160. package/lib/menu/menu.module.d.ts +2 -2
  161. package/lib/menu/menu.service.d.ts +23 -23
  162. package/lib/menu/submenu-item-text.component.d.ts +4 -4
  163. package/lib/modal/modal.component.d.ts +12 -12
  164. package/lib/modal/modal.module.d.ts +2 -2
  165. package/lib/page-header/page-header.component.d.ts +5 -5
  166. package/lib/page-header/page-header.module.d.ts +2 -2
  167. package/lib/page-title/page-title.component.d.ts +19 -19
  168. package/lib/page-title/page-title.module.d.ts +2 -2
  169. package/lib/progress-bar/progress-bar.component.d.ts +2 -2
  170. package/lib/progress-bar/progress-bar.module.d.ts +2 -2
  171. package/lib/right-sidebar/right-sidebar.component.d.ts +34 -34
  172. package/lib/right-sidebar/right-sidebar.module.d.ts +2 -2
  173. package/lib/searchable-dropdown/searchable-dropdown.component.d.ts +39 -39
  174. package/lib/searchable-dropdown/searchable-dropdown.module.d.ts +2 -2
  175. package/lib/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +19 -19
  176. package/lib/searchable-dropdown-select/searchable-dropdown-select.module.d.ts +2 -2
  177. package/lib/spinner/spinner.component.d.ts +10 -10
  178. package/lib/spinner/spinner.module.d.ts +2 -2
  179. package/lib/timeline/timeline.component.d.ts +4 -4
  180. package/lib/timeline/timeline.module.d.ts +2 -2
  181. package/lib/topbar/topbar.component.d.ts +3 -3
  182. package/lib/topbar/topbar.module.d.ts +2 -2
  183. package/lib/uploader/uploader-drag-drop.directive.d.ts +7 -7
  184. package/lib/uploader/uploader.component.d.ts +15 -15
  185. package/lib/uploader/uploader.module.d.ts +2 -2
  186. package/lib/version/version.service.d.ts +8 -8
  187. package/lib/view-content/type-converters/booleanTypeConverter.d.ts +5 -5
  188. package/lib/view-content/type-converters/dateTypeConverter.d.ts +5 -5
  189. package/lib/view-content/type-converters/enumTypeConverter.d.ts +5 -5
  190. package/lib/view-content/type-converters/relatedFilesTypeConverter.d.ts +5 -5
  191. package/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +6 -6
  192. package/lib/view-content/type-converters/stringTypeConverter.d.ts +5 -5
  193. package/lib/view-content/type-converters/type-converters.model.d.ts +5 -5
  194. package/lib/view-content/view-content.service.d.ts +8 -8
  195. package/lib/webcam/webcam.component.d.ts +20 -20
  196. package/lib/webcam/webcam.module.d.ts +2 -2
  197. package/lib/widget/widget.component.d.ts +28 -28
  198. package/lib/widget/widget.module.d.ts +2 -2
  199. package/package.json +1 -1
  200. package/public_api.d.ts +65 -65
  201. package/valtimo-components.d.ts +26 -26
  202. package/valtimo-components.metadata.json +1 -1
@@ -1,131 +1,133 @@
1
- /*
2
- * Copyright 2015-2020 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { HttpClient } from '@angular/common/http';
17
- import { Component } from '@angular/core';
18
- import { FormBuilder, FormControl } from '@angular/forms';
19
- import { TranslateService } from '@ngx-translate/core';
20
- import { ContextService } from '@valtimo/context';
21
- import { UserProviderService } from '@valtimo/security';
22
- import { NGXLogger } from 'ngx-logger';
23
- import { combineLatest } from 'rxjs';
24
- import { VersionService } from '../version/version.service';
25
- export class RightSidebarComponent {
26
- constructor(userProviderService, formBuilder, versionService, translate, contextService, http, logger) {
27
- this.userProviderService = userProviderService;
28
- this.formBuilder = formBuilder;
29
- this.versionService = versionService;
30
- this.translate = translate;
31
- this.contextService = contextService;
32
- this.http = http;
33
- this.logger = logger;
34
- }
35
- ngOnInit() {
36
- this.frequencies = [
37
- 'emailNotificationOnMonday',
38
- 'emailNotificationOnTuesday',
39
- 'emailNotificationOnWednesday',
40
- 'emailNotificationOnThursday',
41
- 'emailNotificationOnFriday',
42
- 'emailNotificationOnSaturday',
43
- 'emailNotificationOnSunday'
44
- ];
45
- this.settingsForm = this.formBuilder.group({
46
- taskNotifications: new FormControl(false),
47
- emailNotifications: new FormControl(false),
48
- emailNotificationOnMonday: new FormControl(false),
49
- emailNotificationOnTuesday: new FormControl(false),
50
- emailNotificationOnWednesday: new FormControl(false),
51
- emailNotificationOnThursday: new FormControl(false),
52
- emailNotificationOnFriday: new FormControl(false),
53
- emailNotificationOnSaturday: new FormControl(false),
54
- emailNotificationOnSunday: new FormControl(false)
55
- });
56
- this.getUserSettings();
57
- }
58
- loadContextSwitch() {
59
- combineLatest([this.contextService.getUserContexts(), this.contextService.getUserContextActive()])
60
- .subscribe(([userContexts, userContextActive]) => {
61
- this.userContextActive = userContextActive;
62
- this.userContexts = userContexts;
63
- });
64
- }
65
- setUserContext(contextId) {
66
- this.contextService.setUserContext(contextId).subscribe();
67
- location.href = '/';
68
- }
69
- loadUserSettingsTab() {
70
- this.userProviderService.getEmailNotificationSettings().subscribe(results => {
71
- if (results !== null) {
72
- this.settingsForm.controls.taskNotifications.setValue(results.taskNotifications);
73
- this.settingsForm.controls.emailNotifications.setValue(results.emailNotifications);
74
- this.settingsForm.controls.emailNotificationOnMonday.setValue(results.emailNotificationOnMonday);
75
- this.settingsForm.controls.emailNotificationOnTuesday.setValue(results.emailNotificationOnTuesday);
76
- this.settingsForm.controls.emailNotificationOnWednesday.setValue(results.emailNotificationOnWednesday);
77
- this.settingsForm.controls.emailNotificationOnThursday.setValue(results.emailNotificationOnThursday);
78
- this.settingsForm.controls.emailNotificationOnFriday.setValue(results.emailNotificationOnFriday);
79
- this.settingsForm.controls.emailNotificationOnSaturday.setValue(results.emailNotificationOnSaturday);
80
- this.settingsForm.controls.emailNotificationOnSunday.setValue(results.emailNotificationOnSunday);
81
- }
82
- else {
83
- // default is true in the database, even if api returns no content
84
- this.settingsForm.controls.taskNotifications.setValue(true);
85
- }
86
- });
87
- this.getVersion();
88
- }
89
- getUserSettings() {
90
- this.userProviderService.getUserSubject().subscribe(userIdentity => {
91
- this.logger.debug('user', userIdentity);
92
- this.userIdentity = userIdentity;
93
- this.loadContextSwitch();
94
- });
95
- }
96
- getVersion() {
97
- this.versionService.getVersion().subscribe((build) => {
98
- this.build = build;
99
- });
100
- }
101
- onSettingsSubmit() {
102
- if (!this.settingsForm.pristine) {
103
- this.userProviderService.updateEmailNotificationSettings(this.settingsForm.value).subscribe();
104
- }
105
- }
106
- updateUserLanguage(langKey) {
107
- this.translate.use(langKey).subscribe(() => {
108
- localStorage.setItem('langKey', langKey);
109
- });
110
- }
111
- logout() {
112
- this.userProviderService.logout();
113
- }
114
- }
115
- RightSidebarComponent.decorators = [
116
- { type: Component, args: [{
117
- selector: 'valtimo-right-sidebar',
118
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<nav class=\"be-right-sidebar\">\n <div class=\"sb-content\">\n <div class=\"tab-navigation\">\n <ul class=\"nav nav-tabs nav-justified\" role=\"tablist\">\n <li class=\"nav-item\" role=\"presentation\">\n <a class=\"nav-link active\" href=\"#account\" aria-controls=\"account\" role=\"tab\" data-toggle=\"tab\"\n translate=\"account.title\"></a>\n </li>\n <li class=\"nav-item\" role=\"presentation\">\n <a class=\"nav-link\" (click)=\"loadUserSettingsTab()\" href=\"#settings\" aria-controls=\"settings\" role=\"tab\"\n data-toggle=\"tab\" translate=\"settings.title\"></a>\n </li>\n </ul>\n </div>\n <div class=\"tab-panel\">\n <div class=\"tab-content\">\n <!-- account -->\n <div class=\"tab-pane tab-account active\" id=\"account\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\" *ngIf=\"userIdentity\">\n <div class=\"content\">\n <div class=\"category-title border-0 m-0\">\n <div class=\"p-0 text-muted\">\n <dl class=\"row mb-0\">\n <dt class=\"col-sm-3\">Email</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.email }}</dd>\n <ng-container *ngIf=\"userIdentity.username\">\n <dt class=\"col-sm-3\">Username</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.username }}</dd>\n </ng-container>\n <dt class=\"col-sm-3\">Name</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.firstName + ' ' + userIdentity.lastName }}</dd>\n </dl>\n </div>\n </div>\n <!-- context switch -->\n <ul class=\"settings-list\" *ngIf=\"userContexts?.length > 1\">\n <li ngbTooltip=\"{{ 'settings.context.title' | translate }}\">\n <select class=\"form-control\" #contextSelect (change)=\"setUserContext(+contextSelect.value)\">\n <option *ngFor=\"let context of userContexts\" [value]=\"context.id\"\n [selected]=\"context.id === userContextActive.id\">\n {{ context.name }}\n </option>\n </select>\n </li>\n </ul>\n <ul class=\"list-group list-group-flush m-0\">\n <li class=\"bg-transparent list-group-item px-0\">\n <a href=\"https://docs.valtimo.nl\" target=\"_blank\" class=\"d-block\" translate=\"account.links.help\"></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a href=\"https://www.valtimo.nl/feedback/\" target=\"_blank\" class=\"d-block\"\n translate=\"account.links.feedback\"></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a href=\"https://forum.valtimo.nl\" target=\"_blank\" class=\"d-block\"\n translate=\"account.links.forum\"></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a href=\"javascript:void(0)\" class=\"d-block\" (click)=\"logout()\"\n translate=\"account.links.signOut\"></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <!-- settings -->\n <div class=\"tab-pane tab-settings\" id=\"settings\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\">\n <div class=\"content\">\n <span class=\"category-title\" translate=\"settings.language.title\"></span>\n <ul class=\"settings-list\">\n <li>\n <select class=\"form-control\" #langSelect (change)=\"updateUserLanguage(langSelect.value)\">\n <option *ngFor=\"let lang of translate.getLangs()\" [value]=\"lang\"\n [selected]=\"lang === translate.currentLang\">\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </select>\n </li>\n </ul>\n\n <form [formGroup]=\"settingsForm\">\n <span class=\"category-title\" translate=\"settings.notification.title\"></span>\n <ul class=\"settings-list m-0\">\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" formControlName=\"taskNotifications\" id=\"taskNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"><span>\n <label for=\"taskNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.taskNotifications\"></span>\n <div class=\"text-muted info-text\" translate=\"settings.notification.taskNotificationsIntro\"></div>\n </li>\n\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" formControlName=\"emailNotifications\" id=\"emailNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"><span>\n <label for=\"emailNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.emailNotifications\"></span>\n <div class=\"text-muted info-text\" translate=\"settings.notification.emailNotificationsIntro\"></div>\n </li>\n </ul>\n\n <div *ngIf=\"settingsForm.value.emailNotifications\">\n <ul class=\"settings-list\">\n <li *ngFor=\"let frequency of frequencies\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" formControlName=\"{{ frequency }}\" id=\"{{ frequency }}\"\n (ngModelChange)=\"onSettingsSubmit()\"><span>\n <label for=\"{{ frequency }}\"></label></span>\n </div>\n <span class=\"name\">{{ 'settings.notification.' + frequency | translate }}</span>\n </li>\n </ul>\n </div>\n </form>\n\n <div class=\"version-holder\">\n <span class=\"category-title\" translate=\"settings.version.title\"></span>\n <ul class=\"settings-list\">\n <li *ngIf=\"build\">\n <div class=\"name\">{{ build.title }}</div>\n <div class=\"text-muted\">{{ build.version }}</div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n</nav>\n",
119
- styles: [".be-scroller-settings{padding-bottom:150px!important}.version-holder{background-color:#f8f9fa;bottom:0;position:fixed;width:259px}.info-text{line-height:1em!important;margin-bottom:15px;padding-right:70px}"]
120
- },] }
121
- ];
122
- RightSidebarComponent.ctorParameters = () => [
123
- { type: UserProviderService },
124
- { type: FormBuilder },
125
- { type: VersionService },
126
- { type: TranslateService },
127
- { type: ContextService },
128
- { type: HttpClient },
129
- { type: NGXLogger }
130
- ];
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9yaWdodC1zaWRlYmFyL3JpZ2h0LXNpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU81RCxNQUFNLE9BQU8scUJBQXFCO0lBU2hDLFlBQ1UsbUJBQXdDLEVBQ3hDLFdBQXdCLEVBQ3hCLGNBQThCLEVBQy9CLFNBQTJCLEVBQzFCLGNBQThCLEVBQzlCLElBQWdCLEVBQ2hCLE1BQWlCO1FBTmpCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hC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ZTtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBOUdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxpcVBBQTZDOzthQUU5Qzs7O1lBVFEsbUJBQW1CO1lBSm5CLFdBQVc7WUFPWCxjQUFjO1lBTmQsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFKZCxVQUFVO1lBT1YsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJ0B2YWx0aW1vL2NvbnRleHQnO1xuaW1wb3J0IHsgVXNlcklkZW50aXR5LCBWYWx0aW1vVmVyc2lvbiB9IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcbmltcG9ydCB7IFVzZXJQcm92aWRlclNlcnZpY2UgfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQgeyBOR1hMb2dnZXIgfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZlcnNpb25TZXJ2aWNlIH0gZnJvbSAnLi4vdmVyc2lvbi92ZXJzaW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXJpZ2h0LXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmlnaHQtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JpZ2h0LXNpZGViYXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0U2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHVzZXJJZGVudGl0eTogVXNlcklkZW50aXR5O1xuICBwdWJsaWMgZnJlcXVlbmNpZXM6IEFycmF5PGFueT47XG4gIHB1YmxpYyBzZXR0aW5nc0Zvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGJ1aWxkOiBWYWx0aW1vVmVyc2lvbjtcbiAgcHVibGljIHVzZXJDb250ZXh0czogQXJyYXk8YW55PjtcbiAgcHVibGljIHVzZXJDb250ZXh0QWN0aXZlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdmVyc2lvblNlcnZpY2U6IFZlcnNpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXJcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZyZXF1ZW5jaWVzID0gW1xuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25Nb25kYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25UdWVzZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uV2VkbmVzZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uVGh1cnNkYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25GcmlkYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25TYXR1cmRheScsXG4gICAgICAnZW1haWxOb3RpZmljYXRpb25PblN1bmRheSdcbiAgICBdO1xuICAgIHRoaXMuc2V0dGluZ3NGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICB0YXNrTm90aWZpY2F0aW9uczogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uczogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25Nb25kYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uVHVlc2RheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25XZWRuZXNkYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uVGh1cnNkYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uRnJpZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PblNhdHVyZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PblN1bmRheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKVxuICAgIH0pO1xuICAgIHRoaXMuZ2V0VXNlclNldHRpbmdzKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb250ZXh0U3dpdGNoKCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY29udGV4dFNlcnZpY2UuZ2V0VXNlckNvbnRleHRzKCksIHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0VXNlckNvbnRleHRBY3RpdmUoKV0pXG4gICAgICAuc3Vic2NyaWJlKChbdXNlckNvbnRleHRzLCB1c2VyQ29udGV4dEFjdGl2ZV0pID0+IHtcbiAgICAgICAgdGhpcy51c2VyQ29udGV4dEFjdGl2ZSA9IHVzZXJDb250ZXh0QWN0aXZlO1xuICAgICAgICB0aGlzLnVzZXJDb250ZXh0cyA9IHVzZXJDb250ZXh0cztcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJDb250ZXh0KGNvbnRleHRJZDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5zZXRVc2VyQ29udGV4dChjb250ZXh0SWQpLnN1YnNjcmliZSgpO1xuICAgIGxvY2F0aW9uLmhyZWYgPSAnLyc7XG4gIH1cblxuICBwdWJsaWMgbG9hZFVzZXJTZXR0aW5nc1RhYigpIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0RW1haWxOb3RpZmljYXRpb25TZXR0aW5ncygpLnN1YnNjcmliZShyZXN1bHRzID0+IHtcbiAgICAgIGlmIChyZXN1bHRzICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLnRhc2tOb3RpZmljYXRpb25zLnNldFZhbHVlKHJlc3VsdHMudGFza05vdGlmaWNhdGlvbnMpO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbnMuc2V0VmFsdWUocmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbnMpO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbk9uTW9uZGF5LnNldFZhbHVlKHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25Pbk1vbmRheSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25UdWVzZGF5LnNldFZhbHVlKHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblR1ZXNkYXkpO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbk9uV2VkbmVzZGF5LnNldFZhbHVlKHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PbldlZG5lc2RheSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25UaHVyc2RheS5zZXRWYWx1ZShyZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25UaHVyc2RheSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25GcmlkYXkuc2V0VmFsdWUocmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uRnJpZGF5KTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PblNhdHVyZGF5LnNldFZhbHVlKHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblNhdHVyZGF5KTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PblN1bmRheS5zZXRWYWx1ZShyZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25TdW5kYXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZGVmYXVsdCBpcyB0cnVlIGluIHRoZSBkYXRhYmFzZSwgZXZlbiBpZiBhcGkgcmV0dXJucyBubyBjb250ZW50XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLnRhc2tOb3RpZmljYXRpb25zLnNldFZhbHVlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZ2V0VmVyc2lvbigpO1xuICB9XG5cbiAgcHVibGljIGdldFVzZXJTZXR0aW5ncygpIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUodXNlcklkZW50aXR5ID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1c2VyJywgdXNlcklkZW50aXR5KTtcbiAgICAgIHRoaXMudXNlcklkZW50aXR5ID0gdXNlcklkZW50aXR5O1xuICAgICAgdGhpcy5sb2FkQ29udGV4dFN3aXRjaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFZlcnNpb24oKSB7XG4gICAgdGhpcy52ZXJzaW9uU2VydmljZS5nZXRWZXJzaW9uKCkuc3Vic2NyaWJlKChidWlsZDogVmFsdGltb1ZlcnNpb24pID0+IHtcbiAgICAgIHRoaXMuYnVpbGQgPSBidWlsZDtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2V0dGluZ3NTdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzRm9ybS5wcmlzdGluZSkge1xuICAgICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLnVwZGF0ZUVtYWlsTm90aWZpY2F0aW9uU2V0dGluZ3ModGhpcy5zZXR0aW5nc0Zvcm0udmFsdWUpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVVzZXJMYW5ndWFnZShsYW5nS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ0tleSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5nS2V5JywgbGFuZ0tleSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmxvZ291dCgpO1xuICB9XG5cbn1cbiJdfQ==
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { HttpClient } from '@angular/common/http';
17
+ import { Component } from '@angular/core';
18
+ import { FormBuilder, FormControl } from '@angular/forms';
19
+ import { TranslateService } from '@ngx-translate/core';
20
+ import { ContextService } from '@valtimo/context';
21
+ import { UserProviderService } from '@valtimo/security';
22
+ import { NGXLogger } from 'ngx-logger';
23
+ import { combineLatest } from 'rxjs';
24
+ import { VersionService } from '../version/version.service';
25
+ export class RightSidebarComponent {
26
+ constructor(userProviderService, formBuilder, versionService, translate, contextService, http, logger) {
27
+ this.userProviderService = userProviderService;
28
+ this.formBuilder = formBuilder;
29
+ this.versionService = versionService;
30
+ this.translate = translate;
31
+ this.contextService = contextService;
32
+ this.http = http;
33
+ this.logger = logger;
34
+ }
35
+ ngOnInit() {
36
+ this.frequencies = [
37
+ 'emailNotificationOnMonday',
38
+ 'emailNotificationOnTuesday',
39
+ 'emailNotificationOnWednesday',
40
+ 'emailNotificationOnThursday',
41
+ 'emailNotificationOnFriday',
42
+ 'emailNotificationOnSaturday',
43
+ 'emailNotificationOnSunday',
44
+ ];
45
+ this.settingsForm = this.formBuilder.group({
46
+ taskNotifications: new FormControl(false),
47
+ emailNotifications: new FormControl(false),
48
+ emailNotificationOnMonday: new FormControl(false),
49
+ emailNotificationOnTuesday: new FormControl(false),
50
+ emailNotificationOnWednesday: new FormControl(false),
51
+ emailNotificationOnThursday: new FormControl(false),
52
+ emailNotificationOnFriday: new FormControl(false),
53
+ emailNotificationOnSaturday: new FormControl(false),
54
+ emailNotificationOnSunday: new FormControl(false),
55
+ });
56
+ this.getUserSettings();
57
+ }
58
+ loadContextSwitch() {
59
+ combineLatest([
60
+ this.contextService.getUserContexts(),
61
+ this.contextService.getUserContextActive(),
62
+ ]).subscribe(([userContexts, userContextActive]) => {
63
+ this.userContextActive = userContextActive;
64
+ this.userContexts = userContexts;
65
+ });
66
+ }
67
+ setUserContext(contextId) {
68
+ this.contextService.setUserContext(contextId).subscribe();
69
+ location.href = '/';
70
+ }
71
+ loadUserSettingsTab() {
72
+ this.userProviderService.getEmailNotificationSettings().subscribe(results => {
73
+ if (results !== null) {
74
+ this.settingsForm.controls.taskNotifications.setValue(results.taskNotifications);
75
+ this.settingsForm.controls.emailNotifications.setValue(results.emailNotifications);
76
+ this.settingsForm.controls.emailNotificationOnMonday.setValue(results.emailNotificationOnMonday);
77
+ this.settingsForm.controls.emailNotificationOnTuesday.setValue(results.emailNotificationOnTuesday);
78
+ this.settingsForm.controls.emailNotificationOnWednesday.setValue(results.emailNotificationOnWednesday);
79
+ this.settingsForm.controls.emailNotificationOnThursday.setValue(results.emailNotificationOnThursday);
80
+ this.settingsForm.controls.emailNotificationOnFriday.setValue(results.emailNotificationOnFriday);
81
+ this.settingsForm.controls.emailNotificationOnSaturday.setValue(results.emailNotificationOnSaturday);
82
+ this.settingsForm.controls.emailNotificationOnSunday.setValue(results.emailNotificationOnSunday);
83
+ }
84
+ else {
85
+ // default is true in the database, even if api returns no content
86
+ this.settingsForm.controls.taskNotifications.setValue(true);
87
+ }
88
+ });
89
+ this.getVersion();
90
+ }
91
+ getUserSettings() {
92
+ this.userProviderService.getUserSubject().subscribe(userIdentity => {
93
+ this.logger.debug('user', userIdentity);
94
+ this.userIdentity = userIdentity;
95
+ this.loadContextSwitch();
96
+ });
97
+ }
98
+ getVersion() {
99
+ this.versionService.getVersion().subscribe((build) => {
100
+ this.build = build;
101
+ });
102
+ }
103
+ onSettingsSubmit() {
104
+ if (!this.settingsForm.pristine) {
105
+ this.userProviderService.updateEmailNotificationSettings(this.settingsForm.value).subscribe();
106
+ }
107
+ }
108
+ updateUserLanguage(langKey) {
109
+ this.translate.use(langKey).subscribe(() => {
110
+ localStorage.setItem('langKey', langKey);
111
+ });
112
+ }
113
+ logout() {
114
+ this.userProviderService.logout();
115
+ }
116
+ }
117
+ RightSidebarComponent.decorators = [
118
+ { type: Component, args: [{
119
+ selector: 'valtimo-right-sidebar',
120
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<nav class=\"be-right-sidebar\">\n <div class=\"sb-content\">\n <div class=\"tab-navigation\">\n <ul class=\"nav nav-tabs nav-justified\" role=\"tablist\">\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link active\"\n href=\"#account\"\n aria-controls=\"account\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"account.title\"\n ></a>\n </li>\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link\"\n (click)=\"loadUserSettingsTab()\"\n href=\"#settings\"\n aria-controls=\"settings\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"settings.title\"\n ></a>\n </li>\n </ul>\n </div>\n <div class=\"tab-panel\">\n <div class=\"tab-content\">\n <!-- account -->\n <div class=\"tab-pane tab-account active\" id=\"account\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\" *ngIf=\"userIdentity\">\n <div class=\"content\">\n <div class=\"category-title border-0 m-0\">\n <div class=\"p-0 text-muted\">\n <dl class=\"row mb-0\">\n <dt class=\"col-sm-3\">Email</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.email }}</dd>\n <ng-container *ngIf=\"userIdentity.username\">\n <dt class=\"col-sm-3\">Username</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.username }}</dd>\n </ng-container>\n <dt class=\"col-sm-3\">Name</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">\n {{ userIdentity.firstName + ' ' + userIdentity.lastName }}\n </dd>\n </dl>\n </div>\n </div>\n <!-- context switch -->\n <ul class=\"settings-list\" *ngIf=\"userContexts?.length > 1\">\n <li ngbTooltip=\"{{ 'settings.context.title' | translate }}\">\n <select\n class=\"form-control\"\n #contextSelect\n (change)=\"setUserContext(+contextSelect.value)\"\n >\n <option\n *ngFor=\"let context of userContexts\"\n [value]=\"context.id\"\n [selected]=\"context.id === userContextActive.id\"\n >\n {{ context.name }}\n </option>\n </select>\n </li>\n </ul>\n <ul class=\"list-group list-group-flush m-0\">\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://docs.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.help\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://www.valtimo.nl/feedback/\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.feedback\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://forum.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.forum\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"javascript:void(0)\"\n class=\"d-block\"\n (click)=\"logout()\"\n translate=\"account.links.signOut\"\n ></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <!-- settings -->\n <div class=\"tab-pane tab-settings\" id=\"settings\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\">\n <div class=\"content\">\n <span class=\"category-title\" translate=\"settings.language.title\"></span>\n <ul class=\"settings-list\">\n <li>\n <select\n class=\"form-control\"\n #langSelect\n (change)=\"updateUserLanguage(langSelect.value)\"\n >\n <option\n *ngFor=\"let lang of translate.getLangs()\"\n [value]=\"lang\"\n [selected]=\"lang === translate.currentLang\"\n >\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </select>\n </li>\n </ul>\n\n <form [formGroup]=\"settingsForm\">\n <span class=\"category-title\" translate=\"settings.notification.title\"></span>\n <ul class=\"settings-list m-0\">\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"taskNotifications\"\n id=\"taskNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"taskNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.taskNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.taskNotificationsIntro\"\n ></div>\n </li>\n\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"emailNotifications\"\n id=\"emailNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"emailNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.emailNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.emailNotificationsIntro\"\n ></div>\n </li>\n </ul>\n\n <div *ngIf=\"settingsForm.value.emailNotifications\">\n <ul class=\"settings-list\">\n <li *ngFor=\"let frequency of frequencies\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"{{ frequency }}\"\n id=\"{{ frequency }}\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"{{ frequency }}\"></label></span>\n </div>\n <span class=\"name\">{{\n 'settings.notification.' + frequency | translate\n }}</span>\n </li>\n </ul>\n </div>\n </form>\n\n <div class=\"version-holder\">\n <span class=\"category-title\" translate=\"settings.version.title\"></span>\n <ul class=\"settings-list\">\n <li *ngIf=\"build\">\n <div class=\"name\">{{ build.title }}</div>\n <div class=\"text-muted\">{{ build.version }}</div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</nav>\n",
121
+ styles: [".be-scroller-settings{padding-bottom:150px!important}.version-holder{background-color:#f8f9fa;bottom:0;position:fixed;width:259px}.info-text{line-height:1em!important;margin-bottom:15px;padding-right:70px}"]
122
+ },] }
123
+ ];
124
+ RightSidebarComponent.ctorParameters = () => [
125
+ { type: UserProviderService },
126
+ { type: FormBuilder },
127
+ { type: VersionService },
128
+ { type: TranslateService },
129
+ { type: ContextService },
130
+ { type: HttpClient },
131
+ { type: NGXLogger }
132
+ ];
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovV29ya3NwYWNlL3ZhbHRpbW8vdmFsdGltby1mcm9udGVuZC1saWJyYXJpZXMvcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9yaWdodC1zaWRlYmFyL3JpZ2h0LXNpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQU8xRCxNQUFNLE9BQU8scUJBQXFCO0lBUWhDLFlBQ1UsbUJBQXdDLEVBQ3hDLFdBQXdCLEVBQ3hCLGNBQThCLEVBQy9CLFNBQTJCLEVBQzFCLGNBQThCLEVBQzlCLElBQWdCLEVBQ2hCLE1BQWlCO1FBTmpCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtR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QztTQUMvRjtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUE1SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLHc0UkFBNkM7O2FBRTlDOzs7WUFUTyxtQkFBbUI7WUFKbkIsV0FBVztZQU9YLGNBQWM7WUFOZCxnQkFBZ0I7WUFDaEIsY0FBYztZQUpkLFVBQVU7WUFPVixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbnRleHRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb250ZXh0JztcbmltcG9ydCB7VXNlcklkZW50aXR5LCBWYWx0aW1vVmVyc2lvbn0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtWZXJzaW9uU2VydmljZX0gZnJvbSAnLi4vdmVyc2lvbi92ZXJzaW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXJpZ2h0LXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmlnaHQtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JpZ2h0LXNpZGViYXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSaWdodFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgdXNlcklkZW50aXR5OiBVc2VySWRlbnRpdHk7XG4gIHB1YmxpYyBmcmVxdWVuY2llczogQXJyYXk8YW55PjtcbiAgcHVibGljIHNldHRpbmdzRm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgYnVpbGQ6IFZhbHRpbW9WZXJzaW9uO1xuICBwdWJsaWMgdXNlckNvbnRleHRzOiBBcnJheTxhbnk+O1xuICBwdWJsaWMgdXNlckNvbnRleHRBY3RpdmU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJQcm92aWRlclNlcnZpY2U6IFVzZXJQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB2ZXJzaW9uU2VydmljZTogVmVyc2lvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mcmVxdWVuY2llcyA9IFtcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uTW9uZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uVHVlc2RheScsXG4gICAgICAnZW1haWxOb3RpZmljYXRpb25PbldlZG5lc2RheScsXG4gICAgICAnZW1haWxOb3RpZmljYXRpb25PblRodXJzZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uRnJpZGF5JyxcbiAgICAgICdlbWFpbE5vdGlmaWNhdGlvbk9uU2F0dXJkYXknLFxuICAgICAgJ2VtYWlsTm90aWZpY2F0aW9uT25TdW5kYXknLFxuICAgIF07XG4gICAgdGhpcy5zZXR0aW5nc0Zvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHRhc2tOb3RpZmljYXRpb25zOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25zOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25Pbk1vbmRheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25UdWVzZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgICAgZW1haWxOb3RpZmljYXRpb25PbldlZG5lc2RheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25UaHVyc2RheTogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGVtYWlsTm90aWZpY2F0aW9uT25GcmlkYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uU2F0dXJkYXk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgICBlbWFpbE5vdGlmaWNhdGlvbk9uU3VuZGF5OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxuICAgIH0pO1xuICAgIHRoaXMuZ2V0VXNlclNldHRpbmdzKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb250ZXh0U3dpdGNoKCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRVc2VyQ29udGV4dHMoKSxcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0VXNlckNvbnRleHRBY3RpdmUoKSxcbiAgICBdKS5zdWJzY3JpYmUoKFt1c2VyQ29udGV4dHMsIHVzZXJDb250ZXh0QWN0aXZlXSkgPT4ge1xuICAgICAgdGhpcy51c2VyQ29udGV4dEFjdGl2ZSA9IHVzZXJDb250ZXh0QWN0aXZlO1xuICAgICAgdGhpcy51c2VyQ29udGV4dHMgPSB1c2VyQ29udGV4dHM7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VXNlckNvbnRleHQoY29udGV4dElkOiBudW1iZXIpIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnNldFVzZXJDb250ZXh0KGNvbnRleHRJZCkuc3Vic2NyaWJlKCk7XG4gICAgbG9jYXRpb24uaHJlZiA9ICcvJztcbiAgfVxuXG4gIHB1YmxpYyBsb2FkVXNlclNldHRpbmdzVGFiKCkge1xuICAgIHRoaXMudXNlclByb3ZpZGVyU2VydmljZS5nZXRFbWFpbE5vdGlmaWNhdGlvblNldHRpbmdzKCkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgaWYgKHJlc3VsdHMgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMudGFza05vdGlmaWNhdGlvbnMuc2V0VmFsdWUocmVzdWx0cy50YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9ucy5zZXRWYWx1ZShyZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9ucyk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25Nb25kYXkuc2V0VmFsdWUoXG4gICAgICAgICAgcmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uTW9uZGF5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25UdWVzZGF5LnNldFZhbHVlKFxuICAgICAgICAgIHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblR1ZXNkYXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PbldlZG5lc2RheS5zZXRWYWx1ZShcbiAgICAgICAgICByZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25XZWRuZXNkYXlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHMuZW1haWxOb3RpZmljYXRpb25PblRodXJzZGF5LnNldFZhbHVlKFxuICAgICAgICAgIHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblRodXJzZGF5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25GcmlkYXkuc2V0VmFsdWUoXG4gICAgICAgICAgcmVzdWx0cy5lbWFpbE5vdGlmaWNhdGlvbk9uRnJpZGF5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLmVtYWlsTm90aWZpY2F0aW9uT25TYXR1cmRheS5zZXRWYWx1ZShcbiAgICAgICAgICByZXN1bHRzLmVtYWlsTm90aWZpY2F0aW9uT25TYXR1cmRheVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldHRpbmdzRm9ybS5jb250cm9scy5lbWFpbE5vdGlmaWNhdGlvbk9uU3VuZGF5LnNldFZhbHVlKFxuICAgICAgICAgIHJlc3VsdHMuZW1haWxOb3RpZmljYXRpb25PblN1bmRheVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZGVmYXVsdCBpcyB0cnVlIGluIHRoZSBkYXRhYmFzZSwgZXZlbiBpZiBhcGkgcmV0dXJucyBubyBjb250ZW50XG4gICAgICAgIHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzLnRhc2tOb3RpZmljYXRpb25zLnNldFZhbHVlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZ2V0VmVyc2lvbigpO1xuICB9XG5cbiAgcHVibGljIGdldFVzZXJTZXR0aW5ncygpIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUodXNlcklkZW50aXR5ID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1c2VyJywgdXNlcklkZW50aXR5KTtcbiAgICAgIHRoaXMudXNlcklkZW50aXR5ID0gdXNlcklkZW50aXR5O1xuICAgICAgdGhpcy5sb2FkQ29udGV4dFN3aXRjaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFZlcnNpb24oKSB7XG4gICAgdGhpcy52ZXJzaW9uU2VydmljZS5nZXRWZXJzaW9uKCkuc3Vic2NyaWJlKChidWlsZDogVmFsdGltb1ZlcnNpb24pID0+IHtcbiAgICAgIHRoaXMuYnVpbGQgPSBidWlsZDtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2V0dGluZ3NTdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzRm9ybS5wcmlzdGluZSkge1xuICAgICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLnVwZGF0ZUVtYWlsTm90aWZpY2F0aW9uU2V0dGluZ3ModGhpcy5zZXR0aW5nc0Zvcm0udmFsdWUpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVVzZXJMYW5ndWFnZShsYW5nS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ0tleSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5nS2V5JywgbGFuZ0tleSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmxvZ291dCgpO1xuICB9XG59XG4iXX0=
@@ -1,49 +1,49 @@
1
- /*
2
- * Copyright 2015-2020 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { NgModule } from '@angular/core';
17
- import { CommonModule } from '@angular/common';
18
- import { RightSidebarComponent } from './right-sidebar.component';
19
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
20
- import { RouterModule } from '@angular/router';
21
- import { HttpClient } from '@angular/common/http';
22
- import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
23
- import { HttpLoaderFactory } from '@valtimo/contract';
24
- import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
25
- const ɵ0 = HttpLoaderFactory;
26
- export class RightSidebarModule {
27
- }
28
- RightSidebarModule.decorators = [
29
- { type: NgModule, args: [{
30
- declarations: [RightSidebarComponent],
31
- imports: [
32
- CommonModule,
33
- FormsModule,
34
- ReactiveFormsModule,
35
- RouterModule,
36
- TranslateModule.forRoot({
37
- loader: {
38
- provide: TranslateLoader,
39
- useFactory: ɵ0,
40
- deps: [HttpClient]
41
- }
42
- }),
43
- NgbTooltipModule
44
- ],
45
- exports: [RightSidebarComponent]
46
- },] }
47
- ];
48
- export { ɵ0 };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9yaWdodC1zaWRlYmFyL3JpZ2h0LXNpZGViYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztXQVl4QyxpQkFBaUI7QUFRckMsTUFBTSxPQUFPLGtCQUFrQjs7O1lBbEI5QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLGVBQWUsQ0FBQyxPQUFPLENBQUM7d0JBQ3RCLE1BQU0sRUFBRTs0QkFDTixPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxJQUFtQjs0QkFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO3lCQUNuQjtxQkFDRixDQUFDO29CQUNGLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7YUFDakMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSaWdodFNpZGViYXJDb21wb25lbnR9IGZyb20gJy4vcmlnaHQtc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7VHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtIdHRwTG9hZGVyRmFjdG9yeX0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuaW1wb3J0IHtOZ2JUb29sdGlwTW9kdWxlfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JpZ2h0U2lkZWJhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgbG9hZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlRmFjdG9yeTogSHR0cExvYWRlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XVxuICAgICAgfVxuICAgIH0pLFxuICAgIE5nYlRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1JpZ2h0U2lkZWJhckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUmlnaHRTaWRlYmFyTW9kdWxlIHtcbn1cbiJdfQ==
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { NgModule } from '@angular/core';
17
+ import { CommonModule } from '@angular/common';
18
+ import { RightSidebarComponent } from './right-sidebar.component';
19
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
20
+ import { RouterModule } from '@angular/router';
21
+ import { HttpClient } from '@angular/common/http';
22
+ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
23
+ import { HttpLoaderFactory } from '@valtimo/contract';
24
+ import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
25
+ const ɵ0 = HttpLoaderFactory;
26
+ export class RightSidebarModule {
27
+ }
28
+ RightSidebarModule.decorators = [
29
+ { type: NgModule, args: [{
30
+ declarations: [RightSidebarComponent],
31
+ imports: [
32
+ CommonModule,
33
+ FormsModule,
34
+ ReactiveFormsModule,
35
+ RouterModule,
36
+ TranslateModule.forRoot({
37
+ loader: {
38
+ provide: TranslateLoader,
39
+ useFactory: ɵ0,
40
+ deps: [HttpClient],
41
+ },
42
+ }),
43
+ NgbTooltipModule,
44
+ ],
45
+ exports: [RightSidebarComponent],
46
+ },] }
47
+ ];
48
+ export { ɵ0 };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtc2lkZWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiRDovV29ya3NwYWNlL3ZhbHRpbW8vdmFsdGltby1mcm9udGVuZC1saWJyYXJpZXMvcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9yaWdodC1zaWRlYmFyL3JpZ2h0LXNpZGViYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztXQVl4QyxpQkFBaUI7QUFRckMsTUFBTSxPQUFPLGtCQUFrQjs7O1lBbEI5QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLGVBQWUsQ0FBQyxPQUFPLENBQUM7d0JBQ3RCLE1BQU0sRUFBRTs0QkFDTixPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxJQUFtQjs0QkFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO3lCQUNuQjtxQkFDRixDQUFDO29CQUNGLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7YUFDakMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSaWdodFNpZGViYXJDb21wb25lbnR9IGZyb20gJy4vcmlnaHQtc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7VHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtIdHRwTG9hZGVyRmFjdG9yeX0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuaW1wb3J0IHtOZ2JUb29sdGlwTW9kdWxlfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JpZ2h0U2lkZWJhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgbG9hZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlRmFjdG9yeTogSHR0cExvYWRlckZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgTmdiVG9vbHRpcE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1JpZ2h0U2lkZWJhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0U2lkZWJhck1vZHVsZSB7fVxuIl19