barsa-develop-components 0.0.2
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/README.md +25 -0
- package/esm2020/barsa-develop-components.mjs +5 -0
- package/esm2020/lib/avatar/avatar.component.mjs +19 -0
- package/esm2020/lib/barcode-format-pipe.mjs +24 -0
- package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +64 -0
- package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +82 -0
- package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +66 -0
- package/esm2020/lib/barcode.service.mjs +330 -0
- package/esm2020/lib/barsa-develop-components.module.mjs +224 -0
- package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +50 -0
- package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +38 -0
- package/esm2020/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +20 -0
- package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +36 -0
- package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +46 -0
- package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +23 -0
- package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +17 -0
- package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +38 -0
- package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +51 -0
- package/esm2020/lib/g4b-details/g4b-details.component.mjs +28 -0
- package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +30 -0
- package/esm2020/lib/login-form/login-form.component.mjs +49 -0
- package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +30 -0
- package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +48 -0
- package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +24 -0
- package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +23 -0
- package/esm2020/lib/models/models.mjs +2 -0
- package/esm2020/lib/models/person.mjs +2 -0
- package/esm2020/lib/pipes/datasource-to-flow-item.mjs +22 -0
- package/esm2020/lib/pipes/index.mjs +3 -0
- package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +22 -0
- package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +37 -0
- package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +22 -0
- package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +13 -0
- package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +27 -0
- package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +59 -0
- package/esm2020/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +28 -0
- package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +110 -0
- package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +229 -0
- package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +147 -0
- package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +22 -0
- package/esm2020/lib/setting-form/setting-form.component.mjs +66 -0
- package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +41 -0
- package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +15 -0
- package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +79 -0
- package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +25 -0
- package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +18 -0
- package/esm2020/lib/ui-person/ui-person.component.mjs +160 -0
- package/esm2020/lib/ui-person/ui-person.pipe.mjs +40 -0
- package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +17 -0
- package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +30 -0
- package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +70 -0
- package/esm2020/public-api.mjs +47 -0
- package/fesm2015/barsa-develop-components.mjs +2368 -0
- package/fesm2015/barsa-develop-components.mjs.map +1 -0
- package/fesm2020/barsa-develop-components.mjs +2344 -0
- package/fesm2020/barsa-develop-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/avatar/avatar.component.d.ts +9 -0
- package/lib/barcode-format-pipe.d.ts +7 -0
- package/lib/barcode-reader/barcode-reader.component.d.ts +19 -0
- package/lib/barcode-reader-dialog/barcode-reader-dialog.component.d.ts +32 -0
- package/lib/barcode-reader-video/barcode-reader-video.component.d.ts +22 -0
- package/lib/barcode.service.d.ts +98 -0
- package/lib/barsa-develop-components.module.d.ts +94 -0
- package/lib/card-content-image-and-title/card-content-image-and-title.component.d.ts +21 -0
- package/lib/card-content-line-chart/card-content-line-chart.component.d.ts +9 -0
- package/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.d.ts +6 -0
- package/lib/card-header-kpi/card-header-kpi.component.d.ts +14 -0
- package/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.d.ts +23 -0
- package/lib/checkbox-button/checkbox-button.component.d.ts +13 -0
- package/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.d.ts +8 -0
- package/lib/form-chart-content/form-chart-content.component.d.ts +9 -0
- package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +13 -0
- package/lib/g4b-details/g4b-details.component.d.ts +9 -0
- package/lib/g4b-estelam/g4b-estelam.component.d.ts +11 -0
- package/lib/login-form/login-form.component.d.ts +15 -0
- package/lib/login-social-conncetions/login-social-conncetions.component.d.ts +12 -0
- package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +22 -0
- package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +14 -0
- package/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.d.ts +9 -0
- package/lib/models/models.d.ts +19 -0
- package/lib/models/person.d.ts +10 -0
- package/lib/pipes/datasource-to-flow-item.d.ts +10 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/mo-list-to-flow-item.pipe.d.ts +10 -0
- package/lib/query-string-form-observable/query-string-form-observable.component.d.ts +13 -0
- package/lib/query-string-observable/query-string-observable.component.d.ts +9 -0
- package/lib/report-line-chart-view/report-line-chart-view.component.d.ts +7 -0
- package/lib/report-tab-view/report-tab-view.component.d.ts +15 -0
- package/lib/resend-verification-code/resend-verification-code.component.d.ts +18 -0
- package/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.d.ts +15 -0
- package/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.d.ts +26 -0
- package/lib/service-desk-header/service-desk-header.component.d.ts +57 -0
- package/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.d.ts +39 -0
- package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +12 -0
- package/lib/setting-form/setting-form.component.d.ts +23 -0
- package/lib/tab-process-view/tab-process-view.component.d.ts +19 -0
- package/lib/table-view-vertical-columns/table-view-vertical-columns.component.d.ts +6 -0
- package/lib/timer-count-down/timer-count-down.component.d.ts +15 -0
- package/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.d.ts +9 -0
- package/lib/ui-num-rate/ui-num-rate.component.d.ts +8 -0
- package/lib/ui-person/ui-person.component.d.ts +31 -0
- package/lib/ui-person/ui-person.pipe.d.ts +7 -0
- package/lib/ui-pictures-carousel/ui-pictures-carousel.component.d.ts +6 -0
- package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +14 -0
- package/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.d.ts +25 -0
- package/package.json +31 -0
- package/public-api.d.ts +43 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core/title";
|
|
5
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
6
|
+
export class ServiceDeskCardContentMojavezhayAkhzShodeComponent extends BaseComponent {
|
|
7
|
+
ngOnInit() {
|
|
8
|
+
super.ngOnInit();
|
|
9
|
+
this.fieldTitle = this.parameters.FieldTitle;
|
|
10
|
+
this.titleOfValue = this.parameters.TitleOfValue;
|
|
11
|
+
this.fieldValue = this.parameters.FieldValue;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
ServiceDeskCardContentMojavezhayAkhzShodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskCardContentMojavezhayAkhzShodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
ServiceDeskCardContentMojavezhayAkhzShodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskCardContentMojavezhayAkhzShodeComponent, selector: "bdc-service-desk-card-content-mojavezhay-akhz-shode", inputs: { mo: "mo", allColumns: "allColumns", parameters: "parameters", rtl: "rtl" }, usesInheritance: true, ngImport: i0, template: "<div style=\"display: flex; flex-direction: row; width: 100%\">\r\n <h2\r\n fd-title\r\n style=\"\r\n width: 60%;\r\n text-align: right;\r\n font-size: 12px;\r\n font-weight: 600;\r\n padding: 0px 16px 0 0;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n \"\r\n >\r\n {{ fieldTitle | rval: mo:allColumns:true }}\r\n </h2>\r\n <h3\r\n fd-title\r\n style=\"\r\n width: 40%;\r\n text-align: left;\r\n font-size: 12px;\r\n font-weight: 600;\r\n padding: 0px 5px 0 10px;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n display: flex;\r\n \"\r\n >\r\n <div style=\"width: 100%; font-weight: 400\">{{ titleOfValue }}:</div>\r\n <div style=\"padding-right: 5px; text-align: left\">\r\n {{ fieldValue | rval: mo:allColumns }}\r\n </div>\r\n </h3>\r\n</div>\r\n", styles: [":host{display:flex;align-items:center;padding:10px}\n"], dependencies: [{ kind: "component", type: i1.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskCardContentMojavezhayAkhzShodeComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'bdc-service-desk-card-content-mojavezhay-akhz-shode', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div style=\"display: flex; flex-direction: row; width: 100%\">\r\n <h2\r\n fd-title\r\n style=\"\r\n width: 60%;\r\n text-align: right;\r\n font-size: 12px;\r\n font-weight: 600;\r\n padding: 0px 16px 0 0;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n \"\r\n >\r\n {{ fieldTitle | rval: mo:allColumns:true }}\r\n </h2>\r\n <h3\r\n fd-title\r\n style=\"\r\n width: 40%;\r\n text-align: left;\r\n font-size: 12px;\r\n font-weight: 600;\r\n padding: 0px 5px 0 10px;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n display: flex;\r\n \"\r\n >\r\n <div style=\"width: 100%; font-weight: 400\">{{ titleOfValue }}:</div>\r\n <div style=\"padding-right: 5px; text-align: left\">\r\n {{ fieldValue | rval: mo:allColumns }}\r\n </div>\r\n </h3>\r\n</div>\r\n", styles: [":host{display:flex;align-items:center;padding:10px}\n"] }]
|
|
19
|
+
}], propDecorators: { mo: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], allColumns: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], parameters: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], rtl: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUvc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUvc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBeUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVE1RixNQUFNLE9BQU8sa0RBQW1ELFNBQVEsYUFBYTtJQVNqRixRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQ2pELENBQUM7OytJQWRRLGtEQUFrRDttSUFBbEQsa0RBQWtELHdNQ1QvRCwra0NBb0NBOzJGRDNCYSxrREFBa0Q7a0JBTjlELFNBQVM7K0JBQ0kscURBQXFELG1CQUc5Qyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0NvbHVtbiB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiZGMtc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZURlc2tDYXJkQ29udGVudE1vamF2ZXpoYXlBa2h6U2hvZGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgQElucHV0KCkgcGFyYW1ldGVyczogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIGZpZWxkVGl0bGU6IHN0cmluZztcclxuICAgIHRpdGxlT2ZWYWx1ZTogc3RyaW5nO1xyXG4gICAgZmllbGRWYWx1ZTogc3RyaW5nO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5maWVsZFRpdGxlID0gdGhpcy5wYXJhbWV0ZXJzLkZpZWxkVGl0bGU7XHJcbiAgICAgICAgdGhpcy50aXRsZU9mVmFsdWUgPSB0aGlzLnBhcmFtZXRlcnMuVGl0bGVPZlZhbHVlO1xyXG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHRoaXMucGFyYW1ldGVycy5GaWVsZFZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyB3aWR0aDogMTAwJVwiPlxyXG4gICAgPGgyXHJcbiAgICAgICAgZmQtdGl0bGVcclxuICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggMTZweCAwIDA7XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgICAge3sgZmllbGRUaXRsZSB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fVxyXG4gICAgPC9oMj5cclxuICAgIDxoM1xyXG4gICAgICAgIGZkLXRpdGxlXHJcbiAgICAgICAgc3R5bGU9XCJcclxuICAgICAgICAgICAgd2lkdGg6IDQwJTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggNXB4IDAgMTBweDtcclxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7IGZvbnQtd2VpZ2h0OiA0MDBcIj57eyB0aXRsZU9mVmFsdWUgfX06PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDsgdGV4dC1hbGlnbjogbGVmdFwiPlxyXG4gICAgICAgICAgICB7eyBmaWVsZFZhbHVlIHwgcnZhbDogbW86YWxsQ29sdW1ucyB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9oMz5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ViewChild, ViewChildren, ElementRef } from '@angular/core';
|
|
2
|
+
import { BarsaApi, FormPropsBaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/icon";
|
|
6
|
+
import * as i3 from "@fundamental-ngx/core/layout-grid";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/core/table";
|
|
8
|
+
export class ServiceDeskFormLayoutContentMojavezComponent extends FormPropsBaseComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.fieldsCaption = [];
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
super.ngOnInit();
|
|
15
|
+
let fieldDict = [];
|
|
16
|
+
if (this.fieldDict) {
|
|
17
|
+
fieldDict = Object.keys(this.fieldDict);
|
|
18
|
+
}
|
|
19
|
+
if (fieldDict) {
|
|
20
|
+
fieldDict.forEach((key) => {
|
|
21
|
+
if (this.fieldDict) {
|
|
22
|
+
const fieldName = this.fieldDict[key];
|
|
23
|
+
const item = { caption: key, fieldName, value: '' };
|
|
24
|
+
const customFiledUi = this._controlUiPipe.transform(key, this.layout94);
|
|
25
|
+
item.value = this.mo[fieldName];
|
|
26
|
+
const originalXtype = customFiledUi?.FieldUi?.originalXtype;
|
|
27
|
+
if (key === 'آدرس سایت') {
|
|
28
|
+
item.type = 'Link';
|
|
29
|
+
}
|
|
30
|
+
if (this.mo[fieldName + '$Caption']) {
|
|
31
|
+
item.type = 'Caption';
|
|
32
|
+
item.value = this.mo[fieldName + '$Caption'];
|
|
33
|
+
}
|
|
34
|
+
else if (typeof item.value === 'object') {
|
|
35
|
+
if (item.value.$Type === 'Common.MetaObjectListWeb') {
|
|
36
|
+
item.type = 'MoList';
|
|
37
|
+
}
|
|
38
|
+
else if (item.value.Ext) {
|
|
39
|
+
item.type = 'Image';
|
|
40
|
+
}
|
|
41
|
+
else if (originalXtype === 'Ui.FileLinearListBox') {
|
|
42
|
+
item.type = 'Files';
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
item.type = 'Relation';
|
|
46
|
+
}
|
|
47
|
+
if (key === 'خدمات قابل انجام') {
|
|
48
|
+
item.type = 'MoList2';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.fieldsCaption.push(item);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
this.fieldsCaption = this.fieldsCaption.filter((c) => c.caption !== 'عنوان مجوز' && c.caption !== 'نقش اشخاص در مجوز' && c.caption !== 'فرزند');
|
|
56
|
+
const controlCount = this.fieldsCaption.length;
|
|
57
|
+
const controlCountMiddle = Math.ceil(this.fieldsCaption.length / 2);
|
|
58
|
+
this.firstArray = this.fieldsCaption.slice(0, controlCountMiddle);
|
|
59
|
+
this.secondArray = this.fieldsCaption.slice(controlCountMiddle, controlCount);
|
|
60
|
+
this.isOdd = controlCount % 2 === 0;
|
|
61
|
+
}
|
|
62
|
+
ngAfterViewInit() {
|
|
63
|
+
super.ngAfterViewInit();
|
|
64
|
+
this.alignTablesTr();
|
|
65
|
+
}
|
|
66
|
+
onLink(item) {
|
|
67
|
+
if (item.F34) {
|
|
68
|
+
window.open(item.F42);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
BarsaApi.Bw.Msg.Info('سامانه ای تعریف نشده است');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
onDownload(item) {
|
|
75
|
+
BarsaApi.Common.File.DownloadFileId(item.Id);
|
|
76
|
+
}
|
|
77
|
+
alignTablesTr() {
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
const tablesRef = this.tablesRef.toArray();
|
|
80
|
+
const firstTableEl = tablesRef[0].nativeElement;
|
|
81
|
+
const secondTableEl = tablesRef[1].nativeElement;
|
|
82
|
+
const trFirstTable = firstTableEl.querySelectorAll('tr');
|
|
83
|
+
const trSecondTable = secondTableEl.querySelectorAll('tr');
|
|
84
|
+
trFirstTable.forEach((tr, index) => {
|
|
85
|
+
if (index < trSecondTable.length) {
|
|
86
|
+
const trSecond = trSecondTable[index];
|
|
87
|
+
if (tr.offsetHeight > trSecond.offsetHeight) {
|
|
88
|
+
trSecond.style.height = `${tr.offsetHeight}px`;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
tr.style.height = `${trSecond.offsetHeight}px`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}, 0);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
ServiceDeskFormLayoutContentMojavezComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskFormLayoutContentMojavezComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
+
ServiceDeskFormLayoutContentMojavezComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskFormLayoutContentMojavezComponent, selector: "bdc-service-desk-form-layout-content-mojavez", viewQueries: [{ propertyName: "tabContainerRef", first: true, predicate: ["tabContainerRef"], descendants: true }, { propertyName: "tablesRef", predicate: ["tablesRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<fd-layout-grid>\r\n <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: firstArray, classNames: 'firstTable' }\">\r\n </ng-container>\r\n </div>\r\n <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: secondArray, classNames: 'secondTable' }\">\r\n </ng-container>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderTable let-array let-classNames=\"classNames\">\r\n <table fd-table #tablesRef class=\"table-grid\" [ngClass]=\"classNames\">\r\n <ng-container *ngFor=\"let controlItem of array\">\r\n <tr fd-table-row>\r\n <th fd-tabel-cell>{{ controlItem.caption }}</th>\r\n <td fd-tabel-cell>\r\n <ng-container [ngSwitch]=\"controlItem.type\">\r\n <ng-container *ngSwitchCase=\"'Link'\">\r\n <a target=\"_blank\" [href]=\"controlItem.value\">{{ controlItem.value }}</a></ng-container\r\n >\r\n <ng-container *ngSwitchCase=\"'Relation'\">{{ controlItem.value.$Caption }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'MoList'\">\r\n <div *ngFor=\"let item of controlItem.value.MoDataList\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n <a (click)=\"onDownload(item)\">{{ item.$Caption }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'MoList2'\">\r\n <div *ngFor=\"let item of controlItem.value.MoDataList\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'chain-link'\"></fd-icon>\r\n <a (click)=\"onLink(item)\">{{ item.$Caption }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Caption'\"> {{ controlItem.value }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'Image'\"> {{ controlItem.value.Ext }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'Files'\">\r\n <div *ngFor=\"let item of controlItem.value.Files\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n <a (click)=\"onDownload(item)\">{{ item.FileName }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ controlItem.value }}\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n</ng-template>\r\n", styles: [".cell{font-size:14px}.bod{border-bottom:1px solid gray;border-right:1px solid gray;height:30px;line-height:30px}.bod :first{border-right:0;border-bottom:0}.anwser{line-height:30px;padding:10px;text-align:justify}.box{padding:0 40px 10px 10px;line-height:30px;display:flex;flex-direction:column;column-count:2;flex-wrap:wrap;height:180px;overflow:hidden}.faq-item-link{font-size:16px;padding-right:25px;cursor:pointer;color:gray}.faq-item-link a{color:gray;cursor:pointer}.faq-item-link a:hover{text-decoration:underline!important}.law-page-header{background:#fff;color:#0854a0;font-size:1.3rem;font-weight:500;padding:5px 15px}.wrapper{border-bottom:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}table.table-grid{border-collapse:collapse;width:100%;direction:rtl;background-color:#fff}.table-grid td,.table-grid th{border:1px solid grey;text-align:left;padding:12px 8px;text-align:right}.table-grid th{background-color:#e2e2e2;font-size:.825rem;font-weight:500;vertical-align:middle;width:200px}.table-grid td{font-size:.825rem;vertical-align:middle}@media only screen and (max-width: 992px){.secondTable tr:first-child td,.secondTable tr:first-child th{border-top:0}}@media only screen and (min-width: 992px){.secondTable th{border-right:0}}.fd-icon{font-size:2rem;color:#0854a0;padding-left:10px}.links a{line-height:25px;cursor:pointer;display:inline;color:#32363a;vertical-align:top}.links a:hover{text-decoration:underline!important;color:#0012af}.fd-icon-link{font-size:1rem;padding-left:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i3.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i3.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: i4.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i4.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskFormLayoutContentMojavezComponent, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{ selector: 'bdc-service-desk-form-layout-content-mojavez', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-grid>\r\n <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: firstArray, classNames: 'firstTable' }\">\r\n </ng-container>\r\n </div>\r\n <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: secondArray, classNames: 'secondTable' }\">\r\n </ng-container>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderTable let-array let-classNames=\"classNames\">\r\n <table fd-table #tablesRef class=\"table-grid\" [ngClass]=\"classNames\">\r\n <ng-container *ngFor=\"let controlItem of array\">\r\n <tr fd-table-row>\r\n <th fd-tabel-cell>{{ controlItem.caption }}</th>\r\n <td fd-tabel-cell>\r\n <ng-container [ngSwitch]=\"controlItem.type\">\r\n <ng-container *ngSwitchCase=\"'Link'\">\r\n <a target=\"_blank\" [href]=\"controlItem.value\">{{ controlItem.value }}</a></ng-container\r\n >\r\n <ng-container *ngSwitchCase=\"'Relation'\">{{ controlItem.value.$Caption }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'MoList'\">\r\n <div *ngFor=\"let item of controlItem.value.MoDataList\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n <a (click)=\"onDownload(item)\">{{ item.$Caption }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'MoList2'\">\r\n <div *ngFor=\"let item of controlItem.value.MoDataList\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'chain-link'\"></fd-icon>\r\n <a (click)=\"onLink(item)\">{{ item.$Caption }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Caption'\"> {{ controlItem.value }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'Image'\"> {{ controlItem.value.Ext }}</ng-container>\r\n <ng-container *ngSwitchCase=\"'Files'\">\r\n <div *ngFor=\"let item of controlItem.value.Files\" class=\"links\">\r\n <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n <a (click)=\"onDownload(item)\">{{ item.FileName }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ controlItem.value }}\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n</ng-template>\r\n", styles: [".cell{font-size:14px}.bod{border-bottom:1px solid gray;border-right:1px solid gray;height:30px;line-height:30px}.bod :first{border-right:0;border-bottom:0}.anwser{line-height:30px;padding:10px;text-align:justify}.box{padding:0 40px 10px 10px;line-height:30px;display:flex;flex-direction:column;column-count:2;flex-wrap:wrap;height:180px;overflow:hidden}.faq-item-link{font-size:16px;padding-right:25px;cursor:pointer;color:gray}.faq-item-link a{color:gray;cursor:pointer}.faq-item-link a:hover{text-decoration:underline!important}.law-page-header{background:#fff;color:#0854a0;font-size:1.3rem;font-weight:500;padding:5px 15px}.wrapper{border-bottom:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}table.table-grid{border-collapse:collapse;width:100%;direction:rtl;background-color:#fff}.table-grid td,.table-grid th{border:1px solid grey;text-align:left;padding:12px 8px;text-align:right}.table-grid th{background-color:#e2e2e2;font-size:.825rem;font-weight:500;vertical-align:middle;width:200px}.table-grid td{font-size:.825rem;vertical-align:middle}@media only screen and (max-width: 992px){.secondTable tr:first-child td,.secondTable tr:first-child th{border-top:0}}@media only screen and (min-width: 992px){.secondTable th{border-right:0}}.fd-icon{font-size:2rem;color:#0854a0;padding-left:10px}.links a{line-height:25px;cursor:pointer;display:inline;color:#32363a;vertical-align:top}.links a:hover{text-decoration:underline!important;color:#0012af}.fd-icon-link{font-size:1rem;padding-left:5px}\n"] }]
|
|
103
|
+
}], propDecorators: { tabContainerRef: [{
|
|
104
|
+
type: ViewChild,
|
|
105
|
+
args: ['tabContainerRef']
|
|
106
|
+
}], tablesRef: [{
|
|
107
|
+
type: ViewChildren,
|
|
108
|
+
args: ['tablesRef', { read: ElementRef }]
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWZvcm0tbGF5b3V0LWNvbnRlbnQtbW9qYXZlei5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6L3NlcnZpY2UtZGVzay1mb3JtLWxheW91dC1jb250ZW50LW1vamF2ZXouY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWZvcm0tbGF5b3V0LWNvbnRlbnQtbW9qYXZlei9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVE3RixNQUFNLE9BQU8sNENBQTZDLFNBQVEsc0JBQXNCO0lBTnhGOztRQVVJLGtCQUFhLEdBQWlCLEVBQUUsQ0FBQztLQThGcEM7SUF2RkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksU0FBUyxFQUFFO1lBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN0QixJ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QUFDLFlBQVksSUFBSSxDQUFDO3FCQUNsRDtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7eUlBakdRLDRDQUE0Qzs2SEFBNUMsNENBQTRDLCtQQUVsQixVQUFVLG9EQ25CakQsK2lHQW1EQTsyRkRsQ2EsNENBQTRDO2tCQU54RCxTQUFTOytCQUNJLDhDQUE4QyxtQkFHdkMsdUJBQXVCLENBQUMsTUFBTTs4QkFHakIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ3FCLFNBQVM7c0JBQXpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFyc2FBcGksIEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLXNlcnZpY2UtZGVzay1mb3JtLWxheW91dC1jb250ZW50LW1vamF2ZXonLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZURlc2tGb3JtTGF5b3V0Q29udGVudE1vamF2ZXpDb21wb25lbnQgZXh0ZW5kcyBGb3JtUHJvcHNCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd0YWJDb250YWluZXJSZWYnKSB0YWJDb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZHJlbigndGFibGVzUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRhYmxlc1JlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgZmllbGRzQ2FwdGlvbjogRmllbGRzSW5mb1tdID0gW107XG4gICAgTW9qYXZlejogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuXG4gICAgZmlyc3RBcnJheTogRmllbGRzSW5mb1tdO1xuICAgIHNlY29uZEFycmF5OiBGaWVsZHNJbmZvW107XG4gICAgaXNPZGQ6IGJvb2xlYW47XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBsZXQgZmllbGREaWN0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5maWVsZERpY3QpIHtcbiAgICAgICAgICAgIGZpZWxkRGljdCA9IE9iamVjdC5rZXlzKHRoaXMuZmllbGREaWN0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmllbGREaWN0KSB7XG4gICAgICAgICAgICBmaWVsZERpY3QuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGREaWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMuZmllbGREaWN0W2tleV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW06IEZpZWxkc0luZm8gPSB7IGNhcHRpb246IGtleSwgZmllbGROYW1lLCB2YWx1ZTogJycgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRmlsZWRVaSA9IHRoaXMuX2NvbnRyb2xVaVBpcGUudHJhbnNmb3JtKGtleSwgdGhpcy5sYXlvdXQ5NCk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLm1vW2ZpZWxkTmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsWHR5cGUgPSBjdXN0b21GaWxlZFVpPy5GaWVsZFVpPy5vcmlnaW5hbFh0eXBlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAn2KLYr9ix2LMg2LPYp9uM2KonKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPSAnTGluayc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW9bZmllbGROYW1lICsgJyRDYXB0aW9uJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9ICdDYXB0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLm1vW2ZpZWxkTmFtZSArICckQ2FwdGlvbiddO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpdGVtLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udmFsdWUuJFR5cGUgPT09ICdDb21tb24uTWV0YU9iamVjdExpc3RXZWInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID0gJ01vTGlzdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udmFsdWUuRXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID0gJ0ltYWdlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkZpbGVMaW5lYXJMaXN0Qm94Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9ICdGaWxlcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9ICdSZWxhdGlvbic7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAn2K7Yr9mF2KfYqiDZgtin2KjZhCDYp9mG2KzYp9mFJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9ICdNb0xpc3QyJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkc0NhcHRpb24ucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmllbGRzQ2FwdGlvbiA9IHRoaXMuZmllbGRzQ2FwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgICAoYykgPT4gYy5jYXB0aW9uICE9PSAn2LnZhtmI2KfZhiDZhdis2YjYsicgJiYgYy5jYXB0aW9uICE9PSAn2YbZgti0INin2LTYrtin2LUg2K/YsSDZhdis2YjYsicgJiYgYy5jYXB0aW9uICE9PSAn2YHYsdiy2YbYrydcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29udHJvbENvdW50ID0gdGhpcy5maWVsZHNDYXB0aW9uLmxlbmd0aDtcbiAgICAgICAgY29uc3QgY29udHJvbENvdW50TWlkZGxlID0gTWF0aC5jZWlsKHRoaXMuZmllbGRzQ2FwdGlvbi5sZW5ndGggLyAyKTtcblxuICAgICAgICB0aGlzLmZpcnN0QXJyYXkgPSB0aGlzLmZpZWxkc0NhcHRpb24uc2xpY2UoMCwgY29udHJvbENvdW50TWlkZGxlKTtcbiAgICAgICAgdGhpcy5zZWNvbmRBcnJheSA9IHRoaXMuZmllbGRzQ2FwdGlvbi5zbGljZShjb250cm9sQ291bnRNaWRkbGUsIGNvbnRyb2xDb3VudCk7XG5cbiAgICAgICAgdGhpcy5pc09kZCA9IGNvbnRyb2xDb3VudCAlIDIgPT09IDA7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuYWxpZ25UYWJsZXNUcigpO1xuICAgIH1cbiAgICBvbkxpbmsoaXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5GMzQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGl0ZW0uRjQyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIEJhcnNhQXBpLkJ3Lk1zZy5JbmZvKCfYs9in2YXYp9mG2Ycg2KfbjCDYqti52LHbjNmBINmG2LTYr9mHINin2LPYqicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Eb3dubG9hZChpdGVtKTogdm9pZCB7XG4gICAgICAgIEJhcnNhQXBpLkNvbW1vbi5GaWxlLkRvd25sb2FkRmlsZUlkKGl0ZW0uSWQpO1xuICAgIH1cbiAgICBwcml2YXRlIGFsaWduVGFibGVzVHIoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFibGVzUmVmID0gdGhpcy50YWJsZXNSZWYudG9BcnJheSgpO1xuICAgICAgICAgICAgY29uc3QgZmlyc3RUYWJsZUVsID0gdGFibGVzUmVmWzBdLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBzZWNvbmRUYWJsZUVsID0gdGFibGVzUmVmWzFdLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IHRyRmlyc3RUYWJsZSA9IGZpcnN0VGFibGVFbC5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xuICAgICAgICAgICAgY29uc3QgdHJTZWNvbmRUYWJsZSA9IHNlY29uZFRhYmxlRWwucXVlcnlTZWxlY3RvckFsbCgndHInKTtcblxuICAgICAgICAgICAgdHJGaXJzdFRhYmxlLmZvckVhY2goKHRyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IHRyU2Vjb25kVGFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyU2Vjb25kID0gdHJTZWNvbmRUYWJsZVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ci5vZmZzZXRIZWlnaHQgPiB0clNlY29uZC5vZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyU2Vjb25kLnN0eWxlLmhlaWdodCA9IGAke3RyLm9mZnNldEhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ci5zdHlsZS5oZWlnaHQgPSBgJHt0clNlY29uZC5vZmZzZXRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbn1cbmludGVyZmFjZSBGaWVsZHNJbmZvIHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGNhcHRpb246IHN0cmluZztcbiAgICBmaWVsZE5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xufVxuIiwiPGZkLWxheW91dC1ncmlkPlxyXG4gICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjZcIiBzdHlsZT1cInBhZGRpbmc6IDBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyVGFibGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmaXJzdEFycmF5LCBjbGFzc05hbWVzOiAnZmlyc3RUYWJsZScgfVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNlwiIHN0eWxlPVwicGFkZGluZzogMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJUYWJsZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlY29uZEFycmF5LCBjbGFzc05hbWVzOiAnc2Vjb25kVGFibGUnIH1cIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L2ZkLWxheW91dC1ncmlkPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJUYWJsZSBsZXQtYXJyYXkgbGV0LWNsYXNzTmFtZXM9XCJjbGFzc05hbWVzXCI+XHJcbiAgICA8dGFibGUgZmQtdGFibGUgI3RhYmxlc1JlZiBjbGFzcz1cInRhYmxlLWdyaWRcIiBbbmdDbGFzc109XCJjbGFzc05hbWVzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udHJvbEl0ZW0gb2YgYXJyYXlcIj5cclxuICAgICAgICAgICAgPHRyIGZkLXRhYmxlLXJvdz5cclxuICAgICAgICAgICAgICAgIDx0aCBmZC10YWJlbC1jZWxsPnt7IGNvbnRyb2xJdGVtLmNhcHRpb24gfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRkIGZkLXRhYmVsLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udHJvbEl0ZW0udHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInTGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIFtocmVmXT1cImNvbnRyb2xJdGVtLnZhbHVlXCI+e3sgY29udHJvbEl0ZW0udmFsdWUgfX08L2E+PC9uZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUmVsYXRpb24nXCI+e3sgY29udHJvbEl0ZW0udmFsdWUuJENhcHRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ01vTGlzdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udHJvbEl0ZW0udmFsdWUuTW9EYXRhTGlzdFwiIGNsYXNzPVwibGlua3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cImZkLWljb24tbGlua1wiIFtnbHlwaF09XCIncGRmLWF0dGFjaG1lbnQnXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvbkRvd25sb2FkKGl0ZW0pXCI+e3sgaXRlbS4kQ2FwdGlvbiB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ01vTGlzdDInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRyb2xJdGVtLnZhbHVlLk1vRGF0YUxpc3RcIiBjbGFzcz1cImxpbmtzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gY2xhc3M9XCJmZC1pY29uLWxpbmtcIiBbZ2x5cGhdPVwiJ2NoYWluLWxpbmsnXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvbkxpbmsoaXRlbSlcIj57eyBpdGVtLiRDYXB0aW9uIH19PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQ2FwdGlvbidcIj4ge3sgY29udHJvbEl0ZW0udmFsdWUgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0ltYWdlJ1wiPiB7eyBjb250cm9sSXRlbS52YWx1ZS5FeHQgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0ZpbGVzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250cm9sSXRlbS52YWx1ZS5GaWxlc1wiIGNsYXNzPVwibGlua3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBjbGFzcz1cImZkLWljb24tbGlua1wiIFtnbHlwaF09XCIncGRmLWF0dGFjaG1lbnQnXCI+PC9mZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvbkRvd25sb2FkKGl0ZW0pXCI+e3sgaXRlbS5GaWxlTmFtZSB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udHJvbEl0ZW0udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC90YWJsZT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ViewChild, ViewChildren, RendererStyleFlags2 } from '@angular/core';
|
|
2
|
+
import { TabPanelComponent } from '@fundamental-ngx/core';
|
|
3
|
+
import { TilesViewerContainerComponent, TilesViewerService, TilesViewerGroupComponent } from 'barsa-tiles';
|
|
4
|
+
import { takeUntil } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "barsa-novin-ray-core";
|
|
7
|
+
import * as i2 from "barsa-tiles";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/router";
|
|
10
|
+
import * as i5 from "@fundamental-ngx/core/tabs";
|
|
11
|
+
import * as i6 from "@fundamental-ngx/core/toolbar";
|
|
12
|
+
import * as i7 from "@fundamental-ngx/platform/shared";
|
|
13
|
+
import * as i8 from "@fundamental-ngx/platform/search-field";
|
|
14
|
+
export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
|
|
15
|
+
constructor(_portalService, _tilesService, _tilesViewerService, _renderer, _viewportScroller, _cdr, _router, _activatedRoute) {
|
|
16
|
+
super(_portalService, _tilesService, _tilesViewerService);
|
|
17
|
+
this._portalService = _portalService;
|
|
18
|
+
this._tilesService = _tilesService;
|
|
19
|
+
this._tilesViewerService = _tilesViewerService;
|
|
20
|
+
this._renderer = _renderer;
|
|
21
|
+
this._viewportScroller = _viewportScroller;
|
|
22
|
+
this._cdr = _cdr;
|
|
23
|
+
this._router = _router;
|
|
24
|
+
this._activatedRoute = _activatedRoute;
|
|
25
|
+
this.selectedTabIndex = 0;
|
|
26
|
+
this.heightOfSpaceHolder = 248;
|
|
27
|
+
this.searchTerm = '';
|
|
28
|
+
this._enableScroll = false;
|
|
29
|
+
this._stickyTopPosition = 66;
|
|
30
|
+
this.observerList = [];
|
|
31
|
+
const root = document.documentElement;
|
|
32
|
+
root.style.setProperty('--absolute-page-top', this._stickyTopPosition + 'px');
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
super.ngOnInit();
|
|
36
|
+
this._portalService.searchTerm$.pipe(takeUntil(this._onDestroy$)).subscribe((term) => {
|
|
37
|
+
this.searchTerm = term;
|
|
38
|
+
this._cdr.detectChanges();
|
|
39
|
+
});
|
|
40
|
+
this.appTileGroups$.subscribe((appTileGroups) => appTileGroups.forEach((c) => this._tilesViewerService.loadAppGroup(c)));
|
|
41
|
+
this.heightOfSpaceHolder = 625;
|
|
42
|
+
this._renderer.setStyle(this.navHolder.nativeElement, 'top', this._stickyTopPosition + 'px');
|
|
43
|
+
this.setGridTemplateRows(this.heightOfSpaceHolder);
|
|
44
|
+
this._portalService.deviceSize$.subscribe((c) => {
|
|
45
|
+
let newHeight = this.heightOfSpaceHolder;
|
|
46
|
+
this.tabSize = c;
|
|
47
|
+
if (c === 's') {
|
|
48
|
+
newHeight = 148;
|
|
49
|
+
}
|
|
50
|
+
else if (c === 'm') {
|
|
51
|
+
newHeight = 220;
|
|
52
|
+
}
|
|
53
|
+
else if (c === 'l') {
|
|
54
|
+
newHeight = 250;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
newHeight = 325;
|
|
58
|
+
}
|
|
59
|
+
if (this.heightOfSpaceHolder !== newHeight) {
|
|
60
|
+
this.heightOfSpaceHolder = newHeight;
|
|
61
|
+
this.setGridTemplateRows(newHeight);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
ngAfterViewInit() {
|
|
66
|
+
const deviceSize = this._portalService.deviceSize;
|
|
67
|
+
let stickyTopPosition = 20;
|
|
68
|
+
if (deviceSize === 's') {
|
|
69
|
+
stickyTopPosition = 60;
|
|
70
|
+
}
|
|
71
|
+
this._stickyDom(this.aboveSearch.nativeElement, this.searchHolder.nativeElement, -stickyTopPosition, 'sticky');
|
|
72
|
+
this._stickyDom(this.aboveContent.nativeElement, this.navHolder.nativeElement, -this._stickyTopPosition, 'sticky');
|
|
73
|
+
this._stickyDom(this.aboveContent.nativeElement, this.bgOuterHolder.nativeElement, -this._stickyTopPosition, 'sticky', () => {
|
|
74
|
+
this._renderer.setStyle(this.bgOuterHolder.nativeElement, 'height', this._stickyTopPosition + 'px');
|
|
75
|
+
}, () => {
|
|
76
|
+
this._renderer.setStyle(this.bgOuterHolder.nativeElement, 'height', '100%');
|
|
77
|
+
});
|
|
78
|
+
this._stickyDom(this.aboveSearch.nativeElement, this.contentAndNav.nativeElement, -stickyTopPosition, 'navAndContent_tb', () => {
|
|
79
|
+
this._renderer.removeAttribute(this.contentAndNav.nativeElement, 'first');
|
|
80
|
+
}, () => {
|
|
81
|
+
this._renderer.setAttribute(this.contentAndNav.nativeElement, 'first', 'true');
|
|
82
|
+
});
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
this._enableScroll = true;
|
|
85
|
+
}, 1000);
|
|
86
|
+
this._portalService.navigationStart$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {
|
|
87
|
+
this._lastScrollPos = window.scrollY;
|
|
88
|
+
if (event === null) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (event?.url !== '/home' && event?.url !== '/' && !this._disableIntersection) {
|
|
92
|
+
this.prepareForm();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
this._portalService.navigationEnd$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {
|
|
96
|
+
if (event !== null && (event?.url === '/home' || event?.url === '/')) {
|
|
97
|
+
this.unPrepareForm();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
onSearchSubmit($event) {
|
|
102
|
+
const searchTerm = $event.text;
|
|
103
|
+
this._router.navigateByUrl('home/search?term=' + searchTerm);
|
|
104
|
+
// var searchMo = BarsaApi.Bw.RunBlMethod('GetSearchMo', this.searchTerm);
|
|
105
|
+
// BarsaApi.Bw.Form.Show({ Mo: searchMo });
|
|
106
|
+
}
|
|
107
|
+
prepareForm() {
|
|
108
|
+
this._disableIntersection = true;
|
|
109
|
+
this._cdr.detach();
|
|
110
|
+
this.disconnectIntersctionObserverList();
|
|
111
|
+
this._renderer.addClass(this.searchHolder.nativeElement, 'sticky');
|
|
112
|
+
this._renderer.addClass(this.contentAndNav.nativeElement, 'hide');
|
|
113
|
+
this.visibleContent(false);
|
|
114
|
+
const flags = RendererStyleFlags2.Important;
|
|
115
|
+
this._renderer.setStyle(document.body, 'overflow', 'hidden', flags);
|
|
116
|
+
this.scrollToTop();
|
|
117
|
+
}
|
|
118
|
+
unPrepareForm() {
|
|
119
|
+
// this.setHeightSearchHolder(this.heightOfSpaceHolder);
|
|
120
|
+
this.visibleContent(true);
|
|
121
|
+
// this._renderer.removeClass(this.searchHolder.nativeElement, 'sticky');
|
|
122
|
+
this._renderer.removeClass(this.searchHolder.nativeElement, 'hide');
|
|
123
|
+
this._renderer.removeClass(this.contentAndNav.nativeElement, 'hide');
|
|
124
|
+
const flags = RendererStyleFlags2.Important;
|
|
125
|
+
this._renderer.setStyle(document.body, 'overflow', 'auto', flags);
|
|
126
|
+
this.scrollToTop();
|
|
127
|
+
this._cdr.reattach();
|
|
128
|
+
this._disableIntersection = false;
|
|
129
|
+
this.connectIntersctionObserverList();
|
|
130
|
+
}
|
|
131
|
+
setHeightSearchHolder(height) {
|
|
132
|
+
this._renderer.setStyle(this.headerSpaceHolder.nativeElement, 'height', `${height}px`);
|
|
133
|
+
}
|
|
134
|
+
visibleContent(visible) {
|
|
135
|
+
this._renderer.setStyle(this.contentAndNav.nativeElement, 'display', visible ? 'flex' : 'none');
|
|
136
|
+
}
|
|
137
|
+
setGridTemplateRows(height) {
|
|
138
|
+
this._renderer.setStyle(this.headerGrid.nativeElement, 'grid-template-rows', `minmax(78px, 15%) 46px 32px 1fr auto 12%; height:${height}px`);
|
|
139
|
+
// this._renderer.setStyle(this.headerGrid.nativeElement, 'background-color', `red`);
|
|
140
|
+
this._renderer.setStyle(this.headerSpaceHolder.nativeElement, 'height', `${height}px`);
|
|
141
|
+
}
|
|
142
|
+
onSelectedTabChange3(selectedTab) {
|
|
143
|
+
this.scrollToTop();
|
|
144
|
+
if (selectedTab.id === '0') {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const elementRefOfselectedTileGroup = this.tilesViewerGroupElList.get(Number(selectedTab.id))?.nativeElement;
|
|
148
|
+
elementRefOfselectedTileGroup.scrollIntoView({
|
|
149
|
+
block: 'start'
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
scrollToLastPos() {
|
|
153
|
+
this._viewportScroller.scrollToPosition([0, this._lastScrollPos]);
|
|
154
|
+
}
|
|
155
|
+
scrollToTop() {
|
|
156
|
+
if (this._enableScroll) {
|
|
157
|
+
this._viewportScroller.scrollToPosition([0, this.heightOfSpaceHolder - this._stickyTopPosition]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
disconnectIntersctionObserverList() {
|
|
161
|
+
this.observerList.forEach((c) => c.observer.disconnect());
|
|
162
|
+
}
|
|
163
|
+
connectIntersctionObserverList() {
|
|
164
|
+
this.observerList.forEach((c) => c.observer.observe(c.el));
|
|
165
|
+
}
|
|
166
|
+
_stickyDom(above, holder, marginTop, className, visibleCallback, hiddenCallBack) {
|
|
167
|
+
const handler = (entries) => {
|
|
168
|
+
if (this._disableIntersection) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (!entries[0].isIntersecting) {
|
|
172
|
+
this._renderer.addClass(holder, className);
|
|
173
|
+
if (typeof visibleCallback === 'function') {
|
|
174
|
+
visibleCallback();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
this._renderer.removeClass(holder, className);
|
|
179
|
+
if (typeof hiddenCallBack === 'function') {
|
|
180
|
+
hiddenCallBack();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
const options = {
|
|
185
|
+
rootMargin: `${marginTop}px 0px 0px 0px`,
|
|
186
|
+
threshold: 0.1
|
|
187
|
+
};
|
|
188
|
+
const observer = new window.IntersectionObserver(handler, options);
|
|
189
|
+
observer.observe(above);
|
|
190
|
+
this.observerList.push({ el: above, observer });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
ServiceDeskHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskHeaderComponent, deps: [{ token: i1.PortalService }, { token: i2.TilesService }, { token: i2.TilesViewerService }, { token: i0.Renderer2 }, { token: i3.ViewportScroller }, { token: i0.ChangeDetectorRef }, { token: i4.Router }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
194
|
+
ServiceDeskHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ServiceDeskHeaderComponent, selector: "bdc-service-desk-header", providers: [TilesViewerService], viewQueries: [{ propertyName: "headerSpaceHolder", first: true, predicate: ["headerSpaceHolder"], descendants: true, static: true }, { propertyName: "headerGrid", first: true, predicate: ["headerGrid"], descendants: true, static: true }, { propertyName: "aboveSearch", first: true, predicate: ["aboveSearch"], descendants: true, static: true }, { propertyName: "searchHolder", first: true, predicate: ["searchHolder"], descendants: true, static: true }, { propertyName: "navHolder", first: true, predicate: ["navHolder"], descendants: true, static: true }, { propertyName: "aboveContent", first: true, predicate: ["aboveContent"], descendants: true, static: true }, { propertyName: "bgOuterHolder", first: true, predicate: ["bgOuterHolder"], descendants: true, static: true }, { propertyName: "contentAndNav", first: true, predicate: ["contentAndNav"], descendants: true, static: true }, { propertyName: "tilesViewerGroupElList", predicate: TilesViewerGroupComponent, descendants: true, read: ElementRef }, { propertyName: "tabPanelComponents", predicate: TabPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(78px, 15%) 46px 32px 1fr auto 12%; height: 248px\" #headerGrid>\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\n <fdp-search-field\n contentDensity=\"cozy\"\n fd-toolbar-item\n [inputText]=\"searchTerm\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [suggestions]=\"[]\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field>\n </div>\n</div>\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\n <div id=\"bgOuterHolder\" #bgOuterHolder>\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\n <div class=\"backgroundImage\" id=\"backgroundImage\">\n <img class=\"picture\" src=\"/assets/back.jpg\" loading=\"lazy\" />\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\n </div>\n </div>\n </div>\n</div>\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav>\n <div class=\"aboveContent\" #aboveContent></div>\n <div id=\"contentHolder\">\n <div class=\"nav\" #navHolder>\n <div class=\"nav-container\">\n <ng-container\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\n ></ng-container>\n </div>\n </div>\n <div class=\"nav_surrogate\" style=\"height: 10px\"></div>\n <div class=\"content-feed\">\n <ng-container\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\n ></ng-container>\n </div>\n </div>\n</div>\n<ng-template #renderTabs let-appTileGroups>\n <fd-tab-list\n [size]=\"tabSize\"\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\n >\n <fd-tab\n *ngFor=\"let appTileGroup of appTileGroups; let i = index\"\n [id]=\"'' + i\"\n [title]=\"appTileGroup.navigatorTitle\"\n >\n </fd-tab>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderGroups let-appTileGroups>\n <bt-tiles-viewer-group\n *ngFor=\"let appTileGroup of appTileGroups; let i = index\"\n [attr.index]=\"i\"\n [appTileGroup]=\"appTileGroup\"\n [editHome]=\"false\"\n [stackContent]=\"true\"\n [isAppTileSubGroup]=\"false\"\n ></bt-tiles-viewer-group>\n</ng-template>\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed;top:10px;width:100%;z-index:6}bt-shellbar .fd-shellbar{background:transparent;box-shadow:none}bt-shellbar .fd-shellbar__product{display:none}fdp-search-field .fdp-search-field__input-group{border-radius:3px}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #bgOuterHolder{height:100%;overflow:hidden;position:fixed;width:100%;top:0;right:0}bdc-service-desk-header #bgOuterHolder.sticky{position:fixed;top:0;z-index:5;background:rgb(247,247,247)}bdc-service-desk-header #bgInnerHolder{height:100%;opacity:1;overflow:hidden;top:0;transform:scale(1);width:100%}bdc-service-desk-header .backgroundImage{height:100%;width:100%}bdc-service-desk-header .overlay{background-attachment:fixed;background-image:radial-gradient(rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 100%),radial-gradient(rgba(0,0,0,0) 33%,rgba(0,0,0,.3) 166%);background-position-y:0%;background-repeat:no-repeat;background-size:cover;height:100%;opacity:1;position:absolute;top:0;transition:opacity .3s linear 0s;width:100%}bdc-service-desk-header .picture{background-position:center center;background-repeat:no-repeat;background-size:cover;height:100%;margin:-1px 0 0 -1px;object-fit:cover;padding:0;position:absolute;width:100%}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:rgba(0,0,0,.318);display:flex;flex-direction:column;min-height:100vh;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-layout-panel__title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:rgb(247,247,247)}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500;width:100%}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:rgb(247,247,247);position:fixed;will-change:transform}bt-tiles-viewer-group:first-child fd-layout-panel-header{display:none!important}bt-tiles-viewer-group:first-child .fd-panel__content{border-bottom:none}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.content-feed{padding:0 1.5rem}#searchHolder.sticky{display:none}#searchHolder .fdp-search-field{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .fdp-search-field{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .fdp-search-field{width:480px}}@media (min-width: 1251px){#searchHolder .fdp-search-field{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .fdp-search-field{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:600px}.content-feed{padding:0 2rem}}@media (min-width: 1224px) and (max-width: 1551px){.content-feed{padding:0 2rem}}@media (min-width: 1244px){.nav-container,.content-feed{width:1224px}#searchHolder.sticky .fdp-search-field{width:690px}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "editHome", "isAppTileSubGroup"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "component", type: i5.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i7.PlatformContentDensityDeprecationDirective, selector: " fdp-action-bar[contentDensity], fdp-button[contentDensity], fdp-object-list-item[contentDensity], fdp-standard-list-item[contentDensity], fdp-menu[contentDensity], fdp-menu-button[contentDensity], fdp-panel[contentDensity], fdp-search-field[contentDensity], fdp-split-menu-button[contentDensity], fdp-file-uploader[contentDensity], fdp-upload-collection[contentDensity], fdp-table[contentDensity], fdp-multi-input[contentDensity], fdp-list[contentDensity], fdp-slider[contentDensity], fdp-time-picker[contentDensity], fdp-textarea[contentDensity], fdp-switch[contentDensity], fdp-number-step-input[contentDensity], fdp-select[contentDensity], fdp-date-picker[contentDensity], fdp-checkbox[contentDensity], fdp-checkbox-group[contentDensity], fdp-combobox[contentDensity], fdp-datetime-picker[contentDensity], fdp-input[contentDensity], fdp-radio-group[contentDensity], fdp-radio-button[contentDensity], fdp-multi-combobox[contentDensity], fdp-input-group-addon-body[contentDensity], fdp-input-group[contentDensity], fdp-value-help-dialog[contentDensity], fdp-filter-single-select[contentDensity], fdp-filter-multi-select[contentDensity], fdp-filter-custom[contentDensity] " }, { kind: "component", type: i8.SearchFieldComponent, selector: "fdp-search-field", inputs: ["placeholder", "mobile", "mobileConfig", "disableRefresh", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "searchSuggestionMessage", "searchSuggestionNavigateMessage"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ServiceDeskHeaderComponent, decorators: [{
|
|
196
|
+
type: Component,
|
|
197
|
+
args: [{ selector: 'bdc-service-desk-header', providers: [TilesViewerService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(78px, 15%) 46px 32px 1fr auto 12%; height: 248px\" #headerGrid>\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\n <fdp-search-field\n contentDensity=\"cozy\"\n fd-toolbar-item\n [inputText]=\"searchTerm\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [suggestions]=\"[]\"\n (searchSubmit)=\"onSearchSubmit($event)\"\n ></fdp-search-field>\n </div>\n</div>\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\n <div id=\"bgOuterHolder\" #bgOuterHolder>\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\n <div class=\"backgroundImage\" id=\"backgroundImage\">\n <img class=\"picture\" src=\"/assets/back.jpg\" loading=\"lazy\" />\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\n </div>\n </div>\n </div>\n</div>\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav>\n <div class=\"aboveContent\" #aboveContent></div>\n <div id=\"contentHolder\">\n <div class=\"nav\" #navHolder>\n <div class=\"nav-container\">\n <ng-container\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\n ></ng-container>\n </div>\n </div>\n <div class=\"nav_surrogate\" style=\"height: 10px\"></div>\n <div class=\"content-feed\">\n <ng-container\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\n ></ng-container>\n </div>\n </div>\n</div>\n<ng-template #renderTabs let-appTileGroups>\n <fd-tab-list\n [size]=\"tabSize\"\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\n >\n <fd-tab\n *ngFor=\"let appTileGroup of appTileGroups; let i = index\"\n [id]=\"'' + i\"\n [title]=\"appTileGroup.navigatorTitle\"\n >\n </fd-tab>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderGroups let-appTileGroups>\n <bt-tiles-viewer-group\n *ngFor=\"let appTileGroup of appTileGroups; let i = index\"\n [attr.index]=\"i\"\n [appTileGroup]=\"appTileGroup\"\n [editHome]=\"false\"\n [stackContent]=\"true\"\n [isAppTileSubGroup]=\"false\"\n ></bt-tiles-viewer-group>\n</ng-template>\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed;top:10px;width:100%;z-index:6}bt-shellbar .fd-shellbar{background:transparent;box-shadow:none}bt-shellbar .fd-shellbar__product{display:none}fdp-search-field .fdp-search-field__input-group{border-radius:3px}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #bgOuterHolder{height:100%;overflow:hidden;position:fixed;width:100%;top:0;right:0}bdc-service-desk-header #bgOuterHolder.sticky{position:fixed;top:0;z-index:5;background:rgb(247,247,247)}bdc-service-desk-header #bgInnerHolder{height:100%;opacity:1;overflow:hidden;top:0;transform:scale(1);width:100%}bdc-service-desk-header .backgroundImage{height:100%;width:100%}bdc-service-desk-header .overlay{background-attachment:fixed;background-image:radial-gradient(rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 100%),radial-gradient(rgba(0,0,0,0) 33%,rgba(0,0,0,.3) 166%);background-position-y:0%;background-repeat:no-repeat;background-size:cover;height:100%;opacity:1;position:absolute;top:0;transition:opacity .3s linear 0s;width:100%}bdc-service-desk-header .picture{background-position:center center;background-repeat:no-repeat;background-size:cover;height:100%;margin:-1px 0 0 -1px;object-fit:cover;padding:0;position:absolute;width:100%}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:rgba(0,0,0,.318);display:flex;flex-direction:column;min-height:100vh;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-layout-panel__title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:rgb(247,247,247)}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500;width:100%}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:rgb(247,247,247);position:fixed;will-change:transform}bt-tiles-viewer-group:first-child fd-layout-panel-header{display:none!important}bt-tiles-viewer-group:first-child .fd-panel__content{border-bottom:none}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.content-feed{padding:0 1.5rem}#searchHolder.sticky{display:none}#searchHolder .fdp-search-field{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .fdp-search-field{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .fdp-search-field{width:480px}}@media (min-width: 1251px){#searchHolder .fdp-search-field{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .fdp-search-field{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:600px}.content-feed{padding:0 2rem}}@media (min-width: 1224px) and (max-width: 1551px){.content-feed{padding:0 2rem}}@media (min-width: 1244px){.nav-container,.content-feed{width:1224px}#searchHolder.sticky .fdp-search-field{width:690px}}\n"] }]
|
|
198
|
+
}], ctorParameters: function () { return [{ type: i1.PortalService }, { type: i2.TilesService }, { type: i2.TilesViewerService }, { type: i0.Renderer2 }, { type: i3.ViewportScroller }, { type: i0.ChangeDetectorRef }, { type: i4.Router }, { type: i4.ActivatedRoute }]; }, propDecorators: { headerSpaceHolder: [{
|
|
199
|
+
type: ViewChild,
|
|
200
|
+
args: ['headerSpaceHolder', { static: true }]
|
|
201
|
+
}], headerGrid: [{
|
|
202
|
+
type: ViewChild,
|
|
203
|
+
args: ['headerGrid', { static: true }]
|
|
204
|
+
}], aboveSearch: [{
|
|
205
|
+
type: ViewChild,
|
|
206
|
+
args: ['aboveSearch', { static: true }]
|
|
207
|
+
}], searchHolder: [{
|
|
208
|
+
type: ViewChild,
|
|
209
|
+
args: ['searchHolder', { static: true }]
|
|
210
|
+
}], navHolder: [{
|
|
211
|
+
type: ViewChild,
|
|
212
|
+
args: ['navHolder', { static: true }]
|
|
213
|
+
}], aboveContent: [{
|
|
214
|
+
type: ViewChild,
|
|
215
|
+
args: ['aboveContent', { static: true }]
|
|
216
|
+
}], bgOuterHolder: [{
|
|
217
|
+
type: ViewChild,
|
|
218
|
+
args: ['bgOuterHolder', { static: true }]
|
|
219
|
+
}], contentAndNav: [{
|
|
220
|
+
type: ViewChild,
|
|
221
|
+
args: ['contentAndNav', { static: true }]
|
|
222
|
+
}], tilesViewerGroupElList: [{
|
|
223
|
+
type: ViewChildren,
|
|
224
|
+
args: [TilesViewerGroupComponent, { read: ElementRef }]
|
|
225
|
+
}], tabPanelComponents: [{
|
|
226
|
+
type: ViewChildren,
|
|
227
|
+
args: [TabPanelComponent]
|
|
228
|
+
}] } });
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsU0FBUyxFQUVULFlBQVksRUFHWixtQkFBbUIsRUFDdEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFFcEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixrQkFBa0IsRUFFbEIseUJBQXlCLEVBQzVCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFXN0MsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDZCQUE2QjtJQXlCekUsWUFDYyxjQUE2QixFQUM3QixhQUEyQixFQUMzQixtQkFBdUMsRUFDdkMsU0FBb0IsRUFDdEIsaUJBQW1DLEVBQ25DLElBQXVCLEVBQ3ZCLE9BQWUsRUFDZixlQUErQjtRQUV2QyxLQUFLLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBVGhELG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFwQjNDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxHQUFHLENBQUM7UUFHMUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNSLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3RCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFrRCxFQUFFLENBQUM7UUFjckUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUM1QyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3pFLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFN0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ1gsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUNuQjtpQkFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ2xCLFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDbkI7aUJBQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUNsQixTQUFTLEdBQUcsR0FBRyxDQUFDO2FBQ25CO2lCQUFNO2dCQUNILFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDbkI7WUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN2QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELGVBQWU7UUFDWCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztRQUNsRCxJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLFVBQVUsS0FBSyxHQUFHLEVBQUU7WUFDcEIsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxVQUFVLENBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUM1QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFDeEIsUUFBUSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFDaEMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3hCLFFBQVEsRUFDUixHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hHLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUNKLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFDaEMsQ0FBQyxpQkFBaUIsRUFDbEIsa0JBQWtCLEVBQ2xCLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUNKLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87YUFDVjtZQUNELElBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzVFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUN0QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyRixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxjQUFjLENBQUMsTUFBbUI7UUFDOUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUM3RCwwRUFBMEU7UUFDMUUsMkNBQTJDO0lBQy9DLENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGFBQWE7UUFDVCx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQix5RUFBeUU7UUFFekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckUsTUFBTSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxNQUFNO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixvQkFBb0IsRUFDcEIsb0RBQW9ELE1BQU0sSUFBSSxDQUNqRSxDQUFDO1FBQ0YscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsV0FBOEI7UUFDL0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDeEIsT0FBTztTQUNWO1FBQ0QsTUFBTSw2QkFBNkIsR0FBZ0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FDOUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FDekIsRUFBRSxhQUFhLENBQUM7UUFFakIsNkJBQTZCLENBQUMsY0FBYyxDQUFDO1lBQ3pDLEtBQUssRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ08sV0FBVztRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7U0FDcEc7SUFDTCxDQUFDO0lBQ08saUNBQWlDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNPLDhCQUE4QjtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLFVBQVUsQ0FDZCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZUFBNEIsRUFDNUIsY0FBMkI7UUFFM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEVBQVEsRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDM0IsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxPQUFPLGVBQWUsS0FBSyxVQUFVLEVBQUU7b0JBQ3ZDLGVBQWUsRUFBRSxDQUFDO2lCQUNyQjthQUNKO2lCQUFNO2dCQUNILElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxPQUFPLGNBQWMsS0FBSyxVQUFVLEVBQUU7b0JBQ3RDLGNBQWMsRUFBRSxDQUFDO2lCQUNwQjthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUc7WUFDWixVQUFVLEVBQUUsR0FBRyxTQUFTLGdCQUFnQjtZQUN4QyxTQUFTLEVBQUUsR0FBRztTQUNqQixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5FLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7dUhBek9RLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGtEQUp4QixDQUFDLGtCQUFrQixDQUFDLCs2QkFhakIseUJBQXlCLDJCQUFVLFVBQVUscURBRzdDLGlCQUFpQix1RUMvQ25DLDhtRkFrRUE7MkZEL0JhLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSx5QkFBeUIsYUFHeEIsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO3lTQUdhLGlCQUFpQjtzQkFBbEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0wsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNHLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxhQUFhO3NCQUExRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNtQixzQkFBc0I7c0JBQXBGLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUc1QixrQkFBa0I7c0JBQWxELFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIE9uSW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGFiUGFuZWxDb21wb25lbnQsIFRhYlNpemVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIFRpbGVzVmlld2VyQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVGlsZXNWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgVGlsZXNTZXJ2aWNlLFxyXG4gICAgVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudFxyXG59IGZyb20gJ2JhcnNhLXRpbGVzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1zZXJ2aWNlLWRlc2staGVhZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1RpbGVzVmlld2VyU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlcnZpY2VEZXNrSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgVGlsZXNWaWV3ZXJDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyU3BhY2VIb2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJTcGFjZUhvbGRlcjogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyR3JpZCcsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlckdyaWQ6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2Fib3ZlU2VhcmNoJywgeyBzdGF0aWM6IHRydWUgfSkgYWJvdmVTZWFyY2g6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaEhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHNlYXJjaEhvbGRlcjogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnbmF2SG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbmF2SG9sZGVyOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdhYm92ZUNvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBhYm92ZUNvbnRlbnQ6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2JnT3V0ZXJIb2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBiZ091dGVySG9sZGVyOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdjb250ZW50QW5kTmF2JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudEFuZE5hdjogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZHJlbihUaWxlc1ZpZXdlckdyb3VwQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgdGlsZXNWaWV3ZXJHcm91cEVsTGlzdDogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gICAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcy5wYWdlLWNvbnRlbnQnKSBwYWdlQ29udGVudENsYXNzID0gdHJ1ZTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFRhYlBhbmVsQ29tcG9uZW50KSB0YWJQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUYWJQYW5lbENvbXBvbmVudD47XHJcbiAgICBzZWxlY3RlZFRhYkluZGV4ID0gMDtcclxuICAgIGhlaWdodE9mU3BhY2VIb2xkZXIgPSAyNDg7XHJcbiAgICB0YWJTaXplOiBUYWJTaXplcztcclxuICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgICBwcml2YXRlIF9lbmFibGVTY3JvbGwgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2Rpc2FibGVJbnRlcnNlY3Rpb246IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9pc0Zvcm1PcGVuZWQ6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9zdGlja3lUb3BQb3NpdGlvbiA9IDY2O1xyXG4gICAgcHJpdmF0ZSBvYnNlcnZlckxpc3Q6IHsgZWw6IGFueTsgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIH1bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfbGFzdFNjcm9sbFBvczogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3RpbGVzU2VydmljZTogVGlsZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNWaWV3ZXJTZXJ2aWNlOiBUaWxlc1ZpZXdlclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByaXZhdGUgX3ZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9wb3J0YWxTZXJ2aWNlLCBfdGlsZXNTZXJ2aWNlLCBfdGlsZXNWaWV3ZXJTZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tYWJzb2x1dGUtcGFnZS10b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLnNlYXJjaFRlcm0kLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHRlcm0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gdGVybTtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcFRpbGVHcm91cHMkLnN1YnNjcmliZSgoYXBwVGlsZUdyb3VwcykgPT5cclxuICAgICAgICAgICAgYXBwVGlsZUdyb3Vwcy5mb3JFYWNoKChjKSA9PiB0aGlzLl90aWxlc1ZpZXdlclNlcnZpY2UubG9hZEFwcEdyb3VwKGMpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyID0gNjI1O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMubmF2SG9sZGVyLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3ModGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbmV3SGVpZ2h0ID0gdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRhYlNpemUgPSBjO1xyXG4gICAgICAgICAgICBpZiAoYyA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAxNDg7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJ20nKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAyMjA7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJ2wnKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAyNTA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSAzMjU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgIT09IG5ld0hlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyID0gbmV3SGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRHcmlkVGVtcGxhdGVSb3dzKG5ld0hlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkZXZpY2VTaXplID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplO1xyXG4gICAgICAgIGxldCBzdGlja3lUb3BQb3NpdGlvbiA9IDIwO1xyXG4gICAgICAgIGlmIChkZXZpY2VTaXplID09PSAncycpIHtcclxuICAgICAgICAgICAgc3RpY2t5VG9wUG9zaXRpb24gPSA2MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCwgdGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgLXN0aWNreVRvcFBvc2l0aW9uLCAnc3RpY2t5Jyk7XHJcbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKFxyXG4gICAgICAgICAgICB0aGlzLmFib3ZlQ29udGVudC5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB0aGlzLm5hdkhvbGRlci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAtdGhpcy5fc3RpY2t5VG9wUG9zaXRpb24sXHJcbiAgICAgICAgICAgICdzdGlja3knXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9zdGlja3lEb20oXHJcbiAgICAgICAgICAgIHRoaXMuYWJvdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAtdGhpcy5fc3RpY2t5VG9wUG9zaXRpb24sXHJcbiAgICAgICAgICAgICdzdGlja3knLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJnT3V0ZXJIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIHRoaXMuX3N0aWNreVRvcFBvc2l0aW9uICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fc3RpY2t5RG9tKFxyXG4gICAgICAgICAgICB0aGlzLmFib3ZlU2VhcmNoLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAtc3RpY2t5VG9wUG9zaXRpb24sXHJcbiAgICAgICAgICAgICduYXZBbmRDb250ZW50X3RiJyxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZmlyc3QnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZmlyc3QnLCAndHJ1ZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZW5hYmxlU2Nyb2xsID0gdHJ1ZTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLm5hdmlnYXRpb25TdGFydCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fbGFzdFNjcm9sbFBvcyA9IHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZXZlbnQ/LnVybCAhPT0gJy9ob21lJyAmJiBldmVudD8udXJsICE9PSAnLycgJiYgIXRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UubmF2aWdhdGlvbkVuZCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50ICE9PSBudWxsICYmIChldmVudD8udXJsID09PSAnL2hvbWUnIHx8IGV2ZW50Py51cmwgPT09ICcvJykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5QcmVwYXJlRm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaFN1Ym1pdCgkZXZlbnQ6IFNlYXJjaElucHV0KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoVGVybSA9ICRldmVudC50ZXh0O1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdob21lL3NlYXJjaD90ZXJtPScgKyBzZWFyY2hUZXJtKTtcclxuICAgICAgICAvLyB2YXIgc2VhcmNoTW8gPSBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZCgnR2V0U2VhcmNoTW8nLCB0aGlzLnNlYXJjaFRlcm0pO1xyXG4gICAgICAgIC8vIEJhcnNhQXBpLkJ3LkZvcm0uU2hvdyh7IE1vOiBzZWFyY2hNbyB9KTtcclxuICAgIH1cclxuICAgIHByZXBhcmVGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLmRpc2Nvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdzdGlja3knKTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmNvbnRlbnRBbmROYXYubmF0aXZlRWxlbWVudCwgJ2hpZGUnKTtcclxuICAgICAgICB0aGlzLnZpc2libGVDb250ZW50KGZhbHNlKTtcclxuICAgICAgICBjb25zdCBmbGFncyA9IFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdvdmVyZmxvdycsICdoaWRkZW4nLCBmbGFncyk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xyXG4gICAgfVxyXG4gICAgdW5QcmVwYXJlRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnNldEhlaWdodFNlYXJjaEhvbGRlcih0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIpO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQodHJ1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgJ3N0aWNreScpO1xyXG5cclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xyXG4gICAgICAgIGNvbnN0IGZsYWdzID0gUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQ7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2F1dG8nLCBmbGFncyk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xyXG4gICAgICAgIHRoaXMuX2Nkci5yZWF0dGFjaCgpO1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xyXG4gICAgfVxyXG4gICAgc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKGhlaWdodCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgdmlzaWJsZUNvbnRlbnQodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIHZpc2libGUgPyAnZmxleCcgOiAnbm9uZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEdyaWRUZW1wbGF0ZVJvd3MoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLXJvd3MnLFxyXG4gICAgICAgICAgICBgbWlubWF4KDc4cHgsIDE1JSkgNDZweCAzMnB4IDFmciBhdXRvIDEyJTsgaGVpZ2h0OiR7aGVpZ2h0fXB4YFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYHJlZGApO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZTMoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZFRhYi5pZCA9PT0gJzAnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZk9mc2VsZWN0ZWRUaWxlR3JvdXA6IEhUTUxFbGVtZW50ID0gdGhpcy50aWxlc1ZpZXdlckdyb3VwRWxMaXN0LmdldChcclxuICAgICAgICAgICAgTnVtYmVyKHNlbGVjdGVkVGFiLmlkKVxyXG4gICAgICAgICk/Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGVsZW1lbnRSZWZPZnNlbGVjdGVkVGlsZUdyb3VwLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICAgICAgYmxvY2s6ICdzdGFydCdcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2Nyb2xsVG9MYXN0UG9zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbMCwgdGhpcy5fbGFzdFNjcm9sbFBvc10pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZW5hYmxlU2Nyb2xsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihbMCwgdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyIC0gdGhpcy5fc3RpY2t5VG9wUG9zaXRpb25dKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9ic2VydmVyTGlzdC5mb3JFYWNoKChjKSA9PiBjLm9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9ic2VydmVyTGlzdC5mb3JFYWNoKChjKSA9PiBjLm9ic2VydmVyLm9ic2VydmUoYy5lbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0aWNreURvbShcclxuICAgICAgICBhYm92ZSxcclxuICAgICAgICBob2xkZXIsXHJcbiAgICAgICAgbWFyZ2luVG9wLFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICB2aXNpYmxlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxyXG4gICAgICAgIGhpZGRlbkNhbGxCYWNrPzogKCkgPT4gdm9pZFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChlbnRyaWVzKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlSW50ZXJzZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhob2xkZXIsIGNsYXNzTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZpc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZpc2libGVDYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoaG9sZGVyLCBjbGFzc05hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBoaWRkZW5DYWxsQmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbkNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHJvb3RNYXJnaW46IGAke21hcmdpblRvcH1weCAwcHggMHB4IDBweGAsXHJcbiAgICAgICAgICAgIHRocmVzaG9sZDogMC4xXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyB3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlciwgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoYWJvdmUpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LnB1c2goeyBlbDogYWJvdmUsIG9ic2VydmVyIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJoZWFkZXJHcmlkXCIgc3R5bGU9XCJncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCg3OHB4LCAxNSUpIDQ2cHggMzJweCAxZnIgYXV0byAxMiU7IGhlaWdodDogMjQ4cHhcIiAjaGVhZGVyR3JpZD5cbiAgICA8ZGl2IGNsYXNzPVwiY29tcGFueUxvZ29Ib2xkZXJfYWJvdmVTZWFyY2hcIiAjYWJvdmVTZWFyY2g+PC9kaXY+XG4gICAgPGRpdiBpZD1cInNlYXJjaEhvbGRlclwiIHN0eWxlPVwiZ3JpZC1yb3c6IDJcIiAjc2VhcmNoSG9sZGVyPlxuICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgY29udGVudERlbnNpdHk9XCJjb3p5XCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2lucHV0VGV4dF09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiW11cIlxuICAgICAgICAgICAgKHNlYXJjaFN1Ym1pdCk9XCJvblNlYXJjaFN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBpZD1cImhlYWRlclNwYWNlSG9sZGVyXCIgI2hlYWRlclNwYWNlSG9sZGVyPlxuICAgIDxkaXYgaWQ9XCJiZ091dGVySG9sZGVyXCIgI2JnT3V0ZXJIb2xkZXI+XG4gICAgICAgIDxkaXYgaWQ9XCJiZ0lubmVySG9sZGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFja2dyb3VuZEltYWdlXCIgaWQ9XCJiYWNrZ3JvdW5kSW1hZ2VcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGljdHVyZVwiIHNyYz1cIi9hc3NldHMvYmFjay5qcGdcIiBsb2FkaW5nPVwibGF6eVwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJiYWNrZ3JvdW5kSW1hZ2VPdmVybGF5XCIgY2xhc3M9XCJvdmVybGF5XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGlkPVwiY29udGVudEhvbGRlckFuZE5hdlwiIGZpcnN0PVwidHJ1ZVwiICNjb250ZW50QW5kTmF2PlxuICAgIDxkaXYgY2xhc3M9XCJhYm92ZUNvbnRlbnRcIiAjYWJvdmVDb250ZW50PjwvZGl2PlxuICAgIDxkaXYgaWQ9XCJjb250ZW50SG9sZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZcIiAjbmF2SG9sZGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyVGFiczsgY29udGV4dDogeyAkaW1wbGljaXQ6IChhcHBUaWxlR3JvdXBzJCB8IGFzeW5jKSEhIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdl9zdXJyb2dhdGVcIiBzdHlsZT1cImhlaWdodDogMTBweFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mZWVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJHcm91cHM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAoYXBwVGlsZUdyb3VwcyQgfCBhc3luYykhISB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVyVGFicyBsZXQtYXBwVGlsZUdyb3Vwcz5cbiAgICA8ZmQtdGFiLWxpc3RcbiAgICAgICAgW3NpemVdPVwidGFiU2l6ZVwiXG4gICAgICAgIFtjb2xsYXBzZU92ZXJmbG93XT1cInRhYlNpemUgPT09ICdzJyB8fCBhcHBUaWxlR3JvdXBzLmxlbmd0aCA+IDVcIlxuICAgICAgICBbZXhwYW5kT3ZlcmZsb3dUZXh0XT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdGVkVGFiQ2hhbmdlMygkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxmZC10YWJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBbaWRdPVwiJycgKyBpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGl0bGVcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtdGFiPlxuICAgIDwvZmQtdGFiLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJHcm91cHMgbGV0LWFwcFRpbGVHcm91cHM+XG4gICAgPGJ0LXRpbGVzLXZpZXdlci1ncm91cFxuICAgICAgICAqbmdGb3I9XCJsZXQgYXBwVGlsZUdyb3VwIG9mIGFwcFRpbGVHcm91cHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbYXR0ci5pbmRleF09XCJpXCJcbiAgICAgICAgW2FwcFRpbGVHcm91cF09XCJhcHBUaWxlR3JvdXBcIlxuICAgICAgICBbZWRpdEhvbWVdPVwiZmFsc2VcIlxuICAgICAgICBbc3RhY2tDb250ZW50XT1cInRydWVcIlxuICAgICAgICBbaXNBcHBUaWxlU3ViR3JvdXBdPVwiZmFsc2VcIlxuICAgID48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|