@sumaris-net/ngx-components 2.12.25 → 2.12.26-alpha2

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 (163) hide show
  1. package/esm2022/src/app/admin/services/validator/person.validator.mjs +8 -11
  2. package/esm2022/src/app/admin/users/users.mjs +5 -11
  3. package/esm2022/src/app/core/account/account.page.mjs +5 -12
  4. package/esm2022/src/app/core/account/new-token.modal.mjs +8 -15
  5. package/esm2022/src/app/core/account/password/change-password.form.mjs +5 -10
  6. package/esm2022/src/app/core/account/password/change-password.page.mjs +4 -9
  7. package/esm2022/src/app/core/account/token.table.mjs +5 -12
  8. package/esm2022/src/app/core/auth/auth.form.mjs +5 -11
  9. package/esm2022/src/app/core/auth/auth.modal.mjs +14 -17
  10. package/esm2022/src/app/core/auth/reset-password.modal.mjs +16 -20
  11. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +5 -13
  12. package/esm2022/src/app/core/form/entity/editor.class.mjs +14 -20
  13. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +10 -21
  14. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +11 -24
  15. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +5 -21
  16. package/esm2022/src/app/core/form/form-container.class.mjs +4 -5
  17. package/esm2022/src/app/core/form/form.class.mjs +13 -13
  18. package/esm2022/src/app/core/form/list/list.form.mjs +10 -20
  19. package/esm2022/src/app/core/form/properties/properties.form.mjs +17 -26
  20. package/esm2022/src/app/core/form/properties/properties.table.mjs +10 -14
  21. package/esm2022/src/app/core/form/properties/property.validator.mjs +5 -8
  22. package/esm2022/src/app/core/form/username/username.form.mjs +5 -10
  23. package/esm2022/src/app/core/home/home.mjs +39 -61
  24. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +21 -34
  25. package/esm2022/src/app/core/menu/menu.component.mjs +33 -53
  26. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +13 -15
  27. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +13 -15
  28. package/esm2022/src/app/core/peer/select-peer.modal.mjs +26 -40
  29. package/esm2022/src/app/core/services/testing/referential.validator.mjs +5 -8
  30. package/esm2022/src/app/core/services/validator/account.validator.mjs +8 -18
  31. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +9 -11
  32. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +8 -10
  33. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -6
  34. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +5 -6
  35. package/esm2022/src/app/core/settings/settings.page.mjs +25 -35
  36. package/esm2022/src/app/core/table/async-table.class.mjs +20 -29
  37. package/esm2022/src/app/core/table/column/actions-column.component.mjs +8 -9
  38. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +8 -9
  39. package/esm2022/src/app/core/table/column/row-field.component.mjs +6 -11
  40. package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
  41. package/esm2022/src/app/core/table/table.class.mjs +28 -33
  42. package/esm2022/src/app/core/table/table.pipes.mjs +15 -21
  43. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +5 -8
  44. package/esm2022/src/app/core/table/testing/table.testing.mjs +6 -11
  45. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +5 -8
  46. package/esm2022/src/app/core/table/testing/table2.testing.mjs +9 -13
  47. package/esm2022/src/app/shared/form/field.component.mjs +14 -16
  48. package/esm2022/src/app/shared/help/help.modal.mjs +20 -25
  49. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +31 -40
  50. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +14 -18
  51. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +13 -14
  52. package/esm2022/src/app/shared/material/badge/badge.test.mjs +6 -8
  53. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +14 -21
  54. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +5 -12
  55. package/esm2022/src/app/shared/material/chips/material.chips.mjs +18 -23
  56. package/esm2022/src/app/shared/material/datetime/material.date.mjs +33 -41
  57. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +36 -42
  58. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +33 -41
  59. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +11 -13
  60. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +12 -14
  61. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +12 -14
  62. package/esm2022/src/app/shared/material/duration/material.duration.mjs +18 -29
  63. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +12 -14
  64. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +25 -32
  65. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +15 -20
  66. package/esm2022/src/app/shared/material/testing/common.test.mjs +12 -14
  67. package/esm2022/src/app/shared/material/text/text-form.component.mjs +5 -12
  68. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +6 -13
  69. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +13 -12
  70. package/esm2022/src/app/shared/pipes/form.pipes.mjs +18 -26
  71. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +33 -35
  72. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +28 -53
  73. package/esm2022/src/app/shared/toolbar/toolbar.mjs +20 -30
  74. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +14 -16
  75. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +18 -20
  76. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +18 -26
  77. package/esm2022/src/app/social/message/message.form.mjs +5 -10
  78. package/esm2022/src/app/social/message/message.modal.mjs +16 -19
  79. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +18 -27
  80. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +23 -40
  81. package/fesm2022/sumaris-net.ngx-components.mjs +760 -1239
  82. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  83. package/package.json +1 -1
  84. package/src/app/admin/services/validator/person.validator.d.ts +2 -3
  85. package/src/app/admin/users/users.d.ts +2 -4
  86. package/src/app/core/account/account.page.d.ts +2 -4
  87. package/src/app/core/account/new-token.modal.d.ts +2 -3
  88. package/src/app/core/account/password/change-password.form.d.ts +2 -4
  89. package/src/app/core/account/password/change-password.page.d.ts +2 -4
  90. package/src/app/core/account/token.table.d.ts +3 -6
  91. package/src/app/core/auth/auth.form.d.ts +3 -5
  92. package/src/app/core/auth/auth.modal.d.ts +5 -7
  93. package/src/app/core/auth/reset-password.modal.d.ts +6 -6
  94. package/src/app/core/form/array/testing/form-array.test.d.ts +2 -5
  95. package/src/app/core/form/entity/editor.class.d.ts +7 -7
  96. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +3 -5
  97. package/src/app/core/form/entity/entity-editor.class.d.ts +4 -7
  98. package/src/app/core/form/entity/tab-editor.class.d.ts +2 -11
  99. package/src/app/core/form/form-container.class.d.ts +2 -1
  100. package/src/app/core/form/form.class.d.ts +5 -3
  101. package/src/app/core/form/list/list.form.d.ts +3 -8
  102. package/src/app/core/form/properties/properties.form.d.ts +3 -7
  103. package/src/app/core/form/properties/properties.table.d.ts +3 -5
  104. package/src/app/core/form/properties/property.validator.d.ts +1 -3
  105. package/src/app/core/form/username/username.form.d.ts +3 -5
  106. package/src/app/core/home/home.d.ts +16 -22
  107. package/src/app/core/install/install-upgrade-card.component.d.ts +10 -15
  108. package/src/app/core/menu/menu.component.d.ts +13 -17
  109. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -5
  110. package/src/app/core/menu/testing/menu.testing.d.ts +1 -5
  111. package/src/app/core/peer/select-peer.modal.d.ts +10 -15
  112. package/src/app/core/services/testing/referential.validator.d.ts +2 -3
  113. package/src/app/core/services/validator/account.validator.d.ts +2 -8
  114. package/src/app/core/services/validator/base.validator.class.d.ts +3 -3
  115. package/src/app/core/services/validator/local-settings.validator.d.ts +3 -4
  116. package/src/app/core/services/validator/user-settings.validator.d.ts +2 -2
  117. package/src/app/core/services/validator/user-token.validator.d.ts +2 -2
  118. package/src/app/core/settings/settings.page.d.ts +3 -9
  119. package/src/app/core/table/async-table.class.d.ts +15 -13
  120. package/src/app/core/table/column/actions-column.component.d.ts +3 -3
  121. package/src/app/core/table/column/nav-actions-column.component.d.ts +4 -4
  122. package/src/app/core/table/column/row-field.component.d.ts +2 -2
  123. package/src/app/core/table/memory-table.class.d.ts +2 -2
  124. package/src/app/core/table/table.class.d.ts +16 -13
  125. package/src/app/core/table/table.pipes.d.ts +4 -5
  126. package/src/app/core/table/testing/table-validator.service.d.ts +2 -3
  127. package/src/app/core/table/testing/table.testing.d.ts +2 -4
  128. package/src/app/core/table/testing/table2-validator.service.d.ts +1 -3
  129. package/src/app/core/table/testing/table2.testing.d.ts +2 -4
  130. package/src/app/shared/form/field.component.d.ts +5 -5
  131. package/src/app/shared/help/help.modal.d.ts +7 -8
  132. package/src/app/shared/image/gallery/image-gallery.component.d.ts +8 -8
  133. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +6 -7
  134. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +4 -4
  135. package/src/app/shared/material/badge/badge.test.d.ts +2 -3
  136. package/src/app/shared/material/boolean/material.boolean.d.ts +5 -6
  137. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +2 -5
  138. package/src/app/shared/material/chips/material.chips.d.ts +5 -5
  139. package/src/app/shared/material/datetime/material.date.d.ts +10 -11
  140. package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -11
  141. package/src/app/shared/material/datetime/material.datetime.d.ts +10 -11
  142. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +4 -4
  143. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +3 -3
  144. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +3 -3
  145. package/src/app/shared/material/duration/material.duration.d.ts +6 -12
  146. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +3 -3
  147. package/src/app/shared/material/latlong/material.latlong.d.ts +9 -9
  148. package/src/app/shared/material/swipe/material.swipe.d.ts +5 -5
  149. package/src/app/shared/material/testing/common.test.d.ts +4 -4
  150. package/src/app/shared/material/text/text-form.component.d.ts +3 -6
  151. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +2 -5
  152. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +4 -3
  153. package/src/app/shared/pipes/form.pipes.d.ts +6 -7
  154. package/src/app/shared/pipes/selection.pipes.d.ts +10 -10
  155. package/src/app/shared/storage/storage-explorer.component.d.ts +12 -15
  156. package/src/app/shared/toolbar/toolbar.d.ts +10 -12
  157. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +4 -4
  158. package/src/app/shared/upload-file/upload-file.component.d.ts +3 -3
  159. package/src/app/social/job/progression/job-progression.icon.d.ts +5 -6
  160. package/src/app/social/message/message.form.d.ts +2 -4
  161. package/src/app/social/message/message.modal.d.ts +5 -5
  162. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +7 -8
  163. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +8 -9
