@colijnit/corecomponents_v12 260.1.4 → 260.1.5

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.
@@ -23,6 +23,7 @@ export class ListOfValuesComponent extends BaseInputComponent {
23
23
  this.elementRef = elementRef;
24
24
  this.icons = CoreComponentsIcon;
25
25
  this.multiselect = false;
26
+ this.showToggleAll = false;
26
27
  this.largeCollection = false;
27
28
  this.displayField = 'description';
28
29
  this.searchDisabled = false;
@@ -151,6 +152,7 @@ export class ListOfValuesComponent extends BaseInputComponent {
151
152
  searchPlaceholder: this.searchPlaceholder,
152
153
  displayField: this.displayField,
153
154
  multiselect: this.multiselect,
155
+ showToggleAll: this.showToggleAll,
154
156
  model: this.model,
155
157
  collection: this.collection,
156
158
  optionIcon: this.optionIcon,
@@ -308,6 +310,7 @@ ListOfValuesComponent.propDecorators = {
308
310
  model: [{ type: Input }],
309
311
  parentForOverlay: [{ type: ViewChild, args: ['parentForOverlay', { read: ElementRef },] }],
310
312
  multiselect: [{ type: HostBinding, args: ['class.custom-height',] }, { type: HostBinding, args: ['class.multi-select',] }, { type: Input }],
313
+ showToggleAll: [{ type: Input }],
311
314
  largeCollection: [{ type: Input }],
312
315
  displayField: [{ type: Input }],
313
316
  optionIcon: [{ type: Input }],
@@ -321,4 +324,4 @@ ListOfValuesComponent.propDecorators = {
321
324
  showChips: [{ type: Input }],
322
325
  showClass: [{ type: HostBinding, args: ['class.co-list-of-values',] }]
323
326
  };
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBRW5DLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQWtFNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUF1QjtJQStFaEUsWUFDcUIsYUFBNEIsRUFDeEMsZ0JBQWtDLEVBQy9CLGNBQWlDLEVBQ2pDLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNs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U0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2NvcmUtY29tcG9uZW50cy1pY29uLmVudW0nO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzUG9wdXBDb21wb25lbnR9IGZyb20gJy4vbGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtLZXlib2FyZEtleX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWtleS5lbnVtJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tbGlzdC1vZi12YWx1ZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbGFyZ2VDb2xsZWN0aW9uXCJcclxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1NlbGVjdE9wZW5cIlxyXG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsb3YtcG9wdXBcIlxyXG4gICAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuby1mb2N1cy1saW5lXCJcclxuICAgICAgICAgICAgICBvdmVybGF5UGFyZW50XHJcbiAgICAgICAgICAgICAgI3BhcmVudEZvck92ZXJsYXk9XCJvdmVybGF5UGFyZW50XCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwibXVsdGlzZWxlY3QgPyBzZWxlY3RlZE1vZGVscyA6IHNlbGVjdGVkTW9kZWxcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW215Rm9ybUlucHV0SW5zdGFuY2VdPVwidGhpc1wiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2xlZnRJY29uRGF0YV09XCIgbW9kZWwgJiYgbW9kZWxbb3B0aW9uSWNvbl0gPyBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24obW9kZWxbb3B0aW9uSWNvbl0pIDogbGVmdEljb25EYXRhXCJcclxuICAgICAgICAgICAgICBbcmlnaHRJY29uXT1cImlzU2VsZWN0T3BlbiA/IGljb25zLkNoZXZyb25VcFJlZ3VsYXIgOiBpY29ucy5DaGV2cm9uRG93blJlZ3VsYXJcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3VzZUNvbnRlbnRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21IZWlnaHRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtrZWVwRm9jdXNzZWRdPVwia2VlcEZvY3Vzc2VkXCJcclxuICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlSW5wdXRNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBvcHVwKClcIlxyXG4gICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVTZWxlY3QoKVwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlSW5wdXRLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChjbGVhckljb25DbGljayk9XCJjbGVhck1vZGVsKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cImNoZWNrTW9kZWwoKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpc2VsZWN0ICYmIHNob3dDaGlwc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1jaGlwcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBjaGlwIG9mIG1vZGVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBzLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNoaXBbZGlzcGxheUZpZWxkXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVtb3ZlLWNoaXAtaWNvblwiIFtpY29uXT1cImljb25zLkNyb3NzU2tpbm55XCIgKGNsaWNrKT1cInJlbW92ZU9wdGlvbkZyb21Nb2RlbChjaGlwKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAqbmdJZj1cImxhcmdlQ29sbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlclRleHRcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImZpbHRlci1sb2FkZXJcIj48c3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW25nTW9kZWxdPVwibW9kZWxcIj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RPZlZhbHVlc0NvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RPZlZhbHVlc0NvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBzdXBlci5tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHN1cGVyLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFyZW50Rm9yT3ZlcmxheScsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgcGFyZW50Rm9yT3ZlcmxheTogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXN0b20taGVpZ2h0JylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm11bHRpLXNlbGVjdCcpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbXVsdGlzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFyZ2VDb2xsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJ2Rlc2NyaXB0aW9uJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3B0aW9uSWNvbjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29sbGVjdGlvbih2YWx1ZTogYW55W10pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSB2YWx1ZSB8fCBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sbGVjdGlvbigpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbGxlY3Rpb25Mb2FkRm46IEZ1bmN0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsZWZ0SWNvbkRhdGE6IFNhZmVIdG1sIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXN0b21Dc3NDbGFzczogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWFyY2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q2hpcHM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWxpc3Qtb2YtdmFsdWVzJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxlY3RPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHN0YXRlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgcHVibGljIGZpbHRlclRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE1vZGVsOiBzdHJpbmc7XHJcbiAgcHVibGljIHNlbGVjdGVkTW9kZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBmaWx0ZXJlZENvbGxlY3Rpb246IGFueVtdID0gW107XHJcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9jb2xsZWN0aW9uOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVib3VuY2VUaW1lb3V0OiBhbnk7XHJcblxyXG4gIHByaXZhdGUgX2xvdlBvcHVwQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXI/OiBGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbmdab25lV3JhcHBlcj86IE5nWm9uZVdyYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY/OiBFbGVtZW50UmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoY2hhbmdlRGV0ZWN0b3IsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgb3ZlcmxheVNlcnZpY2UsIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIsIG5nWm9uZVdyYXBwZXIsIGVsZW1lbnRSZWYpO1xyXG4gICAgc3VwZXIuX21hcmtBc09uUHVzaCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUlucHV0TW9kZWxDaGFuZ2UobW9kZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlYXJjaFRlcm0gPSBtb2RlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZE1vZGVsICYmIG1vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuUG9wdXAoKTtcclxuICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWFyY2hUZXJtID0gbW9kZWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTW9kZWxDaGFuZ2UodGV4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5kZWJvdW5jZVRpbWVvdXQpO1xyXG4gICAgdGhpcy5kZWJvdW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcih0ZXh0KTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYXBwbHlGaWx0ZXIodGV4dDogc3RyaW5nKTogUHJvbWlzZTxbXT4ge1xyXG4gICAgaWYgKHRleHQ/Lmxlbmd0aCA8IDMpIHtcclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDMwMCkpO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMzAwKSk7XHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbkxvYWRGbih0ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbHRlclRleHQgPSB0ZXh0O1xyXG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbj8uZmlsdGVyKCgpID0+IHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KTtcclxuICAgICh0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID4gMCAmJiB0aGlzLmZpbHRlclRleHQ/Lmxlbmd0aCA+IDIpID8gdGhpcy5vcGVuUG9wdXAoKSA6IHRoaXMuY2xvc2VQb3B1cCgpO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUlucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGlmIChldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRLZXkuRG93biAmJiAhdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLm9wZW5Qb3B1cCgpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRG93bjpcclxuICAgICAgICAgICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0TmV4dE9wdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBjYXNlIEtleWJvYXJkS2V5LlVwOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3ROZXh0T3B0aW9uKHRydWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBjYXNlIEtleWJvYXJkS2V5LkVudGVyOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RPcHRpb25BbmRDbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuVGFiOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RPcHRpb25BbmRDbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJNb2RlbChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNb2RlbCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVNlbGVjdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gIXRoaXMuaXNTZWxlY3RPcGVuO1xyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RPcGVuKSB7XHJcbiAgICAgIHRoaXMub3BlblBvcHVwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGUgPSAodGhpcy5zdGF0ZSA9PT0gJ2RlZmF1bHQnID8gJ3JvdGF0ZWQnIDogJ2RlZmF1bHQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuUG9wdXAoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2VsZWN0T3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhcmVudEZvck92ZXJsYXk6IHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgY3VzdG9tQ3NzQ2xhc3M6IHRoaXMuY3VzdG9tQ3NzQ2xhc3MsXHJcbiAgICAgIHNlYXJjaERpc2FibGVkOiB0aGlzLnNlYXJjaERpc2FibGVkLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogdGhpcy5zZWFyY2hQbGFjZWhvbGRlcixcclxuICAgICAgZGlzcGxheUZpZWxkOiB0aGlzLmRpc3BsYXlGaWVsZCxcclxuICAgICAgbXVsdGlzZWxlY3Q6IHRoaXMubXVsdGlzZWxlY3QsXHJcbiAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxyXG4gICAgICBjb2xsZWN0aW9uOiB0aGlzLmNvbGxlY3Rpb24sXHJcbiAgICAgIG9wdGlvbkljb246IHRoaXMub3B0aW9uSWNvbixcclxuICAgIH0sIHtcclxuICAgICAgbW9kZWxDaGFuZ2U6ICh2YWx1ZSkgPT4gdGhpcy5vcHRpb25DaG9zZW4odmFsdWUpLFxyXG4gICAgICBjbG9zZVBvcHVwOiAoKSA9PiB0aGlzLmNsb3NlUG9wdXAoKSxcclxuICAgICAga2V5RG93bjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZUlucHV0S2V5RG93bihldmVudClcclxuICAgIH0sXHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZlxyXG4gICAgKTtcclxuICAgIHRoaXMua2VlcEZvY3Vzc2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVPcHRpb25Gcm9tTW9kZWwoY2hpcDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xyXG4gICAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMubW9kZWwuZmluZEluZGV4KG0gPT4gbSA9PT0gY2hpcCk7XHJcbiAgICAgIHRoaXMubW9kZWwuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcHRpb25DaG9zZW4ob3B0aW9uOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzID0gb3B0aW9uLm1hcChvID0+IG9bdGhpcy5kaXNwbGF5RmllbGRdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWwgPSBvcHRpb25bdGhpcy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgIGlmICh0aGlzLmxhcmdlQ29sbGVjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJUZXh0ID0gb3B0aW9uW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0TW9kZWwob3B0aW9uKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmtlZXBGb2N1c3NlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NlbGVjdE9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmKTtcclxuICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tNb2RlbCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCAmJiB0aGlzLnNlbGVjdGVkTW9kZWwgJiYgdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IG1vZGVsOiBhbnkgPSB0aGlzLmNvbGxlY3Rpb24uZmluZChjID0+IGNbdGhpcy5kaXNwbGF5RmllbGRdID09PSB0aGlzLnNlbGVjdGVkTW9kZWwpO1xyXG4gICAgICBpZiAobW9kZWwpIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRTZWxlY3RlZE1vZGVsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgaWYgKHRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscy5wdXNoKG1bdGhpcy5kaXNwbGF5RmllbGRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxzLmxlbmd0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gdGhpcy5tb2RlbFt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgaWYgKHRoaXMubGFyZ2VDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlclRleHQgPSB0aGlzLm1vZGVsW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBRW5DLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQWtFNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUF1QjtJQWtGaEUsWUFDcUIsYUFBNEIsRUFDeEMsZ0JBQWtDLEVBQy9CLGNBQWlDLEVBQ2pDLGNBQThCLEVBQzlCLHdCQUFrRCxFQUNs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QUs7Z0NBR0wsS0FBSztvQkFHTCxLQUFLOzZCQUdMLEtBQUs7NkJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLFdBQVcsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCYXNlSW5wdXRDb21wb25lbnR9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2NvcmUtY29tcG9uZW50cy1pY29uLmVudW0nO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzUG9wdXBDb21wb25lbnR9IGZyb20gJy4vbGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtLZXlib2FyZEtleX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWtleS5lbnVtJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tbGlzdC1vZi12YWx1ZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbGFyZ2VDb2xsZWN0aW9uXCJcclxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1NlbGVjdE9wZW5cIlxyXG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsb3YtcG9wdXBcIlxyXG4gICAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuby1mb2N1cy1saW5lXCJcclxuICAgICAgICAgICAgICBvdmVybGF5UGFyZW50XHJcbiAgICAgICAgICAgICAgI3BhcmVudEZvck92ZXJsYXk9XCJvdmVybGF5UGFyZW50XCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwibXVsdGlzZWxlY3QgPyBzZWxlY3RlZE1vZGVscyA6IHNlbGVjdGVkTW9kZWxcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW215Rm9ybUlucHV0SW5zdGFuY2VdPVwidGhpc1wiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2xlZnRJY29uRGF0YV09XCIgbW9kZWwgJiYgbW9kZWxbb3B0aW9uSWNvbl0gPyBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24obW9kZWxbb3B0aW9uSWNvbl0pIDogbGVmdEljb25EYXRhXCJcclxuICAgICAgICAgICAgICBbcmlnaHRJY29uXT1cImlzU2VsZWN0T3BlbiA/IGljb25zLkNoZXZyb25VcFJlZ3VsYXIgOiBpY29ucy5DaGV2cm9uRG93blJlZ3VsYXJcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3VzZUNvbnRlbnRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21IZWlnaHRdPVwibXVsdGlzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtrZWVwRm9jdXNzZWRdPVwia2VlcEZvY3Vzc2VkXCJcclxuICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlSW5wdXRNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblBvcHVwKClcIlxyXG4gICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVTZWxlY3QoKVwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlSW5wdXRLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChjbGVhckljb25DbGljayk9XCJjbGVhck1vZGVsKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cImNoZWNrTW9kZWwoKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpc2VsZWN0ICYmIHNob3dDaGlwc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1jaGlwcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBjaGlwIG9mIG1vZGVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBzLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNoaXBbZGlzcGxheUZpZWxkXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVtb3ZlLWNoaXAtaWNvblwiIFtpY29uXT1cImljb25zLkNyb3NzU2tpbm55XCIgKGNsaWNrKT1cInJlbW92ZU9wdGlvbkZyb21Nb2RlbChjaGlwKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAqbmdJZj1cImxhcmdlQ29sbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlclRleHRcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImZpbHRlci1sb2FkZXJcIj48c3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW25nTW9kZWxdPVwibW9kZWxcIj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpc3RPZlZhbHVlc0NvbXBvbmVudClcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RPZlZhbHVlc0NvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBzdXBlci5tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHN1cGVyLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFyZW50Rm9yT3ZlcmxheScsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgcGFyZW50Rm9yT3ZlcmxheTogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXN0b20taGVpZ2h0JylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm11bHRpLXNlbGVjdCcpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbXVsdGlzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1RvZ2dsZUFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYXJnZUNvbGxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzcGxheUZpZWxkOiBzdHJpbmcgPSAnZGVzY3JpcHRpb24nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcHRpb25JY29uOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb2xsZWN0aW9uKHZhbHVlOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fY29sbGVjdGlvbiA9IHZhbHVlIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkxvYWRGbjogRnVuY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxlZnRJY29uRGF0YTogU2FmZUh0bWwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUNzc0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dDaGlwczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tbGlzdC1vZi12YWx1ZXMnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlbGVjdE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc3RhdGU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuICBwdWJsaWMgZmlsdGVyVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHNlbGVjdGVkTW9kZWw6IHN0cmluZztcclxuICBwdWJsaWMgc2VsZWN0ZWRNb2RlbHM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGZpbHRlcmVkQ29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IGFueVtdID0gW107XHJcbiAgcHJpdmF0ZSBkZWJvdW5jZVRpbWVvdXQ6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfbG92UG9wdXBDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybUNvbXBvbmVudDogRm9ybUNvbXBvbmVudCxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcj86IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuZ1pvbmVXcmFwcGVyPzogTmdab25lV3JhcHBlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBvdmVybGF5U2VydmljZSwgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lciwgbmdab25lV3JhcHBlciwgZWxlbWVudFJlZik7XHJcbiAgICBzdXBlci5fbWFya0FzT25QdXNoKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zZXRTZWxlY3RlZE1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSW5wdXRNb2RlbENoYW5nZShtb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fbG92UG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VhcmNoVGVybSA9IG1vZGVsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTW9kZWwgJiYgbW9kZWwpIHtcclxuICAgICAgICB0aGlzLm9wZW5Qb3B1cCgpO1xyXG4gICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlYXJjaFRlcm0gPSBtb2RlbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gbW9kZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Nb2RlbENoYW5nZSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLmRlYm91bmNlVGltZW91dCk7XHJcbiAgICB0aGlzLmRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyKHRleHQpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhcHBseUZpbHRlcih0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPFtdPiB7XHJcbiAgICBpZiAodGV4dD8ubGVuZ3RoIDwgMykge1xyXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMzAwKSk7XHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAzMDApKTtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uTG9hZEZuKHRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IHRleHQ7XHJcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uPy5maWx0ZXIoKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgKHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVyVGV4dD8ubGVuZ3RoID4gMikgPyB0aGlzLm9wZW5Qb3B1cCgpIDogdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSW5wdXRLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5jb2RlID09PSBLZXlib2FyZEtleS5Eb3duICYmICF0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHRoaXMub3BlblBvcHVwKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICAgICAgY2FzZSBLZXlib2FyZEtleS5Eb3duOlxyXG4gICAgICAgICAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3ROZXh0T3B0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuVXA6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE5leHRPcHRpb24odHJ1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIGNhc2UgS2V5Ym9hcmRLZXkuRW50ZXI6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE9wdGlvbkFuZENsb3NlUG9wdXAoKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgY2FzZSBLZXlib2FyZEtleS5UYWI6XHJcbiAgICAgICAgICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdE9wdGlvbkFuZENsb3NlUG9wdXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhck1vZGVsKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1vZGVsKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc1NlbGVjdE9wZW4gPSAhdGhpcy5pc1NlbGVjdE9wZW47XHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdE9wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuUG9wdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0ZSA9ICh0aGlzLnN0YXRlID09PSAnZGVmYXVsdCcgPyAncm90YXRlZCcgOiAnZGVmYXVsdCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5Qb3B1cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gdHJ1ZTtcclxuICAgIHRoaXMuX2xvdlBvcHVwQ29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGVDb21wb25lbnQoTGlzdE9mVmFsdWVzUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICBjdXN0b21Dc3NDbGFzczogdGhpcy5jdXN0b21Dc3NDbGFzcyxcclxuICAgICAgc2VhcmNoRGlzYWJsZWQ6IHRoaXMuc2VhcmNoRGlzYWJsZWQsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyLFxyXG4gICAgICBkaXNwbGF5RmllbGQ6IHRoaXMuZGlzcGxheUZpZWxkLFxyXG4gICAgICBtdWx0aXNlbGVjdDogdGhpcy5tdWx0aXNlbGVjdCxcclxuICAgICAgc2hvd1RvZ2dsZUFsbDogdGhpcy5zaG93VG9nZ2xlQWxsLFxyXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcclxuICAgICAgY29sbGVjdGlvbjogdGhpcy5jb2xsZWN0aW9uLFxyXG4gICAgICBvcHRpb25JY29uOiB0aGlzLm9wdGlvbkljb24sXHJcbiAgICB9LCB7XHJcbiAgICAgIG1vZGVsQ2hhbmdlOiAodmFsdWUpID0+IHRoaXMub3B0aW9uQ2hvc2VuKHZhbHVlKSxcclxuICAgICAgY2xvc2VQb3B1cDogKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCksXHJcbiAgICAgIGtleURvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVJbnB1dEtleURvd24oZXZlbnQpXHJcbiAgICB9LFxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWZcclxuICAgICk7XHJcbiAgICB0aGlzLmtlZXBGb2N1c3NlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlT3B0aW9uRnJvbU1vZGVsKGNoaXA6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgY29uc3QgaWR4OiBudW1iZXIgPSB0aGlzLm1vZGVsLmZpbmRJbmRleChtID0+IG0gPT09IGNoaXApO1xyXG4gICAgICB0aGlzLm1vZGVsLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3B0aW9uQ2hvc2VuKG9wdGlvbjogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscyA9IG9wdGlvbi5tYXAobyA9PiBvW3RoaXMuZGlzcGxheUZpZWxkXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsID0gb3B0aW9uW3RoaXMuZGlzcGxheUZpZWxkXTtcclxuICAgICAgICBpZiAodGhpcy5sYXJnZUNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyVGV4dCA9IG9wdGlvblt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE1vZGVsKG9wdGlvbik7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5rZWVwRm9jdXNzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudCh0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZik7XHJcbiAgICB0aGlzLl9sb3ZQb3B1cENvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrTW9kZWwoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlzZWxlY3QgJiYgdGhpcy5zZWxlY3RlZE1vZGVsICYmIHRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBtb2RlbDogYW55ID0gdGhpcy5jb2xsZWN0aW9uLmZpbmQoYyA9PiBjW3RoaXMuZGlzcGxheUZpZWxkXSA9PT0gdGhpcy5zZWxlY3RlZE1vZGVsKTtcclxuICAgICAgaWYgKG1vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0U2VsZWN0ZWRNb2RlbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscy5sZW5ndGggPSAwO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZm9yRWFjaChtID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbHMucHVzaChtW3RoaXMuZGlzcGxheUZpZWxkXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGVscy5sZW5ndGggPSAwO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9IHRoaXMubW9kZWxbdGhpcy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgIGlmICh0aGlzLmxhcmdlQ29sbGVjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJUZXh0ID0gdGhpcy5tb2RlbFt0aGlzLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbCA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -10,6 +10,7 @@ import { ListOfValuesPopupComponent } from "./list-of-values-popup.component";
10
10
  import { ListOfValuesMultiselectPopupComponent } from "./list-of-values-multiselect-popup.component";
11
11
  import { IconModule } from "../icon/icon.module";
12
12
  import { InputSearchModule } from '../input-search/input-search.module';
13
+ import { CoreComponentsTranslationModule } from '../../translation/core-components-translation.module';
13
14
  export class ListOfValuesModule {
14
15
  }
15
16
  ListOfValuesModule.decorators = [
@@ -22,7 +23,8 @@ ListOfValuesModule.decorators = [
22
23
  OverlayModule,
23
24
  ClickoutsideModule,
24
25
  IconModule,
25
- InputSearchModule
26
+ InputSearchModule,
27
+ CoreComponentsTranslationModule
26
28
  ],
27
29
  declarations: [
28
30
  ListOfValuesComponent,
@@ -34,4 +36,4 @@ ListOfValuesModule.decorators = [
34
36
  ]
35
37
  },] }
36
38
  ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNyRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFzQnRFLE1BQU0sT0FBTyxrQkFBa0I7OztZQXBCOUIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGlCQUFpQjtpQkFDcEI7Z0JBQ0gsWUFBWSxFQUFFO29CQUNaLHFCQUFxQjtvQkFDckIsMEJBQTBCO29CQUMxQixxQ0FBcUM7aUJBQ3RDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxxQkFBcUI7aUJBQ3RCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0xpc3RPZlZhbHVlc0NvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0lucHV0VGV4dE1vZHVsZX0gZnJvbSBcIi4uL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dENoZWNrYm94TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtY2hlY2tib3gvaW5wdXQtY2hlY2tib3gubW9kdWxlXCI7XHJcbmltcG9ydCB7T3ZlcmxheU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0NsaWNrb3V0c2lkZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY2xpY2tvdXRzaWRlL2NsaWNrb3V0c2lkZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtMaXN0T2ZWYWx1ZXNQb3B1cENvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMtcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudH0gZnJvbSBcIi4vbGlzdC1vZi12YWx1ZXMtbXVsdGlzZWxlY3QtcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SWNvbk1vZHVsZX0gZnJvbSBcIi4uL2ljb24vaWNvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dFNlYXJjaE1vZHVsZX0gZnJvbSAnLi4vaW5wdXQtc2VhcmNoL2lucHV0LXNlYXJjaC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICAgICAgT3ZlcmxheU1vZHVsZSxcclxuICAgICAgICBDbGlja291dHNpZGVNb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBJbnB1dFNlYXJjaE1vZHVsZVxyXG4gICAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExpc3RPZlZhbHVlc0NvbXBvbmVudCxcclxuICAgIExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgTGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTGlzdE9mVmFsdWVzQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdE9mVmFsdWVzTW9kdWxlIHt9XHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1vZi12YWx1ZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpc3Qtb2YtdmFsdWVzL2xpc3Qtb2YtdmFsdWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNyRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUF1QnJHLE1BQU0sT0FBTyxrQkFBa0I7OztZQXJCOUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGlCQUFpQjtvQkFDakIsK0JBQStCO2lCQUNoQztnQkFDRCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQiwwQkFBMEI7b0JBQzFCLHFDQUFxQztpQkFDdEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtpQkFDdEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TGlzdE9mVmFsdWVzQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0lucHV0Q2hlY2tib3hNb2R1bGV9IGZyb20gXCIuLi9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5tb2R1bGVcIjtcclxuaW1wb3J0IHtPdmVybGF5TW9kdWxlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9vdmVybGF5L292ZXJsYXkubW9kdWxlXCI7XHJcbmltcG9ydCB7Q2xpY2tvdXRzaWRlTW9kdWxlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9jbGlja291dHNpZGUvY2xpY2tvdXRzaWRlLm1vZHVsZVwiO1xyXG5pbXBvcnQge0xpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy1wb3B1cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaXN0T2ZWYWx1ZXNNdWx0aXNlbGVjdFBvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi9saXN0LW9mLXZhbHVlcy1tdWx0aXNlbGVjdC1wb3B1cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tIFwiLi4vaWNvbi9pY29uLm1vZHVsZVwiO1xyXG5pbXBvcnQge0lucHV0U2VhcmNoTW9kdWxlfSBmcm9tICcuLi9pbnB1dC1zZWFyY2gvaW5wdXQtc2VhcmNoLm1vZHVsZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNUcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSAnLi4vLi4vdHJhbnNsYXRpb24vY29yZS1jb21wb25lbnRzLXRyYW5zbGF0aW9uLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgSW5wdXRDaGVja2JveE1vZHVsZSxcclxuICAgIE92ZXJsYXlNb2R1bGUsXHJcbiAgICBDbGlja291dHNpZGVNb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlLFxyXG4gICAgSW5wdXRTZWFyY2hNb2R1bGUsXHJcbiAgICBDb3JlQ29tcG9uZW50c1RyYW5zbGF0aW9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExpc3RPZlZhbHVlc0NvbXBvbmVudCxcclxuICAgIExpc3RPZlZhbHVlc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgTGlzdE9mVmFsdWVzTXVsdGlzZWxlY3RQb3B1cENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTGlzdE9mVmFsdWVzQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdE9mVmFsdWVzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -11228,6 +11228,7 @@ class ListOfValuesPopupComponent {
11228
11228
  this.iconCacheService = iconCacheService;
11229
11229
  this._elementRef = _elementRef;
11230
11230
  this.multiselect = false;
11231
+ this.showToggleAll = false;
11231
11232
  this.displayField = 'description';
11232
11233
  this.searchDisabled = false;
11233
11234
  this.modelChange = new EventEmitter();
@@ -11235,6 +11236,7 @@ class ListOfValuesPopupComponent {
11235
11236
  this.keyDown = new EventEmitter();
11236
11237
  this.viewModels = [];
11237
11238
  this.viewModelsMain = [];
11239
+ this.allSelected = false;
11238
11240
  this._collection = [];
11239
11241
  this._searchTerm = '';
11240
11242
  this._lovItems = [];
@@ -11380,6 +11382,27 @@ class ListOfValuesPopupComponent {
11380
11382
  this._scrollIntoView();
11381
11383
  }
11382
11384
  }
11385
+ selectAll() {
11386
+ if (this.viewModels.length > 0) {
11387
+ this.viewModels.forEach(vm => vm.checked = true);
11388
+ this.selectOptions();
11389
+ }
11390
+ }
11391
+ toggleAll() {
11392
+ if (!this.allSelected) {
11393
+ if (this.viewModels.length > 0) {
11394
+ this.viewModels.forEach(vm => vm.checked = true);
11395
+ this.selectOptions();
11396
+ }
11397
+ }
11398
+ else {
11399
+ if (this.viewModels.length > 0) {
11400
+ this.viewModels.forEach(vm => vm.checked = false);
11401
+ this.selectOptions();
11402
+ }
11403
+ }
11404
+ this.allSelected = !this.allSelected;
11405
+ }
11383
11406
  _prepareViewModelsMain() {
11384
11407
  this.viewModelsMain.length = 0;
11385
11408
  this.collection.forEach(m => {
@@ -11420,36 +11443,40 @@ ListOfValuesPopupComponent.decorators = [
11420
11443
  { type: Component, args: [{
11421
11444
  selector: 'co-list-of-values-popup',
11422
11445
  template: `
11423
- <div class="lov-options" [overlay]="parentForOverlay" [inheritWidth]="true" [ngClass]="customCssClass"
11424
- id="lov-popup"
11425
- role="listbox" [tabindex]="-1"
11426
- (clickOutside)="closePopup.emit($event)">
11427
- <co-input-search *ngIf="multiselect"
11428
- tabindex="-1"
11429
- [(model)]="searchTerm"
11430
- [placeholder]="searchPlaceholder"
11431
- (keydown)="handleInputKeyDown($event)"
11432
- (modelChange)="filterViewModels()"></co-input-search>
11433
- <ul class="dropdown-list" #dropDownList>
11434
- <li
11435
- #lovItem
11436
- *ngFor="let viewModel of viewModels; let index = index"
11437
- [class.selected]="viewModel === highLightModel || viewModels.length === 1"
11438
- (click)="selectViewModel(viewModel, !multiselect)"
11439
- role="option">
11440
- <ng-container *ngIf="!multiselect">
11441
- <co-icon *ngIf="viewModel.model[optionIcon]" class="input-text-left-icon" [iconData]="iconCacheService.getIcon(viewModel.model[optionIcon])">
11442
- </co-icon>
11443
- <span class="lov-options-text" [textContent]="viewModel.model[displayField]"></span>
11444
- </ng-container>
11445
- <ng-container *ngIf="multiselect">
11446
- <co-input-checkbox [model]="viewModel.checked"
11447
- (modelChange)="selectViewModel(viewModel, false)"></co-input-checkbox>
11448
- <span class="lov-options-text" [textContent]="viewModel.model[displayField]"></span>
11449
- </ng-container>
11450
- </li>
11451
- </ul>
11452
- </div>
11446
+ <div class="lov-options" [overlay]="parentForOverlay" [inheritWidth]="true" [ngClass]="customCssClass"
11447
+ id="lov-popup"
11448
+ role="listbox" [tabindex]="-1"
11449
+ (clickOutside)="closePopup.emit($event)">
11450
+ <co-input-search *ngIf="multiselect"
11451
+ tabindex="-1"
11452
+ [(model)]="searchTerm"
11453
+ [placeholder]="searchPlaceholder"
11454
+ (keydown)="handleInputKeyDown($event)"
11455
+ (modelChange)="filterViewModels()"></co-input-search>
11456
+ <div class="row gap" *ngIf="showToggleAll && multiselect">
11457
+ <co-input-checkbox [model]="allSelected" (modelChange)="toggleAll()"></co-input-checkbox>
11458
+ <span [textContent]="'DESELECT_ALL' | coreLocalize" (click)="toggleAll()"></span>
11459
+ </div>
11460
+ <ul class="dropdown-list" #dropDownList>
11461
+ <li
11462
+ #lovItem
11463
+ *ngFor="let viewModel of viewModels; let index = index"
11464
+ [class.selected]="viewModel === highLightModel || viewModels.length === 1"
11465
+ (click)="selectViewModel(viewModel, !multiselect)"
11466
+ role="option">
11467
+ <ng-container *ngIf="!multiselect">
11468
+ <co-icon *ngIf="viewModel.model[optionIcon]" class="input-text-left-icon" [iconData]="iconCacheService.getIcon(viewModel.model[optionIcon])">
11469
+ </co-icon>
11470
+ <span class="lov-options-text" [textContent]="viewModel.model[displayField]"></span>
11471
+ </ng-container>
11472
+ <ng-container *ngIf="multiselect">
11473
+ <co-input-checkbox [model]="viewModel.checked"
11474
+ (modelChange)="selectViewModel(viewModel, false)"></co-input-checkbox>
11475
+ <span class="lov-options-text" [textContent]="viewModel.model[displayField]"></span>
11476
+ </ng-container>
11477
+ </li>
11478
+ </ul>
11479
+ </div>
11453
11480
  `,
11454
11481
  encapsulation: ViewEncapsulation.None
11455
11482
  },] }
@@ -11464,6 +11491,7 @@ ListOfValuesPopupComponent.propDecorators = {
11464
11491
  inputSearch: [{ type: ViewChild, args: [InputSearchComponent,] }],
11465
11492
  model: [{ type: Input }],
11466
11493
  multiselect: [{ type: Input }],
11494
+ showToggleAll: [{ type: Input }],
11467
11495
  displayField: [{ type: Input }],
11468
11496
  searchPlaceholder: [{ type: Input }],
11469
11497
  customCssClass: [{ type: Input }],
@@ -11490,6 +11518,7 @@ class ListOfValuesComponent extends BaseInputComponent {
11490
11518
  this.elementRef = elementRef;
11491
11519
  this.icons = CoreComponentsIcon;
11492
11520
  this.multiselect = false;
11521
+ this.showToggleAll = false;
11493
11522
  this.largeCollection = false;
11494
11523
  this.displayField = 'description';
11495
11524
  this.searchDisabled = false;
@@ -11618,6 +11647,7 @@ class ListOfValuesComponent extends BaseInputComponent {
11618
11647
  searchPlaceholder: this.searchPlaceholder,
11619
11648
  displayField: this.displayField,
11620
11649
  multiselect: this.multiselect,
11650
+ showToggleAll: this.showToggleAll,
11621
11651
  model: this.model,
11622
11652
  collection: this.collection,
11623
11653
  optionIcon: this.optionIcon,
@@ -11775,6 +11805,7 @@ ListOfValuesComponent.propDecorators = {
11775
11805
  model: [{ type: Input }],
11776
11806
  parentForOverlay: [{ type: ViewChild, args: ['parentForOverlay', { read: ElementRef },] }],
11777
11807
  multiselect: [{ type: HostBinding, args: ['class.custom-height',] }, { type: HostBinding, args: ['class.multi-select',] }, { type: Input }],
11808
+ showToggleAll: [{ type: Input }],
11778
11809
  largeCollection: [{ type: Input }],
11779
11810
  displayField: [{ type: Input }],
11780
11811
  optionIcon: [{ type: Input }],
@@ -11910,7 +11941,8 @@ ListOfValuesModule.decorators = [
11910
11941
  OverlayModule,
11911
11942
  ClickoutsideModule,
11912
11943
  IconModule,
11913
- InputSearchModule
11944
+ InputSearchModule,
11945
+ CoreComponentsTranslationModule
11914
11946
  ],
11915
11947
  declarations: [
11916
11948
  ListOfValuesComponent,
@@ -15059,6 +15091,11 @@ class HourSchedulingExpandableComponent {
15059
15091
  this.currentDraggingObject = obj;
15060
15092
  }
15061
15093
  handleDrop(dragEvent, hour) {
15094
+ dragEvent.preventDefault();
15095
+ dragEvent.stopPropagation();
15096
+ if (!this.schedule[this.objectsProp] || !this.schedule[this.objectsProp].find((object) => object[this.idProp] === this.currentDraggingObject.id) && this.currentDraggingObject) {
15097
+ this.currentDraggingObject = undefined;
15098
+ }
15062
15099
  if (this.currentDraggingObject) {
15063
15100
  //The order was scheduled and needs to be moved
15064
15101
  let start = this.currentDraggingObject.start;
@@ -15076,17 +15113,17 @@ class HourSchedulingExpandableComponent {
15076
15113
  scheduledObject.top = this.timeDifference(this.schedule[this.childProp][this.startTimeProp], scheduledObject.start);
15077
15114
  scheduledObject.height = this.timeDifference(scheduledObject.start, scheduledObject.end);
15078
15115
  this.timeChangeEvent.emit(originalObject);
15079
- this.currentDraggingObject = undefined;
15080
15116
  }
15117
+ this.currentDraggingObject = undefined;
15081
15118
  }
15082
15119
  else {
15083
15120
  let parsed = this.tryParseJSONObject(dragEvent.dataTransfer.getData("text"));
15084
15121
  if (!parsed) {
15085
15122
  this.newObjectPlanEvent.emit({ currentHour: hour, data: parsed.toString() });
15086
- return;
15087
15123
  }
15088
- //Move between calendars is still too buggy
15089
- this.moveBetweenCalendarsEvent.emit({ hour: hour, data: parsed });
15124
+ else {
15125
+ this.moveBetweenCalendarsEvent.emit({ hour: hour, data: parsed });
15126
+ }
15090
15127
  }
15091
15128
  }
15092
15129
  allowDrop(event, hour) {
@@ -15306,8 +15343,10 @@ class HourSchedulingExpandableTemplateComponent {
15306
15343
  return true;
15307
15344
  }
15308
15345
  onExpandableDragStart(event, obj, onDragStartCustom) {
15309
- onDragStartCustom === null || onDragStartCustom === void 0 ? void 0 : onDragStartCustom.call(obj);
15310
- event.dataTransfer.setData("text", JSON.stringify({ obj }));
15346
+ event.dataTransfer.setData('text', JSON.stringify({ obj }));
15347
+ if (onDragStartCustom) {
15348
+ onDragStartCustom === null || onDragStartCustom === void 0 ? void 0 : onDragStartCustom.call(obj);
15349
+ }
15311
15350
  }
15312
15351
  calculateLeftAndWidthOfObjects() {
15313
15352
  const layoutData = new Array(this._objects.length);
@@ -15319,8 +15358,9 @@ class HourSchedulingExpandableTemplateComponent {
15319
15358
  const overlapGroups = [];
15320
15359
  const processed = new Set();
15321
15360
  for (let i = 0; i < this._objects.length; i++) {
15322
- if (processed.has(i))
15361
+ if (processed.has(i)) {
15323
15362
  continue;
15363
+ }
15324
15364
  const group = [i];
15325
15365
  const objA = this._objects[i];
15326
15366
  const startA = new Date(objA.start);
@@ -15353,37 +15393,37 @@ class HourSchedulingExpandableTemplateComponent {
15353
15393
  }
15354
15394
  HourSchedulingExpandableTemplateComponent.decorators = [
15355
15395
  { type: Component, args: [{
15356
- selector: "co-hour-scheduling-expandable-template",
15396
+ selector: 'co-hour-scheduling-expandable-template',
15357
15397
  template: `
15358
-
15359
- <div
15360
- *ngFor="let obj of objects"
15361
- [class]="'custom-scheduled-object'"
15362
- [class.selected]="obj.selected"
15363
- [draggable]="!obj.selected"
15364
- [style.--height]="obj.height + 'px'"
15365
- [style.--top]="obj.top + 'px'"
15366
- [style.--left]="layouts[objects.indexOf(obj)].leftPercent + '%'"
15367
- [style.--width]="layouts[objects.indexOf(obj)].widthPercent + '%'"
15368
- (click)="onSelectBlock(obj)"
15369
- (dragstart)="onExpandableDragStart($event, obj, onDragStartCustom(obj) )">
15370
15398
 
15371
- <div
15372
- *ngIf="obj.selected"
15373
- class="top-resizer"
15374
- (mousedown)="onResizeStart($event, obj, 'top')"></div>
15375
- <ng-template
15376
- [ngTemplateOutlet]="objectTemplate"
15377
- [ngTemplateOutletContext]="{
15399
+ <div
15400
+ *ngFor="let obj of objects"
15401
+ [class]="'custom-scheduled-object'"
15402
+ [class.selected]="obj.selected"
15403
+ [draggable]="!obj.selected"
15404
+ [style.--height]="obj.height + 'px'"
15405
+ [style.--top]="obj.top + 'px'"
15406
+ [style.--left]="layouts[objects.indexOf(obj)].leftPercent + '%'"
15407
+ [style.--width]="layouts[objects.indexOf(obj)].widthPercent + '%'"
15408
+ (click)="onSelectBlock(obj)"
15409
+ (dragstart)="onExpandableDragStart($event, obj, onDragStartCustom(obj) )">
15410
+
15411
+ <div
15412
+ *ngIf="obj.selected"
15413
+ class="top-resizer"
15414
+ (mousedown)="onResizeStart($event, obj, 'top')"></div>
15415
+ <ng-template
15416
+ [ngTemplateOutlet]="objectTemplate"
15417
+ [ngTemplateOutletContext]="{
15378
15418
  object: obj
15379
15419
  }"
15380
- >
15381
- </ng-template>
15382
- <div *ngIf="obj.selected"
15383
- class="bottom-resizer"
15384
- (mousedown)="onResizeStart($event, obj, 'bottom')"></div>
15385
- </div>
15386
- `,
15420
+ >
15421
+ </ng-template>
15422
+ <div *ngIf="obj.selected"
15423
+ class="bottom-resizer"
15424
+ (mousedown)="onResizeStart($event, obj, 'bottom')"></div>
15425
+ </div>
15426
+ `,
15387
15427
  encapsulation: ViewEncapsulation.None
15388
15428
  },] }
15389
15429
  ];
@@ -15395,7 +15435,7 @@ HourSchedulingExpandableTemplateComponent.propDecorators = {
15395
15435
  onSelectBlock: [{ type: Input }],
15396
15436
  startTimeProp: [{ type: Input }],
15397
15437
  endTimeProp: [{ type: Input }],
15398
- showClass: [{ type: HostBinding, args: ["class.co-hour-scheduling-expandable-template",] }]
15438
+ showClass: [{ type: HostBinding, args: ['class.co-hour-scheduling-expandable-template',] }]
15399
15439
  };
15400
15440
 
15401
15441
  class HourSchedulingExpandableTemplateModule {