@trudb/tru-common-lib 0.0.522 → 0.0.524

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 => {
@@ -23,6 +29,14 @@ export class TruMatSelectPanel {
23
29
  panelParentElement.style.width = 'auto';
24
30
  panelOverlayContainerElement.style.position = 'static';
25
31
  panelOverlayBackdropElement.style.display = 'none';
32
+ let optionSpans = panelElement.querySelectorAll('span');
33
+ let maxWidth = 0;
34
+ optionSpans.forEach((optionSpan) => {
35
+ let currentWidth = this.getTextWidth(optionSpan, optionSpan.innerText);
36
+ if (currentWidth > maxWidth)
37
+ maxWidth = currentWidth;
38
+ });
39
+ panelParentElement.style.minWidth = (maxWidth + 60) + 'px';
26
40
  this.documentMouseUpEventFn = this.renderer.listen(document, 'mouseup', (event) => {
27
41
  if (event.target !== this.select.panel.nativeElement && event.button !== 2) {
28
42
  this.removeListeners();
@@ -49,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
49
63
  selector: '[tru-mat-select-panel]'
50
64
  }]
51
65
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.MatSelect }, { type: i2.TruUtil }]; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW1hdC1zZWxlY3QtcGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvc2VsZWN0LXBhbmVsL3RydS1tYXQtc2VsZWN0LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzdELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxRQUFtQixFQUNuQixNQUFpQixFQUNqQixJQUFhO1FBRmIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVM7UUFFdkIsMkJBQXNCLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLHNCQUFzQjtnQkFDN0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFBO0lBUDBCLENBQUM7SUFTNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ25ELElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDcEUsSUFBSSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2dCQUNoSCxJQUFJLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0Usa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ3hDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUN2RCwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFFbkQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7b0JBQzVGLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7d0JBQzFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzt3QkFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUN0QixDQUFDLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUNJO2dCQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7OEdBMUNVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBUcnVVdGlsIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RydS11dGlsXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0cnUtbWF0LXNlbGVjdC1wYW5lbF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVNYXRTZWxlY3RQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBzZWxlY3Q6IE1hdFNlbGVjdCxcclxuICAgIHByaXZhdGUgdXRpbDogVHJ1VXRpbCkgeyB9XHJcblxyXG4gIGRvY3VtZW50TW91c2VVcEV2ZW50Rm46ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZG9jdW1lbnRNb3VzZVVwRXZlbnRGbilcclxuICAgICAgdGhpcy5kb2N1bWVudE1vdXNlVXBFdmVudEZuKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VsZWN0Lm9wZW5lZENoYW5nZS5zdWJzY3JpYmUoaXNPcGVuID0+IHtcclxuICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgIGxldCBwYW5lbEVsZW1lbnQgPSB0aGlzLnNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGxldCBwYW5lbFBhcmVudEVsZW1lbnQgPSB0aGlzLnNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgbGV0IHBhbmVsT3ZlcmxheUNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnV0aWwuZmluZENsb3Nlc3RBbmNlc3RvckJ5Q2xhc3MocGFuZWxFbGVtZW50LCAnLmNkay1vdmVybGF5LWNvbnRhaW5lcicpO1xyXG4gICAgICAgIGxldCBwYW5lbE92ZXJsYXlCYWNrZHJvcEVsZW1lbnQgPSBwYW5lbE92ZXJsYXlDb250YWluZXJFbGVtZW50LmNoaWxkTm9kZXNbMF07XHJcbiAgICAgICAgcGFuZWxQYXJlbnRFbGVtZW50LnN0eWxlLndpZHRoID0gJ2F1dG8nO1xyXG4gICAgICAgIHBhbmVsT3ZlcmxheUNvbnRhaW5lckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnc3RhdGljJztcclxuICAgICAgICBwYW5lbE92ZXJsYXlCYWNrZHJvcEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudE1vdXNlVXBFdmVudEZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZG9jdW1lbnQsICdtb3VzZXVwJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLnNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50ICYmIGV2ZW50LmJ1dHRvbiAhPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdC5jbG9zZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xyXG4gIH1cclxufVxyXG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW1hdC1zZWxlY3QtcGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvc2VsZWN0LXBhbmVsL3RydS1tYXQtc2VsZWN0LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDVSxRQUFtQixFQUNuQixNQUFpQixFQUNqQixJQUFhO1FBRmIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVM7UUFFdkIsMkJBQXNCLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLHNCQUFzQjtnQkFDN0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFBO1FBRU8saUJBQVksR0FBRyxDQUFDLE9BQW9CLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDNUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBNkIsQ0FBQztZQUVwRSxPQUFPLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztZQUU5QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pDLENBQUMsQ0FBQTtJQWhCMEIsQ0FBQztJQWtCNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ25ELElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDcEUsSUFBSSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2dCQUNoSCxJQUFJLDJCQUEyQixHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0Usa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ3hDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUN2RCwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFFbkQsSUFBSSxXQUFXLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUF1QixFQUFFLEVBQUU7b0JBQzlDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDdkUsSUFBSSxZQUFZLEdBQUcsUUFBUTt3QkFDekIsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBRTNELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO29CQUM1RixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUMxRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdEIsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzhHQTdEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHsgZm9yRWFjaCwgbWF4IH0gZnJvbSBcInVuZGVyc2NvcmVcIjtcclxuaW1wb3J0IHsgVHJ1VXRpbCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cnUtdXRpbFwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdHJ1LW1hdC1zZWxlY3QtcGFuZWxdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1TWF0U2VsZWN0UGFuZWwgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgc2VsZWN0OiBNYXRTZWxlY3QsXHJcbiAgICBwcml2YXRlIHV0aWw6IFRydVV0aWwpIHsgfVxyXG5cclxuICBkb2N1bWVudE1vdXNlVXBFdmVudEZuOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xyXG5cclxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycyA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLmRvY3VtZW50TW91c2VVcEV2ZW50Rm4pXHJcbiAgICAgIHRoaXMuZG9jdW1lbnRNb3VzZVVwRXZlbnRGbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUZXh0V2lkdGggPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykgYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xyXG5cclxuICAgIGNvbnRleHQuZm9udCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZm9udDtcclxuXHJcbiAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dCh0ZXh0KS53aWR0aDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZWxlY3Qub3BlbmVkQ2hhbmdlLnN1YnNjcmliZShpc09wZW4gPT4ge1xyXG4gICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgbGV0IHBhbmVsRWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHBhbmVsUGFyZW50RWxlbWVudCA9IHRoaXMuc2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBsZXQgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudCA9IHRoaXMudXRpbC5maW5kQ2xvc2VzdEFuY2VzdG9yQnlDbGFzcyhwYW5lbEVsZW1lbnQsICcuY2RrLW92ZXJsYXktY29udGFpbmVyJyk7XHJcbiAgICAgICAgbGV0IHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudCA9IHBhbmVsT3ZlcmxheUNvbnRhaW5lckVsZW1lbnQuY2hpbGROb2Rlc1swXTtcclxuICAgICAgICBwYW5lbFBhcmVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAnYXV0byc7XHJcbiAgICAgICAgcGFuZWxPdmVybGF5Q29udGFpbmVyRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdzdGF0aWMnO1xyXG4gICAgICAgIHBhbmVsT3ZlcmxheUJhY2tkcm9wRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cclxuICAgICAgICBsZXQgb3B0aW9uU3BhbnMgPSBwYW5lbEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgb3B0aW9uU3BhbnMuZm9yRWFjaCgob3B0aW9uU3BhbjogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGxldCBjdXJyZW50V2lkdGggPSB0aGlzLmdldFRleHRXaWR0aChvcHRpb25TcGFuLCBvcHRpb25TcGFuLmlubmVyVGV4dCk7XHJcbiAgICAgICAgICBpZiAoY3VycmVudFdpZHRoID4gbWF4V2lkdGgpXHJcbiAgICAgICAgICAgIG1heFdpZHRoID0gY3VycmVudFdpZHRoO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBwYW5lbFBhcmVudEVsZW1lbnQuc3R5bGUubWluV2lkdGggPSAobWF4V2lkdGggKyA2MCkgKyAncHgnO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50TW91c2VVcEV2ZW50Rm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihkb2N1bWVudCwgJ21vdXNldXAnLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+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 => {
@@ -2557,6 +2563,14 @@ class TruMatSelectPanel {
2557
2563
  panelParentElement.style.width = 'auto';
2558
2564
  panelOverlayContainerElement.style.position = 'static';
2559
2565
  panelOverlayBackdropElement.style.display = 'none';
2566
+ let optionSpans = panelElement.querySelectorAll('span');
2567
+ let maxWidth = 0;
2568
+ optionSpans.forEach((optionSpan) => {
2569
+ let currentWidth = this.getTextWidth(optionSpan, optionSpan.innerText);
2570
+ if (currentWidth > maxWidth)
2571
+ maxWidth = currentWidth;
2572
+ });
2573
+ panelParentElement.style.minWidth = (maxWidth + 60) + 'px';
2560
2574
  this.documentMouseUpEventFn = this.renderer.listen(document, 'mouseup', (event) => {
2561
2575
  if (event.target !== this.select.panel.nativeElement && event.button !== 2) {
2562
2576
  this.removeListeners();