@@ -1,18 +1,15 @@
1
- import { Pipe } from '@angular/core';
1
+ import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
2
+ import { FormErrorTranslator } from '../validator/form-error-adapter.class';
2
3
  import { equals, isNotNil } from '../functions';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "../validator/form-error-adapter.class";
5
5
  export class FormErrorPipe {
6
- service;
7
- _ref;
8
6
  _value = '';
9
7
  _lastForm = null;
10
8
  _lastOptions = null;
11
9
  _onFormStatusChanges;
12
- constructor(service, _ref) {
13
- this.service = service;
14
- this._ref = _ref;
15
- }
10
+ cd = inject(ChangeDetectorRef);
11
+ service = inject(FormErrorTranslator);
12
+ constructor() { }
16
13
  transform(form, opts) {
17
14
  if (!form) {
18
15
  this._dispose();
@@ -46,12 +43,12 @@ export class FormErrorPipe {
46
43
  const newValue = this.service.translateFormErrors(form, opts);
47
44
  if (newValue !== this._value) {
48
45
  this._value = newValue;
49
- this._ref.markForCheck();
46
+ this.cd.markForCheck();
50
47
  }
51
48
  }
52
49
  else if (this._value !== undefined) {
53
50
  this._value = undefined;
54
- this._ref.markForCheck();
51
+ this.cd.markForCheck();
55
52
  }
56
53
  }
57
54
  /**
@@ -61,7 +58,7 @@ export class FormErrorPipe {
61
58
  this._onFormStatusChanges?.unsubscribe();
62
59
  this._onFormStatusChanges = undefined;
63
60
  }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorPipe, deps: [{ token: i1.FormErrorTranslator }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
65
62
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormErrorPipe, name: "formError", pure: false });
66
63
  }
67
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorPipe, decorators: [{
@@ -70,19 +67,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
70
67
  name: 'formError',
71
68
  pure: false,
72
69
  }]
73
- }], ctorParameters: () => [{ type: i1.FormErrorTranslator }, { type: i0.ChangeDetectorRef }] });
70
+ }], ctorParameters: () => [] });
74
71
  /**
75
72
  * Same a FormErrorPipe
76
73
  * @deprecated use `formError` instead
77
74
  */
78
75
  export class FormErrorTranslatePipe extends FormErrorPipe {
79
- constructor(service, _ref) {
80
- super(service, _ref);
81
- }
82
76
  transform(form, opts) {
83
77
  return super.transform(form, opts);
84
78
  }
85
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorTranslatePipe, deps: [{ token: i1.FormErrorTranslator }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorTranslatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe });
86
80
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormErrorTranslatePipe, name: "translateFormError", pure: false });
87
81
  }
88
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorTranslatePipe, decorators: [{
@@ -91,7 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
85
  name: 'translateFormError',
92
86
  pure: false,
93
87
  }]
94
- }], ctorParameters: () => [{ type: i1.FormErrorTranslator }, { type: i0.ChangeDetectorRef }] });
88
+ }] });
95
89
  export class FormGetPipe {
96
90
  transform(form, path) {
97
91
  return form.get(path);
@@ -145,16 +139,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
145
139
  }]
