@valtimo/zgw 12.19.0 → 13.0.1-next-minor.81

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 (209) hide show
  1. package/fesm2022/valtimo-zgw.mjs +749 -1201
  2. package/fesm2022/valtimo-zgw.mjs.map +1 -1
  3. package/lib/components/case-management-zgw/case-management-zgw.component.d.ts +35 -0
  4. package/lib/components/case-management-zgw/case-management-zgw.component.d.ts.map +1 -0
  5. package/lib/components/case-management-zgw-general/case-management-zgw-general.component.d.ts +6 -0
  6. package/lib/components/case-management-zgw-general/case-management-zgw-general.component.d.ts.map +1 -0
  7. package/lib/components/index.d.ts +1 -1
  8. package/lib/components/index.d.ts.map +1 -1
  9. package/lib/models/{dossier-management-zgw.model.d.ts → case-management-zgw.model.d.ts} +3 -2
  10. package/lib/models/case-management-zgw.model.d.ts.map +1 -0
  11. package/lib/models/index.d.ts +1 -1
  12. package/lib/models/index.d.ts.map +1 -1
  13. package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts.map +1 -1
  14. package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts +6 -4
  15. package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts.map +1 -1
  16. package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts +19 -17
  17. package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
  18. package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts +2 -1
  19. package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts.map +1 -1
  20. package/lib/modules/documenten-api/components/{documenten-api-link-upload-process/dossier-management-link-process.component.d.ts → documenten-api-link-process/case-management-link-process.component.d.ts} +15 -9
  21. package/lib/modules/documenten-api/components/documenten-api-link-process/case-management-link-process.component.d.ts.map +1 -0
  22. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +5 -3
  23. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  24. package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts +2 -2
  25. package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts.map +1 -1
  26. package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts +5 -6
  27. package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts.map +1 -1
  28. package/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.d.ts +6 -3
  29. package/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.d.ts.map +1 -1
  30. package/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.d.ts +8 -6
  31. package/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.d.ts.map +1 -1
  32. package/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.d.ts +1 -1
  33. package/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.d.ts.map +1 -1
  34. package/lib/modules/documenten-api/components/index.d.ts +1 -1
  35. package/lib/modules/documenten-api/components/index.d.ts.map +1 -1
  36. package/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader-edit-form.d.ts.map +1 -1
  37. package/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.d.ts +5 -4
  38. package/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.d.ts.map +1 -1
  39. package/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.formio.d.ts.map +1 -1
  40. package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts +2 -0
  41. package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts.map +1 -1
  42. package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts +2 -2
  43. package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts.map +1 -1
  44. package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts +1 -1
  45. package/lib/modules/documenten-api/services/documenten-api-link-process.service.d.ts +4 -4
  46. package/lib/modules/documenten-api/services/documenten-api-link-process.service.d.ts.map +1 -1
  47. package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts +1 -1
  48. package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts +2 -2
  49. package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts.map +1 -1
  50. package/lib/modules/index.d.ts +0 -2
  51. package/lib/modules/index.d.ts.map +1 -1
  52. package/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.d.ts.map +1 -1
  53. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts +3 -3
  54. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts.map +1 -1
  55. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts +1 -1
  56. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts.map +1 -1
  57. package/lib/modules/objecten-api/components/object-type/object-type.component.d.ts +3 -3
  58. package/lib/modules/objecten-api/components/object-type/object-type.component.d.ts.map +1 -1
  59. package/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.d.ts +3 -3
  60. package/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.d.ts.map +1 -1
  61. package/lib/modules/objecten-api/services/zaakobjecten.service.d.ts +1 -1
  62. package/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.d.ts +14 -7
  63. package/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.d.ts.map +1 -1
  64. package/lib/modules/zaakdetails/services/document-objecten-api-sync.service.d.ts +4 -6
  65. package/lib/modules/zaakdetails/services/document-objecten-api-sync.service.d.ts.map +1 -1
  66. package/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.d.ts +20 -21
  67. package/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.d.ts.map +1 -1
  68. package/lib/modules/zaken-api/models/zaken-api-zaaktype-link.model.d.ts.map +1 -1
  69. package/lib/modules/zaken-api/services/zaken-api-zaaktype-link.service.d.ts +1 -1
  70. package/lib/services/{dossier-management-zgw.service.d.ts → case-management-zgw.service.d.ts} +4 -4
  71. package/lib/services/case-management-zgw.service.d.ts.map +1 -0
  72. package/lib/services/index.d.ts +1 -1
  73. package/lib/services/index.d.ts.map +1 -1
  74. package/lib/zgw.module.d.ts +2 -3
  75. package/lib/zgw.module.d.ts.map +1 -1
  76. package/package.json +7 -9
  77. package/public_api.d.ts +0 -2
  78. package/public_api.d.ts.map +1 -1
  79. package/esm2022/lib/components/dossier-management-zgw/dossier-management-zgw.component.mjs +0 -91
  80. package/esm2022/lib/components/index.mjs +0 -17
  81. package/esm2022/lib/models/dossier-management-zgw.model.mjs +0 -23
  82. package/esm2022/lib/models/index.mjs +0 -17
  83. package/esm2022/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.mjs +0 -89
  84. package/esm2022/lib/modules/contactmomenten/components/index.mjs +0 -17
  85. package/esm2022/lib/modules/contactmomenten/index.mjs +0 -19
  86. package/esm2022/lib/modules/contactmomenten/models/contact-moment.model.mjs +0 -17
  87. package/esm2022/lib/modules/contactmomenten/models/index.mjs +0 -17
  88. package/esm2022/lib/modules/contactmomenten/services/contact-moment.service.mjs +0 -43
  89. package/esm2022/lib/modules/contactmomenten/services/index.mjs +0 -17
  90. package/esm2022/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.mjs +0 -175
  91. package/esm2022/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.mjs +0 -142
  92. package/esm2022/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.mjs +0 -443
  93. package/esm2022/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.mjs +0 -174
  94. package/esm2022/lib/modules/documenten-api/components/documenten-api-link-upload-process/dossier-management-link-process.component.mjs +0 -100
  95. package/esm2022/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +0 -542
  96. package/esm2022/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.mjs +0 -116
  97. package/esm2022/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.mjs +0 -162
  98. package/esm2022/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.mjs +0 -183
  99. package/esm2022/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.mjs +0 -118
  100. package/esm2022/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.mjs +0 -43
  101. package/esm2022/lib/modules/documenten-api/components/index.mjs +0 -27
  102. package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader-edit-form.mjs +0 -554
  103. package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.mjs +0 -268
  104. package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.formio.mjs +0 -46
  105. package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/index.mjs +0 -19
  106. package/esm2022/lib/modules/documenten-api/formio/index.mjs +0 -17
  107. package/esm2022/lib/modules/documenten-api/index.mjs +0 -20
  108. package/esm2022/lib/modules/documenten-api/models/configured-column.model.mjs +0 -27
  109. package/esm2022/lib/modules/documenten-api/models/documenten-api-column-modal.model.mjs +0 -17
  110. package/esm2022/lib/modules/documenten-api/models/documenten-api-filter.model.mjs +0 -17
  111. package/esm2022/lib/modules/documenten-api/models/documenten-api-link-process.model.mjs +0 -17
  112. package/esm2022/lib/modules/documenten-api/models/documenten-api-metadata.model.mjs +0 -34
  113. package/esm2022/lib/modules/documenten-api/models/documenten-api-tag.model.mjs +0 -17
  114. package/esm2022/lib/modules/documenten-api/models/documenten-api-upload-field.model.mjs +0 -33
  115. package/esm2022/lib/modules/documenten-api/models/documenten-api-version.model.mjs +0 -17
  116. package/esm2022/lib/modules/documenten-api/models/documenten-api.model.mjs +0 -37
  117. package/esm2022/lib/modules/documenten-api/models/index.mjs +0 -23
  118. package/esm2022/lib/modules/documenten-api/services/documenten-api-column.service.mjs +0 -38
  119. package/esm2022/lib/modules/documenten-api/services/documenten-api-document.service.mjs +0 -58
  120. package/esm2022/lib/modules/documenten-api/services/documenten-api-link-process.service.mjs +0 -51
  121. package/esm2022/lib/modules/documenten-api/services/documenten-api-tag.service.mjs +0 -36
  122. package/esm2022/lib/modules/documenten-api/services/documenten-api-version.service.mjs +0 -50
  123. package/esm2022/lib/modules/documenten-api/services/index.mjs +0 -21
  124. package/esm2022/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.mjs +0 -56
  125. package/esm2022/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.mjs +0 -133
  126. package/esm2022/lib/modules/haalcentraal-brp/customer-routing.module.mjs +0 -51
  127. package/esm2022/lib/modules/haalcentraal-brp/customer.module.mjs +0 -76
  128. package/esm2022/lib/modules/haalcentraal-brp/index.mjs +0 -19
  129. package/esm2022/lib/modules/haalcentraal-brp/models/case.mjs +0 -17
  130. package/esm2022/lib/modules/haalcentraal-brp/models/customer.mjs +0 -17
  131. package/esm2022/lib/modules/haalcentraal-brp/models/index.mjs +0 -18
  132. package/esm2022/lib/modules/haalcentraal-brp/services/customer.service.mjs +0 -43
  133. package/esm2022/lib/modules/haalcentraal-brp/services/index.mjs +0 -17
  134. package/esm2022/lib/modules/index.mjs +0 -23
  135. package/esm2022/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.mjs +0 -85
  136. package/esm2022/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.mjs +0 -123
  137. package/esm2022/lib/modules/notificaties-api/components/index.mjs +0 -3
  138. package/esm2022/lib/modules/notificaties-api/index.mjs +0 -5
  139. package/esm2022/lib/modules/notificaties-api/models/failed-notification.model.mjs +0 -23
  140. package/esm2022/lib/modules/notificaties-api/models/index.mjs +0 -2
  141. package/esm2022/lib/modules/notificaties-api/notificaties-api-routing.module.mjs +0 -47
  142. package/esm2022/lib/modules/notificaties-api/services/failed-notifications.service.mjs +0 -56
  143. package/esm2022/lib/modules/notificaties-api/services/index.mjs +0 -2
  144. package/esm2022/lib/modules/objecten-api/components/index.mjs +0 -18
  145. package/esm2022/lib/modules/objecten-api/components/object-type/object-type.component.mjs +0 -122
  146. package/esm2022/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.mjs +0 -125
  147. package/esm2022/lib/modules/objecten-api/index.mjs +0 -19
  148. package/esm2022/lib/modules/objecten-api/models/index.mjs +0 -17
  149. package/esm2022/lib/modules/objecten-api/models/zaakobjecten.model.mjs +0 -17
  150. package/esm2022/lib/modules/objecten-api/services/index.mjs +0 -17
  151. package/esm2022/lib/modules/objecten-api/services/zaakobjecten.service.mjs +0 -44
  152. package/esm2022/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.mjs +0 -127
  153. package/esm2022/lib/modules/zaakdetails/components/index.mjs +0 -17
  154. package/esm2022/lib/modules/zaakdetails/index.mjs +0 -19
  155. package/esm2022/lib/modules/zaakdetails/models/document-objecten-api-sync.model.mjs +0 -2
  156. package/esm2022/lib/modules/zaakdetails/models/index.mjs +0 -17
  157. package/esm2022/lib/modules/zaakdetails/services/document-objecten-api-sync.service.mjs +0 -51
  158. package/esm2022/lib/modules/zaakdetails/services/index.mjs +0 -17
  159. package/esm2022/lib/modules/zaken-api/components/index.mjs +0 -17
  160. package/esm2022/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.mjs +0 -183
  161. package/esm2022/lib/modules/zaken-api/index.mjs +0 -19
  162. package/esm2022/lib/modules/zaken-api/models/index.mjs +0 -17
  163. package/esm2022/lib/modules/zaken-api/models/zaken-api-zaaktype-link.model.mjs +0 -2
  164. package/esm2022/lib/modules/zaken-api/services/index.mjs +0 -17
  165. package/esm2022/lib/modules/zaken-api/services/zaken-api-zaaktype-link.service.mjs +0 -39
  166. package/esm2022/lib/services/dossier-management-zgw.service.mjs +0 -43
  167. package/esm2022/lib/services/index.mjs +0 -17
  168. package/esm2022/lib/zgw.module.mjs +0 -126
  169. package/esm2022/public_api.mjs +0 -27
  170. package/esm2022/valtimo-zgw.mjs +0 -5
  171. package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts +0 -24
  172. package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts.map +0 -1
  173. package/lib/models/dossier-management-zgw.model.d.ts.map +0 -1
  174. package/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.d.ts +0 -29
  175. package/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.d.ts.map +0 -1
  176. package/lib/modules/contactmomenten/components/index.d.ts +0 -2
  177. package/lib/modules/contactmomenten/components/index.d.ts.map +0 -1
  178. package/lib/modules/contactmomenten/index.d.ts +0 -4
  179. package/lib/modules/contactmomenten/index.d.ts.map +0 -1
  180. package/lib/modules/contactmomenten/models/contact-moment.model.d.ts +0 -14
  181. package/lib/modules/contactmomenten/models/contact-moment.model.d.ts.map +0 -1
  182. package/lib/modules/contactmomenten/models/index.d.ts +0 -2
  183. package/lib/modules/contactmomenten/models/index.d.ts.map +0 -1
  184. package/lib/modules/contactmomenten/services/contact-moment.service.d.ts +0 -18
  185. package/lib/modules/contactmomenten/services/contact-moment.service.d.ts.map +0 -1
  186. package/lib/modules/contactmomenten/services/index.d.ts +0 -2
  187. package/lib/modules/contactmomenten/services/index.d.ts.map +0 -1
  188. package/lib/modules/documenten-api/components/documenten-api-link-upload-process/dossier-management-link-process.component.d.ts.map +0 -1
  189. package/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.d.ts +0 -20
  190. package/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.d.ts.map +0 -1
  191. package/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.d.ts +0 -39
  192. package/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.d.ts.map +0 -1
  193. package/lib/modules/haalcentraal-brp/customer-routing.module.d.ts +0 -9
  194. package/lib/modules/haalcentraal-brp/customer-routing.module.d.ts.map +0 -1
  195. package/lib/modules/haalcentraal-brp/customer.module.d.ts +0 -17
  196. package/lib/modules/haalcentraal-brp/customer.module.d.ts.map +0 -1
  197. package/lib/modules/haalcentraal-brp/index.d.ts +0 -4
  198. package/lib/modules/haalcentraal-brp/index.d.ts.map +0 -1
  199. package/lib/modules/haalcentraal-brp/models/case.d.ts +0 -8
  200. package/lib/modules/haalcentraal-brp/models/case.d.ts.map +0 -1
  201. package/lib/modules/haalcentraal-brp/models/customer.d.ts +0 -22
  202. package/lib/modules/haalcentraal-brp/models/customer.d.ts.map +0 -1
  203. package/lib/modules/haalcentraal-brp/models/index.d.ts +0 -3
  204. package/lib/modules/haalcentraal-brp/models/index.d.ts.map +0 -1
  205. package/lib/modules/haalcentraal-brp/services/customer.service.d.ts +0 -18
  206. package/lib/modules/haalcentraal-brp/services/customer.service.d.ts.map +0 -1
  207. package/lib/modules/haalcentraal-brp/services/index.d.ts +0 -2
  208. package/lib/modules/haalcentraal-brp/services/index.d.ts.map +0 -1
  209. package/lib/services/dossier-management-zgw.service.d.ts.map +0 -1
