@eo-sdk/client 10.6.19 → 10.6.21

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.
@@ -60,10 +60,12 @@ export class TreeComponent {
60
60
  switch (event.key) {
61
61
  case 'ArrowUp': {
62
62
  this.focusNode(false);
63
+ this._ensureVisible();
63
64
  break;
64
65
  }
65
66
  case 'ArrowDown': {
66
67
  this.focusNode(true);
68
+ this._ensureVisible();
67
69
  break;
68
70
  }
69
71
  case 'ArrowRight': {
@@ -198,20 +200,29 @@ export class TreeComponent {
198
200
  this.visibleNodes.forEach(n => (n.focused = false));
199
201
  }
200
202
  if (node) {
201
- const nodes = document.querySelectorAll('eo-tree-node');
202
- nodes.forEach(n => {
203
- if (n.querySelector('.label span').textContent === node.name) {
204
- n.scrollIntoView({
205
- behavior: "smooth",
206
- block: "start",
207
- inline: "nearest"
208
- });
209
- }
210
- });
211
203
  node.focused = true;
212
204
  this.focusedNode = node;
213
205
  }
214
206
  }
207
+ _ensureVisible() {
208
+ setTimeout(() => {
209
+ const container = this.elementRef.nativeElement;
210
+ const el = container.querySelector('eo-tree-node .label.focused');
211
+ const containerRect = container.getBoundingClientRect();
212
+ const elRect = el.getBoundingClientRect();
213
+ /* The first one checks the structure tree for scroll down
214
+ * The second one checks the structure tree for scroll up
215
+ * The third one checks the trees in selection dialogs for scroll down
216
+ * The fourth one checks the trees in selection dialogs for scroll up
217
+ */
218
+ if (elRect.bottom >= window.innerHeight
219
+ || elRect.top < 50
220
+ || elRect.bottom >= containerRect.height
221
+ || elRect.top - containerRect.top <= 30) {
222
+ el.scrollIntoView();
223
+ }
224
+ }, 200);
225
+ }
215
226
  focusNode(next) {
216
227
  if (this.visibleNodes.length) {
217
228
  let index = 0, shift = next ? 1 : -1;
@@ -278,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
278
289
  type: HostListener,
279
290
  args: ['keydown', ['$event']]
280
291
  }] } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUEwQnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHMUIsaUJBQVksR0FBRyx1Q0FBdUMsQ0FBQztRQUV2RCxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtRQUVoRCxxRkFBcUY7UUFDM0UseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO0lBR0QsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FB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QkFZQTsyRkRnQmEsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxTQUFTLGFBR1I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDOzRCQUM1QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2lHQUlQLFNBQVM7c0JBQXRDLFdBQVc7dUJBQUMsZUFBZTtnQkFVbkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBWUgsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFPckIsU0FBUztzQkFEWixLQUFLO3VCQUFDLE1BQU07Z0JBVVQsVUFBVTtzQkFEYixLQUFLO3VCQUFDLFlBQVk7Z0JBU25CLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBU3hDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVO2dCQWdCMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJlZU5vZGUsIFRyZWVPcHRpb25zfSBmcm9tICcuL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgX3RhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9leHBhbmRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9oaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmlzaWJsZU5vZGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWROb2RlOiBUcmVlTm9kZTtcblxuICB0cmVlOiBUcmVlTm9kZVtdO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRyZWVPcHRpb25zID0ge307XG4gIEBJbnB1dCgpIGlzRGlzcGxheWVkOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ2VvLmVycm9yLnN0cnVjdHVyZS50cmVlLm5vdC5hdmFpbGFibGUnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbktleSA9ICcgJzsgLy8gZGVmYXVsdCBpcyBTcGFjZVxuXG4gIC8vIHRoZSBub2RlcyB0aGF0IGFyZSBzZWxlY3RlZC4gSW4gY2FzZSBvZiBgbXVsdGlzZWxlY3RgIHNldCB0byB0cnVlLCB0aGlzIHdpbGwgYmUgYW5cbiAgQE91dHB1dCgpIGV4cGFuZGVkTm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBASW5wdXQoJ2hpZ2hsaWdodGVkTm9kZXMnKVxuICBzZXQgaGlnaGxpZ2h0ZWROb2Rlcyhub2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGVzID0gbm9kZXMgfHwgW107XG4gICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmhpZ2hsaWdodGVkID0gISF0aGlzLl9oaWdobGlnaHRlZE5vZGVzLmZpbmQoaWQgPT4gaWQgPT09IG4uaWQpKSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWUnKVxuICBzZXQgdHJlZUlucHV0KHRyZWU6IFRyZWVOb2RlW10pIHtcbiAgICAvLyB0aGlzLnRyZWUgPSB0cmVlO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICB0aGlzLmZvY3VzZWROb2RlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVRyZWUodHJlZSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWVVcGRhdGUnKVxuICBzZXQgdHJlZVVwZGF0ZSh0cmVlOiBUcmVlTm9kZVtdKSB7XG4gICAgaWYgKHRyZWUpIHtcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0cmVlKTtcbiAgICB9XG4gIH1cblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Gb2N1c0luKHRhcmdldDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWROb2RlIHx8ICF0aGlzLmZvY3VzZWROb2RlLmZvY3VzZWQpIHtcbiAgICAgIGxldCBub2RlID0gdGhpcy5zZWxlY3RlZE5vZGVzWzBdIHx8IHRoaXMudmlzaWJsZU5vZGVzWzBdO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyhub2RlKTtcbiAgICB9XG4gIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBvbkZvY3VzT3V0KCkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgIH1cblxuICBvbkZvY3VzKGV2dCkge1xuICB9XG5cbiAgb25CbHVyKGV2dCkge1xuICB9XG5cbiAgb25Ub2dnbGUoZXZ0KSB7XG5cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZShmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZSh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIHRoaXMuc2VsZWN0aW9uS2V5OiB7XG4gICAgICAgIC8vIHRvZ2dsZSBzZWxlY3Rpb24gb2YgdGhlIGZvY3VzZWQgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgLy8gdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCA9ICF0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkO1xuICAgICAgICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGlvbiBvZiB0aGUgZm9jdXNlZCBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyB0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkID0gIXRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5vbk5vZGVTZWxlY3RlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgIGxldCBfc2VsZWN0ZWROb2RlcyA9ICFzZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWROb2RlcykgPyBzZWxlY3RlZE5vZGVzIHx8IFtdIDogW3NlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggIT09IF9zZWxlY3RlZE5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZXMuc29tZSgobiwgaSkgPT4gbi5pZCAhPT0gX3NlbGVjdGVkTm9kZXNbaV0uaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBfc2VsZWN0ZWROb2RlcztcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0aGlzLnRyZWUpO1xuICAgIH1cblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKG5vZGUpIHtcbiAgICAvLyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpc24ndCBhbGxvd2VkIHRvIGJlIHNlbGVjdGVkLCB3ZSdsbCBpbnN0ZWFkIHRyeSB0b1xuICAgIC8vIHRvZ2dsZSBleHBhbmRlZCBmbGFnIGZvciBwYXJlbnQgbm9kZXNcbiAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUsIHRoaXMuZm9jdXNlZE5vZGUpO1xuXG4gICAgaWYgKCFub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSAhbm9kZS5zZWxlY3RlZDtcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVEZXNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoXG4gICAgICAgICAgICBuID0+IG4uaWQgIT09IG5vZGUuaWRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgPyB0aGlzLnNlbGVjdGVkTm9kZXMgOiB0aGlzLnNlbGVjdGVkTm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uTm9kZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5jb2xsZWN0VmlzaWJsZU5vZGVzKG5vZGUpO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlc0NoYW5nZWQuZW1pdCh0aGlzLl9leHBhbmRlZE5vZGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcbiAgICAgIHRoaXMub25Ob2RlRXhwYW5kZWQobm9kZSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBVcGRhdGUgdGhlIHRyZWUgYWNjb3JkaW5nIHRvIHRoZSBzZWxlY3RlZCBub2Rlc1xuICBwcml2YXRlIHVwZGF0ZVRyZWUodHJlZT86IGFueSkge1xuICAgIGlmICh0cmVlIHx8IHRoaXMudHJlZSkge1xuICAgICAgdGhpcy50cmVlID0gKHRyZWUgfHwgdGhpcy50cmVlKS5tYXAobm9kZSA9PiB0aGlzLnVwZGF0ZVRyZWVOb2RlKG5vZGUsIFtdKSk7XG4gICAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMoKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB3YWxraW5nIHRoZSB0cmVlIG5vZGVzIGFuZCBzZXR0aW5nIHRoZSBub2RlcyBgc2VsZWN0ZWRgIGZsYWdzXG4gIHByaXZhdGUgdXBkYXRlVHJlZU5vZGUobm9kZTogVHJlZU5vZGUsIHBhcmVudHM6IFRyZWVOb2RlW10pIHtcbiAgICBub2RlLnNlbGVjdGVkID0gISF0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChuID0+IG5vZGUuaWQgPT09IG4uaWQgfHwgKCFuLmlkICYmIG5vZGUuZGF0YT8udmFsdWUgPT09IG4udmFsdWUpKTtcbiAgICBub2RlLmV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWROb2Rlcy5sZW5ndGggPyAhIXRoaXMuX2V4cGFuZGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCkgOiBub2RlLmV4cGFuZGVkO1xuICAgIG5vZGUuaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCk7XG4gICAgbm9kZS5mb2N1c2VkID0gdGhpcy5mb2N1c2VkTm9kZSAmJiB0aGlzLmZvY3VzZWROb2RlLmlkID09PSBub2RlLmlkID8gdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkIDogZmFsc2U7XG4gICAgLy8gbm9kZS5sZXZlbCA9IHBhcmVudHMubGVuZ3RoO1xuXG4gICAgLy8gZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMgYXMgd2VsbFxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBwYXJlbnRzLmZvckVhY2gocCA9PiAocC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChuID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobiwgcGFyZW50cy5jb25jYXQoW25vZGVdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIENvbGxlY3QgYWxsIHZpc2libGUgbm9kZXMgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIG9yXG4gIC8vIG5leHQgbm9kZSB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZT86IFRyZWVOb2RlKSB7XG4gICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4odGhpcy50cmVlKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnZpc2libGVOb2Rlcy5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vIHJlY3Vyc2l2ZSBwYXJ0IG9mIGNvbGxlY3RDaGlsZE5vZGVzKClcbiAgcHJpdmF0ZSBjb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGVzOiBUcmVlTm9kZVtdID0gW10pIHtcbiAgICBsZXQgZmxhdCA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgZmxhdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWROb2Rlcy5wdXNoKG5vZGUuaWQpO1xuICAgICAgICBmbGF0ID0gZmxhdC5jb25jYXQodGhpcy5jb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmxhdDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9jdXMobm9kZT86IFRyZWVOb2RlLCBvbGQ/OiBUcmVlTm9kZSkge1xuICAgIGlmIChvbGQpIHtcbiAgICAgIGlmIChub2RlICE9PSBvbGQpIHtcbiAgICAgICAgb2xkLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmZvY3VzZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgY29uc3Qgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdlby10cmVlLW5vZGUnKTtcbiAgICAgIG5vZGVzLmZvckVhY2gobiA9PiB7XG4gICAgICAgIGlmIChuLnF1ZXJ5U2VsZWN0b3IoJy5sYWJlbCBzcGFuJykudGV4dENvbnRlbnQgPT09IG5vZGUubmFtZSkge1xuICAgICAgICAgIG4uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgICAgICAgICBibG9jazogXCJzdGFydFwiLFxuICAgICAgICAgICAgaW5saW5lOiBcIm5lYXJlc3RcIlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5vZGUuZm9jdXNlZCA9IHRydWU7XG4gICAgICB0aGlzLmZvY3VzZWROb2RlID0gbm9kZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTm9kZShuZXh0PzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGxldCBpbmRleCA9IDAsIHNoaWZ0ID0gbmV4dCA/IDEgOiAtMTtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnZpc2libGVOb2Rlcy5maW5kKChuLCBpKSA9PiB7XG4gICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgcmV0dXJuIG4uZm9jdXNlZDtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXh0SWR4ID0gbm9kZSA/IGluZGV4ICsgc2hpZnQgOiAwO1xuICAgICAgY29uc3QgaWR4ID0gbmV4dElkeCA+PSB0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGggPyAwIDogKG5leHRJZHggPCAwID8gdGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoIC0gMSA6IG5leHRJZHgpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyh0aGlzLnZpc2libGVOb2Rlc1tpZHhdLCBub2RlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby10cmVlXCIgZW9SdGxBd2FyZSAqbmdJZj1cInRyZWUubGVuZ3RoOyBlbHNlIG5vVHJlZXNcIj5cbiAgPGVvLXRyZWUtbm9kZSAqbmdGb3I9XCJsZXQgbm9kZSBvZiB0cmVlXCIgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgKG9uTm9kZUV4cGFuZGVkQ2hhbmdlZCk9XCJ0b2dnbGVFeHBhbmRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25Ob2RlU2VsZWN0ZWQpPVwib25Ob2RlU2VsZWN0ZWQoJGV2ZW50KVwiPjwvZW8tdHJlZS1ub2RlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm9UcmVlcz5cbiAgPGRpdiBjbGFzcz1cInRyZWUgdHJlZS1wYW5lbC1lcnJvciBlby1ib2R5IGVycm9yXCI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJlcnJvciBlcnJvcl9faWNvblwiIFtpY29uU3JjXT1cIidpY19lcnJvci5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxwIHRyYW5zbGF0ZT57e2VtcHR5TWVzc2FnZX19PC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUEwQnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHMUIsaUJBQVksR0FBRyx1Q0FBdUMsQ0FBQztRQUV2RCxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtRQUVoRCxxRkFBcUY7UUFDM0UseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO0lBR0QsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FB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bnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIGZvcndhcmRSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmVlTm9kZSwgVHJlZU9wdGlvbnN9IGZyb20gJy4vdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmVlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSBfdGFiSW5kZXggPSAwO1xuXG4gIHByaXZhdGUgX2V4cGFuZGVkTm9kZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX2hpZ2hsaWdodGVkTm9kZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgc2VsZWN0ZWROb2RlczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSB2aXNpYmxlTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgZm9jdXNlZE5vZGU6IFRyZWVOb2RlO1xuXG4gIHRyZWU6IFRyZWVOb2RlW107XG5cbiAgQElucHV0KCkgb3B0aW9uczogVHJlZU9wdGlvbnMgPSB7fTtcbiAgQElucHV0KCkgaXNEaXNwbGF5ZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnZW8uZXJyb3Iuc3RydWN0dXJlLnRyZWUubm90LmF2YWlsYWJsZSc7XG5cbiAgQElucHV0KCkgc2VsZWN0aW9uS2V5ID0gJyAnOyAvLyBkZWZhdWx0IGlzIFNwYWNlXG5cbiAgLy8gdGhlIG5vZGVzIHRoYXQgYXJlIHNlbGVjdGVkLiBJbiBjYXNlIG9mIGBtdWx0aXNlbGVjdGAgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBiZSBhblxuICBAT3V0cHV0KCkgZXhwYW5kZWROb2Rlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIEBJbnB1dCgnaGlnaGxpZ2h0ZWROb2RlcycpXG4gIHNldCBoaWdobGlnaHRlZE5vZGVzKG5vZGVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkTm9kZXMgPSBub2RlcyB8fCBbXTtcbiAgICB0aGlzLnZpc2libGVOb2Rlcy5mb3JFYWNoKG4gPT4gKG4uaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbi5pZCkpKTtcbiAgfVxuXG4gIEBJbnB1dCgndHJlZScpXG4gIHNldCB0cmVlSW5wdXQodHJlZTogVHJlZU5vZGVbXSkge1xuICAgIC8vIHRoaXMudHJlZSA9IHRyZWU7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gW107XG4gICAgdGhpcy5fZXhwYW5kZWROb2RlcyA9IFtdO1xuICAgIHRoaXMuZm9jdXNlZE5vZGUgPSBudWxsO1xuICAgIHRoaXMudXBkYXRlVHJlZSh0cmVlKTtcbiAgfVxuXG4gIEBJbnB1dCgndHJlZVVwZGF0ZScpXG4gIHNldCB0cmVlVXBkYXRlKHRyZWU6IFRyZWVOb2RlW10pIHtcbiAgICBpZiAodHJlZSkge1xuICAgICAgdGhpcy51cGRhdGVUcmVlKHRyZWUpO1xuICAgIH1cbiAgfVxuXG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsnJGV2ZW50LnRhcmdldCddKVxuICBvbkZvY3VzSW4odGFyZ2V0OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuZm9jdXNlZE5vZGUgfHwgIXRoaXMuZm9jdXNlZE5vZGUuZm9jdXNlZCkge1xuICAgICAgbGV0IG5vZGUgPSB0aGlzLnNlbGVjdGVkTm9kZXNbMF0gfHwgdGhpcy52aXNpYmxlTm9kZXNbMF07XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICAgIG9uRm9jdXNPdXQoKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XG4gICAgfVxuXG4gIG9uRm9jdXMoZXZ0KSB7XG4gIH1cblxuICBvbkJsdXIoZXZ0KSB7XG4gIH1cblxuICBvblRvZ2dsZShldnQpIHtcblxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICAgIHRoaXMuZm9jdXNOb2RlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fZW5zdXJlVmlzaWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgICAgdGhpcy5mb2N1c05vZGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Vuc3VyZVZpc2libGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIHRoaXMuc2VsZWN0aW9uS2V5OiB7XG4gICAgICAgIC8vIHRvZ2dsZSBzZWxlY3Rpb24gb2YgdGhlIGZvY3VzZWQgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgLy8gdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCA9ICF0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkO1xuICAgICAgICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGlvbiBvZiB0aGUgZm9jdXNlZCBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyB0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkID0gIXRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5vbk5vZGVTZWxlY3RlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgIGxldCBfc2VsZWN0ZWROb2RlcyA9ICFzZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWROb2RlcykgPyBzZWxlY3RlZE5vZGVzIHx8IFtdIDogW3NlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggIT09IF9zZWxlY3RlZE5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZXMuc29tZSgobiwgaSkgPT4gbi5pZCAhPT0gX3NlbGVjdGVkTm9kZXNbaV0uaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBfc2VsZWN0ZWROb2RlcztcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0aGlzLnRyZWUpO1xuICAgIH1cblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKG5vZGUpIHtcbiAgICAvLyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpc24ndCBhbGxvd2VkIHRvIGJlIHNlbGVjdGVkLCB3ZSdsbCBpbnN0ZWFkIHRyeSB0b1xuICAgIC8vIHRvZ2dsZSBleHBhbmRlZCBmbGFnIGZvciBwYXJlbnQgbm9kZXNcbiAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUsIHRoaXMuZm9jdXNlZE5vZGUpO1xuXG4gICAgaWYgKCFub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSAhbm9kZS5zZWxlY3RlZDtcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVEZXNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoXG4gICAgICAgICAgICBuID0+IG4uaWQgIT09IG5vZGUuaWRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgPyB0aGlzLnNlbGVjdGVkTm9kZXMgOiB0aGlzLnNlbGVjdGVkTm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uTm9kZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5jb2xsZWN0VmlzaWJsZU5vZGVzKG5vZGUpO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlc0NoYW5nZWQuZW1pdCh0aGlzLl9leHBhbmRlZE5vZGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcbiAgICAgIHRoaXMub25Ob2RlRXhwYW5kZWQobm9kZSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBVcGRhdGUgdGhlIHRyZWUgYWNjb3JkaW5nIHRvIHRoZSBzZWxlY3RlZCBub2Rlc1xuICBwcml2YXRlIHVwZGF0ZVRyZWUodHJlZT86IGFueSkge1xuICAgIGlmICh0cmVlIHx8IHRoaXMudHJlZSkge1xuICAgICAgdGhpcy50cmVlID0gKHRyZWUgfHwgdGhpcy50cmVlKS5tYXAobm9kZSA9PiB0aGlzLnVwZGF0ZVRyZWVOb2RlKG5vZGUsIFtdKSk7XG4gICAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMoKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB3YWxraW5nIHRoZSB0cmVlIG5vZGVzIGFuZCBzZXR0aW5nIHRoZSBub2RlcyBgc2VsZWN0ZWRgIGZsYWdzXG4gIHByaXZhdGUgdXBkYXRlVHJlZU5vZGUobm9kZTogVHJlZU5vZGUsIHBhcmVudHM6IFRyZWVOb2RlW10pIHtcbiAgICBub2RlLnNlbGVjdGVkID0gISF0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChuID0+IG5vZGUuaWQgPT09IG4uaWQgfHwgKCFuLmlkICYmIG5vZGUuZGF0YT8udmFsdWUgPT09IG4udmFsdWUpKTtcbiAgICBub2RlLmV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWROb2Rlcy5sZW5ndGggPyAhIXRoaXMuX2V4cGFuZGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCkgOiBub2RlLmV4cGFuZGVkO1xuICAgIG5vZGUuaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCk7XG4gICAgbm9kZS5mb2N1c2VkID0gdGhpcy5mb2N1c2VkTm9kZSAmJiB0aGlzLmZvY3VzZWROb2RlLmlkID09PSBub2RlLmlkID8gdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkIDogZmFsc2U7XG4gICAgLy8gbm9kZS5sZXZlbCA9IHBhcmVudHMubGVuZ3RoO1xuXG4gICAgLy8gZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMgYXMgd2VsbFxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBwYXJlbnRzLmZvckVhY2gocCA9PiAocC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChuID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobiwgcGFyZW50cy5jb25jYXQoW25vZGVdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIENvbGxlY3QgYWxsIHZpc2libGUgbm9kZXMgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIG9yXG4gIC8vIG5leHQgbm9kZSB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZT86IFRyZWVOb2RlKSB7XG4gICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4odGhpcy50cmVlKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnZpc2libGVOb2Rlcy5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vIHJlY3Vyc2l2ZSBwYXJ0IG9mIGNvbGxlY3RDaGlsZE5vZGVzKClcbiAgcHJpdmF0ZSBjb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGVzOiBUcmVlTm9kZVtdID0gW10pIHtcbiAgICBsZXQgZmxhdCA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgZmxhdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWROb2Rlcy5wdXNoKG5vZGUuaWQpO1xuICAgICAgICBmbGF0ID0gZmxhdC5jb25jYXQodGhpcy5jb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmxhdDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9jdXMobm9kZT86IFRyZWVOb2RlLCBvbGQ/OiBUcmVlTm9kZSkge1xuICAgIGlmIChvbGQpIHtcbiAgICAgIGlmIChub2RlICE9PSBvbGQpIHtcbiAgICAgICAgb2xkLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmZvY3VzZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9jdXNlZE5vZGUgPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Vuc3VyZVZpc2libGUoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXI6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBlbCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdlby10cmVlLW5vZGUgLmxhYmVsLmZvY3VzZWQnKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBlbFJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIC8qIFRoZSBmaXJzdCBvbmUgY2hlY2tzIHRoZSBzdHJ1Y3R1cmUgdHJlZSBmb3Igc2Nyb2xsIGRvd25cbiAgICAgICAqIFRoZSBzZWNvbmQgb25lIGNoZWNrcyB0aGUgc3RydWN0dXJlIHRyZWUgZm9yIHNjcm9sbCB1cFxuICAgICAgICogVGhlIHRoaXJkIG9uZSBjaGVja3MgdGhlIHRyZWVzIGluIHNlbGVjdGlvbiBkaWFsb2dzIGZvciBzY3JvbGwgZG93blxuICAgICAgICogVGhlIGZvdXJ0aCBvbmUgY2hlY2tzIHRoZSB0cmVlcyBpbiBzZWxlY3Rpb24gZGlhbG9ncyBmb3Igc2Nyb2xsIHVwXG4gICAgICAgKi9cbiAgICAgIGlmIChlbFJlY3QuYm90dG9tID49IHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgICB8fCBlbFJlY3QudG9wIDwgNTBcbiAgICAgICAgfHwgZWxSZWN0LmJvdHRvbSA+PSBjb250YWluZXJSZWN0LmhlaWdodFxuICAgICAgICB8fCBlbFJlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgPD0gMzApIHtcbiAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgIH1cbiAgICB9LCAgMjAwKVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05vZGUobmV4dD86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoKSB7XG4gICAgICBsZXQgaW5kZXggPSAwLCBzaGlmdCA9IG5leHQgPyAxIDogLTE7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy52aXNpYmxlTm9kZXMuZmluZCgobiwgaSkgPT4ge1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgIHJldHVybiBuLmZvY3VzZWQ7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmV4dElkeCA9IG5vZGUgPyBpbmRleCArIHNoaWZ0IDogMDtcbiAgICAgIGNvbnN0IGlkeCA9IG5leHRJZHggPj0gdGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoID8gMCA6IChuZXh0SWR4IDwgMCA/IHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCAtIDEgOiBuZXh0SWR4KTtcbiAgICAgIHRoaXMudXBkYXRlRm9jdXModGhpcy52aXNpYmxlTm9kZXNbaWR4XSwgbm9kZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tdHJlZVwiIGVvUnRsQXdhcmUgKm5nSWY9XCJ0cmVlLmxlbmd0aDsgZWxzZSBub1RyZWVzXCI+XG4gIDxlby10cmVlLW5vZGUgKm5nRm9yPVwibGV0IG5vZGUgb2YgdHJlZVwiIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgIChvbk5vZGVFeHBhbmRlZENoYW5nZWQpPVwidG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uTm9kZVNlbGVjdGVkKT1cIm9uTm9kZVNlbGVjdGVkKCRldmVudClcIj48L2VvLXRyZWUtbm9kZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI25vVHJlZXM+XG4gIDxkaXYgY2xhc3M9XCJ0cmVlIHRyZWUtcGFuZWwtZXJyb3IgZW8tYm9keSBlcnJvclwiPlxuICAgIDxlby1pY29uIGNsYXNzPVwiZXJyb3IgZXJyb3JfX2ljb25cIiBbaWNvblNyY109XCInaWNfZXJyb3Iuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8cCB0cmFuc2xhdGU+e3tlbXB0eU1lc3NhZ2V9fTwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -4763,10 +4763,12 @@ class TreeComponent {
4763
4763
  switch (event.key) {
4764
4764
  case 'ArrowUp': {
4765
4765
  this.focusNode(false);
4766
+ this._ensureVisible();
4766
4767
  break;
4767
4768
  }
4768
4769
  case 'ArrowDown': {
4769
4770
  this.focusNode(true);
4771
+ this._ensureVisible();
4770
4772
  break;
4771
4773
  }
4772
4774
  case 'ArrowRight': {
@@ -4901,20 +4903,29 @@ class TreeComponent {
4901
4903
  this.visibleNodes.forEach(n => (n.focused = false));
4902
4904
  }
4903
4905
  if (node) {
4904
- const nodes = document.querySelectorAll('eo-tree-node');
4905
- nodes.forEach(n => {
4906
- if (n.querySelector('.label span').textContent === node.name) {
4907
- n.scrollIntoView({
4908
- behavior: "smooth",
4909
- block: "start",
4910
- inline: "nearest"
4911
- });
4912
- }
4913
- });
4914
4906
  node.focused = true;
4915
4907
  this.focusedNode = node;
4916
4908
  }
4917
4909
  }
4910
+ _ensureVisible() {
4911
+ setTimeout(() => {
4912
+ const container = this.elementRef.nativeElement;
4913
+ const el = container.querySelector('eo-tree-node .label.focused');
4914
+ const containerRect = container.getBoundingClientRect();
4915
+ const elRect = el.getBoundingClientRect();
4916
+ /* The first one checks the structure tree for scroll down
4917
+ * The second one checks the structure tree for scroll up
4918
+ * The third one checks the trees in selection dialogs for scroll down
4919
+ * The fourth one checks the trees in selection dialogs for scroll up
4920
+ */
4921
+ if (elRect.bottom >= window.innerHeight
4922
+ || elRect.top < 50
4923
+ || elRect.bottom >= containerRect.height
4924
+ || elRect.top - containerRect.top <= 30) {
4925
+ el.scrollIntoView();
4926
+ }
4927
+ }, 200);
4928
+ }
4918
4929
  focusNode(next) {
4919
4930
  if (this.visibleNodes.length) {
4920
4931
  let index = 0, shift = next ? 1 : -1;
@@ -6642,8 +6653,9 @@ class DynamicListComponent {
6642
6653
  return this._list;
6643
6654
  }
6644
6655
  set selectedNodes(n) {
6656
+ var _a, _b;
6645
6657
  if (n && !Array.isArray(n)) {
6646
- this.autocompleteFn(n[this._list.config.valueField || 'value'] || n.name);
6658
+ this.autocompleteFn(n[((_b = (_a = this._list) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.valueField) || 'value'] || n.name);
6647
6659
  }
6648
6660
  this._selectedNodes = structuredClone(n);
6649
6661
  }
@@ -7218,6 +7230,9 @@ class ReferenceFinderComponent {
7218
7230
  selectAllEntries() {
7219
7231
  [...this.clipboardItems, ...this.resultList].filter(item => !item.selected).forEach(item => this.selectReference({ item: item, add: false }));
7220
7232
  }
7233
+ selectCopiedEntries() {
7234
+ this.clipboardItems.filter(item => !item.selected).forEach(item => this.selectReference({ item: item, add: false }));
7235
+ }
7221
7236
  selectReference(selectReference) {
7222
7237
  const { item, add } = selectReference;
7223
7238
  if (item && !item.disabled) {
@@ -7264,10 +7279,10 @@ class ReferenceFinderComponent {
7264
7279
  }
7265
7280
  }
7266
7281
  ReferenceFinderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ReferenceFinderComponent, deps: [{ token: ReferenceFinderService }], target: i0.ɵɵFactoryTarget.Component });
7267
- ReferenceFinderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"clipboardOpen\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [".reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:85%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [fadeInOut] });
7282
+ ReferenceFinderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"clipboardOpen\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [".reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:85%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [fadeInOut] });
7268
7283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
7269
7284
  type: Component,
7270
- args: [{ selector: 'eo-reference-finder', animations: [fadeInOut], template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"clipboardOpen\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [".reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:85%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"] }]
7285
+ args: [{ selector: 'eo-reference-finder', animations: [fadeInOut], template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"clipboardOpen\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [".reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"results\" \"cta\";align-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{grid-area:results;overflow:scroll;height:330px;margin:var(--app-pane-padding)}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;justify-content:space-between;align-items:center;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:85%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"] }]
7271
7286
  }], ctorParameters: function () { return [{ type: ReferenceFinderService }]; }, propDecorators: { entries: [{
7272
7287
  type: ViewChildren,
7273
7288
  args: ['entry', { read: ElementRef }]
@@ -11801,9 +11816,6 @@ class SetFilterComponent extends AbstractFilterComponent {
11801
11816
  if (item) {
11802
11817
  item.value = newValue;
11803
11818
  }
11804
- else {
11805
- this.options.forEach(o => (o.value = newValue));
11806
- }
11807
11819
  if (!this.defaultValue) {
11808
11820
  this.settingsService.saveSettings(this.id, this.options);
11809
11821
  }
@@ -16268,7 +16280,7 @@ class AppSearchComponent {
16268
16280
  value: '',
16269
16281
  label: SearchQuery.MIMETYPEGROUP_BUCKETS[k]
16270
16282
  };
16271
- });
16283
+ }).sort((a, b) => a.label.localeCompare(b.label));
16272
16284
  this.aggregationsModel[SearchQuery.BASE_PARAMS.FILESIZE] = Object.keys(SearchQuery.FILE_SIZE_BUCKETS).map(k => {
16273
16285
  return {
16274
16286
  key: SearchQuery.FILE_SIZE_BUCKETS[k],
@@ -21074,13 +21086,13 @@ class QuickSearchComponent {
21074
21086
  }
21075
21087
  const uriParam = encodeURIComponent(JSON.stringify(this.query.getQueryJson()));
21076
21088
  const uriParamQuery = { queryParams: { 'query': uriParam } };
21077
- console.log(this.ctrlClicked);
21078
21089
  if (this.ctrlClicked) {
21079
21090
  const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();
21080
21091
  const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;
21081
21092
  window.open(url, '_blank');
21082
21093
  this.ctrlClicked = false;
21083
21094
  this.focusInput();
21095
+ this.query.types = [];
21084
21096
  }
21085
21097
  else {
21086
21098
  this.router.navigate(['/result'], uriParamQuery);
@@ -22684,10 +22696,10 @@ class AboutStateComponent {
22684
22696
  this.backend = backend;
22685
22697
  this.userService = userService;
22686
22698
  this.config = config;
22687
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/common", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/core", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/forms", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/router", "version": "15.2.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.8.1", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "10.6.19", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "15.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "14.0.0", "license": "MIT" }, { "name": "@yuuvis/components", "version": "1.0.6", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "1.0.2", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.29.4", "license": "MIT" }, { "name": "ngx-toastr", "version": "16.0.2", "license": "MIT" }, { "name": "rxjs", "version": "7.5.7", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.11.8", "license": "MIT" }];
22699
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/cdk", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/common", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/compiler", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/core", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/forms", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "15.2.2", "license": "MIT" }, { "name": "@angular/router", "version": "15.2.2", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.8.1", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "10.6.21", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "15.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "14.0.0", "license": "MIT" }, { "name": "@yuuvis/components", "version": "1.0.6", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "1.0.2", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.29.4", "license": "MIT" }, { "name": "ngx-toastr", "version": "16.0.2", "license": "MIT" }, { "name": "rxjs", "version": "7.5.7", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.2", "license": "0BSD" }, { "name": "zone.js", "version": "0.11.8", "license": "MIT" }];
22688
22700
  this.ctrl = {
22689
22701
  componentName: 'yuuvis® RAD client',
22690
- componentVersion: '10.6.19',
22702
+ componentVersion: '10.6.21',
22691
22703
  productName: '',
22692
22704
  productVersion: ''
22693
22705
  };