146
140
  }] });
147
141
  export class FormGetValuePipe {
148
- _ref;
149
142
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
150
143
  _value = undefined;
151
144
  _lastControl = null;
152
145
  _lastPath;
153
146
  _onControlValueChanges;
154
147
  _onControlStatusChanges;
155
- constructor(_ref) {
156
- this._ref = _ref;
157
- }
148
+ cd = inject(ChangeDetectorRef);
149
+ constructor() { }
158
150
  transform(form, path, listenStatusChanges = false) {
159
151
  if (!form) {
160
152
  this._dispose();
@@ -178,7 +170,7 @@ export class FormGetValuePipe {
178
170
  this._onControlValueChanges = control.valueChanges.subscribe((value) => {
179
171
  if (value !== this._value) {
180
172
  this._value = value;
181
- this._ref.markForCheck();
173
+ this.cd.markForCheck();
182
174
  }
183
175
  });
184
176
  // subscribe to statusChanges event
@@ -187,7 +179,7 @@ export class FormGetValuePipe {
187
179
  const value = control.value;
188
180
  if (value !== this._value) {
189
181
  this._value = value;
190
- this._ref.markForCheck();
182
+ this.cd.markForCheck();
191
183
  }
192
184
  });
193
185
  }
@@ -206,7 +198,7 @@ export class FormGetValuePipe {
206
198
  this._onControlStatusChanges?.unsubscribe();
207
199
  this._onControlStatusChanges = undefined;
208
200
  }
209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGetValuePipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGetValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
210
202
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormGetValuePipe, name: "formGetValue", pure: false });
211
203
  }
212
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGetValuePipe, decorators: [{
@@ -215,5 +207,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
215
207
  name: 'formGetValue',
216
208
  pure: false,
217
209
  }]
