cps-ui-kit 0.93.0 → 0.95.0

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.
@@ -46,8 +46,10 @@ export class CpsTreeAutocompleteComponent extends BaseTreeDropdownComponent {
46
46
  onBoxClick() {
47
47
  if (!this.multiple) {
48
48
  this.activeSingle = true;
49
- this.inputText = this._getValueLabel();
50
- this.treeList.resetFilter();
49
+ if (!this.inputText)
50
+ this.inputText = this._getValueLabel();
51
+ if (!this.isOpened)
52
+ this.treeList.resetFilter();
51
53
  }
52
54
  this.focus();
53
55
  this.optionFocused = false;
@@ -226,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
226
228
  }], appearance: [{
227
229
  type: Input
228
230
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRyZWUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10cmVlLWF1dG9jb21wbGV0ZS9jcHMtdHJlZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRyZWUtYXV0b2NvbXBsZXRlL2Nwcy10cmVlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUdMLFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUF1QmxFLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQVVqQyxZQUM4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O3dCQUNWLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNqQixZQUNTLHVCQUF1Qjs7MEJBZ0I5QixRQUFROzRFQVJGLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzQ2hpcENvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1jaGlwL2Nwcy1jaGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNQcm9ncmVzc0xpbmVhckNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1wcm9ncmVzcy1saW5lYXIvY3BzLXByb2dyZXNzLWxpbmVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7IGZpbmQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgVHJlZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZSc7XG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VUcmVlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlX2NvbXBvbmVudHMvYmFzZS10cmVlLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQ3BzVHJlZUF1dG9jb21wbGV0ZUFwcGVhcmFuY2VUeXBlID1cbiAgfCAnb3V0bGluZWQnXG4gIHwgJ3VuZGVybGluZWQnXG4gIHwgJ2JvcmRlcmxlc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUcmVlTW9kdWxlLFxuICAgIENwc0ljb25Db21wb25lbnQsXG4gICAgQ3BzQ2hpcENvbXBvbmVudCxcbiAgICBDcHNQcm9ncmVzc0xpbmVhckNvbXBvbmVudCxcbiAgICBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50LFxuICAgIENwc01lbnVDb21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdjcHMtdHJlZS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRyZWUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRyZWUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVHJlZUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBleHRlbmRzIEJhc2VUcmVlRHJvcGRvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnTm8gcmVzdWx0cyBmb3VuZCc7XG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IENwc1RyZWVBdXRvY29tcGxldGVBcHBlYXJhbmNlVHlwZSA9ICdvdXRsaW5lZCc7XG5cbiAgaW5wdXRUZXh0ID0gJyc7XG4gIGJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gIGFjdGl2ZVNpbmdsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBvdmVycmlkZSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHVibGljIG92ZXJyaWRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihjb250cm9sLCBjZFJlZik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaXNBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uU2VsZWN0Tm9kZSgpIHtcbiAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgdGhpcy5fY2xlYXJJbnB1dCgpO1xuICAgIHN1cGVyLm9uU2VsZWN0Tm9kZSgpO1xuICB9XG5cbiAgb25CZWZvcmVPcHRpb25zSGlkZGVuKCkge1xuICAgIHRoaXMuX2Nsb3NlQW5kQ2xlYXIoKTtcbiAgfVxuXG4gIG9uQm94Q2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNpbmdsZSA9IHRydWU7XG4gICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuX2dldFZhbHVlTGFiZWwoKTtcbiAgICAgIHRoaXMudHJlZUxpc3QucmVzZXRGaWx0ZXIoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMub3B0aW9uRm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25Db250YWluZXJLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBjb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAvLyBlc2NhcGVcbiAgICBpZiAoY29kZSA9PT0gMjcpIHtcbiAgICAgIHRoaXMuX2Nsb3NlQW5kQ2xlYXIoKTtcbiAgICB9XG4gICAgLy8gY2xpY2sgZG93biBhcnJvd1xuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKSB7XG4gICAgICB0aGlzLmluaXRBcnJvd3NOYXZpZ2F0b24oKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0S2V5RG93bihldmVudDogYW55KSB7XG4gICAgY29uc3QgY29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgLy8gYmFja3NwYWNlXG4gICAgaWYgKGNvZGUgPT09IDgpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUxhc3RWYWx1ZSgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIC8vIGVudGVyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMTMpIHtcbiAgICAgIGlmICghdGhpcy5vcHRpb25Gb2N1c2VkKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpcm1JbnB1dChldmVudD8udGFyZ2V0Py52YWx1ZSB8fCAnJyk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQ2hldnJvbkNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLl9jbG9zZUFuZENsZWFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25Cb3hDbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIHJlbW92ZShvcHRpb246IFRyZWVOb2RlKTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlKG9wdGlvbik7XG5cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdChvcHRpb246IFRyZWVOb2RlKTogdm9pZCB7XG4gICAgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXk6IGFueVtdLCB2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGFycmF5ID8gISFmaW5kKGFycmF5LCAoaXRlbSkgPT4gaXNFcXVhbChpdGVtLCB2YWwpKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAoaW5jbHVkZXModGhpcy50cmVlU2VsZWN0aW9uLCBvcHRpb24pKSB7XG4gICAgICAgIHRoaXMudHJlZVNlbGVjdGlvbiA9IHRoaXMudHJlZVNlbGVjdGlvbi5maWx0ZXIoXG4gICAgICAgICAgKHY6IFRyZWVOb2RlKSA9PiAhaXNFcXVhbCh2LCBvcHRpb24pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRyZWVTZWxlY3Rpb24ucHVzaChvcHRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVTZWxlY3Rpb24gPSBvcHRpb247XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy50cmVlU2VsZWN0aW9uVG9WYWx1ZSh0aGlzLnRyZWVTZWxlY3Rpb24pKTtcblxuICAgIHRoaXMuX2NsZWFySW5wdXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKGV2ZW50KTtcblxuICAgIHRoaXMuX2NsZWFySW5wdXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZm9jdXNJbnB1dCgpIHtcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvY3VzKCkge1xuICAgIHN1cGVyLmZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBvbkZpbHRlck9wdGlvbnMoKSB7XG4gICAgdGhpcy5yZWNhbGNWaXJ0dWFsTGlzdEhlaWdodCgpO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyhldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLnRvZ2dsZU9wdGlvbnModHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgICBjb25zdCBzZWFyY2hWYWwgPSAoZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIXNlYXJjaFZhbCkgdGhpcy50cmVlTGlzdC5yZXNldEZpbHRlcigpO1xuICAgIGVsc2UgdGhpcy50cmVlTGlzdC5fZmlsdGVyKHNlYXJjaFZhbCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZUxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRyZWVTZWxlY3Rpb24/LmxhYmVsIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJJbnB1dCgpIHtcbiAgICB0aGlzLnRyZWVMaXN0LnJlc2V0RmlsdGVyKCk7XG4gICAgdGhpcy5pbnB1dFRleHQgPSAnJztcbiAgICB0aGlzLmFjdGl2ZVNpbmdsZSA9IGZhbHNlO1xuICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZWNhbGNWaXJ0dWFsTGlzdEhlaWdodCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VBbmRDbGVhcigpIHtcbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgdGhpcy50b2dnbGVPcHRpb25zKGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpcm1JbnB1dChzZWFyY2hWYWw6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5pc09wZW5lZCkgcmV0dXJuO1xuICAgIHNlYXJjaFZhbCA9IHNlYXJjaFZhbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghc2VhcmNoVmFsKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkgcmV0dXJuO1xuICAgICAgdGhpcy50cmVlU2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5fY2xvc2VBbmRDbGVhcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kID0gdGhpcy50cmVlTGlzdD8uc2VyaWFsaXplZFZhbHVlPy5maW5kKFxuICAgICAgKHN2OiBhbnkpID0+IHN2Py5ub2RlPy5sYWJlbD8udG9Mb3dlckNhc2UoKSA9PT0gc2VhcmNoVmFsXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdChmb3VuZC5ub2RlKTtcbiAgICAgIHRoaXMudG9nZ2xlT3B0aW9ucyh0aGlzLm11bHRpcGxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdGhpcy5fZ2V0VmFsdWVMYWJlbCgpO1xuICAgICAgICB0aGlzLnRyZWVMaXN0LnJlc2V0RmlsdGVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVMYXN0VmFsdWUoKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMuaW5wdXRUZXh0KSByZXR1cm47XG5cbiAgICBpZiAodGhpcy50cmVlU2VsZWN0aW9uPy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlKSB7XG4gICAgICAgIHRoaXMudHJlZVNlbGVjdGlvbiA9IHRoaXMudHJlZVNlbGVjdGlvbi5maWx0ZXIoXG4gICAgICAgICAgKHY6IFRyZWVOb2RlLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMudHJlZVNlbGVjdGlvbi5sZW5ndGggLSAxXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy50cmVlU2VsZWN0aW9uVG9WYWx1ZSh0aGlzLnRyZWVTZWxlY3Rpb24pKTtcblxuICAgICAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgICB9IGVsc2UgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IHRydWU7XG4gICAgfSBlbHNlIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSwgMCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nU3R5bGVdPVwieyB3aWR0aDogY3Z0V2lkdGggfVwiXG4gIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGVcIlxuICB0YWJpbmRleD1cIjFcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgZXJyb3I6IGVycm9yLCBhY3RpdmU6IGlzT3BlbmVkIH1cIlxuICAjY29tcG9uZW50Q29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtbGFiZWxcIiAqbmdJZj1cImxhYmVsXCI+XG4gICAgPGxhYmVsPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICA8Y3BzLWluZm8tY2lyY2xlXG4gICAgICAqbmdJZj1cImluZm9Ub29sdGlwXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtbGFiZWwtaW5mby1jaXJjbGVcIlxuICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgW3Rvb2x0aXBDb250ZW50Q2xhc3NdPVwiaW5mb1Rvb2x0aXBDbGFzc1wiXG4gICAgICBbdG9vbHRpcE1heFdpZHRoXT1cImluZm9Ub29sdGlwTWF4V2lkdGhcIlxuICAgICAgW3Rvb2x0aXBQZXJzaXN0ZW50XT1cImluZm9Ub29sdGlwUGVyc2lzdGVudFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiaW5mb1Rvb2x0aXBcIj5cbiAgICA8L2Nwcy1pbmZvLWNpcmNsZT5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAoa2V5ZG93bik9XCJvbkNvbnRhaW5lcktleURvd24oJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1jb250YWluZXJcIlxuICAgIFtjbGFzcy5mb2N1c2VkXT1cImlzT3BlbmVkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncGVyc2lzdGVudC1jbGVhcic6IHBlcnNpc3RlbnRDbGVhcixcbiAgICAgIGJvcmRlcmxlc3M6IGFwcGVhcmFuY2UgPT09ICdib3JkZXJsZXNzJyxcbiAgICAgIHVuZGVybGluZWQ6IGFwcGVhcmFuY2UgPT09ICd1bmRlcmxpbmVkJ1xuICAgIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtYm94XCIgI2JveEVsIChtb3VzZWRvd24pPVwib25Cb3hDbGljaygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtYm94LWFyZWFcIj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJwcmVmaXhJY29uXCJcbiAgICAgICAgICBbaWNvbl09XCJwcmVmaXhJY29uXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGlzYWJsZWQgPyAnIzlhOTU5NScgOiBudWxsXCJcbiAgICAgICAgICBbc2l6ZV09XCJwcmVmaXhJY29uU2l6ZVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmVmaXgtaWNvblwiPlxuICAgICAgICA8L2Nwcy1pY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1ib3gtaXRlbXNcIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAodHJlZVNlbGVjdGlvbiAmJiAhbXVsdGlwbGUpIHx8XG4gICAgICAgICAgICAgICh0cmVlU2VsZWN0aW9uPy5sZW5ndGggPiAwICYmIG11bHRpcGxlKTtcbiAgICAgICAgICAgIGVsc2UgdHJlZUF1dG9jb21wbGV0ZUlucHV0XG4gICAgICAgICAgXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbXVsdGlwbGVcIiBjbGFzcz1cInNpbmdsZS1pdGVtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWl0ZW0tc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5vcGFjaXR5XT1cImFjdGl2ZVNpbmdsZSA/IDAgOiAxXCI+e3tcbiAgICAgICAgICAgICAgICB0cmVlU2VsZWN0aW9uLmxhYmVsXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgdHJlZUF1dG9jb21wbGV0ZUlucHV0O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgIGlucHV0Q2xhc3M6ICdzaW5nbGUtaXRlbS1pbnB1dCcsXG4gICAgICAgICAgICAgICAgICBpbnB1dFN0eWxlOiBhY3RpdmVTaW5nbGUgPyAnb3BhY2l0eTogMScgOiBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiAhY2hpcHNcIiBjbGFzcz1cInRleHQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbCBvZiB0cmVlU2VsZWN0aW9uOyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Fib3V0LXRvLXJlbW92ZSc6IGxhc3QgJiYgYmFja3NwYWNlQ2xpY2tlZE9uY2UgfVwiPlxuICAgICAgICAgICAgICB7eyB2YWwubGFiZWwgfX17eyAhbGFzdCA/ICcsJyA6ICcnIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlQXV0b2NvbXBsZXRlSW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiBjaGlwc1wiIGNsYXNzPVwiY2hpcHMtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxjcHMtY2hpcFxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIHRyZWVTZWxlY3Rpb247IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtjbG9zYWJsZV09XCJjbG9zYWJsZUNoaXBzXCJcbiAgICAgICAgICAgICAgKGNsb3NlZCk9XCJyZW1vdmUodmFsKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Fib3V0LXRvLXJlbW92ZSc6IGxhc3QgJiYgYmFja3NwYWNlQ2xpY2tlZE9uY2UgfVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWwubGFiZWxcIj5cbiAgICAgICAgICAgIDwvY3BzLWNoaXA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZUF1dG9jb21wbGV0ZUlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWJveC1pY29uc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImNsZWFyYWJsZSAmJiAhZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwiXG4gICAgICAgICAgICAgIHBlcnNpc3RlbnRDbGVhciB8fFxuICAgICAgICAgICAgICAoIXBlcnNpc3RlbnRDbGVhciAmJlxuICAgICAgICAgICAgICAgICgobXVsdGlwbGUgJiYgdHJlZVNlbGVjdGlvbj8ubGVuZ3RoKSB8fFxuICAgICAgICAgICAgICAgICAgKCFtdWx0aXBsZSAmJiB0cmVlU2VsZWN0aW9uKSkpXG4gICAgICAgICAgICAgICAgPyAndmlzaWJsZSdcbiAgICAgICAgICAgICAgICA6ICdoaWRkZW4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1ib3gtY2xlYXItaWNvblwiPlxuICAgICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiPjwvY3BzLWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWJveC1jaGV2cm9uXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25DaGV2cm9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiZGlzYWJsZWQgPyAndGV4dC1saWdodCcgOiAndGV4dC1kYXJrJ1wiPjwvY3BzLWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxjcHMtbWVudVxuICAgICAgI29wdGlvbnNNZW51XG4gICAgICBbd2l0aEFycm93XT1cImZhbHNlXCJcbiAgICAgIChiZWZvcmVNZW51SGlkZGVuKT1cIm9uQmVmb3JlT3B0aW9uc0hpZGRlbigpXCJcbiAgICAgIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBzIGxpbmVhclwiXG4gICAgICBjb250YWluZXJDbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvbnMtbWVudVwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvbnNcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgd2lkdGg6IGJveFdpZHRoICsgJ3B4J1xuICAgICAgICB9XCI+XG4gICAgICAgIDxwLXRyZWVcbiAgICAgICAgICAjdHJlZUxpc3RcbiAgICAgICAgICBbZW1wdHlNZXNzYWdlXT1cImVtcHR5TWVzc2FnZVwiXG4gICAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXG4gICAgICAgICAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICAgICAgICAgIFt2aXJ0dWFsU2Nyb2xsT3B0aW9uc109XCJ7IG51bVRvbGVyYXRlZEl0ZW1zOiAzIH1cIlxuICAgICAgICAgIFtzY3JvbGxIZWlnaHRdPVwidmlydHVhbExpc3RIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgICAob25Ob2RlU2VsZWN0KT1cIm9uU2VsZWN0Tm9kZSgpXCJcbiAgICAgICAgICAob25Ob2RlRXhwYW5kKT1cIm9uTm9kZUV4cGFuZCgkZXZlbnQpXCJcbiAgICAgICAgICAob25Ob2RlQ29sbGFwc2UpPVwib25Ob2RlQ29sbGFwc2UoJGV2ZW50KVwiXG4gICAgICAgICAgKG9uRmlsdGVyKT1cIm9uRmlsdGVyT3B0aW9ucygpXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uc1wiXG4gICAgICAgICAgWyhzZWxlY3Rpb24pXT1cInRyZWVTZWxlY3Rpb25cIlxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW21ldGFLZXlTZWxlY3Rpb25dPVwibXVsdGlwbGUgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIm11bHRpcGxlID8gJ211bHRpcGxlJyA6ICdzaW5nbGUnXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1ub2RlIHBUZW1wbGF0ZT1cImRpcmVjdG9yeVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1kaXJlY3RvcnktZWxlbVwiPnt7XG4gICAgICAgICAgICAgIG5vZGUubGFiZWxcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1ub2RlIHBUZW1wbGF0ZT1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtb3B0aW9uXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtb3B0aW9uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvbi1jaGVja1wiPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1vcHRpb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnZpcnR1YWwtcm93XT1cInZpcnR1YWxTY3JvbGxcIlxuICAgICAgICAgICAgICAgICAgPnt7IG5vZGUubGFiZWwgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvbi1pbmZvXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudmlydHVhbC1yb3ddPVwidmlydHVhbFNjcm9sbFwiXG4gICAgICAgICAgICAgICAgPnt7IG5vZGUuaW5mbyB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRyZWU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nwcy1tZW51PlxuICAgIDxjcHMtcHJvZ3Jlc3MtbGluZWFyXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgaGVpZ2h0PVwiM1wiXG4gICAgICByYWRpdXM9XCI0XCJcbiAgICAgIG9wYWNpdHk9XCIwLjNcIlxuICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1wcm9ncmVzcy1iYXJcIlxuICAgICAgYmdDb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgPC9jcHMtcHJvZ3Jlc3MtbGluZWFyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWhpbnRcIj5cbiAgICB7eyBoaW50IH19XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1lcnJvclwiPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjdHJlZUF1dG9jb21wbGV0ZUlucHV0XG4gIGxldC1pbnB1dENsYXNzPVwiaW5wdXRDbGFzc1wiXG4gIGxldC1pbnB1dFN0eWxlPVwiaW5wdXRTdHlsZVwiPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWJveC1pbnB1dFwiXG4gICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICBbY2xhc3NdPVwiaW5wdXRDbGFzc1wiXG4gICAgW3N0eWxlXT1cImlucHV0U3R5bGVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICghdHJlZVNlbGVjdGlvbiAmJiAhbXVsdGlwbGUpIHx8ICh0cmVlU2VsZWN0aW9uPy5sZW5ndGggPCAxICYmIG11bHRpcGxlKVxuICAgICAgICA/IHBsYWNlaG9sZGVyXG4gICAgICAgIDogJydcbiAgICBcIlxuICAgIChpbnB1dCk9XCJmaWx0ZXJPcHRpb25zKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uSW5wdXRLZXlEb3duKCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRyZWUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10cmVlLWF1dG9jb21wbGV0ZS9jcHMtdHJlZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRyZWUtYXV0b2NvbXBsZXRlL2Nwcy10cmVlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUdMLFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUF1QmxFLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQVVqQyxZQUM4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O2tCQWhCeEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7cUJBQ2pCLFlBQ1MsdUJBQXVCOzswQkFnQjlCLFFBQVE7NEVBUkYsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWNoaXAvY3BzLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLXByb2dyZXNzLWxpbmVhci9jcHMtcHJvZ3Jlc3MtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWluZm8tY2lyY2xlL2Nwcy1pbmZvLWNpcmNsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmluZCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBUcmVlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlJztcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZVRyZWVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2VfY29tcG9uZW50cy9iYXNlLXRyZWUtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc01lbnVDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBDcHNUcmVlQXV0b2NvbXBsZXRlQXBwZWFyYW5jZVR5cGUgPVxuICB8ICdvdXRsaW5lZCdcbiAgfCAndW5kZXJsaW5lZCdcbiAgfCAnYm9yZGVybGVzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRyZWVNb2R1bGUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNDaGlwQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50LFxuICAgIENwc0luZm9DaXJjbGVDb21wb25lbnQsXG4gICAgQ3BzTWVudUNvbXBvbmVudFxuICBdLFxuICBzZWxlY3RvcjogJ2Nwcy10cmVlLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtdHJlZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtdHJlZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNUcmVlQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZVRyZWVEcm9wZG93bkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICdObyByZXN1bHRzIGZvdW5kJztcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogQ3BzVHJlZUF1dG9jb21wbGV0ZUFwcGVhcmFuY2VUeXBlID0gJ291dGxpbmVkJztcblxuICBpbnB1dFRleHQgPSAnJztcbiAgYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgYWN0aXZlU2luZ2xlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIG92ZXJyaWRlIGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2wsIGNkUmVmKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pc0F1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25TZWxlY3ROb2RlKCkge1xuICAgIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc3VwZXIub25TZWxlY3ROb2RlKCk7XG4gIH1cblxuICBvbkJlZm9yZU9wdGlvbnNIaWRkZW4oKSB7XG4gICAgdGhpcy5fY2xvc2VBbmRDbGVhcigpO1xuICB9XG5cbiAgb25Cb3hDbGljaygpIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2luZ2xlID0gdHJ1ZTtcbiAgICAgIGlmICghdGhpcy5pbnB1dFRleHQpIHRoaXMuaW5wdXRUZXh0ID0gdGhpcy5fZ2V0VmFsdWVMYWJlbCgpO1xuICAgICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB0aGlzLnRyZWVMaXN0LnJlc2V0RmlsdGVyKCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLm9wdGlvbkZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uQ29udGFpbmVyS2V5RG93bihldmVudDogYW55KSB7XG4gICAgY29uc3QgY29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgLy8gZXNjYXBlXG4gICAgaWYgKGNvZGUgPT09IDI3KSB7XG4gICAgICB0aGlzLl9jbG9zZUFuZENsZWFyKCk7XG4gICAgfVxuICAgIC8vIGNsaWNrIGRvd24gYXJyb3dcbiAgICBlbHNlIGlmIChjb2RlID09PSA0MCkge1xuICAgICAgdGhpcy5pbml0QXJyb3dzTmF2aWdhdG9uKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleURvd24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIC8vIGJhY2tzcGFjZVxuICAgIGlmIChjb2RlID09PSA4KSB7XG4gICAgICB0aGlzLl9yZW1vdmVMYXN0VmFsdWUoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICAvLyBlbnRlclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDEzKSB7XG4gICAgICBpZiAoIXRoaXMub3B0aW9uRm9jdXNlZCkge1xuICAgICAgICB0aGlzLl9jb25maXJtSW5wdXQoZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgJycpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNoZXZyb25DbGljayhldmVudDogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgdGhpcy5fY2xvc2VBbmRDbGVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQm94Q2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSByZW1vdmUob3B0aW9uOiBUcmVlTm9kZSk6IHZvaWQge1xuICAgIHN1cGVyLnJlbW92ZShvcHRpb24pO1xuXG4gICAgdGhpcy5fY2xlYXJJbnB1dCgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3Qob3B0aW9uOiBUcmVlTm9kZSk6IHZvaWQge1xuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKGFycmF5OiBhbnlbXSwgdmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBhcnJheSA/ICEhZmluZChhcnJheSwgKGl0ZW0pID0+IGlzRXF1YWwoaXRlbSwgdmFsKSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKGluY2x1ZGVzKHRoaXMudHJlZVNlbGVjdGlvbiwgb3B0aW9uKSkge1xuICAgICAgICB0aGlzLnRyZWVTZWxlY3Rpb24gPSB0aGlzLnRyZWVTZWxlY3Rpb24uZmlsdGVyKFxuICAgICAgICAgICh2OiBUcmVlTm9kZSkgPT4gIWlzRXF1YWwodiwgb3B0aW9uKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50cmVlU2VsZWN0aW9uLnB1c2gob3B0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmVlU2VsZWN0aW9uID0gb3B0aW9uO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudHJlZVNlbGVjdGlvblRvVmFsdWUodGhpcy50cmVlU2VsZWN0aW9uKSk7XG5cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhcihldmVudCk7XG5cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKSB7XG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XG4gIH1cblxuICBvdmVycmlkZSBmb2N1cygpIHtcbiAgICBzdXBlci5mb2N1cygpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgb25GaWx0ZXJPcHRpb25zKCkge1xuICAgIHRoaXMucmVjYWxjVmlydHVhbExpc3RIZWlnaHQoKTtcbiAgfVxuXG4gIGZpbHRlck9wdGlvbnMoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgdGhpcy50b2dnbGVPcHRpb25zKHRydWUpO1xuICAgIH1cbiAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgY29uc3Qgc2VhcmNoVmFsID0gKGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKCFzZWFyY2hWYWwpIHRoaXMudHJlZUxpc3QucmVzZXRGaWx0ZXIoKTtcbiAgICBlbHNlIHRoaXMudHJlZUxpc3QuX2ZpbHRlcihzZWFyY2hWYWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWVMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy50cmVlU2VsZWN0aW9uPy5sYWJlbCB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXQoKSB7XG4gICAgdGhpcy50cmVlTGlzdC5yZXNldEZpbHRlcigpO1xuICAgIHRoaXMuaW5wdXRUZXh0ID0gJyc7XG4gICAgdGhpcy5hY3RpdmVTaW5nbGUgPSBmYWxzZTtcbiAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVjYWxjVmlydHVhbExpc3RIZWlnaHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlQW5kQ2xlYXIoKSB7XG4gICAgdGhpcy5fY2xlYXJJbnB1dCgpO1xuICAgIHRoaXMudG9nZ2xlT3B0aW9ucyhmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maXJtSW5wdXQoc2VhcmNoVmFsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHJldHVybjtcbiAgICBzZWFyY2hWYWwgPSBzZWFyY2hWYWwudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXNlYXJjaFZhbCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHJldHVybjtcbiAgICAgIHRoaXMudHJlZVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuX2Nsb3NlQW5kQ2xlYXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMudHJlZUxpc3Q/LnNlcmlhbGl6ZWRWYWx1ZT8uZmluZChcbiAgICAgIChzdjogYW55KSA9PiBzdj8ubm9kZT8ubGFiZWw/LnRvTG93ZXJDYXNlKCkgPT09IHNlYXJjaFZhbFxuICAgICk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICB0aGlzLl9zZWxlY3QoZm91bmQubm9kZSk7XG4gICAgICB0aGlzLnRvZ2dsZU9wdGlvbnModGhpcy5tdWx0aXBsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuX2dldFZhbHVlTGFiZWwoKTtcbiAgICAgICAgdGhpcy50cmVlTGlzdC5yZXNldEZpbHRlcigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlTGFzdFZhbHVlKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCB0aGlzLmlucHV0VGV4dCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMudHJlZVNlbGVjdGlvbj8ubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSkge1xuICAgICAgICB0aGlzLnRyZWVTZWxlY3Rpb24gPSB0aGlzLnRyZWVTZWxlY3Rpb24uZmlsdGVyKFxuICAgICAgICAgICh2OiBUcmVlTm9kZSwgaW5kZXg6IG51bWJlcikgPT5cbiAgICAgICAgICAgIGluZGV4ICE9PSB0aGlzLnRyZWVTZWxlY3Rpb24ubGVuZ3RoIC0gMVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMudHJlZVNlbGVjdGlvblRvVmFsdWUodGhpcy50cmVlU2VsZWN0aW9uKSk7XG5cbiAgICAgICAgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSB0cnVlO1xuICAgIH0gZWxzZSB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIlxuICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlXCJcbiAgdGFiaW5kZXg9XCIxXCJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQsIGVycm9yOiBlcnJvciwgYWN0aXZlOiBpc09wZW5lZCB9XCJcbiAgI2NvbXBvbmVudENvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIDxsYWJlbD57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgPGNwcy1pbmZvLWNpcmNsZVxuICAgICAgKm5nSWY9XCJpbmZvVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWxhYmVsLWluZm8tY2lyY2xlXCJcbiAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cImluZm9Ub29sdGlwQ2xhc3NcIlxuICAgICAgW3Rvb2x0aXBNYXhXaWR0aF09XCJpbmZvVG9vbHRpcE1heFdpZHRoXCJcbiAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJpbmZvVG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgW3Rvb2x0aXBUZXh0XT1cImluZm9Ub29sdGlwXCI+XG4gICAgPC9jcHMtaW5mby1jaXJjbGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKGtleWRvd24pPVwib25Db250YWluZXJLZXlEb3duKCRldmVudClcIlxuICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtY29udGFpbmVyXCJcbiAgICBbY2xhc3MuZm9jdXNlZF09XCJpc09wZW5lZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXIsXG4gICAgICBib3JkZXJsZXNzOiBhcHBlYXJhbmNlID09PSAnYm9yZGVybGVzcycsXG4gICAgICB1bmRlcmxpbmVkOiBhcHBlYXJhbmNlID09PSAndW5kZXJsaW5lZCdcbiAgICB9XCI+XG4gICAgPGRpdiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWJveFwiICNib3hFbCAobW91c2Vkb3duKT1cIm9uQm94Q2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLWJveC1hcmVhXCI+XG4gICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICpuZ0lmPVwicHJlZml4SWNvblwiXG4gICAgICAgICAgW2ljb25dPVwicHJlZml4SWNvblwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRpc2FibGVkID8gJyM5YTk1OTUnIDogbnVsbFwiXG4gICAgICAgICAgW3NpemVdPVwicHJlZml4SWNvblNpemVcIlxuICAgICAgICAgIGNsYXNzPVwicHJlZml4LWljb25cIj5cbiAgICAgICAgPC9jcHMtaWNvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtYm94LWl0ZW1zXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKHRyZWVTZWxlY3Rpb24gJiYgIW11bHRpcGxlKSB8fFxuICAgICAgICAgICAgICAodHJlZVNlbGVjdGlvbj8ubGVuZ3RoID4gMCAmJiBtdWx0aXBsZSk7XG4gICAgICAgICAgICBlbHNlIHRyZWVBdXRvY29tcGxldGVJbnB1dFxuICAgICAgICAgIFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW11bHRpcGxlXCIgY2xhc3M9XCJzaW5nbGUtaXRlbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1pdGVtLXNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUub3BhY2l0eV09XCJhY3RpdmVTaW5nbGUgPyAwIDogMVwiPnt7XG4gICAgICAgICAgICAgICAgdHJlZVNlbGVjdGlvbi5sYWJlbFxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHRyZWVBdXRvY29tcGxldGVJbnB1dDtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICBpbnB1dENsYXNzOiAnc2luZ2xlLWl0ZW0taW5wdXQnLFxuICAgICAgICAgICAgICAgICAgaW5wdXRTdHlsZTogYWN0aXZlU2luZ2xlID8gJ29wYWNpdHk6IDEnIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibXVsdGlwbGUgJiYgIWNoaXBzXCIgY2xhc3M9XCJ0ZXh0LWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWwgb2YgdHJlZVNlbGVjdGlvbjsgbGV0IGxhc3QgPSBsYXN0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyb3VwLWl0ZW1cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhYm91dC10by1yZW1vdmUnOiBsYXN0ICYmIGJhY2tzcGFjZUNsaWNrZWRPbmNlIH1cIj5cbiAgICAgICAgICAgICAge3sgdmFsLmxhYmVsIH19e3sgIWxhc3QgPyAnLCcgOiAnJyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZUF1dG9jb21wbGV0ZUlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibXVsdGlwbGUgJiYgY2hpcHNcIiBjbGFzcz1cImNoaXBzLWdyb3VwXCI+XG4gICAgICAgICAgICA8Y3BzLWNoaXBcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbCBvZiB0cmVlU2VsZWN0aW9uOyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbY2xvc2FibGVdPVwiY2xvc2FibGVDaGlwc1wiXG4gICAgICAgICAgICAgIChjbG9zZWQpPVwicmVtb3ZlKHZhbClcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhYm91dC10by1yZW1vdmUnOiBsYXN0ICYmIGJhY2tzcGFjZUNsaWNrZWRPbmNlIH1cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsLmxhYmVsXCI+XG4gICAgICAgICAgICA8L2Nwcy1jaGlwPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRyZWVBdXRvY29tcGxldGVJbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1ib3gtaWNvbnNcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJjbGVhcmFibGUgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cIlxuICAgICAgICAgICAgICBwZXJzaXN0ZW50Q2xlYXIgfHxcbiAgICAgICAgICAgICAgKCFwZXJzaXN0ZW50Q2xlYXIgJiZcbiAgICAgICAgICAgICAgICAoKG11bHRpcGxlICYmIHRyZWVTZWxlY3Rpb24/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgICAgICghbXVsdGlwbGUgJiYgdHJlZVNlbGVjdGlvbikpKVxuICAgICAgICAgICAgICAgID8gJ3Zpc2libGUnXG4gICAgICAgICAgICAgICAgOiAnaGlkZGVuJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtYm94LWNsZWFyLWljb25cIj5cbiAgICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKCRldmVudClcIj48L2Nwcy1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1ib3gtY2hldnJvblwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uQ2hldnJvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImRpc2FibGVkID8gJ3RleHQtbGlnaHQnIDogJ3RleHQtZGFyaydcIj48L2Nwcy1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8Y3BzLW1lbnVcbiAgICAgICNvcHRpb25zTWVudVxuICAgICAgW3dpdGhBcnJvd109XCJmYWxzZVwiXG4gICAgICAoYmVmb3JlTWVudUhpZGRlbik9XCJvbkJlZm9yZU9wdGlvbnNIaWRkZW4oKVwiXG4gICAgICBoaWRlVHJhbnNpdGlvbk9wdGlvbnM9XCIwcyBsaW5lYXJcIlxuICAgICAgY29udGFpbmVyQ2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1vcHRpb25zLW1lbnVcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1vcHRpb25zXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIHdpZHRoOiBib3hXaWR0aCArICdweCdcbiAgICAgICAgfVwiPlxuICAgICAgICA8cC10cmVlXG4gICAgICAgICAgI3RyZWVMaXN0XG4gICAgICAgICAgW2VtcHR5TWVzc2FnZV09XCJlbXB0eU1lc3NhZ2VcIlxuICAgICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxuICAgICAgICAgIFt2aXJ0dWFsU2Nyb2xsSXRlbVNpemVdPVwidmlydHVhbFNjcm9sbEl0ZW1TaXplXCJcbiAgICAgICAgICBbdmlydHVhbFNjcm9sbE9wdGlvbnNdPVwieyBudW1Ub2xlcmF0ZWRJdGVtczogMyB9XCJcbiAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cInZpcnR1YWxMaXN0SGVpZ2h0ICsgJ3B4J1wiXG4gICAgICAgICAgKG9uTm9kZVNlbGVjdCk9XCJvblNlbGVjdE5vZGUoKVwiXG4gICAgICAgICAgKG9uTm9kZUV4cGFuZCk9XCJvbk5vZGVFeHBhbmQoJGV2ZW50KVwiXG4gICAgICAgICAgKG9uTm9kZUNvbGxhcHNlKT1cIm9uTm9kZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgIChvbkZpbHRlcik9XCJvbkZpbHRlck9wdGlvbnMoKVwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNcIlxuICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJ0cmVlU2VsZWN0aW9uXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFttZXRhS2V5U2VsZWN0aW9uXT1cIm11bHRpcGxlID8gZmFsc2UgOiB0cnVlXCJcbiAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJtdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnc2luZ2xlJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbm9kZSBwVGVtcGxhdGU9XCJkaXJlY3RvcnlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtZGlyZWN0b3J5LWVsZW1cIj57e1xuICAgICAgICAgICAgICBub2RlLmxhYmVsXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbm9kZSBwVGVtcGxhdGU9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvblwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10cmVlYXV0b2NvbXBsZXRlLW9wdGlvbi1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1vcHRpb24tY2hlY2tcIj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtb3B0aW9uLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy52aXJ0dWFsLXJvd109XCJ2aXJ0dWFsU2Nyb2xsXCJcbiAgICAgICAgICAgICAgICAgID57eyBub2RlLmxhYmVsIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1vcHRpb24taW5mb1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnZpcnR1YWwtcm93XT1cInZpcnR1YWxTY3JvbGxcIlxuICAgICAgICAgICAgICAgID57eyBub2RlLmluZm8gfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC10cmVlPlxuICAgICAgPC9kaXY+XG4gICAgPC9jcHMtbWVudT5cbiAgICA8Y3BzLXByb2dyZXNzLWxpbmVhclxuICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICAgIGhlaWdodD1cIjNcIlxuICAgICAgcmFkaXVzPVwiNFwiXG4gICAgICBvcGFjaXR5PVwiMC4zXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtcHJvZ3Jlc3MtYmFyXCJcbiAgICAgIGJnQ29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgIDwvY3BzLXByb2dyZXNzLWxpbmVhcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1oaW50XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXRyZWVhdXRvY29tcGxldGUtZXJyb3JcIj5cbiAgICB7eyBlcnJvciB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI3RyZWVBdXRvY29tcGxldGVJbnB1dFxuICBsZXQtaW5wdXRDbGFzcz1cImlucHV0Q2xhc3NcIlxuICBsZXQtaW5wdXRTdHlsZT1cImlucHV0U3R5bGVcIj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJjcHMtdHJlZWF1dG9jb21wbGV0ZS1ib3gtaW5wdXRcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgW2NsYXNzXT1cImlucHV0Q2xhc3NcIlxuICAgIFtzdHlsZV09XCJpbnB1dFN0eWxlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAoIXRyZWVTZWxlY3Rpb24gJiYgIW11bHRpcGxlKSB8fCAodHJlZVNlbGVjdGlvbj8ubGVuZ3RoIDwgMSAmJiBtdWx0aXBsZSlcbiAgICAgICAgPyBwbGFjZWhvbGRlclxuICAgICAgICA6ICcnXG4gICAgXCJcbiAgICAoaW5wdXQpPVwiZmlsdGVyT3B0aW9ucygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5RG93bigkZXZlbnQpXCJcbiAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1166,6 +1166,11 @@ class CpsMenuComponent {
1166
1166
  }
1167
1167
  align() {
1168
1168
  var _a, _b, _c, _d, _e;
1169
+ if (!this.target.isConnected) {
1170
+ this.hide();
1171
+ this._destroy();
1172
+ return;
1173
+ }
1169
1174
  if (this.autoZIndex) {
1170
1175
  ZIndexUtils.set('overlay', this.container, this.baseZIndex + this.config.zIndex.overlay);
1171
1176
  }
@@ -1297,7 +1302,7 @@ class CpsMenuComponent {
1297
1302
  this.unbindDocumentResizeListener();
1298
1303
  this.unbindScrollListener();
1299
1304
  }
1300
- ngOnDestroy() {
1305
+ _destroy() {
1301
1306
  var _a, _b;
1302
1307
  if (this.scrollHandler) {
1303
1308
  this.scrollHandler.destroy();
@@ -1317,6 +1322,9 @@ class CpsMenuComponent {
1317
1322
  (_a = this.overlaySubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
1318
1323
  (_b = this.targetResizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
1319
1324
  }
1325
+ ngOnDestroy() {
1326
+ this._destroy();
1327
+ }
1320
1328
  }
1321
1329
  CpsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsMenuComponent, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i4.PrimeNGConfig }, { token: i4.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1322
1330
  CpsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsMenuComponent, isStandalone: true, selector: "cps-menu", inputs: { header: "header", items: "items", withArrow: "withArrow", compressed: "compressed", focusOnShow: "focusOnShow", persistent: "persistent", containerClass: "containerClass", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { menuShown: "menuShown", menuHidden: "menuHidden", beforeMenuHidden: "beforeMenuHidden", contentClicked: "contentClicked" }, ngImport: i0, template: "<div\n *ngIf=\"render\"\n class=\"cps-menu-container\"\n [ngClass]=\"{ 'cps-menu-no-arrow': !withArrow }\"\n [class]=\"containerClass\"\n (mousedown)=\"onOverlayClick($event)\"\n [@animation]=\"{\n value: overlayVisible ? 'open' : 'close',\n params: {\n showTransitionParams: showTransitionOptions,\n hideTransitionParams: hideTransitionOptions\n }\n }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\">\n <div (mousedown)=\"onContentClick()\" (touchstart)=\"onContentClick()\">\n <ng-container *ngIf=\"items.length < 1\">\n <ng-content></ng-content>\n </ng-container>\n <div\n *ngIf=\"items.length > 0\"\n class=\"cps-menu-content\"\n [ngClass]=\"{ 'cps-menu-content-compressed': compressed }\">\n <div *ngIf=\"header && !compressed\" class=\"cps-menu-header\">\n {{ header }}\n </div>\n\n <ng-container *ngFor=\"let item of items; let i = index\">\n <a\n *ngIf=\"!item.url\"\n (click)=\"onItemClick($event, item)\"\n [ngClass]=\"itemsClasses[i]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </a>\n <a\n *ngIf=\"item.url && item.url.startsWith('/')\"\n (click)=\"onItemClick($event, item)\"\n [routerLink]=\"item.url\"\n [target]=\"item.target\"\n [ngClass]=\"itemsClasses[i]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </a>\n <a\n *ngIf=\"item.url && !item.url.startsWith('/')\"\n (click)=\"onItemClick($event, item)\"\n [href]=\"item.url\"\n [attr.target]=\"item.target\"\n [ngClass]=\"itemsClasses[i]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </a>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #itemTemplate let-item=\"item\">\n <div class=\"cps-menu-item-icon\" *ngIf=\"withIcons\">\n <cps-icon\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.disabled ? 'text-light' : 'text-dark'\"\n [size]=\"compressed ? 'small' : 'normal'\"></cps-icon>\n </div>\n <div class=\"cps-menu-item-content\">\n <span class=\"cps-menu-item-content-title\">{{ item.title }}</span>\n <span *ngIf=\"item.desc && !compressed\" class=\"cps-menu-item-content-desc\">{{\n item.desc\n }}</span>\n </div>\n</ng-template>\n", styles: [".cps-menu-container{background:#ffffff;border:0 none;box-shadow:0 1px 3px #0000004d;position:absolute;margin-top:14px;top:0;left:0;font-family:Source Sans Pro,sans-serif}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px;border:solid transparent;border-color:#fff0;border-bottom-color:var(--cps-color-line-light)}.cps-menu-container:not(.cps-menu-no-arrow):after,.cps-menu-container:not(.cps-menu-no-arrow):before{bottom:100%;left:var(--overlayArrowLeft, 12);content:\" \";height:0;width:0;position:absolute;pointer-events:none}.cps-menu-container .cps-menu-content{padding:.75rem}.cps-menu-container .cps-menu-content{font-family:Source Sans Pro,sans-serif;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.cps-menu-container .cps-menu-content .cps-menu-header{display:flex;align-items:center;min-height:50px;padding-bottom:8px;font-weight:600;color:var(--cps-color-text-dark);cursor:default}.cps-menu-container .cps-menu-content .cps-menu-item{text-decoration:unset;display:flex;align-items:center;padding:8px 48px 8px 0;border-top:1px solid rgba(0,0,0,.1215686275);cursor:pointer;min-height:58px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon{width:48px;align-items:center;display:flex}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-icon cps-icon{margin-left:8px}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content{display:flex;flex-direction:column}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:600;font-size:15px;line-height:150%;color:var(--cps-color-text-dark)}.cps-menu-container .cps-menu-content .cps-menu-item .cps-menu-item-content .cps-menu-item-content-desc{font-size:12px;line-height:150%;color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled{pointer-events:none}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-text-light)}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-disabled .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-lightest)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover{background:#f8f4f5}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-calm)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):hover .cps-menu-item-content .cps-menu-item-content-desc{color:var(--cps-color-text-mild)}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):not(.cps-menu-item-compressed):hover .cps-menu-item-icon cps-icon i{color:var(--cps-color-calm)!important}.cps-menu-container .cps-menu-content .cps-menu-item:not(.cps-menu-item-disabled):active{background:#f1eaec}.cps-menu-container .cps-menu-content .cps-menu-item.cps-menu-item-first{border-top:none}.cps-menu-container .cps-menu-content.cps-menu-content-compressed{padding:0}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item{padding:0 16px;min-height:40px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-icon{width:36px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item .cps-menu-item-content .cps-menu-item-content-title{font-weight:500}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item.cps-menu-item-compressed.cps-menu-item-compressed-with-icons{padding:0 26px 0 16px}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-icon cps-icon i{color:var(--cps-color-prepared)!important}.cps-menu-container .cps-menu-content.cps-menu-content-compressed .cps-menu-item:not(.cps-menu-item-disabled) .cps-menu-item-content .cps-menu-item-content-title{color:var(--cps-color-prepared)}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px;border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.cps-menu-container-flipped{margin-top:0;margin-bottom:10px}.cps-menu-container:not(.cps-menu-no-arrow):after{border-width:12px;margin-left:-12px}.cps-menu-container:not(.cps-menu-no-arrow):before{border-width:14px;margin-left:-14px}.cps-menu-container-flipped:not(.cps-menu-no-arrow):after,.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{bottom:auto;top:100%}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):after{border-bottom-color:transparent}.cps-menu-container.cps-menu-container-flipped:not(.cps-menu-no-arrow):before{border-bottom-color:transparent}.cps-menu-no-arrow{margin-top:0;margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], animations: [
@@ -2578,8 +2586,10 @@ class CpsAutocompleteComponent {
2578
2586
  onBoxClick() {
2579
2587
  if (!this.multiple) {
2580
2588
  this.activeSingle = true;
2581
- this.inputText = this._getValueLabel();
2582
- this.filteredOptions = this.options;
2589
+ if (!this.inputText)
2590
+ this.inputText = this._getValueLabel();
2591
+ if (!this.isOpened)
2592
+ this.filteredOptions = this.options;
2583
2593
  }
2584
2594
  this.focus();
2585
2595
  this._dehighlightOption();
@@ -2991,8 +3001,10 @@ class CpsTreeAutocompleteComponent extends BaseTreeDropdownComponent {
2991
3001
  onBoxClick() {
2992
3002
  if (!this.multiple) {
2993
3003
  this.activeSingle = true;
2994
- this.inputText = this._getValueLabel();
2995
- this.treeList.resetFilter();
3004
+ if (!this.inputText)
3005
+ this.inputText = this._getValueLabel();
3006
+ if (!this.isOpened)
3007
+ this.treeList.resetFilter();
2996
3008
  }
2997
3009
  this.focus();
2998
3010
  this.optionFocused = false;