@@ -1,175 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 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 { CommonModule } from '@angular/common';
17
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
18
- import { ReactiveFormsModule, Validators } from '@angular/forms';
19
- import { TranslateModule } from '@ngx-translate/core';
20
- import { ButtonModule, DropdownModule, InputModule, LayerModule, ModalModule, NotificationModule, RadioModule, } from 'carbon-components-angular';
21
- import { BehaviorSubject, combineLatest, map, Subscription, switchMap } from 'rxjs';
22
- import { CARBON_CONSTANTS } from '@valtimo/components';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "@angular/forms";
25
- import * as i2 from "@ngx-translate/core";
26
- import * as i3 from "../../services";
27
- import * as i4 from "@angular/common";
28
- import * as i5 from "carbon-components-angular";
29
- export class DocumentenApiColumnModalComponent {
30
- set prefillColumn(value) {
31
- if (!value)
32
- return;
33
- const column = { content: value.key, selected: true, column: value };
34
- const defaultSort = value.defaultSort ?? 'noDefault';
35
- this.formGroup.patchValue({ column, defaultSort });
36
- this.formGroup.get('column')?.disable();
37
- this._prefillColumn = [column];
38
- }
39
- get prefillColumn() {
40
- return this._prefillColumn;
41
- }
42
- set type(value) {
43
- this._type = value;
44
- if (value === 'edit') {
45
- this.formGroup.get('column')?.disable;
46
- }
47
- }
48
- get type() {
49
- return this._type;
50
- }
51
- set availableColumns(value) {
52
- if (!value)
53
- return;
54
- this._availableColumns$.next(value);
55
- }
56
- set configuredColumns(value) {
57
- if (!value)
58
- return;
59
- this._defaultSortedColumn = value.find((column) => !!column.defaultSort);
60
- }
61
- constructor(fb, translateService, zgwDocumentenApiColumnService) {
62
- this.fb = fb;
63
- this.translateService = translateService;
64
- this.zgwDocumentenApiColumnService = zgwDocumentenApiColumnService;
65
- this._availableColumns$ = new BehaviorSubject([]);
66
- this.availableColumns$ = combineLatest([
67
- this._availableColumns$,
68
- this.translateService.stream('key'),
69
- ]).pipe(map(([columns]) => columns.map((column) => ({
70
- content: this.translateService.instant(`zgw.documentColumns.${column.key}`),
71
- selected: false,
72
- column,
73
- }))));
74
- this.closeModal = new EventEmitter();
75
- this.formGroup = this.fb.group({
76
- column: this.fb.control({ content: '', selected: false, column: {} }, Validators.required),
77
- defaultSort: this.fb.control('noDefault'),
78
- });
79
- this._notificationMessage$ = new BehaviorSubject('zgw.columns.defaultWarning');
80
- this.notificationObj$ = combineLatest([
81
- this._notificationMessage$,
82
- this.translateService.stream('key'),
83
- ]).pipe(map(([message]) => ({
84
- type: 'warning',
85
- lowContrast: true,
86
- title: this.translateService.instant('interface.warning'),
87
- message: this.translateService.instant(message),
88
- showClose: false,
89
- })));
90
- this.showRadioButtons = true;
91
- this._subscriptions = new Subscription();
92
- }
93
- ngOnInit() {
94
- this.openDisableRadioSubscription();
95
- }
96
- ngOnDestroy() {
97
- this._subscriptions.unsubscribe();
98
- }
99
- onClose(refresh = false) {
100
- this.closeModal.emit(refresh ? 'closeAndRefresh' : 'close');
101
- setTimeout(() => {
102
- this.formGroup.reset();
103
- this.formGroup.enable();
104
- this.showRadioButtons = true;
105
- this._notificationMessage$.next('zgw.columns.defaultWarning');
106
- this._prefillColumn = null;
107
- }, CARBON_CONSTANTS.modalAnimationMs);
108
- }
109
- updateColumn() {
110
- const columnValue = this.formGroup.get('column')?.value;
111
- if (!columnValue || !this.definitionName) {
112
- return;
113
- }
114
- const defaultSortValue = this.formGroup.get('defaultSort')?.value;
115
- const defaultSort = !defaultSortValue
116
- ? null
117
- : defaultSortValue === 'noDefault'
118
- ? null
119
- : defaultSortValue;
120
- const column = { ...columnValue.column, defaultSort };
121
- if (!!this._defaultSortedColumn &&
122
- this._defaultSortedColumn.key !== column.key &&
123
- !!column.defaultSort) {
124
- this.zgwDocumentenApiColumnService
125
- .updateColumn(this.definitionName, {
126
- ...this._defaultSortedColumn,
127
- defaultSort: null,
128
- })
129
- .pipe(switchMap(() => this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column)))
130
- .subscribe(() => {
131
- this.onClose(true);
132
- });
133
- return;
134
- }
135
- this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column).subscribe(() => {
136
- this.onClose(true);
137
- });
138
- }
139
- openDisableRadioSubscription() {
140
- this._subscriptions.add(this.formGroup.get('column')?.valueChanges.subscribe(columnValue => {
141
- this.showRadioButtons = !!columnValue?.column.sortable;
142
- this._notificationMessage$.next(this.showRadioButtons ? 'zgw.columns.defaultWarning' : 'zgw.columns.notSortable');
143
- }));
144
- }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { definitionName: "definitionName", prefillColumn: "prefillColumn", type: "type", availableColumns: "availableColumns", configuredColumns: "configuredColumns" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i5.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i5.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i5.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
147
- }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnModalComponent, decorators: [{
149
- type: Component,
150
- args: [{ selector: 'valtimo-documenten-api-column-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
151
- CommonModule,
152
- ModalModule,
153
- TranslateModule,
154
- InputModule,
155
- ReactiveFormsModule,
156
- ButtonModule,
157
- DropdownModule,
158
- RadioModule,
159
- NotificationModule,
160
- LayerModule,
161
- ], template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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"] }]
162
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.DocumentenApiColumnService }], propDecorators: { definitionName: [{
163
- type: Input
164
- }], prefillColumn: [{
165
- type: Input
166
- }], type: [{
167
- type: Input
168
- }], availableColumns: [{
169
- type: Input
170
- }], configuredColumns: [{
171
- type: Input
172
- }], closeModal: [{
173
- type: Output
174
- }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFdBQVcsRUFFWCxrQkFBa0IsRUFDbEIsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFPOUYsT0FBTyxFQUFDLGdCQUFnQixFQUFD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QkFBa0IsMk1BQ2xCLFdBQVc7OzRGQUdGLGlDQUFpQztrQkFuQjdDLFNBQVM7K0JBQ0UscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixXQUFXO3FCQUNaO3dKQUdlLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR2MsYUFBYTtzQkFBaEMsS0FBSztnQkFjYyxJQUFJO3NCQUF2QixLQUFLO2dCQVdjLGdCQUFnQjtzQkFBbkMsS0FBSztnQkFvQmMsaUJBQWlCO3NCQUFwQyxLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIElucHV0TW9kdWxlLFxuICBMYXllck1vZHVsZSxcbiAgTGlzdEl0ZW0sXG4gIE1vZGFsTW9kdWxlLFxuICBOb3RpZmljYXRpb25Db250ZW50LFxuICBOb3RpZmljYXRpb25Nb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyZWRDb2x1bW4sXG4gIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGUsXG4gIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGVDbG9zZUV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtDQVJCT05fQ09OU1RBTlRTfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBSYWRpb01vZHVsZSxcbiAgICBOb3RpZmljYXRpb25Nb2R1bGUsXG4gICAgTGF5ZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIGRlZmluaXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfcHJlZmlsbENvbHVtbiE6IExpc3RJdGVtW10gfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHByZWZpbGxDb2x1bW4odmFsdWU6IENvbmZpZ3VyZWRDb2x1bW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2x1bW4gPSB7Y29udGVudDogdmFsdWUua2V5LCBzZWxlY3RlZDogdHJ1ZSwgY29sdW1uOiB2YWx1ZX07XG4gICAgY29uc3QgZGVmYXVsdFNvcnQgPSB2YWx1ZS5kZWZhdWx0U29ydCA/PyAnbm9EZWZhdWx0JztcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtjb2x1bW4sIGRlZmF1bHRTb3J0fSk7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8uZGlzYWJsZSgpO1xuICAgIHRoaXMuX3ByZWZpbGxDb2x1bW4gPSBbY29sdW1uXTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByZWZpbGxDb2x1bW4oKTogTGlzdEl0ZW1bXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9wcmVmaWxsQ29sdW1uO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHlwZSE6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGU7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdHlwZSh2YWx1ZTogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUgPT09ICdlZGl0Jykge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8uZGlzYWJsZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0eXBlKCk6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXZhaWxhYmxlQ29sdW1ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyZWRDb2x1bW5bXT4oW10pO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGF2YWlsYWJsZUNvbHVtbnModmFsdWU6IENvbmZpZ3VyZWRDb2x1bW5bXSkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuX2F2YWlsYWJsZUNvbHVtbnMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fYXZhaWxhYmxlQ29sdW1ucyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29sdW1uc10pID0+XG4gICAgICBjb2x1bW5zLm1hcCgoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgemd3LmRvY3VtZW50Q29sdW1ucy4ke2NvbHVtbi5rZXl9YCksXG4gICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgY29sdW1uLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgX2RlZmF1bHRTb3J0ZWRDb2x1bW4hOiBDb25maWd1cmVkQ29sdW1uIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbmZpZ3VyZWRDb2x1bW5zKHZhbHVlOiBDb25maWd1cmVkQ29sdW1uW10pIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uID0gdmFsdWUuZmluZCgoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKSA9PiAhIWNvbHVtbi5kZWZhdWx0U29ydCk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQ+KCk7XG5cbiAgcHVibGljIGZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIGNvbHVtbjogdGhpcy5mYi5jb250cm9sKFxuICAgICAge2NvbnRlbnQ6ICcnLCBzZWxlY3RlZDogZmFsc2UsIGNvbHVtbjoge30gYXMgQ29uZmlndXJlZENvbHVtbn0sXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgKSxcbiAgICBkZWZhdWx0U29ydDogdGhpcy5mYi5jb250cm9sPCdBU0MnIHwgJ0RFU0MnIHwgJ25vRGVmYXVsdCc+KCdub0RlZmF1bHQnKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9uTWVzc2FnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXG4gICAgJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJ1xuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uT2JqJDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db250ZW50PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW21lc3NhZ2VdKSA9PiAoe1xuICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgbG93Q29udHJhc3Q6IHRydWUsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2ludGVyZmFjZS53YXJuaW5nJyksXG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSxcbiAgICAgIHNob3dDbG9zZTogZmFsc2UsXG4gICAgfSkpXG4gICk7XG5cbiAgcHVibGljIHNob3dSYWRpb0J1dHRvbnMgPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2U6IERvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlzYWJsZVJhZGlvU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UocmVmcmVzaCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQocmVmcmVzaCA/ICdjbG9zZUFuZFJlZnJlc2gnIDogJ2Nsb3NlJyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgIHRoaXMuc2hvd1JhZGlvQnV0dG9ucyA9IHRydWU7XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25NZXNzYWdlJC5uZXh0KCd6Z3cuY29sdW1ucy5kZWZhdWx0V2FybmluZycpO1xuICAgICAgdGhpcy5fcHJlZmlsbENvbHVtbiA9IG51bGw7XG4gICAgfSwgQ0FSQk9OX0NPTlNUQU5UUy5tb2RhbEFuaW1hdGlvbk1zKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb2x1bW4oKTogdm9pZCB7XG4gICAgY29uc3QgY29sdW1uVmFsdWU6IExpc3RJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY29sdW1uJyk/LnZhbHVlO1xuICAgIGlmICghY29sdW1uVmFsdWUgfHwgIXRoaXMuZGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFNvcnRWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnZGVmYXVsdFNvcnQnKT8udmFsdWU7XG4gICAgY29uc3QgZGVmYXVsdFNvcnQgPSAhZGVmYXVsdFNvcnRWYWx1ZVxuICAgICAgPyBudWxsXG4gICAgICA6IGRlZmF1bHRTb3J0VmFsdWUgPT09ICdub0RlZmF1bHQnXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGRlZmF1bHRTb3J0VmFsdWU7XG4gICAgY29uc3QgY29sdW1uID0gey4uLmNvbHVtblZhbHVlLmNvbHVtbiwgZGVmYXVsdFNvcnR9O1xuXG4gICAgaWYgKFxuICAgICAgISF0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uICYmXG4gICAgICB0aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uLmtleSAhPT0gY29sdW1uLmtleSAmJlxuICAgICAgISFjb2x1bW4uZGVmYXVsdFNvcnRcbiAgICApIHtcbiAgICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCB7XG4gICAgICAgICAgLi4udGhpcy5fZGVmYXVsdFNvcnRlZENvbHVtbixcbiAgICAgICAgICBkZWZhdWx0U29ydDogbnVsbCxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICB0aGlzLnpnd0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCBjb2x1bW4pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25DbG9zZSh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnpnd0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlLnVwZGF0ZUNvbHVtbih0aGlzLmRlZmluaXRpb25OYW1lLCBjb2x1bW4pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uQ2xvc2UodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5EaXNhYmxlUmFkaW9TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNvbHVtblZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID0gISFjb2x1bW5WYWx1ZT8uY29sdW1uLnNvcnRhYmxlO1xuXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLm5leHQoXG4gICAgICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID8gJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJyA6ICd6Z3cuY29sdW1ucy5ub3RTb3J0YWJsZSdcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsIHZhbHRpbW9DZHNNb2RhbCBbb3Blbl09XCJ0eXBlICE9PSAnY2xvc2VkJ1wiIHNpemU9XCJzbVwiPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBzaG93Q2xvc2VCdXR0b249XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cIm9uQ2xvc2UoKVwiIFtjZHNMYXllcl09XCIxXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7ICh0eXBlID09PSAnYWRkJyA/ICd6Z3cuY29sdW1ucy5hZGQnIDogJ3pndy5jb2x1bW5zLmVkaXQnKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWxfX2NvbnRlbnRcIlxuICAgIGNkc01vZGFsQ29udGVudFxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbY2RzTGF5ZXJdPVwiMVwiXG4gID5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2x1bW5cIlxuICAgICAgW2xhYmVsXT1cIid6Z3cuY29sdW1ucy5jb2x1bW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkcm9wVXBdPVwiZmFsc2VcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdFxuICAgICAgICBbaXRlbXNdPVwiIXByZWZpbGxDb2x1bW4gPyAoYXZhaWxhYmxlQ29sdW1ucyQgfCBhc3luYykgOiBwcmVmaWxsQ29sdW1uXCJcbiAgICAgID48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuXG4gICAgPGNkcy1yYWRpby1ncm91cCAqbmdJZj1cInNob3dSYWRpb0J1dHRvbnNcIiBsZWdlbmQ9XCJEZWZhdWx0IHNvcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0U29ydFwiPlxuICAgICAgPGNkcy1yYWRpbyB2YWx1ZT1cIm5vRGVmYXVsdFwiPiB7eyAnaW50ZXJmYWNlLnNvcnRpbmcubm9EZWZhdWx0JyB8IHRyYW5zbGF0ZSB9fSA8L2Nkcy1yYWRpbz5cblxuICAgICAgPGNkcy1yYWRpbyB2YWx1ZT1cIkRFU0NcIj4ge3sgJ2ludGVyZmFjZS5zb3J0aW5nLmRlc2NlbmRpbmcnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuXG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwiQVNDXCI+IHt7ICdpbnRlcmZhY2Uuc29ydGluZy5hc2NlbmRpbmcnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuICAgIDwvY2RzLXJhZGlvLWdyb3VwPlxuXG4gICAgPGNkcy1pbmxpbmUtbm90aWZpY2F0aW9uIFtub3RpZmljYXRpb25PYmpdPVwibm90aWZpY2F0aW9uT2JqJCB8IGFzeW5jXCI+PC9jZHMtaW5saW5lLW5vdGlmaWNhdGlvbj5cbiAgPC9mb3JtPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyIFtjZHNMYXllcl09XCIxXCI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtR3JvdXAuaW52YWxpZFwiIChjbGljayk9XCJ1cGRhdGVDb2x1bW4oKVwiPlxuICAgICAge3sgKHR5cGUgPT09ICdhZGQnID8gJ2ludGVyZmFjZS5hZGQnIDogJ2ludGVyZmFjZS5zYXZlJykgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG4iXX0=
@@ -1,142 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 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 { CommonModule } from '@angular/common';
17
- import { ChangeDetectionStrategy, Component, ViewChild, } from '@angular/core';
18
- import { TranslateModule } from '@ngx-translate/core';
19
- import { CarbonListModule, ConfirmationModalModule, ViewType, } from '@valtimo/components';
20
- import { ButtonModule, IconModule, TagModule } from 'carbon-components-angular';
21
- import { BehaviorSubject, combineLatest, filter, map, switchMap, tap } from 'rxjs';
22
- import { DocumentenApiColumnModalComponent } from '../documenten-api-column-modal/documenten-api-column-modal.component';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "@angular/router";
25
- import * as i2 from "../../services";
26
- import * as i3 from "@angular/common";
27
- import * as i4 from "@valtimo/components";
28
- import * as i5 from "@ngx-translate/core";
29
- import * as i6 from "carbon-components-angular";
30
- export class DocumentenApiColumnsComponent {
31
- get documentDefinitionName$() {
32
- return this._documentDefinitionName$;
33
- }
34
- constructor(route, zgwDocumentColumnService) {
35
- this.route = route;
36
- this.zgwDocumentColumnService = zgwDocumentColumnService;
37
- this._reload$ = new BehaviorSubject(null);
38
- this._documentDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(docDefName => !!docDefName));
39
- this.loading$ = new BehaviorSubject(true);
40
- this.configuredColumns$ = combineLatest([
41
- this._documentDefinitionName$,
42
- this._reload$,
43
- ]).pipe(tap(([_, reload]) => {
44
- if (reload === null)
45
- this.loading$.next(true);
46
- }), switchMap(([documentDefinitionName]) => this.zgwDocumentColumnService.getAdminConfiguredColumns(documentDefinitionName)), tap(() => {
47
- this.loading$.next(false);
48
- }));
49
- this.configurableColumns$ = this.documentDefinitionName$.pipe(switchMap((documentDefinitionName) => combineLatest([
50
- this.zgwDocumentColumnService.getAdminConfigurableColumns(documentDefinitionName),
51
- this.configuredColumns$,
52
- ])), map(([configurableColumns, configuredColumns]) => {
53
- const configuredKeys = configuredColumns.map((column) => column.key);
54
- return configurableColumns.filter((column) => !configuredKeys.includes(column.key));
55
- }));
56
- this.ACTION_ITEMS = [
57
- {
58
- label: 'interface.edit',
59
- callback: this.openEditModal.bind(this),
60
- type: 'normal',
61
- },
62
- {
63
- label: 'interface.delete',
64
- callback: this.openDeleteModal.bind(this),
65
- type: 'danger',
66
- },
67
- ];
68
- this.CARBON_THEME = 'g10';
69
- this.columnModalType$ = new BehaviorSubject('closed');
70
- this.prefillColumn$ = new BehaviorSubject(undefined);
71
- this.columnToUpdate$ = new BehaviorSubject(undefined);
72
- this.showDeleteModal$ = new BehaviorSubject(false);
73
- }
74
- ngAfterViewInit() {
75
- this.fields = [
76
- {
77
- key: 'key',
78
- label: 'zgw.columns.column',
79
- viewType: ViewType.TEMPLATE,
80
- template: this.columnKeyTemplate,
81
- },
82
- {
83
- key: 'defaultSort',
84
- label: 'listColumn.defaultSort',
85
- viewType: ViewType.TEMPLATE,
86
- template: this.defaultSortTemplate,
87
- },
88
- ];
89
- }
90
- openDeleteModal(column) {
91
- this.columnToUpdate$.next(column);
92
- this.showDeleteModal$.next(true);
93
- }
94
- openEditModal(column) {
95
- this.prefillColumn$.next(column);
96
- this.columnModalType$.next('edit');
97
- }
98
- openAddModal() {
99
- this.columnModalType$.next('add');
100
- this.prefillColumn$.next(undefined);
101
- }
102
- onCloseModal(closeModalEvent) {
103
- if (closeModalEvent === 'closeAndRefresh')
104
- this.reload();
105
- this.columnModalType$.next('closed');
106
- }
107
- confirmDeleteStatus(column, definitionName) {
108
- this.zgwDocumentColumnService.deleteColumn(definitionName, column.key).subscribe(() => {
109
- this.reload();
110
- });
111
- }
112
- onItemsReordered(definitionName, columns) {
113
- this.zgwDocumentColumnService.updateConfiguredColumns(definitionName, columns).subscribe(() => {
114
- this.reload(true);
115
- });
116
- }
117
- reload(noAnimation = false) {
118
- this._reload$.next(noAnimation ? 'noAnimation' : null);
119
- }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentenApiColumnsComponent, isStandalone: true, selector: "valtimo-documenten-api-columns", viewQueries: [{ propertyName: "columnKeyTemplate", first: true, predicate: ["columnKeyTemplate"], descendants: true }, { propertyName: "defaultSortTemplate", first: true, predicate: ["defaultSortTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.documentDefinitionName\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: DocumentenApiColumnModalComponent, selector: "valtimo-documenten-api-column-modal", inputs: ["definitionName", "prefillColumn", "type", "availableColumns", "configuredColumns"], outputs: ["closeModal"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i4.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i4.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
122
- }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiColumnsComponent, decorators: [{
124
- type: Component,
125
- args: [{ selector: 'valtimo-documenten-api-columns', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
126
- CommonModule,
127
- DocumentenApiColumnModalComponent,
128
- CarbonListModule,
129
- TranslateModule,
130
- ConfirmationModalModule,
131
- TagModule,
132
- ButtonModule,
133
- IconModule,
134
- ], template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.documentDefinitionName\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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"] }]
135
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.DocumentenApiColumnService }], propDecorators: { columnKeyTemplate: [{
136
- type: ViewChild,
137
- args: ['columnKeyTemplate']
138
- }], defaultSortTemplate: [{
139
- type: ViewChild,
140
- args: ['defaultSortTemplate']
141
- }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3pndy9zcmMvbGliL21vZHVsZXMvZG9jdW1lbnRlbi1hcGkvY29tcG9uZW50cy9kb2N1bWVudGVuLWFwaS1jb2x1bW5zL2RvY3VtZW50ZW4tYXBpLWNvbHVtbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1ucy9kb2N1bWVudGVuLWFwaS1jb2x1bW5zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUVMLGdCQUFnQixFQUVoQix1QkFBdUIsRUFDdkIsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBTzdGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHNFQUFzRSxDQUFDOzs7Ozs7OztBQW1CdkgsTUFBTSxPQUFPLDZCQUE2QjtJQVd4QyxJQUFXLHVCQUF1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ICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBBY3Rpb25JdGVtLFxuICBDYXJib25MaXN0TW9kdWxlLFxuICBDb2x1bW5Db25maWcsXG4gIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICBWaWV3VHlwZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgVGFnTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJlZENvbHVtbixcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSxcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0RvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbENvbXBvbmVudH0gZnJvbSAnLi4vZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvY3VtZW50ZW4tYXBpLWNvbHVtbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRlbi1hcGktY29sdW1ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50ZW4tYXBpLWNvbHVtbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsQ29tcG9uZW50LFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICAgIFRhZ01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnY29sdW1uS2V5VGVtcGxhdGUnKSBwdWJsaWMgcmVhZG9ubHkgY29sdW1uS2V5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHRTb3J0VGVtcGxhdGUnKSBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFNvcnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9yZWxvYWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsIHwgJ25vQW5pbWF0aW9uJz4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/Lm5hbWUpLFxuICAgIGZpbHRlcihkb2NEZWZOYW1lID0+ICEhZG9jRGVmTmFtZSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlndXJlZENvbHVtbnMkOiBPYnNlcnZhYmxlPENvbmZpZ3VyZWRDb2x1bW5bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lJCxcbiAgICB0aGlzLl9yZWxvYWQkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoW18sIHJlbG9hZF0pID0+IHtcbiAgICAgIGlmIChyZWxvYWQgPT09IG51bGwpIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAoKFtkb2N1bWVudERlZmluaXRpb25OYW1lXSkgPT5cbiAgICAgIHRoaXMuemd3RG9jdW1lbnRDb2x1bW5TZXJ2aWNlLmdldEFkbWluQ29uZmlndXJlZENvbHVtbnMoZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICApLFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPENvbmZpZ3VyZWRDb2x1bW5bXT4gPVxuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nKSA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLnpnd0RvY3VtZW50Q29sdW1uU2VydmljZS5nZXRBZG1pbkNvbmZpZ3VyYWJsZUNvbHVtbnMoZG9jdW1lbnREZWZpbml0aW9uTmFtZSksXG4gICAgICAgICAgdGhpcy5jb25maWd1cmVkQ29sdW1ucyQsXG4gICAgICAgIF0pXG4gICAgICApLFxuICAgICAgbWFwKChbY29uZmlndXJhYmxlQ29sdW1ucywgY29uZmlndXJlZENvbHVtbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyZWRLZXlzOiBzdHJpbmdbXSA9IGNvbmZpZ3VyZWRDb2x1bW5zLm1hcChcbiAgICAgICAgICAoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKSA9PiBjb2x1bW4ua2V5XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYWJsZUNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgIChjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4pID0+ICFjb25maWd1cmVkS2V5cy5pbmNsdWRlcyhjb2x1bW4ua2V5KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gIHB1YmxpYyBmaWVsZHM6IENvbHVtbkNvbmZpZ1tdO1xuXG4gIHB1YmxpYyByZWFkb25seSBBQ1RJT05fSVRFTVM6IEFjdGlvbkl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ2ludGVyZmFjZS5lZGl0JyxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLm9wZW5FZGl0TW9kYWwuYmluZCh0aGlzKSxcbiAgICAgIHR5cGU6ICdub3JtYWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdpbnRlcmZhY2UuZGVsZXRlJyxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLm9wZW5EZWxldGVNb2RhbC5iaW5kKHRoaXMpLFxuICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgfSxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgQ0FSQk9OX1RIRU1FID0gJ2cxMCc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbk1vZGFsVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGU+KCdjbG9zZWQnKTtcbiAgcHVibGljIHJlYWRvbmx5IHByZWZpbGxDb2x1bW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmVkQ29sdW1uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5Ub1VwZGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyZWRDb2x1bW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RGVsZXRlTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB6Z3dEb2N1bWVudENvbHVtblNlcnZpY2U6IERvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmllbGRzID0gW1xuICAgICAge1xuICAgICAgICBrZXk6ICdrZXknLFxuICAgICAgICBsYWJlbDogJ3pndy5jb2x1bW5zLmNvbHVtbicsXG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuY29sdW1uS2V5VGVtcGxhdGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdkZWZhdWx0U29ydCcsXG4gICAgICAgIGxhYmVsOiAnbGlzdENvbHVtbi5kZWZhdWx0U29ydCcsXG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuZGVmYXVsdFNvcnRUZW1wbGF0ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGVsZXRlTW9kYWwoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5Ub1VwZGF0ZSQubmV4dChjb2x1bW4pO1xuICAgIHRoaXMuc2hvd0RlbGV0ZU1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9wZW5FZGl0TW9kYWwoY29sdW1uOiBDb25maWd1cmVkQ29sdW1uKTogdm9pZCB7XG4gICAgdGhpcy5wcmVmaWxsQ29sdW1uJC5uZXh0KGNvbHVtbik7XG4gICAgdGhpcy5jb2x1bW5Nb2RhbFR5cGUkLm5leHQoJ2VkaXQnKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQWRkTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5Nb2RhbFR5cGUkLm5leHQoJ2FkZCcpO1xuICAgIHRoaXMucHJlZmlsbENvbHVtbiQubmV4dCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VNb2RhbChjbG9zZU1vZGFsRXZlbnQ6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGVDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGNsb3NlTW9kYWxFdmVudCA9PT0gJ2Nsb3NlQW5kUmVmcmVzaCcpIHRoaXMucmVsb2FkKCk7XG5cbiAgICB0aGlzLmNvbHVtbk1vZGFsVHlwZSQubmV4dCgnY2xvc2VkJyk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlybURlbGV0ZVN0YXR1cyhjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4sIGRlZmluaXRpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnpnd0RvY3VtZW50Q29sdW1uU2VydmljZS5kZWxldGVDb2x1bW4oZGVmaW5pdGlvbk5hbWUsIGNvbHVtbi5rZXkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uSXRlbXNSZW9yZGVyZWQoZGVmaW5pdGlvbk5hbWU6IHN0cmluZywgY29sdW1uczogQ29uZmlndXJlZENvbHVtbltdKTogdm9pZCB7XG4gICAgdGhpcy56Z3dEb2N1bWVudENvbHVtblNlcnZpY2UudXBkYXRlQ29uZmlndXJlZENvbHVtbnMoZGVmaW5pdGlvbk5hbWUsIGNvbHVtbnMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlbG9hZCh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVsb2FkKG5vQW5pbWF0aW9uID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWxvYWQkLm5leHQobm9BbmltYXRpb24gPyAnbm9BbmltYXRpb24nIDogbnVsbCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBjb2x1bW5Nb2RhbFR5cGU6IGNvbHVtbk1vZGFsVHlwZSQgfCBhc3luYyxcbiAgICBjb2x1bW5Ub1VwZGF0ZTogY29sdW1uVG9VcGRhdGUkIHwgYXN5bmMsXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgfCBhc3luYyxcbiAgICBjb25maWd1cmVkQ29sdW1uczogY29uZmlndXJlZENvbHVtbnMkIHwgYXN5bmMsXG4gICAgY29uZmlndXJhYmxlQ29sdW1uczogY29uZmlndXJhYmxlQ29sdW1ucyQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICAgIHByZWZpbGxDb2x1bW46IHByZWZpbGxDb2x1bW4kIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgICBbYWN0aW9uSXRlbXNdPVwiQUNUSU9OX0lURU1TXCJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgW2hlYWRlcl09XCJmYWxzZVwiXG4gICAgW2l0ZW1zXT1cIm9icy5jb25maWd1cmVkQ29sdW1uc1wiXG4gICAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmcgfHwgIWZpZWxkc1wiXG4gICAgW21vdmluZ1Jvd3NFbmFibGVkXT1cInRydWVcIlxuICAgIChpdGVtc1Jlb3JkZXJlZCk9XCJvbkl0ZW1zUmVvcmRlcmVkKG9icy5kb2N1bWVudERlZmluaXRpb25OYW1lLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgY2FyYm9uVG9vbGJhckNvbnRlbnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWRkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbYWN0aW9uXT1cImFkZEJ1dHRvblwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiJ3pndy5kb2N1bWVudHMubm9Db2x1bW5zLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbdGl0bGVdPVwiJ3pndy5kb2N1bWVudHMubm9Db2x1bW5zLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbiAgPHZhbHRpbW8tZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsXG4gICAgW2F2YWlsYWJsZUNvbHVtbnNdPVwib2JzLmNvbmZpZ3VyYWJsZUNvbHVtbnNcIlxuICAgIFtjb25maWd1cmVkQ29sdW1uc109XCJvYnMuY29uZmlndXJlZENvbHVtbnNcIlxuICAgIFtkZWZpbml0aW9uTmFtZV09XCJvYnMuZG9jdW1lbnREZWZpbml0aW9uTmFtZVwiXG4gICAgW3ByZWZpbGxDb2x1bW5dPVwib2JzLnByZWZpbGxDb2x1bW5cIlxuICAgIFt0eXBlXT1cIm9icy5jb2x1bW5Nb2RhbFR5cGVcIlxuICAgIChjbG9zZU1vZGFsKT1cIm9uQ2xvc2VNb2RhbCgkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWw+XG5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVcIlxuICAgIGNvbmZpcm1CdXR0b25UeXBlPVwiZGFuZ2VyXCJcbiAgICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJ6Z3cuY29sdW1ucy5kZWxldGVUZXh0XCJcbiAgICBbb3V0cHV0T25Db25maXJtXT1cImNvbHVtblRvVXBkYXRlJCB8IGFzeW5jXCJcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVcIlxuICAgIChjb25maXJtRXZlbnQpPVwiY29uZmlybURlbGV0ZVN0YXR1cygkZXZlbnQsIG9icy5kb2N1bWVudERlZmluaXRpb25OYW1lKVwiXG4gID48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjYWRkQnV0dG9uPlxuICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiIChjbGljayk9XCJvcGVuQWRkTW9kYWwoKVwiPlxuICAgIDxzdmcgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cblxuICAgIHt7ICd6Z3cuY29sdW1ucy5hZGQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5LZXlUZW1wbGF0ZSBsZXQtZGF0YT1cImRhdGFcIj5cbiAge3sgJ3pndy5kb2N1bWVudENvbHVtbnMuJyArIGRhdGEuaXRlbS5rZXkgfCB0cmFuc2xhdGUgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNvcnRUZW1wbGF0ZSBsZXQtZGF0YT1cImRhdGFcIj5cbiAge3tcbiAgICBkYXRhLml0ZW0uZGVmYXVsdFNvcnQgPT09IG51bGxcbiAgICAgID8gJy0nXG4gICAgICA6ICgnaW50ZXJmYWNlLnNvcnRpbmcuJyArIChkYXRhLml0ZW0uZGVmYXVsdFNvcnQgPT09ICdBU0MnID8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZycpXG4gICAgICAgIHwgdHJhbnNsYXRlKVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==