218
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFNaEQsTUFBTSxPQUFPLGFBQWE7SUFPZDtJQUNBO0lBUEYsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLFNBQVMsR0FBNEIsSUFBSSxDQUFDO0lBQzFDLFlBQVksR0FBcUMsSUFBSSxDQUFDO0lBQ3RELG9CQUFvQixDQUEyQjtJQUV2RCxZQUNVLE9BQTRCLEVBQzVCLElBQXVCO1FBRHZCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQW1CO0lBQzlCLENBQUM7SUFFSixTQUFTLENBQUMsSUFBc0IsRUFBRSxJQUFnQztRQUNoRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0Qix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlCLHVEQUF1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Q2xFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzNCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxRQUFRO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUM7SUFDM0MsQ0FBQzt3R0F0RVUsZ0JBQWdCO3NHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRXJyb3JUcmFuc2xhdGVPcHRpb25zLCBGb3JtRXJyb3JUcmFuc2xhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yL2Zvcm0tZXJyb3ItYWRhcHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVxdWFscywgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtRXJyb3InLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG4gIHByaXZhdGUgX2xhc3RGb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2xhc3RPcHRpb25zOiBGb3JtRXJyb3JUcmFuc2xhdGVPcHRpb25zIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uRm9ybVN0YXR1c0NoYW5nZXM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IEZvcm1FcnJvclRyYW5zbGF0b3IsXG4gICAgcHJpdmF0ZSBfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgdHJhbnNmb3JtKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JUcmFuc2xhdGVPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoIWZvcm0pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBhc2sgYW5vdGhlciB0aW1lIGZvciB0aGUgc2FtZSBmb3JtIGFuZCBvcHRzLCByZXR1cm4gdGhlIGxhc3QgdmFsdWVcbiAgICBpZiAoZm9ybSA9PT0gdGhpcy5fbGFzdEZvcm0gJiYgZXF1YWxzKG9wdHMsIHRoaXMuX2xhc3RPcHRpb25zKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8vIHN0b3JlIHRoZSBxdWVyeSwgaW4gY2FzZSBpdCBjaGFuZ2VzXG4gICAgdGhpcy5fbGFzdEZvcm0gPSBmb3JtO1xuXG4gICAgLy8gc3RvcmUgdGhlIHBhcmFtcywgaW4gY2FzZSB0aGV5IGNoYW5nZVxuICAgIHRoaXMuX2xhc3RPcHRpb25zID0gb3B0cztcblxuICAgIC8vIHNldCB0aGUgdmFsdWVcbiAgICB0aGlzLl91cGRhdGVWYWx1ZShmb3JtLCBvcHRzKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIGEgc3Vic2NyaXB0aW9uIHRvIG9uTGFuZ0NoYW5nZSwgY2xlYW4gaXRcbiAgICB0aGlzLl9kaXNwb3NlKCk7XG5cbiAgICAvLyBzdWJzY3JpYmUgdG8gb25UcmFuc2xhdGlvbkNoYW5nZSBldmVudCwgaW4gY2FzZSB0aGUgdHJhbnNsYXRpb25zIGNoYW5nZVxuICAgIGlmICghdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlcykge1xuICAgICAgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlcyA9IGZvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZShmb3JtLCBvcHRzLCBzdGF0dXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWUoZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMsIHN0YXR1cz86IGFueSkge1xuICAgIGlmIChzdGF0dXMgPyBzdGF0dXMgPT09ICdJTlZBTElEJyA6IGZvcm0uaW52YWxpZCkge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNlcnZpY2UudHJhbnNsYXRlRm9ybUVycm9ycyhmb3JtLCBvcHRzKTtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5fdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gdG8gY2hhbmdlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2VzPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uRm9ybVN0YXR1c0NoYW5nZXMgPSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTYW1lIGEgRm9ybUVycm9yUGlwZVxuICogQGRlcHJlY2F0ZWQgdXNlIGBmb3JtRXJyb3JgIGluc3RlYWRcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsYXRlRm9ybUVycm9yJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvclRyYW5zbGF0ZVBpcGUgZXh0ZW5kcyBGb3JtRXJyb3JQaXBlIHtcbiAgY29uc3RydWN0b3Ioc2VydmljZTogRm9ybUVycm9yVHJhbnNsYXRvciwgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihzZXJ2aWNlLCBfcmVmKTtcbiAgfVxuICB0cmFuc2Zvcm0oZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0oZm9ybSwgb3B0cyk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZm9ybUdldCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiBmb3JtLmdldChwYXRoKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0Q29udHJvbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRDb250cm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIChmb3JtICYmIGlzTm90TmlsKHBhdGgpID8gZm9ybS5nZXQocGF0aCkgOiBmb3JtKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZm9ybUdldEFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdldEFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiAoZm9ybSAmJiBpc05vdE5pbChwYXRoKSA/IGZvcm0uZ2V0KHBhdGgpIDogZm9ybSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0R3JvdXAnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2V0R3JvdXBQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIChmb3JtICYmIGlzTm90TmlsKHBhdGgpID8gZm9ybS5nZXQocGF0aCkgOiBmb3JtKSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1HZXRWYWx1ZScsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2V0VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfbGFzdENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0UGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZztcbiAgcHJpdmF0ZSBfb25Db250cm9sVmFsdWVDaGFuZ2VzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX29uQ29udHJvbFN0YXR1c0NoYW5nZXM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHRyYW5zZm9ybTxUID0gYW55Pihmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nLCBsaXN0ZW5TdGF0dXNDaGFuZ2VzID0gZmFsc2UpOiBUIHtcbiAgICBpZiAoIWZvcm0pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgYXNrIGFub3RoZXIgdGltZSBmb3IgdGhlIHNhbWUgZm9ybSBhbmQgb3B0cywgcmV0dXJuIHRoZSBsYXN0IHZhbHVlXG4gICAgaWYgKGZvcm0gPT09IHRoaXMuX2xhc3RDb250cm9sICYmIGVxdWFscyhwYXRoLCB0aGlzLl9sYXN0UGF0aCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBzdG9yZSB0aGUgcXVlcnksIGluIGNhc2UgaXQgY2hhbmdlc1xuICAgIHRoaXMuX2xhc3RDb250cm9sID0gZm9ybTtcblxuICAgIC8vIHN0b3JlIHRoZSBwYXJhbXMsIGluIGNhc2UgdGhleSBjaGFuZ2VcbiAgICB0aGlzLl9sYXN0UGF0aCA9IHBhdGg7XG5cbiAgICAvLyBzZXQgdGhlIHZhbHVlXG4gICAgY29uc3QgY29udHJvbCA9IHBhdGggPyBmb3JtLmdldChwYXRoKSA6IGZvcm07XG4gICAgdGhpcy5fdmFsdWUgPSBjb250cm9sPy52YWx1ZTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIGFscmVhZHkgYSBzdWJzY3JpcHRpb24sIGNsZWFuIGl0XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIC8vIHN1YnNjcmliZSB0byB2YWx1ZUNoYW5nZXMgZXZlbnRcbiAgICAgIHRoaXMuX29uQ29udHJvbFZhbHVlQ2hhbmdlcyA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gc3Vic2NyaWJlIHRvIHN0YXR1c0NoYW5nZXMgZXZlbnRcbiAgICAgIGlmIChsaXN0ZW5TdGF0dXNDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX29uQ29udHJvbFN0YXR1c0NoYW5nZXMgPSBjb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiBhbnkgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHRvIGNoYW5nZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgX2Rpc3Bvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fb25Db250cm9sVmFsdWVDaGFuZ2VzPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uQ29udHJvbFZhbHVlQ2hhbmdlcyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9vbkNvbnRyb2xTdGF0dXNDaGFuZ2VzPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uQ29udHJvbFN0YXR1c0NoYW5nZXMgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
210
+ }], ctorParameters: () => [] });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBNkIsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFNaEQsTUFBTSxPQUFPLGFBQWE7SUFDaEIsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLFNBQVMsR0FBNEIsSUFBSSxDQUFDO0lBQzFDLFlBQVksR0FBcUMsSUFBSSxDQUFDO0lBQ3RELG9CQUFvQixDQUEyQjtJQUVwQyxFQUFFLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRXpELGdCQUFlLENBQUM7SUFFaEIsU0FBUyxDQUFDLElBQXNCLEVBQUUsSUFBZ0M7UUFDaEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELDJFQUEyRTtRQUMzRSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXpCLGdC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SyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxRQUFRO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUM7SUFDM0MsQ0FBQzt3R0F4RVUsZ0JBQWdCO3NHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIGluamVjdCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMsIEZvcm1FcnJvclRyYW5zbGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZXF1YWxzLCBpc05vdE5pbCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1FcnJvcicsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBfbGFzdEZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbGFzdE9wdGlvbnM6IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfb25Gb3JtU3RhdHVzQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KEZvcm1FcnJvclRyYW5zbGF0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICB0cmFuc2Zvcm0oZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghZm9ybSkge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFzayBhbm90aGVyIHRpbWUgZm9yIHRoZSBzYW1lIGZvcm0gYW5kIG9wdHMsIHJldHVybiB0aGUgbGFzdCB2YWx1ZVxuICAgIGlmIChmb3JtID09PSB0aGlzLl9sYXN0Rm9ybSAmJiBlcXVhbHMob3B0cywgdGhpcy5fbGFzdE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gc3RvcmUgdGhlIHF1ZXJ5LCBpbiBjYXNlIGl0IGNoYW5nZXNcbiAgICB0aGlzLl9sYXN0Rm9ybSA9IGZvcm07XG5cbiAgICAvLyBzdG9yZSB0aGUgcGFyYW1zLCBpbiBjYXNlIHRoZXkgY2hhbmdlXG4gICAgdGhpcy5fbGFzdE9wdGlvbnMgPSBvcHRzO1xuXG4gICAgLy8gc2V0IHRoZSB2YWx1ZVxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKGZvcm0sIG9wdHMpO1xuXG4gICAgLy8gaWYgdGhlcmUgaXMgYSBzdWJzY3JpcHRpb24gdG8gb25MYW5nQ2hhbmdlLCBjbGVhbiBpdFxuICAgIHRoaXMuX2Rpc3Bvc2UoKTtcblxuICAgIC8vIHN1YnNjcmliZSB0byBvblRyYW5zbGF0aW9uQ2hhbmdlIGV2ZW50LCBpbiBjYXNlIHRoZSB0cmFuc2xhdGlvbnMgY2hhbmdlXG4gICAgaWYgKCF0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2VzKSB7XG4gICAgICB0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2VzID0gZm9ybS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKGZvcm0sIG9wdHMsIHN0YXR1cyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNwb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZShmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLCBvcHRzPzogRm9ybUVycm9yVHJhbnNsYXRlT3B0aW9ucywgc3RhdHVzPzogYW55KSB7XG4gICAgaWYgKHN0YXR1cyA/IHN0YXR1cyA9PT0gJ0lOVkFMSUQnIDogZm9ybS5pbnZhbGlkKSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuc2VydmljZS50cmFuc2xhdGVGb3JtRXJyb3JzKGZvcm0sIG9wdHMpO1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5fdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiBhbnkgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHRvIGNoYW5nZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgX2Rpc3Bvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2VzID0gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogU2FtZSBhIEZvcm1FcnJvclBpcGVcbiAqIEBkZXByZWNhdGVkIHVzZSBgZm9ybUVycm9yYCBpbnN0ZWFkXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ3RyYW5zbGF0ZUZvcm1FcnJvcicsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlIGV4dGVuZHMgRm9ybUVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0ZU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0oZm9ybSwgb3B0cyk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZm9ybUdldCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiBmb3JtLmdldChwYXRoKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0Q29udHJvbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRDb250cm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIChmb3JtICYmIGlzTm90TmlsKHBhdGgpID8gZm9ybS5nZXQocGF0aCkgOiBmb3JtKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZm9ybUdldEFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdldEFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiAoZm9ybSAmJiBpc05vdE5pbChwYXRoKSA/IGZvcm0uZ2V0KHBhdGgpIDogZm9ybSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0R3JvdXAnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2V0R3JvdXBQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIChmb3JtICYmIGlzTm90TmlsKHBhdGgpID8gZm9ybS5nZXQocGF0aCkgOiBmb3JtKSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1HZXRWYWx1ZScsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2V0VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfbGFzdENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0UGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZztcbiAgcHJpdmF0ZSBfb25Db250cm9sVmFsdWVDaGFuZ2VzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX29uQ29udHJvbFN0YXR1c0NoYW5nZXM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgdHJhbnNmb3JtPFQgPSBhbnk+KGZvcm06IEFic3RyYWN0Q29udHJvbCwgcGF0aD86IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcsIGxpc3RlblN0YXR1c0NoYW5nZXMgPSBmYWxzZSk6IFQge1xuICAgIGlmICghZm9ybSkge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBhc2sgYW5vdGhlciB0aW1lIGZvciB0aGUgc2FtZSBmb3JtIGFuZCBvcHRzLCByZXR1cm4gdGhlIGxhc3QgdmFsdWVcbiAgICBpZiAoZm9ybSA9PT0gdGhpcy5fbGFzdENvbnRyb2wgJiYgZXF1YWxzKHBhdGgsIHRoaXMuX2xhc3RQYXRoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8vIHN0b3JlIHRoZSBxdWVyeSwgaW4gY2FzZSBpdCBjaGFuZ2VzXG4gICAgdGhpcy5fbGFzdENvbnRyb2wgPSBmb3JtO1xuXG4gICAgLy8gc3RvcmUgdGhlIHBhcmFtcywgaW4gY2FzZSB0aGV5IGNoYW5nZVxuICAgIHRoaXMuX2xhc3RQYXRoID0gcGF0aDtcblxuICAgIC8vIHNldCB0aGUgdmFsdWVcbiAgICBjb25zdCBjb250cm9sID0gcGF0aCA/IGZvcm0uZ2V0KHBhdGgpIDogZm9ybTtcbiAgICB0aGlzLl92YWx1ZSA9IGNvbnRyb2w/LnZhbHVlO1xuXG4gICAgLy8gaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHN1YnNjcmlwdGlvbiwgY2xlYW4gaXRcbiAgICB0aGlzLl9kaXNwb3NlKCk7XG5cbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgLy8gc3Vic2NyaWJlIHRvIHZhbHVlQ2hhbmdlcyBldmVudFxuICAgICAgdGhpcy5fb25Db250cm9sVmFsdWVDaGFuZ2VzID0gY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gc3Vic2NyaWJlIHRvIHN0YXR1c0NoYW5nZXMgZXZlbnRcbiAgICAgIGlmIChsaXN0ZW5TdGF0dXNDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX29uQ29udHJvbFN0YXR1c0NoYW5nZXMgPSBjb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNwb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYW55IGV4aXN0aW5nIHN1YnNjcmlwdGlvbiB0byBjaGFuZ2UgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIF9kaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ29udHJvbFZhbHVlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkNvbnRyb2xWYWx1ZUNoYW5nZXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fb25Db250cm9sU3RhdHVzQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkNvbnRyb2xTdGF0dXNDaGFuZ2VzID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,18 +1,16 @@
1
- import { Pipe } from '@angular/core';
1
+ import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
2
2
  import { filter } from 'rxjs/operators';
