@leanix/components 0.4.528 → 0.4.529
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.
@@ -1,5 +1,5 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import { AsyncPipe
|
2
|
+
import { AsyncPipe } from '@angular/common';
|
3
3
|
import { ChangeDetectionStrategy, Component, ElementRef, Inject, InjectionToken, Input, ViewChild } from '@angular/core';
|
4
4
|
import { escape } from 'lodash/fp';
|
5
5
|
import { BehaviorSubject, Subject, combineLatest, concat, merge } from 'rxjs';
|
@@ -112,7 +112,7 @@ export class EllipsisComponent {
|
|
112
112
|
return offsetWidth < scrollWidth;
|
113
113
|
}
|
114
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EllipsisComponent, deps: [{ token: LX_ELLIPSIS_DEBOUNCE_ON_RESIZE }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ResizeObserverService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EllipsisComponent, isStandalone: true, selector: "lx-ellipsis", inputs: { content: "content", escapeHtmlInContent: "escapeHtmlInContent" }, viewQueries: [{ propertyName: "contentSpanEl", first: true, predicate: ["contentEl"], descendants: true }, { propertyName: "showMoreButtonEl", first: true, predicate: ["showMoreButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<span\n #contentEl\n [class.showMore]=\"isShowingMore$ | async\"\n class=\"content truncate lx-margin-right\"\n [innerHtml]=\"sanitizedContent$ | async\"\n></span>\n@let showButton = showButton$ | async;\n@if (showButton) {\n <button (click)=\"onShowMoreToggle()\" lx-button #showmorebutton size=\"auto\" mode=\"link\" color=\"primary\">\n {{ showMoreButtonLabel$ | async }}\n </button>\n}\n", styles: [":host{display:block;white-space:pre-line;overflow-wrap:break-word}.content{display:inline-block;word-break:break-word}.truncate:not(.showMore){width:calc(100% - 140px);white-space:nowrap;overflow-wrap:normal;overflow:hidden;text-overflow:ellipsis}.content.showMore+button{margin-top:4px;display:block}button{white-space:nowrap;vertical-align:top}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "icon", "endIcon", "showSpinner"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
116
116
|
}
|
117
117
|
__decorate([
|
118
118
|
Observe('contentSpanEl')
|
@@ -125,7 +125,7 @@ __decorate([
|
|
125
125
|
], EllipsisComponent.prototype, "content$", void 0);
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EllipsisComponent, decorators: [{
|
127
127
|
type: Component,
|
128
|
-
args: [{ selector: 'lx-ellipsis', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
128
|
+
args: [{ selector: 'lx-ellipsis', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, AsyncPipe], template: "<span\n #contentEl\n [class.showMore]=\"isShowingMore$ | async\"\n class=\"content truncate lx-margin-right\"\n [innerHtml]=\"sanitizedContent$ | async\"\n></span>\n@let showButton = showButton$ | async;\n@if (showButton) {\n <button (click)=\"onShowMoreToggle()\" lx-button #showmorebutton size=\"auto\" mode=\"link\" color=\"primary\">\n {{ showMoreButtonLabel$ | async }}\n </button>\n}\n", styles: [":host{display:block;white-space:pre-line;overflow-wrap:break-word}.content{display:inline-block;word-break:break-word}.truncate:not(.showMore){width:calc(100% - 140px);white-space:nowrap;overflow-wrap:normal;overflow:hidden;text-overflow:ellipsis}.content.showMore+button{margin-top:4px;display:block}button{white-space:nowrap;vertical-align:top}\n"] }]
|
129
129
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
130
130
|
type: Inject,
|
131
131
|
args: [LX_ELLIPSIS_DEBOUNCE_ON_RESIZE]
|
@@ -140,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
140
140
|
type: ViewChild,
|
141
141
|
args: ['showMoreButton', { read: ElementRef }]
|
142
142
|
}], content$: [] } });
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29yZS11aS9jb21wb25lbnRzL2VsbGlwc2lzL2VsbGlwc2lzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9lbGxpcHNpcy9lbGxpcHNpcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUYsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBRTdELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUFTLGdDQUFnQyxFQUFFO0lBQ3pHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9B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QUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxnQkFBNkM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUMvRCxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQy9ELE9BQU8sV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDOzhHQTFLVSxpQkFBaUIsa0JBb0NsQiw4QkFBOEI7a0dBcEM3QixpQkFBaUIsK1VBZ0JTLFVBQVUsNkJDbEVqRCwyV0FTQSxzWkR1Q1ksSUFBSSw2RkFBRSxlQUFlLHFMQUFFLFNBQVM7O0FBYVI7SUFBakMsT0FBTyxDQUFDLGVBQWUsQ0FBQzt5REFBa0U7QUFHdEQ7SUFBcEMsT0FBTyxDQUFDLGtCQUFrQixDQUFDOzREQUF1RTtBQWUzRjtJQURQLE9BQU8sQ0FBQyxTQUFTLENBQUM7bURBQ21COzJGQTdCM0IsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQzs7MEJBc0N4QyxNQUFNOzJCQUFDLDhCQUE4QjtxS0FoQy9CLE9BQU87c0JBQWYsS0FBSztnQkFLRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRTRCLGNBQWMsTUFFeEIsYUFBYTtzQkFBcEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNlLGlCQUFpQixNQUVILGdCQUFnQjtzQkFBbEUsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBYXpDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZXNjYXBlIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29uY2F0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHBhaXJ3aXNlLFxuICBza2lwLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB3aXRoTGF0ZXN0RnJvbVxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgTFhfRUxMSVBTSVNfREVCT1VOQ0VfT05fUkVTSVpFID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0xYX0VMTElQU0lTX0RFQk9VTkNFX09OX1JFU0laRScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBFbGxpcHNpc0NvbXBvbmVudC5ERUZBVUxUX1JFU0laRV9ERUJPVU5DRV9NU1xufSk7XG5cbi8qKlxuICogWW91IGNhbiBzZXQgYG1heC13aWR0aGAgQ1NTIHByb3BlcnR5IG9uIHlvdXIgYGx4LWVsbGlwc2lzYCBob3N0IGVsZW1lbnQgb3IgdGhlIHBhcmVudCBlbGVtZW50IGlmIHlvdSB3YW50IGl0cyBjb250ZW50IHRvIG5ldmVyIGV4Y2VlZCBhIHNwZWNpZmljIHdpZHRoLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1lbGxpcHNpcycsXG4gIHRlbXBsYXRlVXJsOiAnZWxsaXBzaXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtgZWxsaXBzaXMuY29tcG9uZW50LnNjc3NgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBCdXR0b25Db21wb25lbnQsIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc3RhdGljIERFRkFVTFRfUkVTSVpFX0RFQk9VTkNFX01TID0gNTAwO1xuXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICAvKipcbiAgICogT25seSBzZXQgdGhpcyB0byBmYWxzZSBpZiB0aGUgY29udGVudCBpcyBub3QgYSB1c2VyIHByb3ZpZGVkIHN0cmluZ1xuICAgKiBvciBpZiB5b3Ugc2FuaXRpemUgdGhlIHByb3ZpZGVkIGNvbnRlbnQgeW91cnNlbGYuXG4gICAqL1xuICBASW5wdXQoKSBlc2NhcGVIdG1sSW5Db250ZW50ID0gdHJ1ZTtcblxuICBAT2JzZXJ2ZSgnY29udGVudFNwYW5FbCcpIHByaXZhdGUgY29udGVudFNwYW5FbCQhOiBPYnNlcnZhYmxlPEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50Pj47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgnY29udGVudEVsJykgY29udGVudFNwYW5FbCE6IEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50PjtcbiAgQE9ic2VydmUoJ3Nob3dNb3JlQnV0dG9uRWwnKSBwcml2YXRlIHNob3dNb3JlQnV0dG9uRWwkITogT2JzZXJ2YWJsZTxFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50Pj47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgnc2hvd01vcmVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2hvd01vcmVCdXR0b25FbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaXNTaG93aW5nTW9yZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvKiogQGludGVybmFsICovXG4gIHNob3dCdXR0b24kITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzaG93TW9yZUJ1dHRvbkxhYmVsJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKiogQGludGVybmFsICovXG4gIHNhbml0aXplZENvbnRlbnQkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBAT2JzZXJ2ZSgnY29udGVudCcpXG4gIHByaXZhdGUgY29udGVudCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHZpZXdDaGVja2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMWF9FTExJUFNJU19ERUJPVU5DRV9PTl9SRVNJWkUpXG4gICAgcHJpdmF0ZSBkZWJvdW5jZU1zQWZ0ZXJSZXNpemU6IG51bWJlcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGhvc3RFbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTogUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zYW5pdGl6ZWRDb250ZW50JCA9IHRoaXMuY29udGVudCQucGlwZShcbiAgICAgIG1hcCgoY29udGVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5lc2NhcGVIdG1sSW5Db250ZW50ICYmIHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBlc2NhcGUoY29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnNob3dNb3JlQnV0dG9uTGFiZWwkID0gdGhpcy5pc1Nob3dpbmdNb3JlJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChpc1Nob3dpbmdNb3JlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gaXNTaG93aW5nTW9yZSA/ICdjb21tb24uc2hvd0xlc3MnIDogJ2NvbW1vbi5zaG93TW9yZSc7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRyYW5zbGF0aW9uS2V5KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBuZXdXaWR0aE9uUmVzaXplJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgICBjb25zdCBuZXdIZWlnaHRPblJlc2l6ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50LCAocmVzaXplZEVsZW1lbnQpID0+IHtcbiAgICAgIG5ld1dpZHRoT25SZXNpemUkLm5leHQocmVzaXplZEVsZW1lbnQuY29udGVudFJlY3Qud2lkdGgpO1xuICAgICAgbmV3SGVpZ2h0T25SZXNpemUkLm5leHQocmVzaXplZEVsZW1lbnQuY29udGVudFJlY3QuaGVpZ2h0KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aENoYW5nZWRTaWduaWZpY2FudGx5QWZ0ZXJSZXNpemUkID0gbmV3V2lkdGhPblJlc2l6ZSQucGlwZShcbiAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBmaWx0ZXIoKFtwcmV2aW91c1dpZHRoLCBuZXdXaWR0aF0pID0+IE1hdGguYWJzKG5ld1dpZHRoIC0gcHJldmlvdXNXaWR0aCkgPiAxKSxcbiAgICAgIG1hcCgoWywgbmV3V2lkdGhdKSA9PiBuZXdXaWR0aClcbiAgICApO1xuICAgIGNvbnN0IHVzZXJUcmlnZ2VyZWRUcmlnZ2VyZWRTaG93TGVzcyQgPSB0aGlzLmlzU2hvd2luZ01vcmUkLnBpcGUoZmlsdGVyKChpc1Nob3dpbmdNb3JlKSA9PiAhaXNTaG93aW5nTW9yZSkpO1xuXG4gICAgY29uc3QgcmVldmFsdWF0ZUlmQ29udGVudElzT3ZlcmZsb3dpbmckID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbnRlbnRTcGFuRWwkLFxuICAgICAgdXNlclRyaWdnZXJlZFRyaWdnZXJlZFNob3dMZXNzJCxcbiAgICAgIGNvbnRhaW5lcldpZHRoQ2hhbmdlZFNpZ25pZmljYW50bHlBZnRlclJlc2l6ZSRcbiAgICBdKTtcblxuICAgIGNvbnN0IGlzQ29udGVudE92ZXJmbG93aW5nJCA9IG1lcmdlKFxuICAgICAgY29uY2F0KFxuICAgICAgICByZWV2YWx1YXRlSWZDb250ZW50SXNPdmVyZmxvd2luZyQucGlwZSh0YWtlKDEpKSwgLy8gZGVib3VuY2UgYWxsIGJ1dCB0aGUgZmlyc3Qgb3V0cHV0XG4gICAgICAgIHJlZXZhbHVhdGVJZkNvbnRlbnRJc092ZXJmbG93aW5nJC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlTXNBZnRlclJlc2l6ZSkpXG4gICAgICApLFxuICAgICAgdGhpcy5jb250ZW50JC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy52aWV3Q2hlY2tlZCQpXG4gICAgICApXG4gICAgKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5jb250ZW50U3BhbkVsJCksXG4gICAgICBtYXAoKFssIGNvbnRlbnRTcGFuUmVmXSkgPT4gdGhpcy5pc0NvbnRlbnRPdmVyZmxvd2luZyhjb250ZW50U3BhblJlZikpXG4gICAgKTtcblxuICAgIGNvbnN0IHVzZXJUcmlnZ2VyZWRUcmlnZ2VyZWRTaG93TW9yZSQgPSB0aGlzLmlzU2hvd2luZ01vcmUkLnBpcGUoZmlsdGVyKChpc1Nob3dpbmdNb3JlKSA9PiBpc1Nob3dpbmdNb3JlKSk7XG5cbiAgICBjb25zdCBidXR0b25IZWlnaHQkID0gdGhpcy5zaG93TW9yZUJ1dHRvbkVsJC5waXBlKFxuICAgICAgZmlsdGVyKChzaG93TW9yZUJ1dHRvbkVsKSA9PiAhIXNob3dNb3JlQnV0dG9uRWwpLFxuICAgICAgbWFwKChzaG93TW9yZUJ1dHRvbkVsKSA9PiBzaG93TW9yZUJ1dHRvbkVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIGNvbnN0IHVzZXJJbmNyZWFzZWRCcm93c2VyV2luZG93U2l6ZVRvVGhlUG9pbnRPZk5vVHJ1bmNhdGlvbk5lY2Vzc2FyeSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGJ1dHRvbkhlaWdodCQsXG4gICAgICBuZXdIZWlnaHRPblJlc2l6ZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzU2hvd2luZ01vcmUkKSxcbiAgICAgIGZpbHRlcigoWywgaXNTaG93aW5nTW9yZV0pID0+IGlzU2hvd2luZ01vcmUpLFxuICAgICAgbWFwKChbW2J1dHRvbkhlaWdodCwgbmV3SGVpZ2h0XV0pID0+IHtcbiAgICAgICAgY29uc3QgaGVpZ2h0T2ZPbmVMaW5lID0gYnV0dG9uSGVpZ2h0O1xuICAgICAgICBjb25zdCBzaG93TGVzc0J1dHRvbk1hcmdpblRvcCA9IDQ7XG4gICAgICAgIGNvbnN0IGhlaWdodE9mU3BhbkluU2hvd01vcmVNb2RlID0gbmV3SGVpZ2h0IC0gYnV0dG9uSGVpZ2h0IC0gc2hvd0xlc3NCdXR0b25NYXJnaW5Ub3A7XG4gICAgICAgIGNvbnN0IHRocmVzaG9sZFRvRGV0ZWN0Q29udGVudEluU2luZ2xlTGluZSA9IDQ7XG4gICAgICAgIGNvbnN0IGRpZmZlcmVuY2VCZXR3ZWVuQ29udGVudFNwYW5BbmRCdXR0b25IZWlnaHQgPSBNYXRoLmFicyhoZWlnaHRPZk9uZUxpbmUgLSBoZWlnaHRPZlNwYW5JblNob3dNb3JlTW9kZSk7XG4gICAgICAgIGNvbnN0IGlzU3BhbkNvbnRlbnREaXNwbGF5ZWRJbk9uZUxpbmVBZ2FpbiA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29udGVudFNwYW5BbmRCdXR0b25IZWlnaHQgPCB0aHJlc2hvbGRUb0RldGVjdENvbnRlbnRJblNpbmdsZUxpbmU7XG4gICAgICAgIHJldHVybiBpc1NwYW5Db250ZW50RGlzcGxheWVkSW5PbmVMaW5lQWdhaW47XG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgY29udGVudEZpdHNJbk9uZUxpbmVBZ2FpbldoaWxlU2hvd01vcmVJc0VuYWJsZWQkID0gdXNlckluY3JlYXNlZEJyb3dzZXJXaW5kb3dTaXplVG9UaGVQb2ludE9mTm9UcnVuY2F0aW9uTmVjZXNzYXJ5JC5waXBlKFxuICAgICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBmaWx0ZXIoKFtwcmV2aW91c1RleHRJc05vd0luT25lTGluZUFnYWluXSkgPT4gIXByZXZpb3VzVGV4dElzTm93SW5PbmVMaW5lQWdhaW4pLFxuICAgICAgbWFwKChbLCB0ZXh0SXNOb3dJbk9uZUxpbmVBZ2Fpbl0pID0+ICF0ZXh0SXNOb3dJbk9uZUxpbmVBZ2FpbilcbiAgICApO1xuICAgIGNvbnN0IGNvbnRlbnRJc092ZXJmbG93aW5nQW5kU2hvd01vcmVJc05vdEVuYWJsZWQkID0gaXNDb250ZW50T3ZlcmZsb3dpbmckLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzU2hvd2luZ01vcmUkKSxcbiAgICAgIGZpbHRlcigoWywgaXNTaG93aW5nTW9yZV0pID0+ICFpc1Nob3dpbmdNb3JlKSxcbiAgICAgIG1hcCgoW2lzQ29udGVudExvbmdlclRoYW5Db250YWluZXJXaWR0aF0pID0+IHtcbiAgICAgICAgcmV0dXJuIGlzQ29udGVudExvbmdlclRoYW5Db250YWluZXJXaWR0aDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnNob3dCdXR0b24kID0gbWVyZ2UoXG4gICAgICB1c2VyVHJpZ2dlcmVkVHJpZ2dlcmVkU2hvd01vcmUkLFxuICAgICAgY29udGVudEZpdHNJbk9uZUxpbmVBZ2FpbldoaWxlU2hvd01vcmVJc0VuYWJsZWQkLFxuICAgICAgY29udGVudElzT3ZlcmZsb3dpbmdBbmRTaG93TW9yZUlzTm90RW5hYmxlZCRcbiAgICApO1xuXG4gICAgLy8gQXMgbG9uZyBhcyBubyBwYXJlbnQgY29tcG9uZW50IGlzIGxpc3RlbmluZyBvbiByZXNpemUgZXZlbnRzLFxuICAgIC8vIHRoZSBDaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSBjYWxsIGRvbmUgYnkgdGhlIGFzeW5jIHBpcGVcbiAgICAvLyB3aWxsIG5vdCByZXN1bHQgaW4gYSBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGluIHRoaXMgY29tcG9uZW50IHdoZW4gaXRzIHNpemUgY2hhbmdlcy5cbiAgICAvLyBUaGlzIGlzIHRoZSBsZWFzdCBhbW91bnQgb2YgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpIGNhbGxzXG4gICAgLy8gSSB3YXMgYWJsZSB0byBjb21lIHVwIHdpdGguIFRoZSBBbmd1bGFyIHByb2ZpbGVyIHNob3dzIGFjY2VwdGFibGUgbnVtYmVycyBvZiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlc1doZW5PYnNlcnZhYmxlRW1pdHMoaXNDb250ZW50T3ZlcmZsb3dpbmckKTtcbiAgICB0aGlzLmRldGVjdENoYW5nZXNXaGVuT2JzZXJ2YWJsZUVtaXRzKHRoaXMuc2hvd0J1dHRvbiQpO1xuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlc1doZW5PYnNlcnZhYmxlRW1pdHModGhpcy5jb250ZW50JCk7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzV2hlbk9ic2VydmFibGVFbWl0cyhjb250ZW50SXNPdmVyZmxvd2luZ0FuZFNob3dNb3JlSXNOb3RFbmFibGVkJCk7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzV2hlbk9ic2VydmFibGVFbWl0cyhpc0NvbnRlbnRPdmVyZmxvd2luZyQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMudmlld0NoZWNrZWQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TaG93TW9yZVRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzU2hvd2luZ01vcmUkLm5leHQoIXRoaXMuaXNTaG93aW5nTW9yZSQuZ2V0VmFsdWUoKSk7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS51bm9ic2VydmUodGhpcy5ob3N0RWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdENoYW5nZXNXaGVuT2JzZXJ2YWJsZUVtaXRzKG9ic2VydmFibGUkOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBvYnNlcnZhYmxlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRlbnRPdmVyZmxvd2luZyhjb250ZW50U3BhbkVsUmVmOiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4pIHtcbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IGNvbnRlbnRTcGFuRWxSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBvZmZzZXRXaWR0aCA9IGNvbnRlbnRTcGFuRWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICByZXR1cm4gb2Zmc2V0V2lkdGggPCBzY3JvbGxXaWR0aDtcbiAgfVxufVxuIiwiPHNwYW5cbiAgI2NvbnRlbnRFbFxuICBbY2xhc3Muc2hvd01vcmVdPVwiaXNTaG93aW5nTW9yZSQgfCBhc3luY1wiXG4gIGNsYXNzPVwiY29udGVudCB0cnVuY2F0ZSBseC1tYXJnaW4tcmlnaHRcIlxuICBbaW5uZXJIdG1sXT1cInNhbml0aXplZENvbnRlbnQkIHwgYXN5bmNcIlxuPjwvc3Bhbj5cbjxidXR0b24gKm5nSWY9XCJzaG93QnV0dG9uJCB8IGFzeW5jXCIgKGNsaWNrKT1cIm9uU2hvd01vcmVUb2dnbGUoKVwiIGx4LWJ1dHRvbiAjc2hvd01vcmVCdXR0b24gc2l6ZT1cImF1dG9cIiBtb2RlPVwibGlua1wiIGNvbG9yPVwicHJpbWFyeVwiPlxuICB7eyBzaG93TW9yZUJ1dHRvbkxhYmVsJCB8IGFzeW5jIH19XG48L2J1dHRvbj5cbiJdfQ==
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29yZS11aS9jb21wb25lbnRzL2VsbGlwc2lzL2VsbGlwc2lzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9lbGxpcHNpcy9lbGxpcHNpcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRixPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFN0QsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0NBQWdDLEVBQUU7SUFDekcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdB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QUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVPLG9CQUFvQixDQUFDLGdCQUE2QztRQUN4RSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDL0QsT0FBTyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7OEdBMUtVLGlCQUFpQixrQkFvQ2xCLDhCQUE4QjtrR0FwQzdCLGlCQUFpQiwrVUFnQlMsVUFBVSw2QkNsRWpELGtaQVlBLHNaRG9DWSxlQUFlLHFMQUFFLFNBQVM7O0FBYUY7SUFBakMsT0FBTyxDQUFDLGVBQWUsQ0FBQzt5REFBa0U7QUFHdEQ7SUFBcEMsT0FBTyxDQUFDLGtCQUFrQixDQUFDOzREQUF1RTtBQWUzRjtJQURQLE9BQU8sQ0FBQyxTQUFTLENBQUM7bURBQ21COzJGQTdCM0IsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDOzswQkFzQ2xDLE1BQU07MkJBQUMsOEJBQThCO3FLQWhDL0IsT0FBTztzQkFBZixLQUFLO2dCQUtHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFNEIsY0FBYyxNQUV4QixhQUFhO3NCQUFwQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ2UsaUJBQWlCLE1BRUgsZ0JBQWdCO3NCQUFsRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFhekMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBlc2NhcGUgfSBmcm9tICdsb2Rhc2gvZnAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBjb25jYXQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgcGFpcndpc2UsXG4gIHNraXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvb2JzZXJ2ZSc7XG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBMWF9FTExJUFNJU19ERUJPVU5DRV9PTl9SRVNJWkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPignTFhfRUxMSVBTSVNfREVCT1VOQ0VfT05fUkVTSVpFJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IEVsbGlwc2lzQ29tcG9uZW50LkRFRkFVTFRfUkVTSVpFX0RFQk9VTkNFX01TXG59KTtcblxuLyoqXG4gKiBZb3UgY2FuIHNldCBgbWF4LXdpZHRoYCBDU1MgcHJvcGVydHkgb24geW91ciBgbHgtZWxsaXBzaXNgIGhvc3QgZWxlbWVudCBvciB0aGUgcGFyZW50IGVsZW1lbnQgaWYgeW91IHdhbnQgaXRzIGNvbnRlbnQgdG8gbmV2ZXIgZXhjZWVkIGEgc3BlY2lmaWMgd2lkdGguXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWVsbGlwc2lzJyxcbiAgdGVtcGxhdGVVcmw6ICdlbGxpcHNpcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW2BlbGxpcHNpcy5jb21wb25lbnQuc2Nzc2BdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzdGF0aWMgREVGQVVMVF9SRVNJWkVfREVCT1VOQ0VfTVMgPSA1MDA7XG5cbiAgQElucHV0KCkgY29udGVudDogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAgKiBPbmx5IHNldCB0aGlzIHRvIGZhbHNlIGlmIHRoZSBjb250ZW50IGlzIG5vdCBhIHVzZXIgcHJvdmlkZWQgc3RyaW5nXG4gICAqIG9yIGlmIHlvdSBzYW5pdGl6ZSB0aGUgcHJvdmlkZWQgY29udGVudCB5b3Vyc2VsZi5cbiAgICovXG4gIEBJbnB1dCgpIGVzY2FwZUh0bWxJbkNvbnRlbnQgPSB0cnVlO1xuXG4gIEBPYnNlcnZlKCdjb250ZW50U3BhbkVsJykgcHJpdmF0ZSBjb250ZW50U3BhbkVsJCE6IE9ic2VydmFibGU8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdjb250ZW50RWwnKSBjb250ZW50U3BhbkVsITogRWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+O1xuICBAT2JzZXJ2ZSgnc2hvd01vcmVCdXR0b25FbCcpIHByaXZhdGUgc2hvd01vcmVCdXR0b25FbCQhOiBPYnNlcnZhYmxlPEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+PjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdzaG93TW9yZUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzaG93TW9yZUJ1dHRvbkVsITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBpc1Nob3dpbmdNb3JlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2hvd0J1dHRvbiQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogQGludGVybmFsICovXG4gIHNob3dNb3JlQnV0dG9uTGFiZWwkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2FuaXRpemVkQ29udGVudCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBPYnNlcnZlKCdjb250ZW50JylcbiAgcHJpdmF0ZSBjb250ZW50JCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgdmlld0NoZWNrZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KExYX0VMTElQU0lTX0RFQk9VTkNFX09OX1JFU0laRSlcbiAgICBwcml2YXRlIGRlYm91bmNlTXNBZnRlclJlc2l6ZTogbnVtYmVyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgaG9zdEVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhbml0aXplZENvbnRlbnQkID0gdGhpcy5jb250ZW50JC5waXBlKFxuICAgICAgbWFwKChjb250ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmVzY2FwZUh0bWxJbkNvbnRlbnQgJiYgdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIGVzY2FwZShjb250ZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2hvd01vcmVCdXR0b25MYWJlbCQgPSB0aGlzLmlzU2hvd2luZ01vcmUkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGlzU2hvd2luZ01vcmUpID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBpc1Nob3dpbmdNb3JlID8gJ2NvbW1vbi5zaG93TGVzcycgOiAnY29tbW9uLnNob3dNb3JlJztcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXkpO1xuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IG5ld1dpZHRoT25SZXNpemUkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAgIGNvbnN0IG5ld0hlaWdodE9uUmVzaXplJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5vYnNlcnZlKHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQsIChyZXNpemVkRWxlbWVudCkgPT4ge1xuICAgICAgbmV3V2lkdGhPblJlc2l6ZSQubmV4dChyZXNpemVkRWxlbWVudC5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgICBuZXdIZWlnaHRPblJlc2l6ZSQubmV4dChyZXNpemVkRWxlbWVudC5jb250ZW50UmVjdC5oZWlnaHQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoQ2hhbmdlZFNpZ25pZmljYW50bHlBZnRlclJlc2l6ZSQgPSBuZXdXaWR0aE9uUmVzaXplJC5waXBlKFxuICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIGZpbHRlcigoW3ByZXZpb3VzV2lkdGgsIG5ld1dpZHRoXSkgPT4gTWF0aC5hYnMobmV3V2lkdGggLSBwcmV2aW91c1dpZHRoKSA+IDEpLFxuICAgICAgbWFwKChbLCBuZXdXaWR0aF0pID0+IG5ld1dpZHRoKVxuICAgICk7XG4gICAgY29uc3QgdXNlclRyaWdnZXJlZFRyaWdnZXJlZFNob3dMZXNzJCA9IHRoaXMuaXNTaG93aW5nTW9yZSQucGlwZShmaWx0ZXIoKGlzU2hvd2luZ01vcmUpID0+ICFpc1Nob3dpbmdNb3JlKSk7XG5cbiAgICBjb25zdCByZWV2YWx1YXRlSWZDb250ZW50SXNPdmVyZmxvd2luZyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY29udGVudFNwYW5FbCQsXG4gICAgICB1c2VyVHJpZ2dlcmVkVHJpZ2dlcmVkU2hvd0xlc3MkLFxuICAgICAgY29udGFpbmVyV2lkdGhDaGFuZ2VkU2lnbmlmaWNhbnRseUFmdGVyUmVzaXplJFxuICAgIF0pO1xuXG4gICAgY29uc3QgaXNDb250ZW50T3ZlcmZsb3dpbmckID0gbWVyZ2UoXG4gICAgICBjb25jYXQoXG4gICAgICAgIHJlZXZhbHVhdGVJZkNvbnRlbnRJc092ZXJmbG93aW5nJC5waXBlKHRha2UoMSkpLCAvLyBkZWJvdW5jZSBhbGwgYnV0IHRoZSBmaXJzdCBvdXRwdXRcbiAgICAgICAgcmVldmFsdWF0ZUlmQ29udGVudElzT3ZlcmZsb3dpbmckLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VNc0FmdGVyUmVzaXplKSlcbiAgICAgICksXG4gICAgICB0aGlzLmNvbnRlbnQkLnBpcGUoXG4gICAgICAgIHNraXAoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnZpZXdDaGVja2VkJClcbiAgICAgIClcbiAgICApLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmNvbnRlbnRTcGFuRWwkKSxcbiAgICAgIG1hcCgoWywgY29udGVudFNwYW5SZWZdKSA9PiB0aGlzLmlzQ29udGVudE92ZXJmbG93aW5nKGNvbnRlbnRTcGFuUmVmKSlcbiAgICApO1xuXG4gICAgY29uc3QgdXNlclRyaWdnZXJlZFRyaWdnZXJlZFNob3dNb3JlJCA9IHRoaXMuaXNTaG93aW5nTW9yZSQucGlwZShmaWx0ZXIoKGlzU2hvd2luZ01vcmUpID0+IGlzU2hvd2luZ01vcmUpKTtcblxuICAgIGNvbnN0IGJ1dHRvbkhlaWdodCQgPSB0aGlzLnNob3dNb3JlQnV0dG9uRWwkLnBpcGUoXG4gICAgICBmaWx0ZXIoKHNob3dNb3JlQnV0dG9uRWwpID0+ICEhc2hvd01vcmVCdXR0b25FbCksXG4gICAgICBtYXAoKHNob3dNb3JlQnV0dG9uRWwpID0+IHNob3dNb3JlQnV0dG9uRWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gICAgY29uc3QgdXNlckluY3JlYXNlZEJyb3dzZXJXaW5kb3dTaXplVG9UaGVQb2ludE9mTm9UcnVuY2F0aW9uTmVjZXNzYXJ5JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgYnV0dG9uSGVpZ2h0JCxcbiAgICAgIG5ld0hlaWdodE9uUmVzaXplJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaXNTaG93aW5nTW9yZSQpLFxuICAgICAgZmlsdGVyKChbLCBpc1Nob3dpbmdNb3JlXSkgPT4gaXNTaG93aW5nTW9yZSksXG4gICAgICBtYXAoKFtbYnV0dG9uSGVpZ2h0LCBuZXdIZWlnaHRdXSkgPT4ge1xuICAgICAgICBjb25zdCBoZWlnaHRPZk9uZUxpbmUgPSBidXR0b25IZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNob3dMZXNzQnV0dG9uTWFyZ2luVG9wID0gNDtcbiAgICAgICAgY29uc3QgaGVpZ2h0T2ZTcGFuSW5TaG93TW9yZU1vZGUgPSBuZXdIZWlnaHQgLSBidXR0b25IZWlnaHQgLSBzaG93TGVzc0J1dHRvbk1hcmdpblRvcDtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkVG9EZXRlY3RDb250ZW50SW5TaW5nbGVMaW5lID0gNDtcbiAgICAgICAgY29uc3QgZGlmZmVyZW5jZUJldHdlZW5Db250ZW50U3BhbkFuZEJ1dHRvbkhlaWdodCA9IE1hdGguYWJzKGhlaWdodE9mT25lTGluZSAtIGhlaWdodE9mU3BhbkluU2hvd01vcmVNb2RlKTtcbiAgICAgICAgY29uc3QgaXNTcGFuQ29udGVudERpc3BsYXllZEluT25lTGluZUFnYWluID0gZGlmZmVyZW5jZUJldHdlZW5Db250ZW50U3BhbkFuZEJ1dHRvbkhlaWdodCA8IHRocmVzaG9sZFRvRGV0ZWN0Q29udGVudEluU2luZ2xlTGluZTtcbiAgICAgICAgcmV0dXJuIGlzU3BhbkNvbnRlbnREaXNwbGF5ZWRJbk9uZUxpbmVBZ2FpbjtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBjb250ZW50Rml0c0luT25lTGluZUFnYWluV2hpbGVTaG93TW9yZUlzRW5hYmxlZCQgPSB1c2VySW5jcmVhc2VkQnJvd3NlcldpbmRvd1NpemVUb1RoZVBvaW50T2ZOb1RydW5jYXRpb25OZWNlc3NhcnkkLnBpcGUoXG4gICAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIGZpbHRlcigoW3ByZXZpb3VzVGV4dElzTm93SW5PbmVMaW5lQWdhaW5dKSA9PiAhcHJldmlvdXNUZXh0SXNOb3dJbk9uZUxpbmVBZ2FpbiksXG4gICAgICBtYXAoKFssIHRleHRJc05vd0luT25lTGluZUFnYWluXSkgPT4gIXRleHRJc05vd0luT25lTGluZUFnYWluKVxuICAgICk7XG4gICAgY29uc3QgY29udGVudElzT3ZlcmZsb3dpbmdBbmRTaG93TW9yZUlzTm90RW5hYmxlZCQgPSBpc0NvbnRlbnRPdmVyZmxvd2luZyQucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaXNTaG93aW5nTW9yZSQpLFxuICAgICAgZmlsdGVyKChbLCBpc1Nob3dpbmdNb3JlXSkgPT4gIWlzU2hvd2luZ01vcmUpLFxuICAgICAgbWFwKChbaXNDb250ZW50TG9uZ2VyVGhhbkNvbnRhaW5lcldpZHRoXSkgPT4ge1xuICAgICAgICByZXR1cm4gaXNDb250ZW50TG9uZ2VyVGhhbkNvbnRhaW5lcldpZHRoO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0J1dHRvbiQgPSBtZXJnZShcbiAgICAgIHVzZXJUcmlnZ2VyZWRUcmlnZ2VyZWRTaG93TW9yZSQsXG4gICAgICBjb250ZW50Rml0c0luT25lTGluZUFnYWluV2hpbGVTaG93TW9yZUlzRW5hYmxlZCQsXG4gICAgICBjb250ZW50SXNPdmVyZmxvd2luZ0FuZFNob3dNb3JlSXNOb3RFbmFibGVkJFxuICAgICk7XG5cbiAgICAvLyBBcyBsb25nIGFzIG5vIHBhcmVudCBjb21wb25lbnQgaXMgbGlzdGVuaW5nIG9uIHJlc2l6ZSBldmVudHMsXG4gICAgLy8gdGhlIENoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpIGNhbGwgZG9uZSBieSB0aGUgYXN5bmMgcGlwZVxuICAgIC8vIHdpbGwgbm90IHJlc3VsdCBpbiBhIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgaW4gdGhpcyBjb21wb25lbnQgd2hlbiBpdHMgc2l6ZSBjaGFuZ2VzLlxuICAgIC8vIFRoaXMgaXMgdGhlIGxlYXN0IGFtb3VudCBvZiBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCkgY2FsbHNcbiAgICAvLyBJIHdhcyBhYmxlIHRvIGNvbWUgdXAgd2l0aC4gVGhlIEFuZ3VsYXIgcHJvZmlsZXIgc2hvd3MgYWNjZXB0YWJsZSBudW1iZXJzIG9mIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzV2hlbk9ic2VydmFibGVFbWl0cyhpc0NvbnRlbnRPdmVyZmxvd2luZyQpO1xuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlc1doZW5PYnNlcnZhYmxlRW1pdHModGhpcy5zaG93QnV0dG9uJCk7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzV2hlbk9ic2VydmFibGVFbWl0cyh0aGlzLmNvbnRlbnQkKTtcbiAgICB0aGlzLmRldGVjdENoYW5nZXNXaGVuT2JzZXJ2YWJsZUVtaXRzKGNvbnRlbnRJc092ZXJmbG93aW5nQW5kU2hvd01vcmVJc05vdEVuYWJsZWQkKTtcbiAgICB0aGlzLmRldGVjdENoYW5nZXNXaGVuT2JzZXJ2YWJsZUVtaXRzKGlzQ29udGVudE92ZXJmbG93aW5nJCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgdGhpcy52aWV3Q2hlY2tlZCQubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvblNob3dNb3JlVG9nZ2xlKCkge1xuICAgIHRoaXMuaXNTaG93aW5nTW9yZSQubmV4dCghdGhpcy5pc1Nob3dpbmdNb3JlJC5nZXRWYWx1ZSgpKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLnVub2JzZXJ2ZSh0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0Q2hhbmdlc1doZW5PYnNlcnZhYmxlRW1pdHMob2JzZXJ2YWJsZSQ6IE9ic2VydmFibGU8YW55Pikge1xuICAgIG9ic2VydmFibGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udGVudE92ZXJmbG93aW5nKGNvbnRlbnRTcGFuRWxSZWY6IEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50Pikge1xuICAgIGNvbnN0IHNjcm9sbFdpZHRoID0gY29udGVudFNwYW5FbFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IG9mZnNldFdpZHRoID0gY29udGVudFNwYW5FbFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIHJldHVybiBvZmZzZXRXaWR0aCA8IHNjcm9sbFdpZHRoO1xuICB9XG59XG4iLCI8c3BhblxuICAjY29udGVudEVsXG4gIFtjbGFzcy5zaG93TW9yZV09XCJpc1Nob3dpbmdNb3JlJCB8IGFzeW5jXCJcbiAgY2xhc3M9XCJjb250ZW50IHRydW5jYXRlIGx4LW1hcmdpbi1yaWdodFwiXG4gIFtpbm5lckh0bWxdPVwic2FuaXRpemVkQ29udGVudCQgfCBhc3luY1wiXG4+PC9zcGFuPlxuQGxldCBzaG93QnV0dG9uID0gc2hvd0J1dHRvbiQgfCBhc3luYztcbkBpZiAoc2hvd0J1dHRvbikge1xuICA8YnV0dG9uIChjbGljayk9XCJvblNob3dNb3JlVG9nZ2xlKClcIiBseC1idXR0b24gI3Nob3dtb3JlYnV0dG9uIHNpemU9XCJhdXRvXCIgbW9kZT1cImxpbmtcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICB7eyBzaG93TW9yZUJ1dHRvbkxhYmVsJCB8IGFzeW5jIH19XG4gIDwvYnV0dG9uPlxufVxuIl19
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
1
|
import { Component, EventEmitter, HostBinding, Output, computed, input } from '@angular/core';
|
3
2
|
import { RouterLink } from '@angular/router';
|
4
3
|
import { ButtonComponent } from '../button/button.component';
|
@@ -23,11 +22,11 @@ export class EmptyStateComponent {
|
|
23
22
|
return this.size();
|
24
23
|
}
|
25
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EmptyStateComponent, isStandalone: true, selector: "lx-empty-state", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, moreLinkLabel: { classPropertyName: "moreLinkLabel", publicName: "moreLinkLabel", isSignal: true, isRequired: false, transformFunction: null }, moreLink: { classPropertyName: "moreLink", publicName: "moreLink", isSignal: true, isRequired: false, transformFunction: null }, openMoreLinkInNewTab: { classPropertyName: "openMoreLinkInNewTab", publicName: "openMoreLinkInNewTab", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked", secondaryButtonClicked: "secondaryButtonClicked", moreLinkClicked: "moreLinkClicked" }, host: { properties: { "attr.size": "this._size" } }, ngImport: i0, template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"], dependencies: [{ kind: "
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EmptyStateComponent, isStandalone: true, selector: "lx-empty-state", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, moreLinkLabel: { classPropertyName: "moreLinkLabel", publicName: "moreLinkLabel", isSignal: true, isRequired: false, transformFunction: null }, moreLink: { classPropertyName: "moreLink", publicName: "moreLink", isSignal: true, isRequired: false, transformFunction: null }, openMoreLinkInNewTab: { classPropertyName: "openMoreLinkInNewTab", publicName: "openMoreLinkInNewTab", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked", secondaryButtonClicked: "secondaryButtonClicked", moreLinkClicked: "moreLinkClicked" }, host: { properties: { "attr.size": "this._size" } }, ngImport: i0, template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "icon", "endIcon", "showSpinner"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
27
26
|
}
|
28
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EmptyStateComponent, decorators: [{
|
29
28
|
type: Component,
|
30
|
-
args: [{ selector: 'lx-empty-state', standalone: true, imports: [
|
29
|
+
args: [{ selector: 'lx-empty-state', standalone: true, imports: [ButtonComponent, RouterLink], template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"] }]
|
31
30
|
}], propDecorators: { _size: [{
|
32
31
|
type: HostBinding,
|
33
32
|
args: ['attr.size']
|
@@ -38,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
38
37
|
}], moreLinkClicked: [{
|
39
38
|
type: Output
|
40
39
|
}] } });
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29yZS11aS9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFTN0QsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVFFLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFakMsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDOUIseUJBQW9CLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkMsWUFBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLEVBQXFCLENBQUM7UUFDdEMseUJBQW9CLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBRyxLQUFLLENBQXFCLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLGtCQUFhLEdBQW9CLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFPN0Usa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQy9DLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDeEQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBQzVEO0lBUkMsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0FqQlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsazlDQ1hoQyw2dERBcURBLCtuQkQ5Q1ksZUFBZSwwTEFBRSxVQUFVOzsyRkFJMUIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7OEJBbUJsQyxLQUFLO3NCQURSLFdBQVc7dUJBQUMsV0FBVztnQkFLZCxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIFNpZ25hbCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtZW1wdHktc3RhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50LCBSb3V0ZXJMaW5rXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBFbXB0eVN0YXRlQ29tcG9uZW50IHtcbiAgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgaWNvbiA9IGlucHV0PHN0cmluZz4oKTtcbiAgYnV0dG9uTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHNlY29uZGFyeUJ1dHRvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBtb3JlTGlua0xhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBtb3JlTGluayA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPigpO1xuICBvcGVuTW9yZUxpbmtJbk5ld1RhYiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICBzaXplID0gaW5wdXQ8J3NtYWxsJyB8ICdtZWRpdW0nPignbWVkaXVtJyk7XG5cbiAgcHVibGljIHVzZVJvdXRlckxpbms6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmlzQXJyYXkodGhpcy5tb3JlTGluaygpKSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnNpemUnKVxuICBnZXQgX3NpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSgpO1xuICB9XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBzZWNvbmRhcnlCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgbW9yZUxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xufVxuIiwiPGRpdiBjbGFzcz1cInR3LW1heC13LVs0MzRweF0gdHctdGV4dC1jZW50ZXJcIj5cbiAgQGlmIChpY29uKCkpIHtcbiAgICA8aSBjbGFzcz1cImVtcHR5U3RhdGVJY29uIGZhcyB0dy10ZXh0LXByaW1hcnlcIiBbY2xhc3NdPVwiJ2ZhLScgKyBpY29uKClcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gIH1cblxuICA8aDMgY2xhc3M9XCJlbXB0eS1zdGF0ZS10aXRsZSB0dy1tYi1tIHR3LW10LXhsIHR3LXRleHQtYmxhY2tcIiBbaW5uZXJIVE1MXT1cInRpdGxlKClcIj48L2gzPlxuXG4gIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZS1jb250ZW50IHR3LWxlYWRpbmctWzE2cHhdIHR3LXRleHQtZ3JheS01MFwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktY2VudGVyIHR3LWdhcC1tXCI+XG4gICAgQGlmIChzZWNvbmRhcnlCdXR0b25MYWJlbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5QnV0dG9uIHR3LW15LXhsXCI+XG4gICAgICAgIDxidXR0b24gbHgtYnV0dG9uIHNpemU9XCJsYXJnZVwiIFtzaG93U3Bpbm5lcl09XCJsb2FkaW5nKClcIiAoY2xpY2spPVwic2Vjb25kYXJ5QnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICB7eyBzZWNvbmRhcnlCdXR0b25MYWJlbCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChidXR0b25MYWJlbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uQnV0dG9uIHR3LW15LXhsXCI+XG4gICAgICAgIDxidXR0b24gbHgtYnV0dG9uIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwicHJpbWFyeVwiIFtzaG93U3Bpbm5lcl09XCJsb2FkaW5nKClcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICB7eyBidXR0b25MYWJlbCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKG1vcmVMaW5rTGFiZWwoKSAmJiBtb3JlTGluaygpKSB7XG4gICAgPGRpdj5cbiAgICAgIEBpZiAodXNlUm91dGVyTGluaygpKSB7XG4gICAgICAgIDxhXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LXNpemUtbWQgdHctdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJtb3JlTGluaygpXCJcbiAgICAgICAgICAoY2xpY2spPVwibW9yZUxpbmtDbGlja2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgW3RhcmdldF09XCJvcGVuTW9yZUxpbmtJbk5ld1RhYigpID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcbiAgICAgICAgICA+e3sgbW9yZUxpbmtMYWJlbCgpIH19PC9hXG4gICAgICAgID5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YVxuICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1zaXplLW1kIHR3LXRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgW2hyZWZdPVwibW9yZUxpbmsoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1vcmVMaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgIFt0YXJnZXRdPVwib3Blbk1vcmVMaW5rSW5OZXdUYWIoKSA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiXG4gICAgICAgICAgPnt7IG1vcmVMaW5rTGFiZWwoKSB9fTwvYVxuICAgICAgICA+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
@@ -3,7 +3,7 @@ import { InjectionToken, Input, Component, signal, ChangeDetectionStrategy, Host
|
|
3
3
|
import * as i1 from '@ngx-translate/core';
|
4
4
|
import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
|
5
5
|
import * as i2 from '@angular/common';
|
6
|
-
import { NgTemplateOutlet, NgClass,
|
6
|
+
import { NgTemplateOutlet, NgClass, AsyncPipe, NgFor, NgStyle, CommonModule, NgIf, UpperCasePipe, NgSwitch, NgSwitchCase, DecimalPipe, formatDate } from '@angular/common';
|
7
7
|
import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
8
8
|
import { IconComponent as IconComponent$1 } from '@ui5/webcomponents-ngx/main/icon';
|
9
9
|
import * as i5 from 'rxjs';
|
@@ -970,7 +970,7 @@ class EllipsisComponent {
|
|
970
970
|
return offsetWidth < scrollWidth;
|
971
971
|
}
|
972
972
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EllipsisComponent, deps: [{ token: LX_ELLIPSIS_DEBOUNCE_ON_RESIZE }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: ResizeObserverService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
973
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
973
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EllipsisComponent, isStandalone: true, selector: "lx-ellipsis", inputs: { content: "content", escapeHtmlInContent: "escapeHtmlInContent" }, viewQueries: [{ propertyName: "contentSpanEl", first: true, predicate: ["contentEl"], descendants: true }, { propertyName: "showMoreButtonEl", first: true, predicate: ["showMoreButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<span\n #contentEl\n [class.showMore]=\"isShowingMore$ | async\"\n class=\"content truncate lx-margin-right\"\n [innerHtml]=\"sanitizedContent$ | async\"\n></span>\n@let showButton = showButton$ | async;\n@if (showButton) {\n <button (click)=\"onShowMoreToggle()\" lx-button #showmorebutton size=\"auto\" mode=\"link\" color=\"primary\">\n {{ showMoreButtonLabel$ | async }}\n </button>\n}\n", styles: [":host{display:block;white-space:pre-line;overflow-wrap:break-word}.content{display:inline-block;word-break:break-word}.truncate:not(.showMore){width:calc(100% - 140px);white-space:nowrap;overflow-wrap:normal;overflow:hidden;text-overflow:ellipsis}.content.showMore+button{margin-top:4px;display:block}button{white-space:nowrap;vertical-align:top}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "icon", "endIcon", "showSpinner"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
974
974
|
}
|
975
975
|
__decorate([
|
976
976
|
Observe('contentSpanEl')
|
@@ -983,7 +983,7 @@ __decorate([
|
|
983
983
|
], EllipsisComponent.prototype, "content$", void 0);
|
984
984
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EllipsisComponent, decorators: [{
|
985
985
|
type: Component,
|
986
|
-
args: [{ selector: 'lx-ellipsis', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
986
|
+
args: [{ selector: 'lx-ellipsis', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, AsyncPipe], template: "<span\n #contentEl\n [class.showMore]=\"isShowingMore$ | async\"\n class=\"content truncate lx-margin-right\"\n [innerHtml]=\"sanitizedContent$ | async\"\n></span>\n@let showButton = showButton$ | async;\n@if (showButton) {\n <button (click)=\"onShowMoreToggle()\" lx-button #showmorebutton size=\"auto\" mode=\"link\" color=\"primary\">\n {{ showMoreButtonLabel$ | async }}\n </button>\n}\n", styles: [":host{display:block;white-space:pre-line;overflow-wrap:break-word}.content{display:inline-block;word-break:break-word}.truncate:not(.showMore){width:calc(100% - 140px);white-space:nowrap;overflow-wrap:normal;overflow:hidden;text-overflow:ellipsis}.content.showMore+button{margin-top:4px;display:block}button{white-space:nowrap;vertical-align:top}\n"] }]
|
987
987
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
988
988
|
type: Inject,
|
989
989
|
args: [LX_ELLIPSIS_DEBOUNCE_ON_RESIZE]
|
@@ -1019,11 +1019,11 @@ class EmptyStateComponent {
|
|
1019
1019
|
return this.size();
|
1020
1020
|
}
|
1021
1021
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
1022
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EmptyStateComponent, isStandalone: true, selector: "lx-empty-state", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, moreLinkLabel: { classPropertyName: "moreLinkLabel", publicName: "moreLinkLabel", isSignal: true, isRequired: false, transformFunction: null }, moreLink: { classPropertyName: "moreLink", publicName: "moreLink", isSignal: true, isRequired: false, transformFunction: null }, openMoreLinkInNewTab: { classPropertyName: "openMoreLinkInNewTab", publicName: "openMoreLinkInNewTab", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked", secondaryButtonClicked: "secondaryButtonClicked", moreLinkClicked: "moreLinkClicked" }, host: { properties: { "attr.size": "this._size" } }, ngImport: i0, template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"], dependencies: [{ kind: "
|
1022
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: EmptyStateComponent, isStandalone: true, selector: "lx-empty-state", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, moreLinkLabel: { classPropertyName: "moreLinkLabel", publicName: "moreLinkLabel", isSignal: true, isRequired: false, transformFunction: null }, moreLink: { classPropertyName: "moreLink", publicName: "moreLink", isSignal: true, isRequired: false, transformFunction: null }, openMoreLinkInNewTab: { classPropertyName: "openMoreLinkInNewTab", publicName: "openMoreLinkInNewTab", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked", secondaryButtonClicked: "secondaryButtonClicked", moreLinkClicked: "moreLinkClicked" }, host: { properties: { "attr.size": "this._size" } }, ngImport: i0, template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "icon", "endIcon", "showSpinner"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
1023
1023
|
}
|
1024
1024
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: EmptyStateComponent, decorators: [{
|
1025
1025
|
type: Component,
|
1026
|
-
args: [{ selector: 'lx-empty-state', standalone: true, imports: [
|
1026
|
+
args: [{ selector: 'lx-empty-state', standalone: true, imports: [ButtonComponent, RouterLink], template: "<div class=\"tw-max-w-[434px] tw-text-center\">\n @if (icon()) {\n <i class=\"emptyStateIcon fas tw-text-primary\" [class]=\"'fa-' + icon()\" aria-hidden=\"true\"></i>\n }\n\n <h3 class=\"empty-state-title tw-mb-m tw-mt-xl tw-text-black\" [innerHTML]=\"title()\"></h3>\n\n <div class=\"empty-state-content tw-leading-[16px] tw-text-gray-50\">\n <ng-content />\n </div>\n\n <div class=\"tw-flex tw-justify-center tw-gap-m\">\n @if (secondaryButtonLabel()) {\n <div class=\"secondaryButton tw-my-xl\">\n <button lx-button size=\"large\" [showSpinner]=\"loading()\" (click)=\"secondaryButtonClicked.emit($event)\">\n {{ secondaryButtonLabel() }}\n </button>\n </div>\n }\n\n @if (buttonLabel()) {\n <div class=\"actionButton tw-my-xl\">\n <button lx-button size=\"large\" color=\"primary\" [showSpinner]=\"loading()\" (click)=\"buttonClicked.emit($event)\">\n {{ buttonLabel() }}\n </button>\n </div>\n }\n </div>\n\n @if (moreLinkLabel() && moreLink()) {\n <div>\n @if (useRouterLink()) {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [routerLink]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n } @else {\n <a\n rel=\"noopener noreferrer\"\n class=\"tw-text-size-md tw-text-primary\"\n [href]=\"moreLink()\"\n (click)=\"moreLinkClicked.emit($event)\"\n [target]=\"openMoreLinkInNewTab() ? '_blank' : '_self'\"\n >{{ moreLinkLabel() }}</a\n >\n }\n </div>\n }\n</div>\n", styles: [":host{display:flex;justify-content:center}:host .emptyStateIcon{font-size:var(--lxFontHeader1Size, 32px)}:host[size=small] .empty-state-title{font-size:var(--lxFontSize, 14px)}:host[size=small] .empty-state-content{font-size:var(--lxFontSmallSize, 12px)}:host[size=medium] .empty-state-title{font-size:var(--lxFontHeader2Size, 24px)}:host[size=medium] .empty-state-content{font-size:var(--lxFontSize, 14px)}i{position:relative}i:after{content:\"\";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);height:6px;width:44px;background-color:#f0f2f5;border-radius:100%}\n"] }]
|
1027
1027
|
}], propDecorators: { _size: [{
|
1028
1028
|
type: HostBinding,
|
1029
1029
|
args: ['attr.size']
|