@edm-sdui/sdui 1.0.26 → 1.0.27

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.
@@ -56,39 +56,49 @@ export class ProfileButtonComponent {
56
56
  return;
57
57
  }
58
58
  const lineHeightRatio = lineHeight / fontSize;
59
- const updateMetrics = (forceHeight) => {
60
- const targetHeight = lineHeightRatio * fontSize * maxLines;
61
- this.renderer.setStyle(labelElement, 'line-height', `${lineHeightRatio * fontSize}px`);
62
- this.renderer.setStyle(labelElement, 'max-height', `${targetHeight}px`);
63
- if (forceHeight) {
64
- this.renderer.setStyle(labelElement, 'height', `${targetHeight}px`);
65
- }
66
- else {
67
- this.renderer.removeStyle(labelElement, 'height');
59
+ const applyMetrics = () => {
60
+ const currentLineHeight = lineHeightRatio * fontSize;
61
+ const allowedHeight = currentLineHeight * maxLines;
62
+ this.renderer.setStyle(labelElement, 'line-height', `${currentLineHeight}px`);
63
+ this.renderer.setStyle(labelElement, 'max-height', `${allowedHeight}px`);
64
+ return allowedHeight;
65
+ };
66
+ const fits = (allowedHeight) => {
67
+ const EPSILON = 0.5;
68
+ const availableWidth = labelElement.clientWidth;
69
+ if (availableWidth <= 0) {
70
+ return true;
68
71
  }
69
- return targetHeight;
72
+ return (labelElement.scrollHeight <= allowedHeight + EPSILON &&
73
+ labelElement.scrollWidth <= availableWidth + EPSILON);
70
74
  };
71
- let targetHeight = updateMetrics(false);
72
- let constrained = false;
73
- while (labelElement.scrollHeight > targetHeight && fontSize > minFontSizePx) {
75
+ this.renderer.removeClass(labelElement, 'truncate');
76
+ this.renderer.removeStyle(labelElement, 'height');
77
+ let allowedHeight = applyMetrics();
78
+ let contentFits = fits(allowedHeight);
79
+ while (!contentFits && fontSize > minFontSizePx) {
74
80
  fontSize -= 1;
75
81
  this.renderer.setStyle(labelElement, 'font-size', `${fontSize}px`);
76
- targetHeight = updateMetrics(true);
77
- constrained = true;
82
+ allowedHeight = applyMetrics();
83
+ contentFits = fits(allowedHeight);
84
+ }
85
+ if (!contentFits) {
86
+ this.renderer.addClass(labelElement, 'truncate');
78
87
  }
79
- if (!constrained) {
80
- this.renderer.removeStyle(labelElement, 'height');
88
+ else {
89
+ this.renderer.removeClass(labelElement, 'truncate');
90
+ this.renderer.removeStyle(labelElement, 'max-height');
81
91
  }
82
92
  }
83
93
  getAssetPath(asset) {
84
94
  return assetMapping[asset];
85
95
  }
86
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: i1.FontSizeMappingService }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ProfileButtonComponent, isStandalone: false, selector: "edm-sdui-profile-button", viewQueries: [{ propertyName: "profileButtonElementRef", first: true, predicate: ["profileButtonElement"], descendants: true }, { propertyName: "profileButtonLabelElementRef", first: true, predicate: ["profileButtonLabelElement"], descendants: true }, { propertyName: "profileButtonImageElementRef", first: true, predicate: ["profileButtonImageElement"], descendants: true }], ngImport: i0, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;line-height:1.25;max-height:2.5em;overflow:hidden;text-overflow:ellipsis;display:block;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-hyphens:none;hyphens:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ProfileButtonComponent, isStandalone: false, selector: "edm-sdui-profile-button", viewQueries: [{ propertyName: "profileButtonElementRef", first: true, predicate: ["profileButtonElement"], descendants: true }, { propertyName: "profileButtonLabelElementRef", first: true, predicate: ["profileButtonLabelElement"], descendants: true }, { propertyName: "profileButtonImageElementRef", first: true, predicate: ["profileButtonImageElement"], descendants: true }], ngImport: i0, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;overflow:hidden;display:block}.profile-button .profile-label.truncate{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
88
98
  }
89
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, decorators: [{
90
100
  type: Component,
91
- args: [{ selector: 'edm-sdui-profile-button', standalone: false, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;line-height:1.25;max-height:2.5em;overflow:hidden;text-overflow:ellipsis;display:block;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-hyphens:none;hyphens:none}\n"] }]
101
+ args: [{ selector: 'edm-sdui-profile-button', standalone: false, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;overflow:hidden;display:block}.profile-button .profile-label.truncate{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis}\n"] }]
92
102
  }], ctorParameters: () => [{ type: undefined, decorators: [{
93
103
  type: Inject,
94
104
  args: ['uiComponent']
@@ -102,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
102
112
  type: ViewChild,
103
113
  args: ['profileButtonImageElement']
104
114
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9wcm9maWxlLWJ1dHRvbi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Byb2ZpbGUtYnV0dG9uL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNnQyxXQUF3QixFQUM5QyxRQUFtQixFQUNuQixzQkFBOEM7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO0lBQ3JELENBQUM7SUFFSixRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FB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QjtzQkFBekQsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBQ08sNEJBQTRCO3NCQUFuRSxTQUFTO3VCQUFDLDJCQUEyQjtnQkFDRSw0QkFBNEI7c0JBQW5FLFNBQVM7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpY29tcG9uZW50JztcbmltcG9ydCB7IFVJRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWllbGVtZW50JztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgRm9udFNpemVNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvZm9udC1zaXplLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBhc3NldE1hcHBpbmcgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9hc3NldC1tYXBwaW5nJztcbmltcG9ydCB7IFVJQXNzZXQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlhc3NldCc7XG5pbXBvcnQgeyBVSVRleHRTdHlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXRleHQtc3R5bGUnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRtLXNkdWktcHJvZmlsZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZmlsZS1idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3Byb2ZpbGVCdXR0b25FbGVtZW50JykgcHJvZmlsZUJ1dHRvbkVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUJ1dHRvbkxhYmVsRWxlbWVudCcpIHByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUJ1dHRvbkltYWdlRWxlbWVudCcpIHByb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCd1aUNvbXBvbmVudCcpIHB1YmxpYyB1aUNvbXBvbmVudDogVUlDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9udFNpemVNYXBwaW5nU2VydmljZTogRm9udFNpemVNYXBwaW5nU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudWlDb21wb25lbnQuZWxlbWVudCkge1xuICAgICAgdGhpcy5hcHBseUVsZW1lbnQodGhpcy51aUNvbXBvbmVudC5lbGVtZW50KTtcbiAgICAgIC8vIGVzcGVyYXIgbyBsYXlvdXQgcGFyYSBtZWRpciBvIHRleHRvIGrDoSBjb20gZXN0aWxvcyBhcGxpY2Fkb3NcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maXRMYWJlbFRvVHdvTGluZXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUVsZW1lbnQoZWxlbWVudDogVUlFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQudGV4dENvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1tlbGVtZW50LnRleHRDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLnByb2ZpbGVCdXR0b25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdjb2xvcicsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnRleHRTdHlsZSkge1xuICAgICAgY29uc3QgdGV4dFN0eWxlTWFwcGluZ0ZvbnRTaXplID0gdGhpcy5mb250U2l6ZU1hcHBpbmdTZXJ2aWNlLmdldE1hcHBpbmcoKTtcbiAgICAgIGNvbnN0IGZvbnRTaXplID0gdGV4dFN0eWxlTWFwcGluZ0ZvbnRTaXplW2VsZW1lbnQudGV4dFN0eWxlXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMucHJvZmlsZUJ1dHRvbkVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgIGZvbnRTaXplXG4gICAgICApO1xuICAgIH1cblxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIHRoaXMucHJvZmlsZUJ1dHRvbkxhYmVsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICB0aGlzLmZvbnRTaXplTWFwcGluZ1NlcnZpY2UuZ2V0TWFwcGluZygpW1VJVGV4dFN0eWxlLkNBUFRJT05fMl1cbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdjb2xvcicsXG4gICAgICBjb2xvck1hcHBpbmdbVUlDb2xvci5NQUlOMV1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXRMYWJlbFRvVHdvTGluZXMobWF4TGluZXMgPSAyLCBtaW5Gb250U2l6ZVB4ID0gMTApIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFsYWJlbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGxhYmVsRWxlbWVudCk7XG4gICAgbGV0IGZvbnRTaXplID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlcy5mb250U2l6ZSk7XG5cbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShmb250U2l6ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gY29tcHV0ZWRTdHlsZXMubGluZUhlaWdodCA9PT0gJ25vcm1hbCdcbiAgICAgID8gZm9udFNpemUgKiAxLjJcbiAgICAgIDogcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlcy5saW5lSGVpZ2h0KTtcblxuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGxpbmVIZWlnaHQpIHx8IGxpbmVIZWlnaHQgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVIZWlnaHRSYXRpbyA9IGxpbmVIZWlnaHQgLyBmb250U2l6ZTtcblxuICAgIGNvbnN0IHVwZGF0ZU1ldHJpY3MgPSAoZm9yY2VIZWlnaHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldEhlaWdodCA9IGxpbmVIZWlnaHRSYXRpbyAqIGZvbnRTaXplICogbWF4TGluZXM7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGxhYmVsRWxlbWVudCwgJ2xpbmUtaGVpZ2h0JywgYCR7bGluZUhlaWdodFJhdGlvICogZm9udFNpemV9cHhgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50LCAnbWF4LWhlaWdodCcsIGAke3RhcmdldEhlaWdodH1weGApO1xuICAgICAgaWYgKGZvcmNlSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGFyZ2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxhYmVsRWxlbWVudCwgJ2hlaWdodCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldEhlaWdodDtcbiAgICB9O1xuXG4gICAgbGV0IHRhcmdldEhlaWdodCA9IHVwZGF0ZU1ldHJpY3MoZmFsc2UpO1xuICAgIGxldCBjb25zdHJhaW5lZCA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKGxhYmVsRWxlbWVudC5zY3JvbGxIZWlnaHQgPiB0YXJnZXRIZWlnaHQgJiYgZm9udFNpemUgPiBtaW5Gb250U2l6ZVB4KSB7XG4gICAgICBmb250U2l6ZSAtPSAxO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShsYWJlbEVsZW1lbnQsICdmb250LXNpemUnLCBgJHtmb250U2l6ZX1weGApO1xuICAgICAgdGFyZ2V0SGVpZ2h0ID0gdXBkYXRlTWV0cmljcyh0cnVlKTtcbiAgICAgIGNvbnN0cmFpbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnN0cmFpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxhYmVsRWxlbWVudCwgJ2hlaWdodCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFzc2V0UGF0aChhc3NldDogVUlBc3NldCkge1xuICAgIHJldHVybiBhc3NldE1hcHBpbmdbYXNzZXRdO1xuICB9XG59XG4iLCI8YnV0dG9uICNwcm9maWxlQnV0dG9uRWxlbWVudCBbZWRtU2R1aVZpZXddPVwidWlDb21wb25lbnQuZWxlbWVudFwiIGNsYXNzPVwicHJvZmlsZS1idXR0b25cIiAqbmdJZj1cInVpQ29tcG9uZW50XCI+XG4gIDxpbWcgI3Byb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnQgKm5nSWY9XCJ1aUNvbXBvbmVudC5lbGVtZW50LmFzc2V0XCIgW3NyY109XCJnZXRBc3NldFBhdGgodWlDb21wb25lbnQuZWxlbWVudC5hc3NldClcIiBhbHQ9XCJQcm9maWxlXCIgY2xhc3M9XCJwcm9maWxlLWltYWdlXCI+XG4gIDxzcGFuICNwcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50IGNsYXNzPVwicHJvZmlsZS1sYWJlbFwiPnt7IHVpQ29tcG9uZW50LmVsZW1lbnQubGFiZWwgfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9wcm9maWxlLWJ1dHRvbi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Byb2ZpbGUtYnV0dG9uL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNnQyxXQUF3QixFQUM5QyxRQUFtQixFQUNuQixzQkFBOEM7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO0lBQ3JELENBQUM7SUFFSixRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLCtEQUErRDtZQUMvRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsT0FBa0I7UUFDckMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsRUFDMUMsT0FBTyxFQUNQLEtBQUssQ0FDTixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsRUFDMUMsV0FBVyxFQUNYLFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQztRQUdELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxFQUMvQyxXQUFXLEVBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FDaEUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxFQUMvQyxPQUFPLEVBQ1AsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxFQUFFO1FBQ3pELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFDdkQsQ0FBQyxDQUFDLFFBQVEsR0FBRyxHQUFHO1lBQ2hCLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFFOUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUNyRCxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsR0FBRyxRQUFRLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixJQUFJLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsYUFBYSxJQUFJLENBQUMsQ0FBQztZQUN6RSxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxDQUFDLGFBQXFCLEVBQUUsRUFBRTtZQUNyQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDcEIsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUVoRCxJQUFJLGNBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsT0FBTyxDQUNMLFlBQVksQ0FBQyxZQUFZLElBQUksYUFBYSxHQUFHLE9BQU87Z0JBQ3BELFlBQVksQ0FBQyxXQUFXLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FDckQsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbEQsSUFBSSxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sQ0FBQyxXQUFXLElBQUksUUFBUSxHQUFHLGFBQWEsRUFBRSxDQUFDO1lBQ2hELFFBQVEsSUFBSSxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNuRSxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDL0IsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6QixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQS9IVSxzQkFBc0Isa0JBTXZCLGFBQWE7bUdBTlosc0JBQXNCLDZjQ3hCbkMsdVlBSUE7OzRGRG9CYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLEtBQUs7OzBCQVFkLE1BQU07MkJBQUMsYUFBYTtzR0FMWSx1QkFBdUI7c0JBQXpELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNPLDRCQUE0QjtzQkFBbkUsU0FBUzt1QkFBQywyQkFBMkI7Z0JBQ0UsNEJBQTRCO3NCQUFuRSxTQUFTO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aWNvbXBvbmVudCc7XG5pbXBvcnQgeyBVSUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpZWxlbWVudCc7XG5pbXBvcnQgeyBjb2xvck1hcHBpbmcgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9jb2xvci1tYXBwaW5nJztcbmltcG9ydCB7IEZvbnRTaXplTWFwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2ZvbnQtc2l6ZS1tYXBwaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXNzZXRNYXBwaW5nIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL21hcHBpbmcvYXNzZXQtbWFwcGluZyc7XG5pbXBvcnQgeyBVSUFzc2V0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL2VudW1zL3VpYXNzZXQnO1xuaW1wb3J0IHsgVUlUZXh0U3R5bGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvZW51bXMvdWl0ZXh0LXN0eWxlJztcbmltcG9ydCB7IFVJQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvZW51bXMvdWljb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VkbS1zZHVpLXByb2ZpbGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdwcm9maWxlQnV0dG9uRWxlbWVudCcpIHByb2ZpbGVCdXR0b25FbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3Byb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnQnKSBwcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3Byb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnQnKSBwcm9maWxlQnV0dG9uSW1hZ2VFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgndWlDb21wb25lbnQnKSBwdWJsaWMgdWlDb21wb25lbnQ6IFVJQ29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZvbnRTaXplTWFwcGluZ1NlcnZpY2U6IEZvbnRTaXplTWFwcGluZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVpQ29tcG9uZW50LmVsZW1lbnQpIHtcbiAgICAgIHRoaXMuYXBwbHlFbGVtZW50KHRoaXMudWlDb21wb25lbnQuZWxlbWVudCk7XG4gICAgICAvLyBlc3BlcmFyIG8gbGF5b3V0IHBhcmEgbWVkaXIgbyB0ZXh0byBqw6EgY29tIGVzdGlsb3MgYXBsaWNhZG9zXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZml0TGFiZWxUb1R3b0xpbmVzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlFbGVtZW50KGVsZW1lbnQ6IFVJRWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50LnRleHRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbZWxlbWVudC50ZXh0Q29sb3JdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5wcm9maWxlQnV0dG9uRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnY29sb3InLFxuICAgICAgICBjb2xvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC50ZXh0U3R5bGUpIHtcbiAgICAgIGNvbnN0IHRleHRTdHlsZU1hcHBpbmdGb250U2l6ZSA9IHRoaXMuZm9udFNpemVNYXBwaW5nU2VydmljZS5nZXRNYXBwaW5nKCk7XG4gICAgICBjb25zdCBmb250U2l6ZSA9IHRleHRTdHlsZU1hcHBpbmdGb250U2l6ZVtlbGVtZW50LnRleHRTdHlsZV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLnByb2ZpbGVCdXR0b25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdmb250LXNpemUnLFxuICAgICAgICBmb250U2l6ZVxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdmb250LXNpemUnLFxuICAgICAgdGhpcy5mb250U2l6ZU1hcHBpbmdTZXJ2aWNlLmdldE1hcHBpbmcoKVtVSVRleHRTdHlsZS5DQVBUSU9OXzJdXG4gICAgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5wcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnY29sb3InLFxuICAgICAgY29sb3JNYXBwaW5nW1VJQ29sb3IuTUFJTjFdXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZml0TGFiZWxUb1R3b0xpbmVzKG1heExpbmVzID0gMiwgbWluRm9udFNpemVQeCA9IDEwKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy5wcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghbGFiZWxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShsYWJlbEVsZW1lbnQpO1xuICAgIGxldCBmb250U2l6ZSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZXMuZm9udFNpemUpO1xuXG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoZm9udFNpemUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGluZUhlaWdodCA9IGNvbXB1dGVkU3R5bGVzLmxpbmVIZWlnaHQgPT09ICdub3JtYWwnXG4gICAgICA/IGZvbnRTaXplICogMS4yXG4gICAgICA6IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZXMubGluZUhlaWdodCk7XG5cbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShsaW5lSGVpZ2h0KSB8fCBsaW5lSGVpZ2h0IDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSGVpZ2h0UmF0aW8gPSBsaW5lSGVpZ2h0IC8gZm9udFNpemU7XG5cbiAgICBjb25zdCBhcHBseU1ldHJpY3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50TGluZUhlaWdodCA9IGxpbmVIZWlnaHRSYXRpbyAqIGZvbnRTaXplO1xuICAgICAgY29uc3QgYWxsb3dlZEhlaWdodCA9IGN1cnJlbnRMaW5lSGVpZ2h0ICogbWF4TGluZXM7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGxhYmVsRWxlbWVudCwgJ2xpbmUtaGVpZ2h0JywgYCR7Y3VycmVudExpbmVIZWlnaHR9cHhgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50LCAnbWF4LWhlaWdodCcsIGAke2FsbG93ZWRIZWlnaHR9cHhgKTtcbiAgICAgIHJldHVybiBhbGxvd2VkSGVpZ2h0O1xuICAgIH07XG5cbiAgICBjb25zdCBmaXRzID0gKGFsbG93ZWRIZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgRVBTSUxPTiA9IDAuNTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gbGFiZWxFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICBpZiAoYXZhaWxhYmxlV2lkdGggPD0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbGFiZWxFbGVtZW50LnNjcm9sbEhlaWdodCA8PSBhbGxvd2VkSGVpZ2h0ICsgRVBTSUxPTiAmJlxuICAgICAgICBsYWJlbEVsZW1lbnQuc2Nyb2xsV2lkdGggPD0gYXZhaWxhYmxlV2lkdGggKyBFUFNJTE9OXG4gICAgICApO1xuICAgIH07XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGxhYmVsRWxlbWVudCwgJ3RydW5jYXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShsYWJlbEVsZW1lbnQsICdoZWlnaHQnKTtcblxuICAgIGxldCBhbGxvd2VkSGVpZ2h0ID0gYXBwbHlNZXRyaWNzKCk7XG4gICAgbGV0IGNvbnRlbnRGaXRzID0gZml0cyhhbGxvd2VkSGVpZ2h0KTtcblxuICAgIHdoaWxlICghY29udGVudEZpdHMgJiYgZm9udFNpemUgPiBtaW5Gb250U2l6ZVB4KSB7XG4gICAgICBmb250U2l6ZSAtPSAxO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShsYWJlbEVsZW1lbnQsICdmb250LXNpemUnLCBgJHtmb250U2l6ZX1weGApO1xuICAgICAgYWxsb3dlZEhlaWdodCA9IGFwcGx5TWV0cmljcygpO1xuICAgICAgY29udGVudEZpdHMgPSBmaXRzKGFsbG93ZWRIZWlnaHQpO1xuICAgIH1cblxuICAgIGlmICghY29udGVudEZpdHMpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobGFiZWxFbGVtZW50LCAndHJ1bmNhdGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhsYWJlbEVsZW1lbnQsICd0cnVuY2F0ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShsYWJlbEVsZW1lbnQsICdtYXgtaGVpZ2h0Jyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXNzZXRQYXRoKGFzc2V0OiBVSUFzc2V0KSB7XG4gICAgcmV0dXJuIGFzc2V0TWFwcGluZ1thc3NldF07XG4gIH1cbn1cbiIsIjxidXR0b24gI3Byb2ZpbGVCdXR0b25FbGVtZW50IFtlZG1TZHVpVmlld109XCJ1aUNvbXBvbmVudC5lbGVtZW50XCIgY2xhc3M9XCJwcm9maWxlLWJ1dHRvblwiICpuZ0lmPVwidWlDb21wb25lbnRcIj5cbiAgPGltZyAjcHJvZmlsZUJ1dHRvbkltYWdlRWxlbWVudCAqbmdJZj1cInVpQ29tcG9uZW50LmVsZW1lbnQuYXNzZXRcIiBbc3JjXT1cImdldEFzc2V0UGF0aCh1aUNvbXBvbmVudC5lbGVtZW50LmFzc2V0KVwiIGFsdD1cIlByb2ZpbGVcIiBjbGFzcz1cInByb2ZpbGUtaW1hZ2VcIj5cbiAgPHNwYW4gI3Byb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnQgY2xhc3M9XCJwcm9maWxlLWxhYmVsXCI+e3sgdWlDb21wb25lbnQuZWxlbWVudC5sYWJlbCB9fTwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
@@ -3184,39 +3184,49 @@ class ProfileButtonComponent {
3184
3184
  return;
3185
3185
  }
3186
3186
  const lineHeightRatio = lineHeight / fontSize;
3187
- const updateMetrics = (forceHeight) => {
3188
- const targetHeight = lineHeightRatio * fontSize * maxLines;
3189
- this.renderer.setStyle(labelElement, 'line-height', `${lineHeightRatio * fontSize}px`);
3190
- this.renderer.setStyle(labelElement, 'max-height', `${targetHeight}px`);
3191
- if (forceHeight) {
3192
- this.renderer.setStyle(labelElement, 'height', `${targetHeight}px`);
3193
- }
3194
- else {
3195
- this.renderer.removeStyle(labelElement, 'height');
3187
+ const applyMetrics = () => {
3188
+ const currentLineHeight = lineHeightRatio * fontSize;
3189
+ const allowedHeight = currentLineHeight * maxLines;
3190
+ this.renderer.setStyle(labelElement, 'line-height', `${currentLineHeight}px`);
3191
+ this.renderer.setStyle(labelElement, 'max-height', `${allowedHeight}px`);
3192
+ return allowedHeight;
3193
+ };
3194
+ const fits = (allowedHeight) => {
3195
+ const EPSILON = 0.5;
3196
+ const availableWidth = labelElement.clientWidth;
3197
+ if (availableWidth <= 0) {
3198
+ return true;
3196
3199
  }
3197
- return targetHeight;
3200
+ return (labelElement.scrollHeight <= allowedHeight + EPSILON &&
3201
+ labelElement.scrollWidth <= availableWidth + EPSILON);
3198
3202
  };
3199
- let targetHeight = updateMetrics(false);
3200
- let constrained = false;
3201
- while (labelElement.scrollHeight > targetHeight && fontSize > minFontSizePx) {
3203
+ this.renderer.removeClass(labelElement, 'truncate');
3204
+ this.renderer.removeStyle(labelElement, 'height');
3205
+ let allowedHeight = applyMetrics();
3206
+ let contentFits = fits(allowedHeight);
3207
+ while (!contentFits && fontSize > minFontSizePx) {
3202
3208
  fontSize -= 1;
3203
3209
  this.renderer.setStyle(labelElement, 'font-size', `${fontSize}px`);
3204
- targetHeight = updateMetrics(true);
3205
- constrained = true;
3210
+ allowedHeight = applyMetrics();
3211
+ contentFits = fits(allowedHeight);
3206
3212
  }
3207
- if (!constrained) {
3208
- this.renderer.removeStyle(labelElement, 'height');
3213
+ if (!contentFits) {
3214
+ this.renderer.addClass(labelElement, 'truncate');
3215
+ }
3216
+ else {
3217
+ this.renderer.removeClass(labelElement, 'truncate');
3218
+ this.renderer.removeStyle(labelElement, 'max-height');
3209
3219
  }
3210
3220
  }
3211
3221
  getAssetPath(asset) {
3212
3222
  return assetMapping[asset];
3213
3223
  }
3214
3224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: FontSizeMappingService }], target: i0.ɵɵFactoryTarget.Component }); }
3215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ProfileButtonComponent, isStandalone: false, selector: "edm-sdui-profile-button", viewQueries: [{ propertyName: "profileButtonElementRef", first: true, predicate: ["profileButtonElement"], descendants: true }, { propertyName: "profileButtonLabelElementRef", first: true, predicate: ["profileButtonLabelElement"], descendants: true }, { propertyName: "profileButtonImageElementRef", first: true, predicate: ["profileButtonImageElement"], descendants: true }], ngImport: i0, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;line-height:1.25;max-height:2.5em;overflow:hidden;text-overflow:ellipsis;display:block;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-hyphens:none;hyphens:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
3225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ProfileButtonComponent, isStandalone: false, selector: "edm-sdui-profile-button", viewQueries: [{ propertyName: "profileButtonElementRef", first: true, predicate: ["profileButtonElement"], descendants: true }, { propertyName: "profileButtonLabelElementRef", first: true, predicate: ["profileButtonLabelElement"], descendants: true }, { propertyName: "profileButtonImageElementRef", first: true, predicate: ["profileButtonImageElement"], descendants: true }], ngImport: i0, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;overflow:hidden;display:block}.profile-button .profile-label.truncate{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
3216
3226
  }
3217
3227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, decorators: [{
3218
3228
  type: Component,
3219
- args: [{ selector: 'edm-sdui-profile-button', standalone: false, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;line-height:1.25;max-height:2.5em;overflow:hidden;text-overflow:ellipsis;display:block;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-hyphens:none;hyphens:none}\n"] }]
3229
+ args: [{ selector: 'edm-sdui-profile-button', standalone: false, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:left;overflow:hidden;display:block}.profile-button .profile-label.truncate{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis}\n"] }]
3220
3230
  }], ctorParameters: () => [{ type: undefined, decorators: [{
3221
3231
  type: Inject,
3222
3232
  args: ['uiComponent']