3
3
  import { equals } from '../functions';
4
4
  import * as i0 from "@angular/core";
5
5
  export class AbstractSelectionModelPipe {
6
- _ref;
7
6
  _result = undefined;
8
7
  _lastSelection = null;
9
8
  _lastValue;
10
9
  _lastOpts;
11
10
  _shouldSubscribeToChanges = true;
12
11
  _onSelectionChanges;
13
- constructor(_ref) {
14
- this._ref = _ref;
15
- }
12
+ cd = inject(ChangeDetectorRef);
13
+ constructor() { }
16
14
  transform(selection, value, opts) {
17
15
  if (!selection) {
18
16
  this._dispose();
@@ -42,11 +40,11 @@ export class AbstractSelectionModelPipe {
42
40
  }
43
41
  _subscribe(selection, value, opts) {
44
42
  // subscribe to valueChanges event
45
- return selection.changed.pipe(filter((selectionChange) => this._filterSelectionChange(selectionChange, value, opts))).subscribe((_) => {
43
+ return selection.changed.pipe(filter((selectionChange) => this._filterSelectionChange(selectionChange, value, opts))).subscribe(() => {
46
44
  const result = this._transform(selection, value);
47
45
  if (this._result !== result) {
48
46
  this._result = result;
49
- this._ref.markForCheck();
47
+ this.cd.markForCheck();
50
48
  }
51
49
  });
52
50
  }
@@ -60,7 +58,7 @@ export class AbstractSelectionModelPipe {
60
58
  _filterSelectionChange(selectionChange, value, opts) {
61
59
  return true;
62
60
  }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSelectionModelPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSelectionModelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
64
62
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AbstractSelectionModelPipe, name: "abstract-selection" });
65
63
  }
66
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSelectionModelPipe, decorators: [{
@@ -68,19 +66,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
68
66
  args: [{
69
67
  name: 'abstract-selection',
70
68
  }]
71
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
69
+ }], ctorParameters: () => [] });
72
70
  export class IsSelectedPipe extends AbstractSelectionModelPipe {
73
- constructor(_ref) {
74
- super(_ref);
71
+ constructor() {
72
+ super();
75
73
  }
76
74
  _transform(selection, value) {
77
75
  return selection.isSelected(value);
78
76
  }
79
77
  _filterSelectionChange(selectionChange, value) {
80
- console.log('TODO isSelectedPipe._filterSelectionChange()', selectionChange, value);
78
+ // console.log('TODO isSelectedPipe._filterSelectionChange()', selectionChange, value);
81
79
  return selectionChange?.added?.includes(value) || selectionChange?.removed?.includes(value) || false;
82
80
  }
83
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSelectedPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
84
82
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: IsSelectedPipe, name: "isSelected", pure: false });
85
83
  }
