@edm-sdui/sdui 1.0.25 → 1.0.26
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.
- package/esm2022/lib/components/uicomponent/profile-button/profile-button.component.mjs +49 -3
- package/fesm2022/edm-sdui-sdui.mjs +48 -2
- package/fesm2022/edm-sdui-sdui.mjs.map +1 -1
- package/lib/components/uicomponent/profile-button/profile-button.component.d.ts +1 -0
- package/lib/components/uicomponent/profile-button/profile-button.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,8 @@ export class ProfileButtonComponent {
|
|
|
19
19
|
ngAfterViewInit() {
|
|
20
20
|
if (this.uiComponent.element) {
|
|
21
21
|
this.applyElement(this.uiComponent.element);
|
|
22
|
+
// esperar o layout para medir o texto já com estilos aplicados
|
|
23
|
+
setTimeout(() => this.fitLabelToTwoLines(), 0);
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
applyElement(element) {
|
|
@@ -34,15 +36,59 @@ export class ProfileButtonComponent {
|
|
|
34
36
|
this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'font-size', this.fontSizeMappingService.getMapping()[UITextStyle.CAPTION_2]);
|
|
35
37
|
this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'color', colorMapping[UIColor.MAIN1]);
|
|
36
38
|
}
|
|
39
|
+
fitLabelToTwoLines(maxLines = 2, minFontSizePx = 10) {
|
|
40
|
+
if (typeof window === 'undefined') {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const labelElement = this.profileButtonLabelElementRef?.nativeElement;
|
|
44
|
+
if (!labelElement) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const computedStyles = window.getComputedStyle(labelElement);
|
|
48
|
+
let fontSize = parseFloat(computedStyles.fontSize);
|
|
49
|
+
if (!Number.isFinite(fontSize)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const lineHeight = computedStyles.lineHeight === 'normal'
|
|
53
|
+
? fontSize * 1.2
|
|
54
|
+
: parseFloat(computedStyles.lineHeight);
|
|
55
|
+
if (!Number.isFinite(lineHeight) || lineHeight <= 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
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');
|
|
68
|
+
}
|
|
69
|
+
return targetHeight;
|
|
70
|
+
};
|
|
71
|
+
let targetHeight = updateMetrics(false);
|
|
72
|
+
let constrained = false;
|
|
73
|
+
while (labelElement.scrollHeight > targetHeight && fontSize > minFontSizePx) {
|
|
74
|
+
fontSize -= 1;
|
|
75
|
+
this.renderer.setStyle(labelElement, 'font-size', `${fontSize}px`);
|
|
76
|
+
targetHeight = updateMetrics(true);
|
|
77
|
+
constrained = true;
|
|
78
|
+
}
|
|
79
|
+
if (!constrained) {
|
|
80
|
+
this.renderer.removeStyle(labelElement, 'height');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
37
83
|
getAssetPath(asset) {
|
|
38
84
|
return assetMapping[asset];
|
|
39
85
|
}
|
|
40
86
|
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 }); }
|
|
41
|
-
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{white-space:normal;word-break:
|
|
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"] }] }); }
|
|
42
88
|
}
|
|
43
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, decorators: [{
|
|
44
90
|
type: Component,
|
|
45
|
-
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{white-space:normal;word-break:
|
|
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"] }]
|
|
46
92
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
47
93
|
type: Inject,
|
|
48
94
|
args: ['uiComponent']
|
|
@@ -56,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
56
102
|
type: ViewChild,
|
|
57
103
|
args: ['profileButtonImageElement']
|
|
58
104
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9wcm9maWxlLWJ1dHRvbi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Byb2ZpbGUtYnV0dG9uL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNnQyxXQUF3QixFQUM5QyxRQUFtQixFQUNuQixzQkFBOEM7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO0lBQ3JELENBQUM7SUFFSixRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWtCO1FBQ3JDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQzFDLE9BQU8sRUFDUCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxRSxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQzFDLFdBQVcsRUFDWCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFHRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsRUFDL0MsV0FBVyxFQUNYLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsRUFDL0MsT0FBTyxFQUNQLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUVoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzsrR0F0RFUsc0JBQXNCLGtCQU12QixhQUFhO21HQU5aLHNCQUFzQiw2Y0N4Qm5DLHVZQUlBOzs0RkRvQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixLQUFLOzswQkFRZCxNQUFNOzJCQUFDLGFBQWE7c0dBTFksdUJBQXVCO3NCQUF6RCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFDTyw0QkFBNEI7c0JBQW5FLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUNFLDRCQUE0QjtzQkFBbkUsU0FBUzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuaW1wb3J0IHsgVUlFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aWVsZW1lbnQnO1xuaW1wb3J0IHsgY29sb3JNYXBwaW5nIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL21hcHBpbmcvY29sb3ItbWFwcGluZyc7XG5pbXBvcnQgeyBGb250U2l6ZU1hcHBpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9mb250LXNpemUtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IGFzc2V0TWFwcGluZyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2Fzc2V0LW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlBc3NldCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWFzc2V0JztcbmltcG9ydCB7IFVJVGV4dFN0eWxlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL2VudW1zL3VpdGV4dC1zdHlsZSc7XG5pbXBvcnQgeyBVSUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aXRoZW1lL2VudW1zL3VpY29sb3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZG0tc2R1aS1wcm9maWxlLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUJ1dHRvbkVsZW1lbnQnKSBwcm9maWxlQnV0dG9uRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdwcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50JykgcHJvZmlsZUJ1dHRvbkxhYmVsRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdwcm9maWxlQnV0dG9uSW1hZ2VFbGVtZW50JykgcHJvZmlsZUJ1dHRvbkltYWdlRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ3VpQ29tcG9uZW50JykgcHVibGljIHVpQ29tcG9uZW50OiBVSUNvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBmb250U2l6ZU1hcHBpbmdTZXJ2aWNlOiBGb250U2l6ZU1hcHBpbmdTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51aUNvbXBvbmVudC5lbGVtZW50KSB7XG4gICAgICB0aGlzLmFwcGx5RWxlbWVudCh0aGlzLnVpQ29tcG9uZW50LmVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlFbGVtZW50KGVsZW1lbnQ6IFVJRWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50LnRleHRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbZWxlbWVudC50ZXh0Q29sb3JdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5wcm9maWxlQnV0dG9uRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnY29sb3InLFxuICAgICAgICBjb2xvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC50ZXh0U3R5bGUpIHtcbiAgICAgIGNvbnN0IHRleHRTdHlsZU1hcHBpbmdGb250U2l6ZSA9IHRoaXMuZm9udFNpemVNYXBwaW5nU2VydmljZS5nZXRNYXBwaW5nKCk7XG4gICAgICBjb25zdCBmb250U2l6ZSA9IHRleHRTdHlsZU1hcHBpbmdGb250U2l6ZVtlbGVtZW50LnRleHRTdHlsZV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLnByb2ZpbGVCdXR0b25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdmb250LXNpemUnLFxuICAgICAgICBmb250U2l6ZVxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdmb250LXNpemUnLFxuICAgICAgdGhpcy5mb250U2l6ZU1hcHBpbmdTZXJ2aWNlLmdldE1hcHBpbmcoKVtVSVRleHRTdHlsZS5DQVBUSU9OXzJdKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdjb2xvcicsXG4gICAgICBjb2xvck1hcHBpbmdbVUlDb2xvci5NQUlOMV0pXG5cbiAgfVxuXG4gIGdldEFzc2V0UGF0aChhc3NldDogVUlBc3NldCkge1xuICAgIHJldHVybiBhc3NldE1hcHBpbmdbYXNzZXRdO1xuICB9XG59XG4iLCI8YnV0dG9uICNwcm9maWxlQnV0dG9uRWxlbWVudCBbZWRtU2R1aVZpZXddPVwidWlDb21wb25lbnQuZWxlbWVudFwiIGNsYXNzPVwicHJvZmlsZS1idXR0b25cIiAqbmdJZj1cInVpQ29tcG9uZW50XCI+XG4gIDxpbWcgI3Byb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnQgKm5nSWY9XCJ1aUNvbXBvbmVudC5lbGVtZW50LmFzc2V0XCIgW3NyY109XCJnZXRBc3NldFBhdGgodWlDb21wb25lbnQuZWxlbWVudC5hc3NldClcIiBhbHQ9XCJQcm9maWxlXCIgY2xhc3M9XCJwcm9maWxlLWltYWdlXCI+XG4gIDxzcGFuICNwcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50IGNsYXNzPVwicHJvZmlsZS1sYWJlbFwiPnt7IHVpQ29tcG9uZW50LmVsZW1lbnQubGFiZWwgfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29tcG9uZW50cy91aWNvbXBvbmVudC9wcm9maWxlLWJ1dHRvbi9wcm9maWxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L3Byb2ZpbGUtYnV0dG9uL3Byb2ZpbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNnQyxXQUF3QixFQUM5QyxRQUFtQixFQUNuQixzQkFBOEM7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO0lBQ3JELENBQUM7SUFFSixRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FB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QjtzQkFBekQsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBQ08sNEJBQTRCO3NCQUFuRSxTQUFTO3VCQUFDLDJCQUEyQjtnQkFDRSw0QkFBNEI7c0JBQW5FLFNBQVM7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpY29tcG9uZW50JztcbmltcG9ydCB7IFVJRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWllbGVtZW50JztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgRm9udFNpemVNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvZm9udC1zaXplLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBhc3NldE1hcHBpbmcgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9hc3NldC1tYXBwaW5nJztcbmltcG9ydCB7IFVJQXNzZXQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlhc3NldCc7XG5pbXBvcnQgeyBVSVRleHRTdHlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXRleHQtc3R5bGUnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRtLXNkdWktcHJvZmlsZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZmlsZS1idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3Byb2ZpbGVCdXR0b25FbGVtZW50JykgcHJvZmlsZUJ1dHRvbkVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUJ1dHRvbkxhYmVsRWxlbWVudCcpIHByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUJ1dHRvbkltYWdlRWxlbWVudCcpIHByb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCd1aUNvbXBvbmVudCcpIHB1YmxpYyB1aUNvbXBvbmVudDogVUlDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9udFNpemVNYXBwaW5nU2VydmljZTogRm9udFNpemVNYXBwaW5nU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudWlDb21wb25lbnQuZWxlbWVudCkge1xuICAgICAgdGhpcy5hcHBseUVsZW1lbnQodGhpcy51aUNvbXBvbmVudC5lbGVtZW50KTtcbiAgICAgIC8vIGVzcGVyYXIgbyBsYXlvdXQgcGFyYSBtZWRpciBvIHRleHRvIGrDoSBjb20gZXN0aWxvcyBhcGxpY2Fkb3NcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maXRMYWJlbFRvVHdvTGluZXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUVsZW1lbnQoZWxlbWVudDogVUlFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQudGV4dENvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1tlbGVtZW50LnRleHRDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLnByb2ZpbGVCdXR0b25FbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdjb2xvcicsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnRleHRTdHlsZSkge1xuICAgICAgY29uc3QgdGV4dFN0eWxlTWFwcGluZ0ZvbnRTaXplID0gdGhpcy5mb250U2l6ZU1hcHBpbmdTZXJ2aWNlLmdldE1hcHBpbmcoKTtcbiAgICAgIGNvbnN0IGZvbnRTaXplID0gdGV4dFN0eWxlTWFwcGluZ0ZvbnRTaXplW2VsZW1lbnQudGV4dFN0eWxlXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMucHJvZmlsZUJ1dHRvbkVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgIGZvbnRTaXplXG4gICAgICApO1xuICAgIH1cblxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIHRoaXMucHJvZmlsZUJ1dHRvbkxhYmVsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICB0aGlzLmZvbnRTaXplTWFwcGluZ1NlcnZpY2UuZ2V0TWFwcGluZygpW1VJVGV4dFN0eWxlLkNBUFRJT05fMl1cbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdjb2xvcicsXG4gICAgICBjb2xvck1hcHBpbmdbVUlDb2xvci5NQUlOMV1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXRMYWJlbFRvVHdvTGluZXMobWF4TGluZXMgPSAyLCBtaW5Gb250U2l6ZVB4ID0gMTApIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLnByb2ZpbGVCdXR0b25MYWJlbEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFsYWJlbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGxhYmVsRWxlbWVudCk7XG4gICAgbGV0IGZvbnRTaXplID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlcy5mb250U2l6ZSk7XG5cbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShmb250U2l6ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gY29tcHV0ZWRTdHlsZXMubGluZUhlaWdodCA9PT0gJ25vcm1hbCdcbiAgICAgID8gZm9udFNpemUgKiAxLjJcbiAgICAgIDogcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlcy5saW5lSGVpZ2h0KTtcblxuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGxpbmVIZWlnaHQpIHx8IGxpbmVIZWlnaHQgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVIZWlnaHRSYXRpbyA9IGxpbmVIZWlnaHQgLyBmb250U2l6ZTtcblxuICAgIGNvbnN0IHVwZGF0ZU1ldHJpY3MgPSAoZm9yY2VIZWlnaHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldEhlaWdodCA9IGxpbmVIZWlnaHRSYXRpbyAqIGZvbnRTaXplICogbWF4TGluZXM7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGxhYmVsRWxlbWVudCwgJ2xpbmUtaGVpZ2h0JywgYCR7bGluZUhlaWdodFJhdGlvICogZm9udFNpemV9cHhgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50LCAnbWF4LWhlaWdodCcsIGAke3RhcmdldEhlaWdodH1weGApO1xuICAgICAgaWYgKGZvcmNlSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGFyZ2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxhYmVsRWxlbWVudCwgJ2hlaWdodCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldEhlaWdodDtcbiAgICB9O1xuXG4gICAgbGV0IHRhcmdldEhlaWdodCA9IHVwZGF0ZU1ldHJpY3MoZmFsc2UpO1xuICAgIGxldCBjb25zdHJhaW5lZCA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKGxhYmVsRWxlbWVudC5zY3JvbGxIZWlnaHQgPiB0YXJnZXRIZWlnaHQgJiYgZm9udFNpemUgPiBtaW5Gb250U2l6ZVB4KSB7XG4gICAgICBmb250U2l6ZSAtPSAxO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShsYWJlbEVsZW1lbnQsICdmb250LXNpemUnLCBgJHtmb250U2l6ZX1weGApO1xuICAgICAgdGFyZ2V0SGVpZ2h0ID0gdXBkYXRlTWV0cmljcyh0cnVlKTtcbiAgICAgIGNvbnN0cmFpbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnN0cmFpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxhYmVsRWxlbWVudCwgJ2hlaWdodCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFzc2V0UGF0aChhc3NldDogVUlBc3NldCkge1xuICAgIHJldHVybiBhc3NldE1hcHBpbmdbYXNzZXRdO1xuICB9XG59XG4iLCI8YnV0dG9uICNwcm9maWxlQnV0dG9uRWxlbWVudCBbZWRtU2R1aVZpZXddPVwidWlDb21wb25lbnQuZWxlbWVudFwiIGNsYXNzPVwicHJvZmlsZS1idXR0b25cIiAqbmdJZj1cInVpQ29tcG9uZW50XCI+XG4gIDxpbWcgI3Byb2ZpbGVCdXR0b25JbWFnZUVsZW1lbnQgKm5nSWY9XCJ1aUNvbXBvbmVudC5lbGVtZW50LmFzc2V0XCIgW3NyY109XCJnZXRBc3NldFBhdGgodWlDb21wb25lbnQuZWxlbWVudC5hc3NldClcIiBhbHQ9XCJQcm9maWxlXCIgY2xhc3M9XCJwcm9maWxlLWltYWdlXCI+XG4gIDxzcGFuICNwcm9maWxlQnV0dG9uTGFiZWxFbGVtZW50IGNsYXNzPVwicHJvZmlsZS1sYWJlbFwiPnt7IHVpQ29tcG9uZW50LmVsZW1lbnQubGFiZWwgfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -3147,6 +3147,8 @@ class ProfileButtonComponent {
|
|
|
3147
3147
|
ngAfterViewInit() {
|
|
3148
3148
|
if (this.uiComponent.element) {
|
|
3149
3149
|
this.applyElement(this.uiComponent.element);
|
|
3150
|
+
// esperar o layout para medir o texto já com estilos aplicados
|
|
3151
|
+
setTimeout(() => this.fitLabelToTwoLines(), 0);
|
|
3150
3152
|
}
|
|
3151
3153
|
}
|
|
3152
3154
|
applyElement(element) {
|
|
@@ -3162,15 +3164,59 @@ class ProfileButtonComponent {
|
|
|
3162
3164
|
this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'font-size', this.fontSizeMappingService.getMapping()[UITextStyle.CAPTION_2]);
|
|
3163
3165
|
this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'color', colorMapping[UIColor.MAIN1]);
|
|
3164
3166
|
}
|
|
3167
|
+
fitLabelToTwoLines(maxLines = 2, minFontSizePx = 10) {
|
|
3168
|
+
if (typeof window === 'undefined') {
|
|
3169
|
+
return;
|
|
3170
|
+
}
|
|
3171
|
+
const labelElement = this.profileButtonLabelElementRef?.nativeElement;
|
|
3172
|
+
if (!labelElement) {
|
|
3173
|
+
return;
|
|
3174
|
+
}
|
|
3175
|
+
const computedStyles = window.getComputedStyle(labelElement);
|
|
3176
|
+
let fontSize = parseFloat(computedStyles.fontSize);
|
|
3177
|
+
if (!Number.isFinite(fontSize)) {
|
|
3178
|
+
return;
|
|
3179
|
+
}
|
|
3180
|
+
const lineHeight = computedStyles.lineHeight === 'normal'
|
|
3181
|
+
? fontSize * 1.2
|
|
3182
|
+
: parseFloat(computedStyles.lineHeight);
|
|
3183
|
+
if (!Number.isFinite(lineHeight) || lineHeight <= 0) {
|
|
3184
|
+
return;
|
|
3185
|
+
}
|
|
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');
|
|
3196
|
+
}
|
|
3197
|
+
return targetHeight;
|
|
3198
|
+
};
|
|
3199
|
+
let targetHeight = updateMetrics(false);
|
|
3200
|
+
let constrained = false;
|
|
3201
|
+
while (labelElement.scrollHeight > targetHeight && fontSize > minFontSizePx) {
|
|
3202
|
+
fontSize -= 1;
|
|
3203
|
+
this.renderer.setStyle(labelElement, 'font-size', `${fontSize}px`);
|
|
3204
|
+
targetHeight = updateMetrics(true);
|
|
3205
|
+
constrained = true;
|
|
3206
|
+
}
|
|
3207
|
+
if (!constrained) {
|
|
3208
|
+
this.renderer.removeStyle(labelElement, 'height');
|
|
3209
|
+
}
|
|
3210
|
+
}
|
|
3165
3211
|
getAssetPath(asset) {
|
|
3166
3212
|
return assetMapping[asset];
|
|
3167
3213
|
}
|
|
3168
3214
|
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 }); }
|
|
3169
|
-
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{white-space:normal;word-break:
|
|
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"] }] }); }
|
|
3170
3216
|
}
|
|
3171
3217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ProfileButtonComponent, decorators: [{
|
|
3172
3218
|
type: Component,
|
|
3173
|
-
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{white-space:normal;word-break:
|
|
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"] }]
|
|
3174
3220
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3175
3221
|
type: Inject,
|
|
3176
3222
|
args: ['uiComponent']
|