@trudb/tru-common-lib 0.0.523 → 0.0.525

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.
@@ -12,6 +12,12 @@ export class TruMatSelectPanel {
12
12
  if (this.documentMouseUpEventFn)
13
13
  this.documentMouseUpEventFn();
14
14
  };
15
+ this.getTextWidth = (element, text) => {
16
+ const canvas = document.createElement('canvas');
17
+ const context = canvas.getContext('2d');
18
+ context.font = getComputedStyle(element).font;
19
+ return context.measureText(text).width;
20
+ };
15
21
  }
16
22
  ngOnInit() {
17
23
  this.select.openedChange.subscribe(isOpen => {
@@ -26,11 +32,11 @@ export class TruMatSelectPanel {
26
32
  let optionSpans = panelElement.querySelectorAll('span');
27
33
  let maxWidth = 0;
28
34
  optionSpans.forEach((optionSpan) => {
29
- let currentWidth = parseInt(optionSpan.width, 10);
35
+ let currentWidth = this.getTextWidth(optionSpan, optionSpan.innerText);
30
36
  if (currentWidth > maxWidth)
31
37
  maxWidth = currentWidth;
32
38
  });
33
- panelParentElement.style.minWidth = (maxWidth + 60) + 'px';
39
+ panelParentElement.style.minWidth = (maxWidth + 85) + 'px';
34
40
  this.documentMouseUpEventFn = this.renderer.listen(document, 'mouseup', (event) => {
35
41
  if (event.target !== this.select.panel.nativeElement && event.button !== 2) {
36
42
  this.removeListeners();
@@ -57,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
57
63
  selector: '[tru-mat-select-panel]'
58
64
  }]
59
65
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.MatSelect }, { type: i2.TruUtil }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW1hdC1zZWxlY3QtcGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvc2VsZWN0LXBhbmVsL3RydS1tYXQtc2VsZWN0LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxRQUFtQixFQUNuQixNQUFpQixFQUNqQixJQUFhO1FBRmIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVM7UUFFdkIsMkJBQXNCLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLHNCQUFzQjtnQkFDN0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFBO0lBUDBCLENBQUM7SUFTNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ25ELElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDcEUsSUFBSSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2dCQUNoSCxJQUFJLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0Usa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ3hDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUN2RCwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFFbkQsSUFBSSxXQUFXLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtvQkFDdEMsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2xELElBQUksWUFBWSxHQUFHLFFBQVE7d0JBQ3pCLFFBQVEsR0FBRyxZQUFZLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO2dCQUVILGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUUzRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtvQkFDNUYsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDMUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ3RCLENBQUMsQ0FBQyxDQUFDO3FCQUNKO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs4R0FwRFUsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IGZvckVhY2gsIG1heCB9IGZyb20gXCJ1bmRlcnNjb3JlXCI7XHJcbmltcG9ydCB7IFRydVV0aWwgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdHJ1LXV0aWxcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RydS1tYXQtc2VsZWN0LXBhbmVsXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydU1hdFNlbGVjdFBhbmVsIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIHNlbGVjdDogTWF0U2VsZWN0LFxyXG4gICAgcHJpdmF0ZSB1dGlsOiBUcnVVdGlsKSB7IH1cclxuXHJcbiAgZG9jdW1lbnRNb3VzZVVwRXZlbnRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5kb2N1bWVudE1vdXNlVXBFdmVudEZuKVxyXG4gICAgICB0aGlzLmRvY3VtZW50TW91c2VVcEV2ZW50Rm4oKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZWxlY3Qub3BlbmVkQ2hhbmdlLnN1YnNjcmliZShpc09wZW4gPT4ge1xyXG4gICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgbGV0IHBhbmVsRWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHBhbmVsUGFyZW50RWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBsZXQgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudCA9IHRoaXMudXRpbC5maW5kQ2xvc2VzdEFuY2VzdG9yQnlDbGFzcyhwYW5lbEVsZW1lbnQsICcuY2RrLW92ZXJsYXktY29udGFpbmVyJyk7XHJcbiAgICAgICAgbGV0IHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudCA9IHBhbmVsT3ZlcmxheUNvbnRhaW5lckVsZW1lbnQuY2hpbGROb2Rlc1swXTtcclxuICAgICAgICBwYW5lbFBhcmVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAnYXV0byc7XHJcbiAgICAgICAgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdzdGF0aWMnO1xyXG4gICAgICAgIHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cclxuICAgICAgICBsZXQgb3B0aW9uU3BhbnMgPSBwYW5lbEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgb3B0aW9uU3BhbnMuZm9yRWFjaCgob3B0aW9uU3BhbjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgY3VycmVudFdpZHRoID0gcGFyc2VJbnQob3B0aW9uU3Bhbi53aWR0aCwgMTApO1xyXG4gICAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCA+IG1heFdpZHRoKVxyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGN1cnJlbnRXaWR0aDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcGFuZWxQYXJlbnRFbGVtZW50LnN0eWxlLm1pbldpZHRoID0gKG1heFdpZHRoICsgNjApICsgJ3B4JztcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudE1vdXNlVXBFdmVudEZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZG9jdW1lbnQsICdtb3VzZXVwJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLnNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50ICYmIGV2ZW50LmJ1dHRvbiAhPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdC5jbG9zZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gIH1cclxufVxyXG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW1hdC1zZWxlY3QtcGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvc2VsZWN0LXBhbmVsL3RydS1tYXQtc2VsZWN0LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxRQUFtQixFQUNuQixNQUFpQixFQUNqQixJQUFhO1FBRmIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVM7UUFFdkIsMkJBQXNCLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLHNCQUFzQjtnQkFDN0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFBO1FBRU8saUJBQVksR0FBRyxDQUFDLE9BQW9CLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDNUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBNkIsQ0FBQztZQUVwRSxPQUFPLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztZQUU5QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pDLENBQUMsQ0FBQTtJQWhCMEIsQ0FBQztJQWtCNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ25ELElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDcEUsSUFBSSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2dCQUNoSCxJQUFJLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0Usa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ3hDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUN2RCwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFFbkQsSUFBSSxXQUFXLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUF1QixFQUFFLEVBQUU7b0JBQzlDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDdkUsSUFBSSxZQUFZLEdBQUcsUUFBUTt3QkFDekIsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBRTNELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO29CQUM1RixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUMxRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdEIsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzhHQTdEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHsgZm9yRWFjaCwgbWF4IH0gZnJvbSBcInVuZGVyc2NvcmVcIjtcclxuaW1wb3J0IHsgVHJ1VXRpbCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cnUtdXRpbFwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdHJ1LW1hdC1zZWxlY3QtcGFuZWxdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1TWF0U2VsZWN0UGFuZWwgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgc2VsZWN0OiBNYXRTZWxlY3QsXHJcbiAgICBwcml2YXRlIHV0aWw6IFRydVV0aWwpIHsgfVxyXG5cclxuICBkb2N1bWVudE1vdXNlVXBFdmVudEZuOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xyXG5cclxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycyA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLmRvY3VtZW50TW91c2VVcEV2ZW50Rm4pXHJcbiAgICAgIHRoaXMuZG9jdW1lbnRNb3VzZVVwRXZlbnRGbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUZXh0V2lkdGggPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykgYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xyXG5cclxuICAgIGNvbnRleHQuZm9udCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZm9udDtcclxuXHJcbiAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dCh0ZXh0KS53aWR0aDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZWxlY3Qub3BlbmVkQ2hhbmdlLnN1YnNjcmliZShpc09wZW4gPT4ge1xyXG4gICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgbGV0IHBhbmVsRWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHBhbmVsUGFyZW50RWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBsZXQgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudCA9IHRoaXMudXRpbC5maW5kQ2xvc2VzdEFuY2VzdG9yQnlDbGFzcyhwYW5lbEVsZW1lbnQsICcuY2RrLW92ZXJsYXktY29udGFpbmVyJyk7XHJcbiAgICAgICAgbGV0IHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudCA9IHBhbmVsT3ZlcmxheUNvbnRhaW5lckVsZW1lbnQuY2hpbGROb2Rlc1swXTtcclxuICAgICAgICBwYW5lbFBhcmVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAnYXV0byc7XHJcbiAgICAgICAgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdzdGF0aWMnO1xyXG4gICAgICAgIHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cclxuICAgICAgICBsZXQgb3B0aW9uU3BhbnMgPSBwYW5lbEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgb3B0aW9uU3BhbnMuZm9yRWFjaCgob3B0aW9uU3BhbjogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGxldCBjdXJyZW50V2lkdGggPSB0aGlzLmdldFRleHRXaWR0aChvcHRpb25TcGFuLCBvcHRpb25TcGFuLmlubmVyVGV4dCk7XHJcbiAgICAgICAgICBpZiAoY3VycmVudFdpZHRoID4gbWF4V2lkdGgpXHJcbiAgICAgICAgICAgIG1heFdpZHRoID0gY3VycmVudFdpZHRoO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBwYW5lbFBhcmVudEVsZW1lbnQuc3R5bGUubWluV2lkdGggPSAobWF4V2lkdGggKyA4NSkgKyAncHgnO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VVcEV2ZW50Rm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihkb2N1bWVudCwgJ21vdXNldXAnLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQgJiYgZXZlbnQuYnV0dG9uICE9PSAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0LmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2546,6 +2546,12 @@ class TruMatSelectPanel {
2546
2546
  if (this.documentMouseUpEventFn)
2547
2547
  this.documentMouseUpEventFn();
2548
2548
  };
2549
+ this.getTextWidth = (element, text) => {
2550
+ const canvas = document.createElement('canvas');
2551
+ const context = canvas.getContext('2d');
2552
+ context.font = getComputedStyle(element).font;
2553
+ return context.measureText(text).width;
2554
+ };
2549
2555
  }
2550
2556
  ngOnInit() {
2551
2557
  this.select.openedChange.subscribe(isOpen => {
@@ -2560,11 +2566,11 @@ class TruMatSelectPanel {
2560
2566
  let optionSpans = panelElement.querySelectorAll('span');
2561
2567
  let maxWidth = 0;
2562
2568
  optionSpans.forEach((optionSpan) => {
2563
- let currentWidth = parseInt(optionSpan.width, 10);
2569
+ let currentWidth = this.getTextWidth(optionSpan, optionSpan.innerText);
2564
2570
  if (currentWidth > maxWidth)
2565
2571
  maxWidth = currentWidth;
2566
2572
  });
2567
- panelParentElement.style.minWidth = (maxWidth + 60) + 'px';
2573
+ panelParentElement.style.minWidth = (maxWidth + 85) + 'px';
2568
2574
  this.documentMouseUpEventFn = this.renderer.listen(document, 'mouseup', (event) => {
2569
2575
  if (event.target !== this.select.panel.nativeElement && event.button !== 2) {
2570
2576
  this.removeListeners();