86
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSelectedPipe, decorators: [{
@@ -89,15 +87,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
89
87
  name: 'isSelected',
90
88
  pure: false,
91
89
  }]
92
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
90
+ }], ctorParameters: () => [] });
93
91
  export class IsNotEmptySelectionPipe extends AbstractSelectionModelPipe {
94
- constructor(_ref) {
95
- super(_ref);
92
+ constructor() {
93
+ super();
96
94
  }
97
95
  _transform(selection) {
98
96
  return selection.hasValue();
99
97
  }
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsNotEmptySelectionPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsNotEmptySelectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
101
99
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: IsNotEmptySelectionPipe, name: "isNotEmptySelection", pure: false });
102
100
  }
103
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsNotEmptySelectionPipe, decorators: [{
@@ -106,15 +104,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
106
104
  name: 'isNotEmptySelection',
107
105
  pure: false,
108
106
  }]
109
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
107
+ }], ctorParameters: () => [] });
110
108
  export class IsEmptySelectionPipe extends AbstractSelectionModelPipe {
111
- constructor(_ref) {
112
- super(_ref);
109
+ constructor() {
110
+ super();
113
111
  }
114
112
  _transform(selection) {
115
113
  return selection.isEmpty();
116
114
  }
117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsEmptySelectionPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsEmptySelectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
118
116
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: IsEmptySelectionPipe, name: "isEmptySelection", pure: false });
119
117
  }
120
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsEmptySelectionPipe, decorators: [{
@@ -123,15 +121,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
123
121
  name: 'isEmptySelection',
124
122
  pure: false,
125
123
  }]
126
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
124
+ }], ctorParameters: () => [] });
127
125
  export class SelectionLengthPipe extends AbstractSelectionModelPipe {
128
- constructor(_ref) {
129
- super(_ref);
126
+ constructor() {
127
+ super();
130
128
  }
131
129
  _transform(selection) {
132
130
  return selection.selected.length;
133
131
  }
134
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionLengthPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionLengthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
135
133
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SelectionLengthPipe, name: "selectionLength", pure: false });
136
134
  }
137
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionLengthPipe, decorators: [{
@@ -140,16 +138,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
140
138
  name: 'selectionLength',
141
139
  pure: false,
142
140
  }]
143
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
141
+ }], ctorParameters: () => [] });
144
142
  export class IsMultipleSelectionPipe extends AbstractSelectionModelPipe {
145
- constructor(_ref) {
146
- super(_ref);
143
+ constructor() {
144
+ super();
147
145
  this._shouldSubscribeToChanges = false;
148
146
  }
149
147
  _transform(selection) {
150
148
  return selection.isMultipleSelection();
151
149
  }
152
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsMultipleSelectionPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsMultipleSelectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
153
151
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: IsMultipleSelectionPipe, name: "isMultipleSelection", pure: false });
154
152
  }
155
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsMultipleSelectionPipe, decorators: [{
@@ -158,16 +156,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
158
156
  name: 'isMultipleSelection',
159
157
  pure: false,
160
158
  }]
161
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
159
+ }], ctorParameters: () => [] });
162
160
  export class IsSingleSelectionPipe extends AbstractSelectionModelPipe {
163
- constructor(_ref) {
164
- super(_ref);
161
+ constructor() {
162
+ super();
165
163
  this._shouldSubscribeToChanges = false;
166
164
  }
167
165
  _transform(selection) {
168
166
  return !selection.isMultipleSelection();
169
167
  }
170
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSingleSelectionPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSingleSelectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
171
169
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: IsSingleSelectionPipe, name: "isSingleSelection", pure: false });
172
170
  }
173
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsSingleSelectionPipe, decorators: [{
@@ -176,5 +174,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
176
174
  name: 'isSingleSelection',
177
175
  pure: false,
178
176
  }]
