barsa-sap-ui 2.2.62 → 2.2.63
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/barsa-asp-viewer/barsa-asp-viewer.component.mjs +18 -3
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +10 -5
- package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +14 -4
- package/fesm2022/barsa-sap-ui.mjs +36 -7
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +3 -1
- package/lib/ly-tab-page/ly-tab-page.component.d.ts +1 -0
- package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +4 -0
- package/package.json +1 -1
|
@@ -57,6 +57,14 @@ export class BarsaAspViewerComponent extends BaseComponent {
|
|
|
57
57
|
const iframEl = this.iframe.nativeElement;
|
|
58
58
|
if (handleEvent) {
|
|
59
59
|
iframEl.addEventListener('load', this._onLoadIfram.bind(this));
|
|
60
|
+
if (this.fitToIframe) {
|
|
61
|
+
window.addEventListener('message', (event) => {
|
|
62
|
+
const iframe = iframEl;
|
|
63
|
+
if (iframe && event.data) {
|
|
64
|
+
this.renderer.setStyle(this.el.nativeElement, 'height', event.data + 100 + 'px');
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
_onLoadIfram() {
|
|
@@ -79,6 +87,7 @@ export class BarsaAspViewerComponent extends BaseComponent {
|
|
|
79
87
|
// this._cdr.markForCheck();
|
|
80
88
|
// }
|
|
81
89
|
if (iframEl.contentWindow) {
|
|
90
|
+
iframEl.contentWindow['IsPortal'] = true;
|
|
82
91
|
// console.log('outerHeight',iframEl.contentWindow.outerHeight);
|
|
83
92
|
// this.renderer.setStyle(iframEl, 'min-height', `${iframEl.contentWindow.outerHeight}px`);
|
|
84
93
|
setTimeout(() => {
|
|
@@ -107,6 +116,8 @@ export class BarsaAspViewerComponent extends BaseComponent {
|
|
|
107
116
|
params.FolderId +
|
|
108
117
|
'&FrameId=' +
|
|
109
118
|
frameId +
|
|
119
|
+
'&Zoom=' +
|
|
120
|
+
this.defaultZoom || 100 +
|
|
110
121
|
'&Language=' +
|
|
111
122
|
BarsaApi.BBB.CurrentCulture +
|
|
112
123
|
'&CtrlIsPressed=' +
|
|
@@ -116,11 +127,11 @@ export class BarsaAspViewerComponent extends BaseComponent {
|
|
|
116
127
|
form.submit();
|
|
117
128
|
}
|
|
118
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAspViewerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: { context: "context", parentHeight: "parentHeight", isReportPage: "isReportPage", hideSearchpanel: "hideSearchpanel" }, host: { listeners: { "window:keypress": "handleKeyDown(event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }, { propertyName: "hidden", first: true, predicate: ["hidden"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: { context: "context", parentHeight: "parentHeight", isReportPage: "isReportPage", hideSearchpanel: "hideSearchpanel", fitToIframe: "fitToIframe", defaultZoom: "defaultZoom" }, host: { listeners: { "window:keypress": "handleKeyDown(event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }, { propertyName: "hidden", first: true, predicate: ["hidden"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
120
131
|
}
|
|
121
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAspViewerComponent, decorators: [{
|
|
122
133
|
type: Component,
|
|
123
|
-
args: [{ selector: 'bsu-barsa-asp-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:
|
|
134
|
+
args: [{ selector: 'bsu-barsa-asp-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:100%;width:100%}\n"] }]
|
|
124
135
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { context: [{
|
|
125
136
|
type: Input
|
|
126
137
|
}], parentHeight: [{
|
|
@@ -129,6 +140,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
129
140
|
type: Input
|
|
130
141
|
}], hideSearchpanel: [{
|
|
131
142
|
type: Input
|
|
143
|
+
}], fitToIframe: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], defaultZoom: [{
|
|
146
|
+
type: Input
|
|
132
147
|
}], form: [{
|
|
133
148
|
type: ViewChild,
|
|
134
149
|
args: ['form']
|
|
@@ -142,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
142
157
|
type: HostListener,
|
|
143
158
|
args: ['window:keypress', ['event']]
|
|
144
159
|
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXNwLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1hc3Atdmlld2VyL2JhcnNhLWFzcC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYXNwLXZpZXdlci9iYXJzYS1hc3Atdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBS0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVEvRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWF0RCxZQUFtQixFQUFjLEVBQVUsUUFBbUIsRUFBVSxJQUF1QjtRQUMzRixLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFEL0YsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUdoQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQzlCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMs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YSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQzsrR0EzSFEsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ2pCQ3ZCcEMseWdCQWNBOzs0RkRTYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzt1SUFHUixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ2EsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNJLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBVW5CLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uSW5pdCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWFzcC12aWV3ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWFzcC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtYXNwLXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FBc3BWaWV3ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xyXG4gICAgQElucHV0KCkgcGFyZW50SGVpZ2h0OiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBpc1JlcG9ydFBhZ2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoaWRlU2VhcmNocGFuZWw6IGJvb2xlYW47XHJcbiAgICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybTogRWxlbWVudFJlZjxIVE1MRm9ybUVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnaWZyYW1lJykgaWZyYW1lOiBFbGVtZW50UmVmPEhUTUxJRnJhbWVFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2hpZGRlbicpIGhpZGRlbjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICBjdHJsSXNQcmVzc2VkOiBib29sZWFuO1xyXG4gICAgX2ZyYW1lSWQ7XHJcbiAgICB1bmxvYWQ6IGJvb2xlYW47XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5cHJlc3MnLCBbJ2V2ZW50J10pXHJcbiAgICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQgJiYgKHRoaXMuY3RybElzUHJlc3NlZCA9IGV2ZW50LmN0cmxLZXkpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBSZWxvYWQ6IHRoaXMuX3JlbG9hZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fZnJhbWVJZCA9IHRoaXMuY29udGV4dC5fZnJhbWVJZDtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IHBhcmVudEhlaWdodCwgaGlkZVNlYXJjaHBhbmVsIH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmICgocGFyZW50SGVpZ2h0ICYmICFwYXJlbnRIZWlnaHQuZmlyc3RDaGFuZ2UpIHx8IChoaWRlU2VhcmNocGFuZWwgJiYgIWhpZGVTZWFyY2hwYW5lbC5maXJzdENoYW5nZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVsb2FkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRJRnJhbWUoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uVmlzaWJpbGl0eUNoYW5nZShlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGUgPT09ICdWaXNpYmxlJykge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9yZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgdGhpcy5fbG9hZElGcmFtZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuX3JlbG9hZCgpO1xyXG4gICAgICAgIC8vIHRoaXMuX2xvYWRJRnJhbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZWxvYWQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYmFza2V0OiBhbnkgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdSZXF1ZXN0Rm9yUGFyYW1zJywgdGhpcywgYmFza2V0KTtcclxuICAgICAgICBpZiAoIWJhc2tldC5VbHZQYXJhbXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYmFza2V0LlVsdlBhcmFtcy5XaWR0aCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICB0aGlzLl9zdWJtaXRGb3JtKGJhc2tldC5VbHZQYXJhbXMpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfbG9hZElGcmFtZShoYW5kbGVFdmVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpZnJhbUVsOiBIVE1MSUZyYW1lRWxlbWVudCA9IHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChoYW5kbGVFdmVudCkge1xyXG4gICAgICAgICAgICBpZnJhbUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0aGlzLl9vbkxvYWRJZnJhbS5iaW5kKHRoaXMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb25Mb2FkSWZyYW0oKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaWZyYW1FbDogSFRNTElGcmFtZUVsZW1lbnQgPSB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAvLyBpZiAoaWZyYW1FbC5jb250ZW50V2luZG93Py5kb2N1bWVudD8uYm9keSAmJiBpZnJhbUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwubGVuZ3RoIDwgNDApIHtcclxuICAgICAgICAvLyAgICAgLy8g2LLZhdin2YbbjCDaqdmHINiv2KfYtNio2YjYsdivINmB2LnYp9mEINmG2KjYp9i02K8g2YfZhduM2YYg2LfZiNix24wg2LHZgdix2LQg2YXbjNi02YjYryDYqNiu2KfYt9ixINmH2YXbjNmGINqp2YXYqtixINin2LIgNDAg2qnYp9ix2Kfaqdiq2LEg2q/YsNin2LTYqtmFXHJcbiAgICAgICAgLy8gICAgIC8vINmI2YLYqtuMINuM2qkg2KfbjCDZgdix24zZhSDYr9ixINiq2Kgg2YLYsdin2LEg2YXbjNqv24zYsdivINio2Kcg2KrYutuM24zYsSDYqtioINmF2K3YqtmI2KfbjCDYr9in2K7ZhCDYp9uMINmB2LHbjNmFINm+2KfaqSDZhduM2LTZiNivINin24zZhiDZhdi02qnZhCDYqtioINin2Ybar9mI2YTYp9ixINin2LPYqlxyXG4gICAgICAgIC8vICAgICBpZnJhbUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0aGlzLl9vbkxvYWRJZnJhbSk7XHJcbiAgICAgICAgLy8gICAgIGlmICh0aGlzLmZpcnN0TG9hZGluZykge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5maXJzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgICB0aGlzLl9yZWxvYWQoKTtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBpZiAoIXRoaXMuZmlyc3RMb2FkaW5nKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuZmlyc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZiAoaWZyYW1FbC5jb250ZW50V2luZG93KSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdvdXRlckhlaWdodCcsaWZyYW1FbC5jb250ZW50V2luZG93Lm91dGVySGVpZ2h0KTtcclxuICAgICAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpZnJhbUVsLCAnbWluLWhlaWdodCcsIGAke2lmcmFtRWwuY29udGVudFdpbmRvdy5vdXRlckhlaWdodH1weGApO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaWZyYW1FbCwgJ21pbi1oZWlnaHQnLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBoZWFkID0gaWZyYW1FbC5jb250ZW50RG9jdW1lbnQ/LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XHJcbiAgICAgICAgY29uc3QgbGluazE6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICAgIGxpbmsxLnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTtcclxuICAgICAgICBsaW5rMS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnL2Fzc2V0cy9SZXNvdXJjZXMvZm9udHMvZGVmYXVsdEZvbnRGYWNlcy5jc3MnKTtcclxuICAgICAgICBsaW5rMS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcclxuICAgICAgICBoZWFkPy5hcHBlbmRDaGlsZChsaW5rMSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmsyOiBIVE1MTGlua0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgICAgICBsaW5rMi5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdzdHlsZXNoZWV0Jyk7XHJcbiAgICAgICAgbGluazIuc2V0QXR0cmlidXRlKCdocmVmJywgJy9DdXN0b21pemF0aW9uL1VzZXJjc3MuY3NzJyk7XHJcbiAgICAgICAgbGluazIuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XHJcbiAgICAgICAgaGVhZD8uYXBwZW5kQ2hpbGQobGluazIpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3VibWl0Rm9ybShwYXJhbXMpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgYXNwVXJsID0gdGhpcy5jb250ZXh0Ll9hc3BVcmw7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuY29udGV4dC5fZnJhbWVJZDtcclxuICAgICAgICBmb3JtLmFjdGlvbiA9XHJcbiAgICAgICAgICAgIGFzcFVybCArXHJcbiAgICAgICAgICAgICc/UmVwb3J0SWQ9JyArXHJcbiAgICAgICAgICAgIHBhcmFtcy5Gb2xkZXJJZCArXHJcbiAgICAgICAgICAgICcmRnJhbWVJZD0nICtcclxuICAgICAgICAgICAgZnJhbWVJZCArXHJcbiAgICAgICAgICAgICcmTGFuZ3VhZ2U9JyArXHJcbiAgICAgICAgICAgIEJhcnNhQXBpLkJCQi5DdXJyZW50Q3VsdHVyZSArXHJcbiAgICAgICAgICAgICcmQ3RybElzUHJlc3NlZD0nICtcclxuICAgICAgICAgICAgdGhpcy5jdHJsSXNQcmVzc2VkO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gQmFyc2FBcGkuRXh0LnV0aWwuSlNPTi5lbmNvZGUocGFyYW1zKTtcclxuICAgICAgICB0aGlzLmhpZGRlbi5uYXRpdmVFbGVtZW50LnZhbHVlID0gZXNjYXBlKHZhbHVlKTtcclxuICAgICAgICBmb3JtLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxmb3JtICNmb3JtIG1ldGhvZD1cInBvc3RcIiB0YXJnZXQ9XCJwcHBwcFwiIFtuYW1lXT1cIidmcm1fJyArIF9mcmFtZUlkXCIgW2lkXT1cIidmcm1fJyArIF9mcmFtZUlkXCI+XHJcbiAgICA8aW5wdXQgI2hpZGRlbiBbbmFtZV09XCInaGlkZGVuXycgKyBfZnJhbWVJZFwiIFtpZF09XCInaGlkZGVuXycgKyBfZnJhbWVJZFwiIHR5cGU9XCJoaWRkZW5cIiAvPlxyXG48L2Zvcm0+XHJcbjxpZnJhbWVcclxuICAgICNpZnJhbWVcclxuICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICBbaW50ZXJzZWN0aW9uVGhyZXNob2xkXT1cIjAuMVwiXHJcbiAgICAodmlzaWJpbGl0eUNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBuYW1lPVwicHBwcHBcIlxyXG4gICAgaWQ9XCJwcHBwcFwiXHJcbiAgICBjbGFzcz1cImlmcmFtZVwiXHJcbiAgICBzcmM9XCJhYm91dDpibGFua1wiXHJcbj48L2lmcmFtZT5cclxuPGJzdS1tYXNrICpuZ0lmPVwibG9hZGluZ1wiPjwvYnN1LW1hc2s+XHJcbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXNwLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9iYXJzYS1hc3Atdmlld2VyL2JhcnNhLWFzcC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYXNwLXZpZXdlci9iYXJzYS1hc3Atdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBS0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVEvRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWV0RCxZQUFtQixFQUFjLEVBQVUsUUFBbUIsRUFBVSxJQUF1QjtRQUMzRixLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFEL0YsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUdoQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQzlCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMs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QUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSSxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQVVuQixhQUFhO3NCQURaLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkluaXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1hc3Atdmlld2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1hc3Atdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWFzcC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQXNwVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIHBhcmVudEhlaWdodDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVNlYXJjaHBhbmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZml0VG9JZnJhbWU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBkZWZhdWx0Wm9vbTogbnVtYmVyO1xyXG4gICAgQFZpZXdDaGlsZCgnZm9ybScpIGZvcm06IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2lmcmFtZScpIGlmcmFtZTogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdoaWRkZW4nKSBoaWRkZW46IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgY3RybElzUHJlc3NlZDogYm9vbGVhbjtcclxuICAgIF9mcmFtZUlkO1xyXG4gICAgdW5sb2FkOiBib29sZWFuO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXByZXNzJywgWydldmVudCddKVxyXG4gICAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50ICYmICh0aGlzLmN0cmxJc1ByZXNzZWQgPSBldmVudC5jdHJsS2V5KTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcclxuICAgICAgICAgICAgUmVsb2FkOiB0aGlzLl9yZWxvYWQuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2ZyYW1lSWQgPSB0aGlzLmNvbnRleHQuX2ZyYW1lSWQ7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBwYXJlbnRIZWlnaHQsIGhpZGVTZWFyY2hwYW5lbCB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoKHBhcmVudEhlaWdodCAmJiAhcGFyZW50SGVpZ2h0LmZpcnN0Q2hhbmdlKSB8fCAoaGlkZVNlYXJjaHBhbmVsICYmICFoaWRlU2VhcmNocGFuZWwuZmlyc3RDaGFuZ2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbG9hZCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkSUZyYW1lKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlID09PSAnVmlzaWJsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fcmVsb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX2xvYWRJRnJhbWUoKTtcclxuICAgICAgICAvLyB0aGlzLl9yZWxvYWQoKTtcclxuICAgICAgICAvLyB0aGlzLl9sb2FkSUZyYW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVsb2FkKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJhc2tldDogYW55ID0ge307XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnUmVxdWVzdEZvclBhcmFtcycsIHRoaXMsIGJhc2tldCk7XHJcbiAgICAgICAgaWYgKCFiYXNrZXQuVWx2UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJhc2tldC5VbHZQYXJhbXMuV2lkdGggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgdGhpcy5fc3VibWl0Rm9ybShiYXNrZXQuVWx2UGFyYW1zKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2xvYWRJRnJhbWUoaGFuZGxlRXZlbnQgPSB0cnVlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaWZyYW1FbDogSFRNTElGcmFtZUVsZW1lbnQgPSB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoaGFuZGxlRXZlbnQpIHtcclxuICAgICAgICAgICAgaWZyYW1FbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5fb25Mb2FkSWZyYW0uYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZpdFRvSWZyYW1lKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IGlmcmFtRWw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlmcmFtZSAmJiBldmVudC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgZXZlbnQuZGF0YSArIDEwMCArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uTG9hZElmcmFtKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGlmcmFtRWw6IEhUTUxJRnJhbWVFbGVtZW50ID0gdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgLy8gaWYgKGlmcmFtRWwuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ/LmJvZHkgJiYgaWZyYW1FbC5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MLmxlbmd0aCA8IDQwKSB7XHJcbiAgICAgICAgLy8gICAgIC8vINiy2YXYp9mG24wg2qnZhyDYr9in2LTYqNmI2LHYryDZgdi52KfZhCDZhtio2KfYtNivINmH2YXbjNmGINi32YjYsduMINix2YHYsdi0INmF24zYtNmI2K8g2KjYrtin2LfYsSDZh9mF24zZhiDaqdmF2KrYsSDYp9iyIDQwINqp2KfYsdin2qnYqtixINqv2LDYp9i02KrZhVxyXG4gICAgICAgIC8vICAgICAvLyDZiNmC2KrbjCDbjNqpINin24wg2YHYsduM2YUg2K/YsSDYqtioINmC2LHYp9ixINmF24zar9uM2LHYryDYqNinINiq2LrbjNuM2LEg2KrYqCDZhdit2KrZiNin24wg2K/Yp9iu2YQg2KfbjCDZgdix24zZhSDZvtin2qkg2YXbjNi02YjYryDYp9uM2YYg2YXYtNqp2YQg2KrYqCDYp9mG2q/ZiNmE2KfYsSDYp9iz2KpcclxuICAgICAgICAvLyAgICAgaWZyYW1FbC5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5fb25Mb2FkSWZyYW0pO1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy5maXJzdExvYWRpbmcpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuZmlyc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyAgICAgdGhpcy5fcmVsb2FkKCk7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gaWYgKCF0aGlzLmZpcnN0TG9hZGluZykge1xyXG4gICAgICAgIC8vICAgICB0aGlzLmZpcnN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgaWYgKGlmcmFtRWwuY29udGVudFdpbmRvdykge1xyXG4gICAgICAgICAgICBpZnJhbUVsLmNvbnRlbnRXaW5kb3dbJ0lzUG9ydGFsJ10gPSB0cnVlO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnb3V0ZXJIZWlnaHQnLGlmcmFtRWwuY29udGVudFdpbmRvdy5vdXRlckhlaWdodCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaWZyYW1FbCwgJ21pbi1oZWlnaHQnLCBgJHtpZnJhbUVsLmNvbnRlbnRXaW5kb3cub3V0ZXJIZWlnaHR9cHhgKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGlmcmFtRWwsICdtaW4taGVpZ2h0JywgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArICdweCcpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaGVhZCA9IGlmcmFtRWwuY29udGVudERvY3VtZW50Py5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgICAgIGNvbnN0IGxpbmsxOiBIVE1MTGlua0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgICAgICBsaW5rMS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdzdHlsZXNoZWV0Jyk7XHJcbiAgICAgICAgbGluazEuc2V0QXR0cmlidXRlKCdocmVmJywgJy9hc3NldHMvUmVzb3VyY2VzL2ZvbnRzL2RlZmF1bHRGb250RmFjZXMuY3NzJyk7XHJcbiAgICAgICAgbGluazEuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XHJcbiAgICAgICAgaGVhZD8uYXBwZW5kQ2hpbGQobGluazEpO1xyXG5cclxuICAgICAgICBjb25zdCBsaW5rMjogSFRNTExpbmtFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgICAgbGluazIuc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpO1xyXG4gICAgICAgIGxpbmsyLnNldEF0dHJpYnV0ZSgnaHJlZicsICcvQ3VzdG9taXphdGlvbi9Vc2VyY3NzLmNzcycpO1xyXG4gICAgICAgIGxpbmsyLnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2NzcycpO1xyXG4gICAgICAgIGhlYWQ/LmFwcGVuZENoaWxkKGxpbmsyKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3N1Ym1pdEZvcm0ocGFyYW1zKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybS5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGFzcFVybCA9IHRoaXMuY29udGV4dC5fYXNwVXJsO1xyXG4gICAgICAgIGNvbnN0IGZyYW1lSWQgPSB0aGlzLmNvbnRleHQuX2ZyYW1lSWQ7XHJcbiAgICAgICAgZm9ybS5hY3Rpb24gPVxyXG4gICAgICAgICAgICBhc3BVcmwgK1xyXG4gICAgICAgICAgICAnP1JlcG9ydElkPScgK1xyXG4gICAgICAgICAgICBwYXJhbXMuRm9sZGVySWQgK1xyXG4gICAgICAgICAgICAnJkZyYW1lSWQ9JyArXHJcbiAgICAgICAgICAgIGZyYW1lSWQgK1xyXG4gICAgICAgICAgICAnJlpvb209JyArXHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFpvb20gfHwgMTAwICtcclxuICAgICAgICAgICAgJyZMYW5ndWFnZT0nICtcclxuICAgICAgICAgICAgQmFyc2FBcGkuQkJCLkN1cnJlbnRDdWx0dXJlICtcclxuICAgICAgICAgICAgJyZDdHJsSXNQcmVzc2VkPScgK1xyXG4gICAgICAgICAgICB0aGlzLmN0cmxJc1ByZXNzZWQ7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBCYXJzYUFwaS5FeHQudXRpbC5KU09OLmVuY29kZShwYXJhbXMpO1xyXG4gICAgICAgIHRoaXMuaGlkZGVuLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBlc2NhcGUodmFsdWUpO1xyXG4gICAgICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZvcm0gI2Zvcm0gbWV0aG9kPVwicG9zdFwiIHRhcmdldD1cInBwcHBwXCIgW25hbWVdPVwiJ2ZybV8nICsgX2ZyYW1lSWRcIiBbaWRdPVwiJ2ZybV8nICsgX2ZyYW1lSWRcIj5cclxuICAgIDxpbnB1dCAjaGlkZGVuIFtuYW1lXT1cIidoaWRkZW5fJyArIF9mcmFtZUlkXCIgW2lkXT1cIidoaWRkZW5fJyArIF9mcmFtZUlkXCIgdHlwZT1cImhpZGRlblwiIC8+XHJcbjwvZm9ybT5cclxuPGlmcmFtZVxyXG4gICAgI2lmcmFtZVxyXG4gICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJcclxuICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICh2aXNpYmlsaXR5Q2hhbmdlKT1cIm9uVmlzaWJpbGl0eUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIG5hbWU9XCJwcHBwcFwiXHJcbiAgICBpZD1cInBwcHBwXCJcclxuICAgIGNsYXNzPVwiaWZyYW1lXCJcclxuICAgIHNyYz1cImFib3V0OmJsYW5rXCJcclxuPjwvaWZyYW1lPlxyXG48YnN1LW1hc2sgKm5nSWY9XCJsb2FkaW5nXCI+PC9ic3UtbWFzaz5cclxuIl19
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { LayoutPanelBaseComponent, LayoutService } from 'barsa-novin-ray-core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewContainerRef, inject } from '@angular/core';
|
|
2
|
+
import { LayoutPanelBaseComponent, LayoutService, TabpageService } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "barsa-novin-ray-core";
|
|
6
6
|
export class LyTabPageComponent extends LayoutPanelBaseComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._tabpageService = inject(TabpageService);
|
|
10
|
+
}
|
|
7
11
|
ngOnInit() {
|
|
8
12
|
super.ngOnInit();
|
|
9
13
|
const config = this.config;
|
|
@@ -11,16 +15,17 @@ export class LyTabPageComponent extends LayoutPanelBaseComponent {
|
|
|
11
15
|
this.title = config.Title;
|
|
12
16
|
this.flex = config.Bounds.width;
|
|
13
17
|
this._classes = this.config.items.length === 0 ? 'field-nopadding' : 'field-nopadding';
|
|
18
|
+
this._tabpageService.setItemCount(this.layoutControlCount);
|
|
14
19
|
}
|
|
15
20
|
refreshLayout() {
|
|
16
21
|
this.layoutService.refreshLayout();
|
|
17
22
|
}
|
|
18
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.tabtitle": "this.title", "class": "this._classes" } }, providers: [LayoutService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.tabtitle": "this.title", "class": "this._classes" } }, providers: [LayoutService, TabpageService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
25
|
}
|
|
21
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabPageComponent, decorators: [{
|
|
22
27
|
type: Component,
|
|
23
|
-
args: [{ selector: 'bsu-ly-tab-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], standalone: false, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"] }]
|
|
28
|
+
args: [{ selector: 'bsu-ly-tab-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService, TabpageService], standalone: false, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"] }]
|
|
24
29
|
}], propDecorators: { vcr: [{
|
|
25
30
|
type: ViewChild,
|
|
26
31
|
args: ['placeholder', { read: ViewContainerRef }]
|
|
@@ -41,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41
46
|
type: ViewChild,
|
|
42
47
|
args: ['viewRefTemplate', { read: ViewContainerRef, static: true }]
|
|
43
48
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHktdGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVcvRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBYTVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRixDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzsrR0F2QlEsa0JBQWtCO21HQUFsQixrQkFBa0Isb05BSGhCLENBQUMsYUFBYSxDQUFDLHlHQUlRLGdCQUFnQixxR0FNWixnQkFBZ0Isa0VDN0IxRCx3cUlBd0dBOzs0RkRsRmEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDLGNBQ2QsS0FBSzs4QkFHcUMsR0FBRztzQkFBeEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzNDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQixJQUFJO3NCQUE5QixXQUFXO3VCQUFDLFlBQVk7Z0JBQ0ssS0FBSztzQkFBbEMsV0FBVzt1QkFBQyxlQUFlO2dCQUNOLFFBQVE7c0JBQTdCLFdBQVc7dUJBQUMsT0FBTztnQkFDb0QsT0FBTztzQkFBOUUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50LCBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBJY29uVGFiQmFyVGFiQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWx5LXRhYi1wYWdlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9seS10YWItcGFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9seS10YWItcGFnZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMeVRhYlBhZ2VDb21wb25lbnQgZXh0ZW5kcyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgQElucHV0KCkgcmVuZGVySXRlbXM6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSB0YWJsaXN0OiBJY29uVGFiQmFyVGFiQ29tcG9uZW50O1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4JykgZmxleDtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJ0aXRsZScpIHRpdGxlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIF9jbGFzc2VzO1xyXG4gICAgQFZpZXdDaGlsZCgndmlld1JlZlRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICB2aXNpYmxlOiBib29sZWFuO1xyXG4gICAgZW5hYmxlOiBib29sZWFuO1xyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuICAgICAgICBjb25maWcuY29udHJvbFVpID0gdGhpcztcclxuICAgICAgICB0aGlzLnRpdGxlID0gY29uZmlnLlRpdGxlO1xyXG4gICAgICAgIHRoaXMuZmxleCA9IGNvbmZpZy5Cb3VuZHMud2lkdGg7XHJcbiAgICAgICAgdGhpcy5fY2xhc3NlcyA9IHRoaXMuY29uZmlnLml0ZW1zLmxlbmd0aCA9PT0gMCA/ICdmaWVsZC1ub3BhZGRpbmcnIDogJ2ZpZWxkLW5vcGFkZGluZyc7XHJcbiAgICB9XHJcbiAgICByZWZyZXNoTGF5b3V0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWZyZXNoTGF5b3V0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdW50aWxJblZpZXc9XCJlbFwiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBjb25maWcgfCBmaWx0ZXJUb29sYmFyQ29udHJvbDsgdHJhY2sgaXRlbSkgeyBAc3dpdGNoIChpdGVtLnh0eXBlKSB7IEBjYXNlICgnTHkuTGF5b3V0VGFiUGFuZWwnKSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcclxuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUxheW91dFBhbmVsQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktdGFiLWNvbnRhaW5lcicgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktdGFiLWNvbnRhaW5lciBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS10YWItY29udGFpbmVyPiAtLT5cclxuICAgIH0gQGNhc2UgKCdMeS5MYXlvdXRQYW5lbCcpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGF5b3V0UGFuZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1sYXlvdXQtcGFuZWwnIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSA8YnN1LWx5LWxheW91dC1wYW5lbCBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1sYXlvdXQtcGFuZWw+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LkxheW91dENvbnRhaW5lcicpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTHlMYXlvdXRDb250YWluZXJDb21wb25lbnQnLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdic3UtbHktbGF5b3V0LWNvbnRhaW5lcidcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lciBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyPiAtLT5cclxuICAgIH0gQGNhc2UgKCdMeS5FbXB0eVNwYWNlJykge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlFbXB0eVNwYWNlQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktZW1wdHktc3BhY2UnIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSA8YnN1LWx5LWVtcHR5LXNwYWNlIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWVtcHR5LXNwYWNlPiAtLT5cclxuICAgIH0gQGNhc2UgKCdMeS5TaW1wbGVMYWJlbCcpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5U2ltcGxlTGFiZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1zaW1wbGUtbGFiZWwnIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSA8YnN1LWx5LXNpbXBsZS1sYWJlbCBbY29uZmlnXT1cIml0ZW1cIj48L2JzdS1seS1zaW1wbGUtbGFiZWw+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LkxheW91dExpbmUnKSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcclxuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUxpbmVDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1saW5lJyB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1seS1saW5lIFtpc1ZlcnRpY2FsXT1cIml0ZW0uSXNWZXJ0aWNhbFwiPjwvYnN1LWx5LWxpbmU+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LkxheW91dEpvaW4nKSB7IEBpZiAoaXRlbS5UeXBlID09PSAnSG9yaXpvbnRhbEpvaW4nKSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdic3UtbHktaG9yaXpvbnRhbC1sYXlvdXQnLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0SG9yaXpvbnRhbENvbXBvbmVudCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktaG9yaXpvbnRhbC1sYXlvdXQgW2NvbmZpZ109XCJpdGVtXCIgW21heExhYmVsV2lkdGhdPVwibWF4TGFiZWxXaWR0aFwiPjwvYnN1LWx5LWhvcml6b250YWwtbGF5b3V0PiAtLT5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWx5LXZlcnRpY2FsLWxheW91dCcsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTHlMYXlvdXRWZXJ0aWNhbENvbXBvbmVudCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktdmVydGljYWwtbGF5b3V0IFtjb25maWddPVwiaXRlbVwiIFttYXhMYWJlbFdpZHRoXT1cIm1heExhYmVsV2lkdGhcIj48L2JzdS1seS12ZXJ0aWNhbC1sYXlvdXQ+IC0tPlxyXG4gICAgfSB9IEBjYXNlICgnTHkuTGF5b3V0Q29udHJvbCcpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtY29udHJvbCcsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTGF5b3V0Q29udHJvbENvbXBvbmVudCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbGF5b3V0LWNvbnRyb2wgW2NvbmZpZ109XCJpdGVtXCIgW21heExhYmVsV2lkdGhdPVwibWF4TGFiZWxXaWR0aFwiPjwvYnN1LWxheW91dC1jb250cm9sPiAtLT5cclxuICAgIH0gfSB9XHJcbiAgICA8bmctdGVtcGxhdGUgI2R5bmFtaWNMYXlvdXQgbGV0LWNvbmZpZyBsZXQtc2VsZWN0b3I9XCJzZWxlY3RvclwiIGxldC1uYW1lPVwibmFtZVwiPlxyXG4gICAgICAgIDxibnJjLWR5bmFtaWMtbGF5b3V0XHJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgICAgICAgW3NlbGVjdG9yXT1cInNlbGVjdG9yXCJcclxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgIFttb2R1bGVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICAgICAgW21vZHVsZUZpbGVOYW1lXT1cIidCYXJzYVNhcFVpJ1wiXHJcbiAgICAgICAgICAgIFttYXhMYWJlbFdpZHRoXT1cIihtYXhMYWJlbFdpZHRoJCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgW2ZsZXhdPVwiaXNTZWFyY2hQYW5lbCA/ICd1bnNldCcgOiBjb25maWcuQm91bmRzLndpZHRoXCJcclxuICAgICAgICAgICAgW2lzU2VhcmNoUGFuZWxdPVwiaXNTZWFyY2hQYW5lbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYm5yYy1keW5hbWljLWxheW91dD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHktdGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBVy9GLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx3QkFBd0I7SUFSaEU7O1FBb0JZLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBYXBEO0lBWkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZGLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QyxDQUFDOytHQXhCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixvTkFIaEIsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLHlHQUlSLGdCQUFnQixxR0FNWixnQkFBZ0Isa0VDOUIxRCx3cUlBd0dBOzs0RkRqRmEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxjQUM5QixLQUFLOzhCQUdxQyxHQUFHO3NCQUF4RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDM0MsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ3FCLElBQUk7c0JBQTlCLFdBQVc7dUJBQUMsWUFBWTtnQkFDSyxLQUFLO3NCQUFsQyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ04sUUFBUTtzQkFBN0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNvRCxPQUFPO3NCQUE5RSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQsIExheW91dFNlcnZpY2UsIFRhYnBhZ2VTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBJY29uVGFiQmFyVGFiQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWx5LXRhYi1wYWdlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9seS10YWItcGFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9seS10YWItcGFnZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtMYXlvdXRTZXJ2aWNlLCBUYWJwYWdlU2VydmljZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTHlUYWJQYWdlQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UGFuZWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3BsYWNlaG9sZGVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHZjcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIEBJbnB1dCgpIHJlbmRlckl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgdGFibGlzdDogSWNvblRhYkJhclRhYkNvbXBvbmVudDtcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZmxleCcpIGZsZXg7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFidGl0bGUnKSB0aXRsZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBfY2xhc3NlcztcclxuICAgIEBWaWV3Q2hpbGQoJ3ZpZXdSZWZUZW1wbGF0ZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHZpZXdSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gICAgdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIGVuYWJsZTogYm9vbGVhbjtcclxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfdGFicGFnZVNlcnZpY2UgPSBpbmplY3QoVGFicGFnZVNlcnZpY2UpO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuICAgICAgICBjb25maWcuY29udHJvbFVpID0gdGhpcztcclxuICAgICAgICB0aGlzLnRpdGxlID0gY29uZmlnLlRpdGxlO1xyXG4gICAgICAgIHRoaXMuZmxleCA9IGNvbmZpZy5Cb3VuZHMud2lkdGg7XHJcbiAgICAgICAgdGhpcy5fY2xhc3NlcyA9IHRoaXMuY29uZmlnLml0ZW1zLmxlbmd0aCA9PT0gMCA/ICdmaWVsZC1ub3BhZGRpbmcnIDogJ2ZpZWxkLW5vcGFkZGluZyc7XHJcbiAgICAgICAgdGhpcy5fdGFicGFnZVNlcnZpY2Uuc2V0SXRlbUNvdW50KHRoaXMubGF5b3V0Q29udHJvbENvdW50KTtcclxuICAgIH1cclxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnJlZnJlc2hMYXlvdXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICp1bnRpbEluVmlldz1cImVsXCI+XHJcbiAgICBAZm9yIChpdGVtIG9mIGNvbmZpZyB8IGZpbHRlclRvb2xiYXJDb250cm9sOyB0cmFjayBpdGVtKSB7IEBzd2l0Y2ggKGl0ZW0ueHR5cGUpIHsgQGNhc2UgKCdMeS5MYXlvdXRUYWJQYW5lbCcpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGF5b3V0UGFuZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS10YWItY29udGFpbmVyJyB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1seS10YWItY29udGFpbmVyIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXRhYi1jb250YWluZXI+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LkxheW91dFBhbmVsJykge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlMYXlvdXRQYW5lbENvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LWxheW91dC1wYW5lbCcgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktbGF5b3V0LXBhbmVsIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWxheW91dC1wYW5lbD4gLS0+XHJcbiAgICB9IEBjYXNlICgnTHkuTGF5b3V0Q29udGFpbmVyJykge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdMeUxheW91dENvbnRhaW5lckNvbXBvbmVudCcsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1seS1sYXlvdXQtY29udGFpbmVyJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1seS1sYXlvdXQtY29udGFpbmVyIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWxheW91dC1jb250YWluZXI+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LkVtcHR5U3BhY2UnKSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcclxuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUVtcHR5U3BhY2VDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS1lbXB0eS1zcGFjZScgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktZW1wdHktc3BhY2UgW2NvbmZpZ109XCJpdGVtXCI+PC9ic3UtbHktZW1wdHktc3BhY2U+IC0tPlxyXG4gICAgfSBAY2FzZSAoJ0x5LlNpbXBsZUxhYmVsJykge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlTaW1wbGVMYWJlbENvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LXNpbXBsZS1sYWJlbCcgfVxyXG4gICAgICAgIFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxic3UtbHktc2ltcGxlLWxhYmVsIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXNpbXBsZS1sYWJlbD4gLS0+XHJcbiAgICB9IEBjYXNlICgnTHkuTGF5b3V0TGluZScpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGluZUNvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LWxpbmUnIH1cclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSA8YnN1LWx5LWxpbmUgW2lzVmVydGljYWxdPVwiaXRlbS5Jc1ZlcnRpY2FsXCI+PC9ic3UtbHktbGluZT4gLS0+XHJcbiAgICB9IEBjYXNlICgnTHkuTGF5b3V0Sm9pbicpIHsgQGlmIChpdGVtLlR5cGUgPT09ICdIb3Jpem9udGFsSm9pbicpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1seS1ob3Jpem9udGFsLWxheW91dCcsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnTHlMYXlvdXRIb3Jpem9udGFsQ29tcG9uZW50J1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1seS1ob3Jpem9udGFsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktaG9yaXpvbnRhbC1sYXlvdXQ+IC0tPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdic3UtbHktdmVydGljYWwtbGF5b3V0JyxcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdMeUxheW91dFZlcnRpY2FsQ29tcG9uZW50J1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1seS12ZXJ0aWNhbC1sYXlvdXQgW2NvbmZpZ109XCJpdGVtXCIgW21heExhYmVsV2lkdGhdPVwibWF4TGFiZWxXaWR0aFwiPjwvYnN1LWx5LXZlcnRpY2FsLWxheW91dD4gLS0+XHJcbiAgICB9IH0gQGNhc2UgKCdMeS5MYXlvdXRDb250cm9sJykge1xyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdMYXlvdXRDb250cm9sQ29tcG9uZW50J1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJzdS1sYXlvdXQtY29udHJvbCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbGF5b3V0LWNvbnRyb2w+IC0tPlxyXG4gICAgfSB9IH1cclxuICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0xheW91dCBsZXQtY29uZmlnIGxldC1zZWxlY3Rvcj1cInNlbGVjdG9yXCIgbGV0LW5hbWU9XCJuYW1lXCI+XHJcbiAgICAgICAgPGJucmMtZHluYW1pYy1sYXlvdXRcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICAgICAgICBbc2VsZWN0b3JdPVwic2VsZWN0b3JcIlxyXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgW21vZHVsZV09XCInQmFyc2FTYXBVaSdcIlxyXG4gICAgICAgICAgICBbbW9kdWxlRmlsZU5hbWVdPVwiJ0JhcnNhU2FwVWknXCJcclxuICAgICAgICAgICAgW21heExhYmVsV2lkdGhdPVwiKG1heExhYmVsV2lkdGgkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICBbZmxleF09XCJpc1NlYXJjaFBhbmVsID8gJ3Vuc2V0JyA6IGNvbmZpZy5Cb3VuZHMud2lkdGhcIlxyXG4gICAgICAgICAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9ibnJjLWR5bmFtaWMtbGF5b3V0PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { TabpageService, LocalStorageService } from 'barsa-novin-ray-core';
|
|
2
3
|
import { SapUiReportBaseComponent } from '../sap-ui-report-base.component';
|
|
3
4
|
import { takeUntil } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
@@ -6,11 +7,20 @@ import * as i1 from "barsa-novin-ray-core";
|
|
|
6
7
|
import * as i2 from "../barsa-asp-viewer/barsa-asp-viewer.component";
|
|
7
8
|
import * as i3 from "@angular/common";
|
|
8
9
|
export class UiAspReportViewerComponent extends SapUiReportBaseComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.zoomValue = 100;
|
|
13
|
+
this._tabpageService = inject(TabpageService, { optional: true, skipSelf: true });
|
|
14
|
+
this._localStorage = inject(LocalStorageService);
|
|
15
|
+
}
|
|
9
16
|
ngOnInit() {
|
|
10
17
|
super.ngOnInit();
|
|
11
18
|
this.hideSearchpanel$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {
|
|
12
19
|
this._resizeAspViewer();
|
|
13
20
|
});
|
|
21
|
+
const defaultZoom = this._localStorage.getItem('printRep_defaultZoom');
|
|
22
|
+
defaultZoom && !isNaN(+defaultZoom) && (this.zoomValue = +defaultZoom);
|
|
23
|
+
this.singleControlInTabPage = this._tabpageService?.itemCount === 1;
|
|
14
24
|
}
|
|
15
25
|
_resizeAspViewer() {
|
|
16
26
|
setTimeout(() => {
|
|
@@ -18,11 +28,11 @@ export class UiAspReportViewerComponent extends SapUiReportBaseComponent {
|
|
|
18
28
|
});
|
|
19
29
|
}
|
|
20
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiAspReportViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiAspReportViewerComponent, selector: "bsu-ui-asp-report-viewer", inputs: { isReportPage: "isReportPage", layoutInfo: "layoutInfo" }, viewQueries: [{ propertyName: "fillEmptySpace", first: true, predicate: ["fillEmptySpace"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i2.BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: ["context", "parentHeight", "isReportPage", "hideSearchpanel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiAspReportViewerComponent, selector: "bsu-ui-asp-report-viewer", inputs: { isReportPage: "isReportPage", layoutInfo: "layoutInfo" }, viewQueries: [{ propertyName: "fillEmptySpace", first: true, predicate: ["fillEmptySpace"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [fitToIframe]=\"singleControlInTabPage\" \r\n [decrement]=\"'1rem'\"\r\n [defaultZoom]=\"zoomValue\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i2.BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: ["context", "parentHeight", "isReportPage", "hideSearchpanel", "fitToIframe", "defaultZoom"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
32
|
}
|
|
23
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiAspReportViewerComponent, decorators: [{
|
|
24
34
|
type: Component,
|
|
25
|
-
args: [{ selector: 'bsu-ui-asp-report-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
35
|
+
args: [{ selector: 'bsu-ui-asp-report-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [fitToIframe]=\"singleControlInTabPage\" \r\n [decrement]=\"'1rem'\"\r\n [defaultZoom]=\"zoomValue\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
26
36
|
}], propDecorators: { isReportPage: [{
|
|
27
37
|
type: Input
|
|
28
38
|
}], layoutInfo: [{
|
|
@@ -31,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31
41
|
type: ViewChild,
|
|
32
42
|
args: ['fillEmptySpace']
|
|
33
43
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktYXNwLXJlcG9ydC12aWV3ZXIvdWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktYXNwLXJlcG9ydC12aWV3ZXIvdWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBSUgsY0FBYyxFQUNkLG1CQUFtQixFQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBU2pDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBaUQ7SUFQakc7O1FBWUksY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNSLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0Usa0JBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQWdCdkQ7SUFmRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN2RSxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDTyxnQkFBZ0I7UUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXRCUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2UUNuQnZDLHltQkFlQTs7NEZESWEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBGaWxsRW1wdHlTcGFjZURpcmVjdGl2ZSxcclxuICAgIFRhYnBhZ2VTZXJ2aWNlLFxyXG4gICAgTG9jYWxTdG9yYWdlU2VydmljZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLXVpLXJlcG9ydC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1hc3AtcmVwb3J0LXZpZXdlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQXNwUmVwb3J0Vmlld2VyQ29tcG9uZW50IGV4dGVuZHMgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiB7XHJcbiAgICBASW5wdXQoKSBpc1JlcG9ydFBhZ2U6IGJvb2xlYW47IC8vINiq2YjYs9i3INi12K3ZgdmHINqv2LLYp9ix2LQgcmVuZGVydWx2dmlld2VyINiq2YbYuNuM2YUg2YXbjNi02YjYr1xyXG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogTGF5b3V0U2V0dGluZztcclxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGxFbXB0eVNwYWNlJykgZmlsbEVtcHR5U3BhY2U6IEZpbGxFbXB0eVNwYWNlRGlyZWN0aXZlO1xyXG4gICAgc2luZ2xlQ29udHJvbEluVGFiUGFnZTogYm9vbGVhbjtcclxuICAgIHpvb21WYWx1ZSA9IDEwMDtcclxuICAgIHByaXZhdGUgX3RhYnBhZ2VTZXJ2aWNlID0gaW5qZWN0KFRhYnBhZ2VTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcclxuICAgIHByaXZhdGUgX2xvY2FsU3RvcmFnZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNocGFuZWwkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcmVzaXplQXNwVmlld2VyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFpvb20gPSB0aGlzLl9sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJpbnRSZXBfZGVmYXVsdFpvb20nKTtcclxuICAgICAgICBkZWZhdWx0Wm9vbSAmJiAhaXNOYU4oK2RlZmF1bHRab29tKSAmJiAodGhpcy56b29tVmFsdWUgPSArZGVmYXVsdFpvb20pO1xyXG5cclxuICAgICAgICB0aGlzLnNpbmdsZUNvbnRyb2xJblRhYlBhZ2UgPSB0aGlzLl90YWJwYWdlU2VydmljZT8uaXRlbUNvdW50ID09PSAxO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVzaXplQXNwVmlld2VyKCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGxFbXB0eVNwYWNlPy5SZWZyZXNoKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdW50aWxJblZpZXc9XCJlbFwiPlxyXG4gICAgPGJzdS1iYXJzYS1hc3Atdmlld2VyXHJcbiAgICAgICAgI2ZpbGxFbXB0eVNwYWNlPVwiZmlsbEVtcHR5U3BhY2VcIlxyXG4gICAgICAgIGZpbGxFbXB0eVNwYWNlXHJcbiAgICAgICAgW2RvbnRVc2VUb3BCb3VuZF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJsYXlvdXRJbmZvPy5Db250cm9sQm91bmRzPy5oZWlnaHRcIlxyXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgIFtmaXRUb0lmcmFtZV09XCJzaW5nbGVDb250cm9sSW5UYWJQYWdlXCIgICAgICAgIFxyXG4gICAgICAgIFtkZWNyZW1lbnRdPVwiJzFyZW0nXCJcclxuICAgICAgICBbZGVmYXVsdFpvb21dPVwiem9vbVZhbHVlXCJcclxuICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJwYXJlbnRIZWlnaHRcIlxyXG4gICAgICAgIFtwYXJlbnRIZWlnaHRdPVwicGFyZW50SGVpZ2h0XCJcclxuICAgICAgICBbaGlkZVNlYXJjaHBhbmVsXT1cIihoaWRlU2VhcmNocGFuZWwkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgID48L2JzdS1iYXJzYS1hc3Atdmlld2VyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ChangeDetectionStrategy, Input, Pipe, EventEmitter, ElementRef, SkipSelf, ViewChild, HostBinding, Output, ViewEncapsulation, ViewChildren, Inject, Optional, Self, inject, Renderer2, Directive, TemplateRef, HostListener, signal, ViewContainerRef, NgZone, NgModule, ChangeDetectorRef, Injectable, APP_INITIALIZER, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
3
|
import * as i2 from 'barsa-novin-ray-core';
|
|
4
|
-
import { BaseComponent, ReportViewBaseComponent, getUniqueId, BarsaApi, LayoutItemBaseComponent, getDeviceIsMobile, measureText, getLabelWidth, LayoutService, SortDirection, BaseUlvSettingComponent, getResetGridSettings, FormComponent, createFormPanelMetaConditions, ReportBaseComponent, SelectionMode, GetAllColumnsSorted, getParentHeight, getControlSizeMode, getDeviceIsDesktop, getDeviceIsTablet, getGridSettings, BaseDirective, PortalService, FieldBaseComponent, DateService, getDateService as getDateService$1, DateMiladiService, DateHijriService, DateShamsiService, EllipsifyDirective, createGridEditorFormPanel, FormPanelService, getAllItemsPerChildren, setOneDepthLevel, BaseViewItemPropsComponent, MoReportValuePipe, ExecuteDynamicCommand, isImage, getIcon, UploadService, LayoutPanelBaseComponent, BaseColumnPropsComponent, ColumnService, BaseViewContentPropsComponent, enumValueToStringSize, PreventDefaulEvent, setTableThWidth, TableHeaderWidthMode, calcContextMenuWidth, setColumnWidthByMaxMoContentWidth, calculateColumnWidth, calculateColumnContent, calculateColumnWidthFitToContainer, calculateFreeColumnSize, DateRanges, LogService, UlvMainService, isFunction, FilesValidationHelper, getValidExtension, getImagePath, LinearListHelper, FormToolbarBaseComponent, isFirefox, FormBaseComponent, getFieldValue, ContainerComponent, DIALOG_SERVICE, FORM_DIALOG_COMPONENT, ContainerService, FindToolbarItem, FindLayoutSettingFromLayout94, FormPropsBaseComponent, NumberBaseComponent, ImageMimeType, BaseFormToolbaritemPropsComponent, isInLocalMode, executeUlvCommandHandler, FillAllLayoutControls, PictureFieldSourcePipe, IntersectionStatus, BreadcrumbService, LayoutMainContentService, getDeviceIsPhone,
|
|
4
|
+
import { BaseComponent, ReportViewBaseComponent, getUniqueId, BarsaApi, LayoutItemBaseComponent, getDeviceIsMobile, measureText, getLabelWidth, LayoutService, SortDirection, BaseUlvSettingComponent, getResetGridSettings, FormComponent, createFormPanelMetaConditions, ReportBaseComponent, SelectionMode, GetAllColumnsSorted, getParentHeight, getControlSizeMode, getDeviceIsDesktop, getDeviceIsTablet, getGridSettings, BaseDirective, PortalService, FieldBaseComponent, DateService, getDateService as getDateService$1, DateMiladiService, DateHijriService, DateShamsiService, EllipsifyDirective, createGridEditorFormPanel, FormPanelService, TabpageService, LocalStorageService, getAllItemsPerChildren, setOneDepthLevel, BaseViewItemPropsComponent, MoReportValuePipe, ExecuteDynamicCommand, isImage, getIcon, UploadService, LayoutPanelBaseComponent, BaseColumnPropsComponent, ColumnService, BaseViewContentPropsComponent, enumValueToStringSize, PreventDefaulEvent, setTableThWidth, TableHeaderWidthMode, calcContextMenuWidth, setColumnWidthByMaxMoContentWidth, calculateColumnWidth, calculateColumnContent, calculateColumnWidthFitToContainer, calculateFreeColumnSize, DateRanges, LogService, UlvMainService, isFunction, FilesValidationHelper, getValidExtension, getImagePath, LinearListHelper, FormToolbarBaseComponent, isFirefox, FormBaseComponent, getFieldValue, ContainerComponent, DIALOG_SERVICE, FORM_DIALOG_COMPONENT, ContainerService, FindToolbarItem, FindLayoutSettingFromLayout94, FormPropsBaseComponent, NumberBaseComponent, ImageMimeType, BaseFormToolbaritemPropsComponent, isInLocalMode, executeUlvCommandHandler, FillAllLayoutControls, PictureFieldSourcePipe, IntersectionStatus, BreadcrumbService, LayoutMainContentService, getDeviceIsPhone, NOTIFICATAION_POPUP_SERVER, TOAST_SERVICE, BaseModule, BarsaNovinRayCoreModule, ResizableModule } from 'barsa-novin-ray-core';
|
|
5
5
|
import moment from 'moment';
|
|
6
6
|
import jmoment from 'moment-jalaali';
|
|
7
7
|
import { combineLatest, of, BehaviorSubject, Subject, takeUntil as takeUntil$1, throwError, concatMap, tap as tap$1, Observable, fromEvent, first as first$1, filter as filter$1, map as map$1 } from 'rxjs';
|
|
@@ -2856,6 +2856,14 @@ class BarsaAspViewerComponent extends BaseComponent {
|
|
|
2856
2856
|
const iframEl = this.iframe.nativeElement;
|
|
2857
2857
|
if (handleEvent) {
|
|
2858
2858
|
iframEl.addEventListener('load', this._onLoadIfram.bind(this));
|
|
2859
|
+
if (this.fitToIframe) {
|
|
2860
|
+
window.addEventListener('message', (event) => {
|
|
2861
|
+
const iframe = iframEl;
|
|
2862
|
+
if (iframe && event.data) {
|
|
2863
|
+
this.renderer.setStyle(this.el.nativeElement, 'height', event.data + 100 + 'px');
|
|
2864
|
+
}
|
|
2865
|
+
});
|
|
2866
|
+
}
|
|
2859
2867
|
}
|
|
2860
2868
|
}
|
|
2861
2869
|
_onLoadIfram() {
|
|
@@ -2878,6 +2886,7 @@ class BarsaAspViewerComponent extends BaseComponent {
|
|
|
2878
2886
|
// this._cdr.markForCheck();
|
|
2879
2887
|
// }
|
|
2880
2888
|
if (iframEl.contentWindow) {
|
|
2889
|
+
iframEl.contentWindow['IsPortal'] = true;
|
|
2881
2890
|
// console.log('outerHeight',iframEl.contentWindow.outerHeight);
|
|
2882
2891
|
// this.renderer.setStyle(iframEl, 'min-height', `${iframEl.contentWindow.outerHeight}px`);
|
|
2883
2892
|
setTimeout(() => {
|
|
@@ -2906,6 +2915,8 @@ class BarsaAspViewerComponent extends BaseComponent {
|
|
|
2906
2915
|
params.FolderId +
|
|
2907
2916
|
'&FrameId=' +
|
|
2908
2917
|
frameId +
|
|
2918
|
+
'&Zoom=' +
|
|
2919
|
+
this.defaultZoom || 100 +
|
|
2909
2920
|
'&Language=' +
|
|
2910
2921
|
BarsaApi.BBB.CurrentCulture +
|
|
2911
2922
|
'&CtrlIsPressed=' +
|
|
@@ -2915,11 +2926,11 @@ class BarsaAspViewerComponent extends BaseComponent {
|
|
|
2915
2926
|
form.submit();
|
|
2916
2927
|
}
|
|
2917
2928
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAspViewerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2918
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: { context: "context", parentHeight: "parentHeight", isReportPage: "isReportPage", hideSearchpanel: "hideSearchpanel" }, host: { listeners: { "window:keypress": "handleKeyDown(event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }, { propertyName: "hidden", first: true, predicate: ["hidden"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:
|
|
2929
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: { context: "context", parentHeight: "parentHeight", isReportPage: "isReportPage", hideSearchpanel: "hideSearchpanel", fitToIframe: "fitToIframe", defaultZoom: "defaultZoom" }, host: { listeners: { "window:keypress": "handleKeyDown(event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }, { propertyName: "hidden", first: true, predicate: ["hidden"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2919
2930
|
}
|
|
2920
2931
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaAspViewerComponent, decorators: [{
|
|
2921
2932
|
type: Component,
|
|
2922
|
-
args: [{ selector: 'bsu-barsa-asp-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:
|
|
2933
|
+
args: [{ selector: 'bsu-barsa-asp-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<form #form method=\"post\" target=\"ppppp\" [name]=\"'frm_' + _frameId\" [id]=\"'frm_' + _frameId\">\r\n <input #hidden [name]=\"'hidden_' + _frameId\" [id]=\"'hidden_' + _frameId\" type=\"hidden\" />\r\n</form>\r\n<iframe\r\n #iframe\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onVisibilityChange($event)\"\r\n name=\"ppppp\"\r\n id=\"ppppp\"\r\n class=\"iframe\"\r\n src=\"about:blank\"\r\n></iframe>\r\n<bsu-mask *ngIf=\"loading\"></bsu-mask>\r\n", styles: [":host{display:flex;width:100%;height:100%;position:relative}.iframe{border-style:none;height:100%;width:100%}\n"] }]
|
|
2923
2934
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { context: [{
|
|
2924
2935
|
type: Input
|
|
2925
2936
|
}], parentHeight: [{
|
|
@@ -2928,6 +2939,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2928
2939
|
type: Input
|
|
2929
2940
|
}], hideSearchpanel: [{
|
|
2930
2941
|
type: Input
|
|
2942
|
+
}], fitToIframe: [{
|
|
2943
|
+
type: Input
|
|
2944
|
+
}], defaultZoom: [{
|
|
2945
|
+
type: Input
|
|
2931
2946
|
}], form: [{
|
|
2932
2947
|
type: ViewChild,
|
|
2933
2948
|
args: ['form']
|
|
@@ -3656,11 +3671,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3656
3671
|
}] } });
|
|
3657
3672
|
|
|
3658
3673
|
class UiAspReportViewerComponent extends SapUiReportBaseComponent {
|
|
3674
|
+
constructor() {
|
|
3675
|
+
super(...arguments);
|
|
3676
|
+
this.zoomValue = 100;
|
|
3677
|
+
this._tabpageService = inject(TabpageService, { optional: true, skipSelf: true });
|
|
3678
|
+
this._localStorage = inject(LocalStorageService);
|
|
3679
|
+
}
|
|
3659
3680
|
ngOnInit() {
|
|
3660
3681
|
super.ngOnInit();
|
|
3661
3682
|
this.hideSearchpanel$.pipe(takeUntil$1(this._onDestroy$)).subscribe((c) => {
|
|
3662
3683
|
this._resizeAspViewer();
|
|
3663
3684
|
});
|
|
3685
|
+
const defaultZoom = this._localStorage.getItem('printRep_defaultZoom');
|
|
3686
|
+
defaultZoom && !isNaN(+defaultZoom) && (this.zoomValue = +defaultZoom);
|
|
3687
|
+
this.singleControlInTabPage = this._tabpageService?.itemCount === 1;
|
|
3664
3688
|
}
|
|
3665
3689
|
_resizeAspViewer() {
|
|
3666
3690
|
setTimeout(() => {
|
|
@@ -3668,11 +3692,11 @@ class UiAspReportViewerComponent extends SapUiReportBaseComponent {
|
|
|
3668
3692
|
});
|
|
3669
3693
|
}
|
|
3670
3694
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiAspReportViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3671
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiAspReportViewerComponent, selector: "bsu-ui-asp-report-viewer", inputs: { isReportPage: "isReportPage", layoutInfo: "layoutInfo" }, viewQueries: [{ propertyName: "fillEmptySpace", first: true, predicate: ["fillEmptySpace"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: ["context", "parentHeight", "isReportPage", "hideSearchpanel"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3695
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UiAspReportViewerComponent, selector: "bsu-ui-asp-report-viewer", inputs: { isReportPage: "isReportPage", layoutInfo: "layoutInfo" }, viewQueries: [{ propertyName: "fillEmptySpace", first: true, predicate: ["fillEmptySpace"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [fitToIframe]=\"singleControlInTabPage\" \r\n [decrement]=\"'1rem'\"\r\n [defaultZoom]=\"zoomValue\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: BarsaAspViewerComponent, selector: "bsu-barsa-asp-viewer", inputs: ["context", "parentHeight", "isReportPage", "hideSearchpanel", "fitToIframe", "defaultZoom"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3672
3696
|
}
|
|
3673
3697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiAspReportViewerComponent, decorators: [{
|
|
3674
3698
|
type: Component,
|
|
3675
|
-
args: [{ selector: 'bsu-ui-asp-report-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
3699
|
+
args: [{ selector: 'bsu-ui-asp-report-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *untilInView=\"el\">\r\n <bsu-barsa-asp-viewer\r\n #fillEmptySpace=\"fillEmptySpace\"\r\n fillEmptySpace\r\n [dontUseTopBound]=\"false\"\r\n [height]=\"layoutInfo?.ControlBounds?.height\"\r\n [context]=\"context\"\r\n [fitToIframe]=\"singleControlInTabPage\" \r\n [decrement]=\"'1rem'\"\r\n [defaultZoom]=\"zoomValue\"\r\n [style.min-height.px]=\"parentHeight\"\r\n [parentHeight]=\"parentHeight\"\r\n [hideSearchpanel]=\"(hideSearchpanel$ | async) === true\"\r\n ></bsu-barsa-asp-viewer>\r\n</ng-container>\r\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
3676
3700
|
}], propDecorators: { isReportPage: [{
|
|
3677
3701
|
type: Input
|
|
3678
3702
|
}], layoutInfo: [{
|
|
@@ -9016,6 +9040,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9016
9040
|
}] } });
|
|
9017
9041
|
|
|
9018
9042
|
class LyTabPageComponent extends LayoutPanelBaseComponent {
|
|
9043
|
+
constructor() {
|
|
9044
|
+
super(...arguments);
|
|
9045
|
+
this._tabpageService = inject(TabpageService);
|
|
9046
|
+
}
|
|
9019
9047
|
ngOnInit() {
|
|
9020
9048
|
super.ngOnInit();
|
|
9021
9049
|
const config = this.config;
|
|
@@ -9023,16 +9051,17 @@ class LyTabPageComponent extends LayoutPanelBaseComponent {
|
|
|
9023
9051
|
this.title = config.Title;
|
|
9024
9052
|
this.flex = config.Bounds.width;
|
|
9025
9053
|
this._classes = this.config.items.length === 0 ? 'field-nopadding' : 'field-nopadding';
|
|
9054
|
+
this._tabpageService.setItemCount(this.layoutControlCount);
|
|
9026
9055
|
}
|
|
9027
9056
|
refreshLayout() {
|
|
9028
9057
|
this.layoutService.refreshLayout();
|
|
9029
9058
|
}
|
|
9030
9059
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
9031
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.tabtitle": "this.title", "class": "this._classes" } }, providers: [LayoutService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9060
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.tabtitle": "this.title", "class": "this._classes" } }, providers: [LayoutService, TabpageService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9032
9061
|
}
|
|
9033
9062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabPageComponent, decorators: [{
|
|
9034
9063
|
type: Component,
|
|
9035
|
-
args: [{ selector: 'bsu-ly-tab-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService], standalone: false, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"] }]
|
|
9064
|
+
args: [{ selector: 'bsu-ly-tab-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [LayoutService, TabpageService], standalone: false, template: "<ng-container *untilInView=\"el\">\r\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\r\n } @case ('Ly.LayoutPanel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\r\n } @case ('Ly.LayoutContainer') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n name: 'LyLayoutContainerComponent',\r\n selector: 'bsu-ly-layout-container'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\r\n } @case ('Ly.EmptySpace') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\r\n } @case ('Ly.SimpleLabel') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\r\n } @case ('Ly.LayoutLine') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\r\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-horizontal-layout',\r\n name: 'LyLayoutHorizontalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-ly-vertical-layout',\r\n name: 'LyLayoutVerticalComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\r\n } } @case ('Ly.LayoutControl') {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent'\r\n }\r\n \"\r\n ></ng-container>\r\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\r\n } } }\r\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:block}\n"] }]
|
|
9036
9065
|
}], propDecorators: { vcr: [{
|
|
9037
9066
|
type: ViewChild,
|
|
9038
9067
|
args: ['placeholder', { read: ViewContainerRef }]
|