179
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvc2VsZWN0aW9uLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFLdEMsTUFBTSxPQUFnQiwwQkFBMEI7SUFTZDtJQVJ0QixPQUFPLEdBQU0sU0FBUyxDQUFDO0lBRXpCLGNBQWMsR0FBK0IsSUFBSSxDQUFDO0lBQ2xELFVBQVUsQ0FBSTtJQUNkLFNBQVMsQ0FBSTtJQUNYLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUNuQyxtQkFBbUIsQ0FBMkI7SUFFdEQsWUFBZ0MsSUFBdUI7UUFBdkIsU0FBSSxHQUFKLElBQUksQ0FBbUI7SUFBRyxDQUFDO0lBRTNELFNBQVMsQ0FBQyxTQUE4QixFQUFFLEtBQVMsRUFBRSxJQUFRO1FBQzNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNuRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUVoQyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7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RkFBdkIsdUJBQXVCO2tCQUpuQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxxQkFBcUI7b0JBQzNCLElBQUksRUFBRSxLQUFLO2lCQUNaOztBQWVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSwwQkFBeUM7SUFDbEYsWUFBWSxJQUF1QjtRQUNqQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFDUyxVQUFVLENBQUMsU0FBOEI7UUFDakQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7d0dBUFUscUJBQXFCO3NHQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZXF1YWxzIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYWJzdHJhY3Qtc2VsZWN0aW9uJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8VCwgUiwgTyA9IHZvaWQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIF9yZXN1bHQ6IFIgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBfbGFzdFNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0VmFsdWU6IFQ7XG4gIHByaXZhdGUgX2xhc3RPcHRzOiBPO1xuICBwcm90ZWN0ZWQgX3Nob3VsZFN1YnNjcmliZVRvQ2hhbmdlcyA9IHRydWU7XG4gIHByaXZhdGUgX29uU2VsZWN0aW9uQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiwgdmFsdWU/OiBULCBvcHRzPzogTyk6IFIge1xuICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLl9kaXNwb3NlKCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFzayBhbm90aGVyIHRpbWUgZm9yIHRoZSBzYW1lIGZvcm0gYW5kIG9wdHMsIHJldHVybiB0aGUgbGFzdCB2YWx1ZVxuICAgIGlmIChzZWxlY3Rpb24gPT09IHRoaXMuX2xhc3RTZWxlY3Rpb24gJiYgdmFsdWUgPT09IHRoaXMuX2xhc3RWYWx1ZSAmJiBlcXVhbHMob3B0cywgdGhpcy5fbGFzdE9wdHMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIHN0b3JlIHRoZSBxdWVyeSwgaW4gY2FzZSBpdCBjaGFuZ2VzXG4gICAgdGhpcy5fbGFzdFNlbGVjdGlvbiA9IHNlbGVjdGlvbjtcblxuICAgIC8vIHN0b3JlIHRoZSBwYXJhbXMsIGluIGNhc2UgdGhleSBjaGFuZ2VcbiAgICB0aGlzLl9sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9sYXN0T3B0cyA9IG9wdHM7XG5cbiAgICAvLyBzZXQgdGhlIHJlc3VsdFxuICAgIHRoaXMuX3Jlc3VsdCA9IHRoaXMuX3RyYW5zZm9ybShzZWxlY3Rpb24sIHZhbHVlLCBvcHRzKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIGFscmVhZHkgYSBzdWJzY3JpcHRpb24sIGNsZWFuIGl0XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuXG4gICAgLy8gc3Vic2NyaWJlIHRvIHZhbHVlQ2hhbmdlcyBldmVudFxuICAgIGlmICh0aGlzLl9zaG91bGRTdWJzY3JpYmVUb0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlcyA9IHRoaXMuX3N1YnNjcmliZShzZWxlY3Rpb24sIHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxUPiwgdmFsdWU6IFQsIG9wdHM/OiBPKTogU3Vic2NyaXB0aW9uIHtcbiAgICAvLyBzdWJzY3JpYmUgdG8gdmFsdWVDaGFuZ2VzIGV2ZW50XG4gICAgcmV0dXJuIHNlbGVjdGlvbi5jaGFuZ2VkLnBpcGUoZmlsdGVyKChzZWxlY3Rpb25DaGFuZ2UpID0+IHRoaXMuX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2UsIHZhbHVlLCBvcHRzKSkpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fdHJhbnNmb3JtKHNlbGVjdGlvbiwgdmFsdWUpO1xuICAgICAgaWYgKHRoaXMuX3Jlc3VsdCAhPT0gcmVzdWx0KSB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gdG8gY2hhbmdlIGV2ZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIF9kaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblNlbGVjdGlvbkNoYW5nZXMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3RyYW5zZm9ybShzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFQ+LCB2YWx1ZT86IFQsIG9wdHM/OiBPKTogUjtcblxuICBwcm90ZWN0ZWQgX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxhbnk+LCB2YWx1ZT86IFQsIG9wdHM/OiBPKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNTZWxlY3RlZCcsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBJc1NlbGVjdGVkUGlwZSBleHRlbmRzIEFic3RyYWN0U2VsZWN0aW9uTW9kZWxQaXBlPGFueSwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9yZWYpO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiwgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNTZWxlY3RlZCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxhbnk+LCB2YWx1ZTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ1RPRE8gaXNTZWxlY3RlZFBpcGUuX2ZpbHRlclNlbGVjdGlvbkNoYW5nZSgpJywgc2VsZWN0aW9uQ2hhbmdlLCB2YWx1ZSk7XG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZT8uYWRkZWQ/LmluY2x1ZGVzKHZhbHVlKSB8fCBzZWxlY3Rpb25DaGFuZ2U/LnJlbW92ZWQ/LmluY2x1ZGVzKHZhbHVlKSB8fCBmYWxzZTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc05vdEVtcHR5U2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9yZWYpO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaGFzVmFsdWUoKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0VtcHR5U2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzRW1wdHlTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4ge1xuICBjb25zdHJ1Y3RvcihfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9yZWYpO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNFbXB0eSgpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NlbGVjdGlvbkxlbmd0aCcsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25MZW5ndGhQaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgbnVtYmVyPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKF9yZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoX3JlZik7XG4gIH1cbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm0oc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc011bHRpcGxlU2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzTXVsdGlwbGVTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9yZWYpO1xuICAgIHRoaXMuX3Nob3VsZFN1YnNjcmliZVRvQ2hhbmdlcyA9IGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNNdWx0aXBsZVNlbGVjdGlvbigpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzU2luZ2xlU2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzU2luZ2xlU2VsZWN0aW9uUGlwZSBleHRlbmRzIEFic3RyYWN0U2VsZWN0aW9uTW9kZWxQaXBlPHZvaWQsIGJvb2xlYW4+IHtcbiAgY29uc3RydWN0b3IoX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihfcmVmKTtcbiAgICB0aGlzLl9zaG91bGRTdWJzY3JpYmVUb0NoYW5nZXMgPSBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgX3RyYW5zZm9ybShzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXNlbGVjdGlvbi5pc011bHRpcGxlU2VsZWN0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
177
+ }], ctorParameters: () => [] });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvc2VsZWN0aW9uLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFLdEMsTUFBTSxPQUFnQiwwQkFBMEI7SUFDcEMsT0FBTyxHQUFNLFNBQVMsQ0FBQztJQUV6QixjQUFjLEdBQStCLElBQUksQ0FBQztJQUNsRCxVQUFVLENBQUk7SUFDZCxTQUFTLENBQUk7SUFDWCx5QkFBeUIsR0FBRyxJQUFJLENBQUM7SUFDbkMsbUJBQW1CLENBQTJCO0lBQ25DLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVsRCxnQkFBeUIsQ0FBQztJQUUxQixTQUFTLENBQUMsU0FBOEIsRUFBRSxLQUFTLEVBQUUsSUFBUTtRQUMzRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELDJFQUEyRTtRQUMzRSxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsY0FBYyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFFaEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2RCwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRVMsVUFBVSxDQUFDLFNBQTRCLEVBQUUsS0FBUSxFQUFFLElBQVE7UUFDbkUsa0NBQWtDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuSSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVE7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUlTLHNCQUFzQixDQUFDLGVBQXFDLEVBQUUsS0FBUyxFQUFFLElBQVE7UUFDekYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQXZFbUIsMEJBQTBCO3NHQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSC9DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtpQkFDM0I7O0FBK0VELE1BQU0sT0FBTyxjQUFlLFNBQVEsMEJBQXdDO0lBQzFFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBQ1MsVUFBVSxDQUFDLFNBQThCLEVBQUUsS0FBVTtRQUM3RCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLHNCQUFzQixDQUFDLGVBQXFDLEVBQUUsS0FBVTtRQUNoRix1RkFBdUY7UUFDdkYsT0FBTyxlQUFlLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDdkcsQ0FBQzt3R0FYVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSxLQUFLO2lCQUNaOztBQW1CRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMEJBQXlDO0lBQ3BGO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBQ1MsVUFBVSxDQUFDLFNBQThCO1FBQ2pELE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7d0dBTlUsdUJBQXVCO3NHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7O0FBY0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUF5QztJQUNqRjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLFVBQVUsQ0FBQyxTQUE4QjtRQUNqRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO3dHQVBVLG9CQUFvQjtzR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLElBQUksRUFBRSxLQUFLO2lCQUNaOztBQWVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwwQkFBd0M7SUFDL0U7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFDUyxVQUFVLENBQUMsU0FBOEI7UUFDakQsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO3dHQU5VLG1CQUFtQjtzR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLElBQUksRUFBRSxLQUFLO2lCQUNaOztBQWNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBeUM7SUFDcEY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUNTLFVBQVUsQ0FBQyxTQUE4QjtRQUNqRCxPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7d0dBUFUsdUJBQXVCO3NHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7O0FBZUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLDBCQUF5QztJQUNsRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBQ1MsVUFBVSxDQUFDLFNBQThCO1FBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMxQyxDQUFDO3dHQVBVLHFCQUFxQjtzR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIGluamVjdCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZXF1YWxzIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYWJzdHJhY3Qtc2VsZWN0aW9uJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8VCwgUiwgTyA9IHZvaWQ+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIF9yZXN1bHQ6IFIgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBfbGFzdFNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0VmFsdWU6IFQ7XG4gIHByaXZhdGUgX2xhc3RPcHRzOiBPO1xuICBwcm90ZWN0ZWQgX3Nob3VsZFN1YnNjcmliZVRvQ2hhbmdlcyA9IHRydWU7XG4gIHByaXZhdGUgX29uU2VsZWN0aW9uQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiwgdmFsdWU/OiBULCBvcHRzPzogTyk6IFIge1xuICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLl9kaXNwb3NlKCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFzayBhbm90aGVyIHRpbWUgZm9yIHRoZSBzYW1lIGZvcm0gYW5kIG9wdHMsIHJldHVybiB0aGUgbGFzdCB2YWx1ZVxuICAgIGlmIChzZWxlY3Rpb24gPT09IHRoaXMuX2xhc3RTZWxlY3Rpb24gJiYgdmFsdWUgPT09IHRoaXMuX2xhc3RWYWx1ZSAmJiBlcXVhbHMob3B0cywgdGhpcy5fbGFzdE9wdHMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIHN0b3JlIHRoZSBxdWVyeSwgaW4gY2FzZSBpdCBjaGFuZ2VzXG4gICAgdGhpcy5fbGFzdFNlbGVjdGlvbiA9IHNlbGVjdGlvbjtcblxuICAgIC8vIHN0b3JlIHRoZSBwYXJhbXMsIGluIGNhc2UgdGhleSBjaGFuZ2VcbiAgICB0aGlzLl9sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9sYXN0T3B0cyA9IG9wdHM7XG5cbiAgICAvLyBzZXQgdGhlIHJlc3VsdFxuICAgIHRoaXMuX3Jlc3VsdCA9IHRoaXMuX3RyYW5zZm9ybShzZWxlY3Rpb24sIHZhbHVlLCBvcHRzKTtcblxuICAgIC8vIGlmIHRoZXJlIGlzIGFscmVhZHkgYSBzdWJzY3JpcHRpb24sIGNsZWFuIGl0XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuXG4gICAgLy8gc3Vic2NyaWJlIHRvIHZhbHVlQ2hhbmdlcyBldmVudFxuICAgIGlmICh0aGlzLl9zaG91bGRTdWJzY3JpYmVUb0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlcyA9IHRoaXMuX3N1YnNjcmliZShzZWxlY3Rpb24sIHZhbHVlLCBvcHRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxUPiwgdmFsdWU6IFQsIG9wdHM/OiBPKTogU3Vic2NyaXB0aW9uIHtcbiAgICAvLyBzdWJzY3JpYmUgdG8gdmFsdWVDaGFuZ2VzIGV2ZW50XG4gICAgcmV0dXJuIHNlbGVjdGlvbi5jaGFuZ2VkLnBpcGUoZmlsdGVyKChzZWxlY3Rpb25DaGFuZ2UpID0+IHRoaXMuX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2UsIHZhbHVlLCBvcHRzKSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl90cmFuc2Zvcm0oc2VsZWN0aW9uLCB2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5fcmVzdWx0ICE9PSByZXN1bHQpIHtcbiAgICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gdG8gY2hhbmdlIGV2ZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIF9kaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblNlbGVjdGlvbkNoYW5nZXMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3RyYW5zZm9ybShzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFQ+LCB2YWx1ZT86IFQsIG9wdHM/OiBPKTogUjtcblxuICBwcm90ZWN0ZWQgX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxhbnk+LCB2YWx1ZT86IFQsIG9wdHM/OiBPKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNTZWxlY3RlZCcsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBJc1NlbGVjdGVkUGlwZSBleHRlbmRzIEFic3RyYWN0U2VsZWN0aW9uTW9kZWxQaXBlPGFueSwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PiwgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNTZWxlY3RlZCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2ZpbHRlclNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxhbnk+LCB2YWx1ZTogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ1RPRE8gaXNTZWxlY3RlZFBpcGUuX2ZpbHRlclNlbGVjdGlvbkNoYW5nZSgpJywgc2VsZWN0aW9uQ2hhbmdlLCB2YWx1ZSk7XG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZT8uYWRkZWQ/LmluY2x1ZGVzKHZhbHVlKSB8fCBzZWxlY3Rpb25DaGFuZ2U/LnJlbW92ZWQ/LmluY2x1ZGVzKHZhbHVlKSB8fCBmYWxzZTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc05vdEVtcHR5U2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaGFzVmFsdWUoKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0VtcHR5U2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzRW1wdHlTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNFbXB0eSgpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NlbGVjdGlvbkxlbmd0aCcsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25MZW5ndGhQaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgbnVtYmVyPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm0oc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc011bHRpcGxlU2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzTXVsdGlwbGVTZWxlY3Rpb25QaXBlIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Rpb25Nb2RlbFBpcGU8dm9pZCwgYm9vbGVhbj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3Nob3VsZFN1YnNjcmliZVRvQ2hhbmdlcyA9IGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNmb3JtKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZWxlY3Rpb24uaXNNdWx0aXBsZVNlbGVjdGlvbigpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzU2luZ2xlU2VsZWN0aW9uJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIElzU2luZ2xlU2VsZWN0aW9uUGlwZSBleHRlbmRzIEFic3RyYWN0U2VsZWN0aW9uTW9kZWxQaXBlPHZvaWQsIGJvb2xlYW4+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fc2hvdWxkU3Vic2NyaWJlVG9DaGFuZ2VzID0gZmFsc2U7XG4gIH1cbiAgcHJvdGVjdGVkIF90cmFuc2Zvcm0oc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFzZWxlY3Rpb24uaXNNdWx0aXBsZVNlbGVjdGlvbigpO1xuICB9XG59XG4iXX0=