barsa-sap-ui 1.0.251 → 1.0.253
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/esm2020/lib/barsa-sap-ui.module.mjs +7 -4
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/notification-popup.service.mjs +87 -0
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +11 -105
- package/fesm2015/barsa-sap-ui.mjs +153 -162
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +153 -162
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/notification-popup.service.d.ts +19 -0
- package/lib/ul-notify-popup/ul-notify-popup.component.d.ts +3 -35
- package/package.json +1 -1
|
@@ -4,9 +4,9 @@ import { Overlay } from '@angular/cdk/overlay';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
6
6
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
7
|
-
import { FundamentalNgxCoreModule, RtlService, WizardModule, FacetModule, ThemesService, DialogService, ContentDensityModule, ContentDensityMode, GlobalContentDensityService, PipeModule } from '@fundamental-ngx/core';
|
|
7
|
+
import { FundamentalNgxCoreModule, RtlService, WizardModule, FacetModule, ThemesService, DialogService, ContentDensityModule, ContentDensityMode, GlobalContentDensityService, PipeModule, NotificationRef } from '@fundamental-ngx/core';
|
|
8
8
|
import { FundamentalNgxPlatformModule, PlatformDynamicPageModule, PlatformTextAreaModule, PlatformSearchFieldModule } from '@fundamental-ngx/platform';
|
|
9
|
-
import { PortalService, BarsaNovinRayCoreModule, BaseModule, DIALOG_SERVICE, FORM_DIALOG_COMPONENT } from 'barsa-novin-ray-core';
|
|
9
|
+
import { PortalService, BarsaNovinRayCoreModule, BaseModule, DIALOG_SERVICE, FORM_DIALOG_COMPONENT, NOTIFICATAION_POPUP_SERVER } from 'barsa-novin-ray-core';
|
|
10
10
|
import { BarsaCalendarModule } from 'barsa-calendar';
|
|
11
11
|
import { ColorSwatchesModule } from 'ngx-color/swatches';
|
|
12
12
|
import { ColorChromeModule } from 'ngx-color/chrome';
|
|
@@ -14,6 +14,7 @@ import { ClipboardModule } from '@angular/cdk/clipboard';
|
|
|
14
14
|
import { components, pipes, directives, INIT_SAPFIORI } from './index';
|
|
15
15
|
import { BarsaSapUiRoutingModule } from './barsa-sap-ui-routing.module';
|
|
16
16
|
import { FormDialogComponent } from './form-dialog/form-dialog.component';
|
|
17
|
+
import { NotificationPopupService } from './notification-popup.service';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
import * as i1 from "barsa-novin-ray-core";
|
|
19
20
|
import * as i2 from "./ui-text-field/ui-text-field.component";
|
|
@@ -180,6 +181,7 @@ const rootProviders = [
|
|
|
180
181
|
Overlay,
|
|
181
182
|
GlobalContentDensityService,
|
|
182
183
|
ThemesService,
|
|
184
|
+
NotificationRef,
|
|
183
185
|
RtlService,
|
|
184
186
|
{
|
|
185
187
|
provide: APP_INITIALIZER,
|
|
@@ -187,7 +189,8 @@ const rootProviders = [
|
|
|
187
189
|
deps: [RtlService, GlobalContentDensityService, ThemesService, PortalService],
|
|
188
190
|
multi: true
|
|
189
191
|
},
|
|
190
|
-
{ provide: FORM_DIALOG_COMPONENT, useValue: FormDialogComponent }
|
|
192
|
+
{ provide: FORM_DIALOG_COMPONENT, useValue: FormDialogComponent },
|
|
193
|
+
{ provide: NOTIFICATAION_POPUP_SERVER, useClass: NotificationPopupService }
|
|
191
194
|
];
|
|
192
195
|
export class BarsaSapUiModule extends BaseModule {
|
|
193
196
|
constructor(dcm, componentFactoryResolver) {
|
|
@@ -282,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
282
285
|
providers: [{ provide: DIALOG_SERVICE, useClass: DialogService }]
|
|
283
286
|
}]
|
|
284
287
|
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }]; } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2FwLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXNhcC11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHNCQUFzQixFQUV0QixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQzVCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUNILGFBQWEsRUFFYix1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzdCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEUsTUFBTSxhQUFhLEdBQUc7SUFDbEIsT0FBTztJQUNQLDJCQUEyQjtJQUMzQixhQUFhO0lBQ2IsZUFBZTtJQUNmLFVBQVU7SUFDVjtRQUNJLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQzdFLEtBQUssRUFBRSxJQUFJO0tBQ2Q7SUFDRCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7SUFDakUsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO0NBQzlFLENBQUM7QUFrQ0YsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFFNUMsWUFBc0IsR0FBNEIsRUFBWSx3QkFBa0Q7UUFDNUcsS0FBSyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRHZDLFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVksNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUR0RyxzQkFBaUIsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFHOUMsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUM7U0FDMUMsQ0FBQztJQUNOLENBQUM7OzZHQVZRLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLHdySkE1QnJCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixjQUFjO1FBQ2QsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixXQUFXO1FBQ1gsWUFBWTtRQUNaLFVBQVU7UUFDViw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLHVCQUF1Qjs4R0FVbEIsZ0JBQWdCLGFBRmQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLFlBMUI3RCxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsY0FBYztRQUNkLGNBQWM7UUFDZCx3QkFBd0I7UUFDeEIsV0FBVztRQUNYLFlBQVk7UUFDWixVQUFVO1FBQ1YsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6QixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsb0JBQW9CLENBQUMsT0FBTyxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsMkJBQTJCLEVBQUUsa0JBQWtCLENBQUMsT0FBTztTQUMxRCxDQUFDOzJGQUtHLGdCQUFnQjtrQkFoQzVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDO29CQUNuRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osVUFBVTt3QkFDViw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixvQkFBb0IsQ0FBQyxPQUFPLENBQUM7NEJBQ3pCLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixVQUFVLEVBQUUsb0JBQW9COzRCQUNoQywyQkFBMkIsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO3lCQUMxRCxDQUFDO3FCQUNMO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDO2lCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gICAgTW9kdWxlV2l0aFByb3ZpZGVycyxcclxuICAgIE5nTW9kdWxlLFxyXG4gICAgTk9fRVJST1JTX1NDSEVNQSxcclxuICAgIEFQUF9JTklUSUFMSVpFUlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQge1xyXG4gICAgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlLFxyXG4gICAgUnRsU2VydmljZSxcclxuICAgIFdpemFyZE1vZHVsZSxcclxuICAgIEZhY2V0TW9kdWxlLFxyXG4gICAgVGhlbWVzU2VydmljZSxcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBDb250ZW50RGVuc2l0eU1vZHVsZSxcclxuICAgIENvbnRlbnREZW5zaXR5TW9kZSxcclxuICAgIEdsb2JhbENvbnRlbnREZW5zaXR5U2VydmljZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBOb3RpZmljYXRpb25SZWZcclxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRnVuZGFtZW50YWxOZ3hQbGF0Zm9ybU1vZHVsZSxcclxuICAgIFBsYXRmb3JtRHluYW1pY1BhZ2VNb2R1bGUsXHJcbiAgICBQbGF0Zm9ybVRleHRBcmVhTW9kdWxlLFxyXG4gICAgUGxhdGZvcm1TZWFyY2hGaWVsZE1vZHVsZVxyXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgIEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxyXG4gICAgQmFzZU1vZHVsZSxcclxuICAgIERJQUxPR19TRVJWSUNFLFxyXG4gICAgRk9STV9ESUFMT0dfQ09NUE9ORU5ULFxyXG4gICAgTk9USUZJQ0FUQUlPTl9QT1BVUF9TRVJWRVJcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUNhbGVuZGFyTW9kdWxlIH0gZnJvbSAnYmFyc2EtY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBDb2xvclN3YXRjaGVzTW9kdWxlIH0gZnJvbSAnbmd4LWNvbG9yL3N3YXRjaGVzJztcclxuaW1wb3J0IHsgQ29sb3JDaHJvbWVNb2R1bGUgfSBmcm9tICduZ3gtY29sb3IvY2hyb21lJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XHJcblxyXG5pbXBvcnQgeyBjb21wb25lbnRzLCBwaXBlcywgZGlyZWN0aXZlcywgSU5JVF9TQVBGSU9SSSB9IGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgeyBCYXJzYVNhcFVpUm91dGluZ01vZHVsZSB9IGZyb20gJy4vYmFyc2Etc2FwLXVpLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgRm9ybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uUG9wdXBTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcG9wdXAuc2VydmljZSc7XHJcblxyXG5jb25zdCByb290UHJvdmlkZXJzID0gW1xyXG4gICAgT3ZlcmxheSxcclxuICAgIEdsb2JhbENvbnRlbnREZW5zaXR5U2VydmljZSxcclxuICAgIFRoZW1lc1NlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25SZWYsXHJcbiAgICBSdGxTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICB1c2VGYWN0b3J5OiBJTklUX1NBUEZJT1JJLFxyXG4gICAgICAgIGRlcHM6IFtSdGxTZXJ2aWNlLCBHbG9iYWxDb250ZW50RGVuc2l0eVNlcnZpY2UsIFRoZW1lc1NlcnZpY2UsIFBvcnRhbFNlcnZpY2VdLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgeyBwcm92aWRlOiBGT1JNX0RJQUxPR19DT01QT05FTlQsIHVzZVZhbHVlOiBGb3JtRGlhbG9nQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IE5PVElGSUNBVEFJT05fUE9QVVBfU0VSVkVSLCB1c2VDbGFzczogTm90aWZpY2F0aW9uUG9wdXBTZXJ2aWNlIH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzLCAuLi5waXBlcywgLi4uZGlyZWN0aXZlc10sXHJcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXHJcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICAgICAgQ2RrVGFibGVNb2R1bGUsXHJcbiAgICAgICAgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlLFxyXG4gICAgICAgIEZhY2V0TW9kdWxlLFxyXG4gICAgICAgIFdpemFyZE1vZHVsZSxcclxuICAgICAgICBQaXBlTW9kdWxlLFxyXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4UGxhdGZvcm1Nb2R1bGUsXHJcbiAgICAgICAgUGxhdGZvcm1EeW5hbWljUGFnZU1vZHVsZSxcclxuICAgICAgICBQbGF0Zm9ybVRleHRBcmVhTW9kdWxlLFxyXG4gICAgICAgIFBsYXRmb3JtU2VhcmNoRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ29sb3JTd2F0Y2hlc01vZHVsZSxcclxuICAgICAgICBDb2xvckNocm9tZU1vZHVsZSxcclxuICAgICAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICAgICAgQmFyc2FDYWxlbmRhck1vZHVsZSxcclxuICAgICAgICBCYXJzYVNhcFVpUm91dGluZ01vZHVsZSxcclxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZS5mb3JSb290KHtcclxuICAgICAgICAgICAgc3RvcmFnZTogJ2xvY2FsU3RvcmFnZScsIC8vIGNhbiBiZSAndXJsJyBvciAnbWVtb3J5J1xyXG4gICAgICAgICAgICBzdG9yYWdlS2V5OiAnX19jb250ZW50RGVuc2l0eV9fJyxcclxuICAgICAgICAgICAgZGVmYXVsdEdsb2JhbENvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVFxyXG4gICAgICAgIH0pXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHMsIC4uLmRpcmVjdGl2ZXMsIC4uLnBpcGVzXSxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRElBTE9HX1NFUlZJQ0UsIHVzZUNsYXNzOiBEaWFsb2dTZXJ2aWNlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYVNhcFVpTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgICAgc3VwZXIoZGNtLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsICdCYXJzYVNhcFVpTW9kdWxlJyk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEJhcnNhU2FwVWlNb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogQmFyc2FTYXBVaU1vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbLi4ucGlwZXMsIC4uLnJvb3RQcm92aWRlcnNdXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -36,10 +36,10 @@ export class BarsaTableRowComponent extends BaseViewItemPropsComponent {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
BarsaTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <td\n [attr.dbName]=\"column.Name\"\n #tdEl\n *ngFor=\"let column of columns; let columnIndex = index; trackBy: _trackByColumn\"\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [mo]=\"mo\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [mo]=\"mo\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Parameters\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <div\n [class.inlineEditMode]=\"inlineEditMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n >\n <ng-container *ngIf=\"column.$CustomComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"column.$CustomComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"column.$CustomComponent.Settings\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"isChecked && inlineEditMode && allowInlineEdit\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "column", "index", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "mo", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39
|
+
BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed\"\r\n #trEl\r\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\r\n fd-table-row\r\n [activable]=\"false\"\r\n [hoverable]=\"false\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [hostEl]=\"trEl\"\r\n [main]=\"true\"\r\n [focusable]=\"true\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\r\n [class.brule-message]=\"bruleActionMessage\"\r\n>\r\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n [disabled]=\"inlineEditMode\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group }}\r\n </td>\r\n </ng-container>\r\n <ng-template #renderRow>\r\n <td fd-table-cell *ngIf=\"isCheckList\">\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n </td>\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n *ngIf=\"!isCheckList\"\r\n (click)=\"onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <ng-container\r\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\r\n >\r\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\r\n <fd-busy-indicator\r\n *ngIf=\"saving\"\r\n [loading]=\"true\"\r\n [size]=\"'s'\"\r\n title=\"record saving\"\r\n ></fd-busy-indicator>\r\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n </ng-container>\r\n <ng-template #iconStateTemplate>\r\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\r\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\r\n </ng-template>\r\n </td>\r\n <td\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n *ngFor=\"let column of columns; let columnIndex = index; trackBy: _trackByColumn\"\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [mo]=\"mo\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onRowCheck()\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </td>\r\n <td\r\n class=\"col-context-menu\"\r\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\r\n fd-table-cell\r\n >\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n <td\r\n class=\"col-details\"\r\n fd-table-cell\r\n [fitContent]=\"true\"\r\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\r\n >\r\n <button\r\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </td>\r\n <td\r\n class=\"col-view\"\r\n fd-table-cell\r\n [fitContent]=\"true\"\r\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\r\n >\r\n <button\r\n fd-button\r\n [glyph]=\"navigationArrow\"\r\n [navigation]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n role=\"presentation\"\r\n (click)=\"onRowClick()\"\r\n ></button>\r\n </td>\r\n </ng-template>\r\n</tr>\r\n\r\n<tr\r\n #trEl\r\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\r\n fd-table-row\r\n [secondary]=\"true\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n>\r\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [mo]=\"mo\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </td>\r\n</tr>\r\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\r\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n (click)=\"OnCartableFormClick($event)\"\r\n class=\"cartable-template\"\r\n [params]=\"cartableParams\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n<tr\r\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\r\n fd-table-row\r\n class=\"showdetails\"\r\n [attr.aria-selected]=\"isChecked\"\r\n>\r\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\r\n \"\r\n >\r\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n<ng-template #detailsColumnsTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: mo,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\r\n <div class=\"form-items\">\r\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\r\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\r\n <fd-message-strip\r\n *ngIf=\"bruleActionMessage.MessageType === 2\"\r\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n >\r\n {{ bruleActionMessage.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <div\r\n [class.inlineEditMode]=\"inlineEditMode\"\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n >\r\n <ng-container *ngIf=\"column.$CustomComponent; else columnRendererTpl\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"column.$CustomComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"column.$CustomComponent.Settings\"\r\n [column]=\"column\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n </ng-container>\r\n <ng-template #columnRendererTpl>\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event)\"\r\n ></bsu-column-renderer>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isChecked && inlineEditMode && allowInlineEdit\">\r\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\r\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event)\"\r\n ></bsu-layout-control>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "column", "index", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "mo", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <td\n [attr.dbName]=\"column.Name\"\n #tdEl\n *ngFor=\"let column of columns; let columnIndex = index; trackBy: _trackByColumn\"\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [mo]=\"mo\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"mo\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [mo]=\"mo\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Parameters\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <div\n [class.inlineEditMode]=\"inlineEditMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n >\n <ng-container *ngIf=\"column.$CustomComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"column.$CustomComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"column.$CustomComponent.Settings\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"isChecked && inlineEditMode && allowInlineEdit\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
|
|
42
|
+
args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed\"\r\n #trEl\r\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\r\n fd-table-row\r\n [activable]=\"false\"\r\n [hoverable]=\"false\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [hostEl]=\"trEl\"\r\n [main]=\"true\"\r\n [focusable]=\"true\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\r\n [class.brule-message]=\"bruleActionMessage\"\r\n>\r\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n [disabled]=\"inlineEditMode\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group }}\r\n </td>\r\n </ng-container>\r\n <ng-template #renderRow>\r\n <td fd-table-cell *ngIf=\"isCheckList\">\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n </td>\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n *ngIf=\"!isCheckList\"\r\n (click)=\"onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <ng-container\r\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\r\n >\r\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\r\n <fd-busy-indicator\r\n *ngIf=\"saving\"\r\n [loading]=\"true\"\r\n [size]=\"'s'\"\r\n title=\"record saving\"\r\n ></fd-busy-indicator>\r\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n </ng-container>\r\n <ng-template #iconStateTemplate>\r\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\r\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\r\n </ng-template>\r\n </td>\r\n <td\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n *ngFor=\"let column of columns; let columnIndex = index; trackBy: _trackByColumn\"\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [mo]=\"mo\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onRowCheck()\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </td>\r\n <td\r\n class=\"col-context-menu\"\r\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\r\n fd-table-cell\r\n >\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n <td\r\n class=\"col-details\"\r\n fd-table-cell\r\n [fitContent]=\"true\"\r\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\r\n >\r\n <button\r\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </td>\r\n <td\r\n class=\"col-view\"\r\n fd-table-cell\r\n [fitContent]=\"true\"\r\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\r\n >\r\n <button\r\n fd-button\r\n [glyph]=\"navigationArrow\"\r\n [navigation]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n role=\"presentation\"\r\n (click)=\"onRowClick()\"\r\n ></button>\r\n </td>\r\n </ng-template>\r\n</tr>\r\n\r\n<tr\r\n #trEl\r\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\r\n fd-table-row\r\n [secondary]=\"true\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [mo]=\"mo\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n>\r\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [mo]=\"mo\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </td>\r\n</tr>\r\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\r\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n (click)=\"OnCartableFormClick($event)\"\r\n class=\"cartable-template\"\r\n [params]=\"cartableParams\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n<tr\r\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\r\n fd-table-row\r\n class=\"showdetails\"\r\n [attr.aria-selected]=\"isChecked\"\r\n>\r\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\r\n \"\r\n >\r\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n<ng-template #detailsColumnsTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: mo,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\r\n <div class=\"form-items\">\r\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\r\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\r\n <fd-message-strip\r\n *ngIf=\"bruleActionMessage.MessageType === 2\"\r\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n >\r\n {{ bruleActionMessage.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <div\r\n [class.inlineEditMode]=\"inlineEditMode\"\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n >\r\n <ng-container *ngIf=\"column.$CustomComponent; else columnRendererTpl\">\r\n <bnrc-dynamic-item-component\r\n [component]=\"column.$CustomComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"column.$CustomComponent.Settings\"\r\n [column]=\"column\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n </ng-container>\r\n <ng-template #columnRendererTpl>\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event)\"\r\n ></bsu-column-renderer>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isChecked && inlineEditMode && allowInlineEdit\">\r\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\r\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event)\"\r\n ></bsu-layout-control>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
|
|
43
43
|
}], propDecorators: { showDetailsInRow: [{
|
|
44
44
|
type: Input
|
|
45
45
|
}], detailsComponent: [{
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
54
54
|
type: ViewChild,
|
|
55
55
|
args: ['detailsFormItems', { static: true }]
|
|
56
56
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZ0IzQjtJQWRHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzNCLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDcEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsS0FBaEIsSUFBSSxDQUFDLFdBQVcsR0FBSyxTQUFTLEVBQUM7SUFDbkMsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDOzttSEF2QlEsc0JBQXNCO3VHQUF0QixzQkFBc0IsME9BSHBCLENBQUMsZ0JBQWdCLENBQUMscUxDYmpDLCtsYUFtVkE7MkZEblVhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFDWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQzJDLGdCQUFnQjtzQkFBaEUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCxcclxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICBFanJheU9sZ28sXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbFxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdGFibGUtcm93JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYVRhYmxlUm93Q29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGV0YWlsc0NvbXBvbmVudD86IEVqcmF5T2xnbztcclxuICAgIEBJbnB1dCgpIGRldGFpbHNDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY29sdW1uQ29tcG9uZW50czogeyBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47IGNvbXBvbmVudDogTWV0YW9iamVjdERhdGFNb2RlbCB9W107XHJcbiAgICBAVmlld0NoaWxkKCdkZXRhaWxzRm9ybUl0ZW1zJywgeyBzdGF0aWM6IHRydWUgfSkgZGV0YWlsc0Zvcm1JdGVtczogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBkZXRhaWxzQ29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIGRldGFpbHNDb21wb25lbnRTZXR0aW5nOiBhbnk7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudFNldHRpbmcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcclxuICAgICAgICAgICAgJGRldGFpbHNDb2x1bW5zOiB0aGlzLmRldGFpbHNDb2x1bW5zLFxyXG4gICAgICAgICAgICAkZGV0YWlsc0Zvcm1JdGVtczogdGhpcy5kZXRhaWxzRm9ybUl0ZW1zXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRldGFpbHNUZXh0IHx8PSAnRGV0YWlscyc7XHJcbiAgICB9XHJcbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29sbGFwc2VkID0gIXRoaXMuZGV0YWlsc0NvbGxhcHNlZDtcclxuXHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8dHJcbiAgICBbY2xhc3Mucm93LWVycm9yXT1cImhhc0Vycm9yXCJcbiAgICBbY2xhc3Muc2hvd2RldGFpbHMtb25dPVwiIWRldGFpbHNDb2xsYXBzZWRcIlxuICAgICN0ckVsXG4gICAgKm5nSWY9XCIoIW1vLiRQYXJlbnQgfHwgcGFyZW50RXhwYW5kZWQpICYmIHZpc2liaWxpdHkgIT09IGZhbHNlXCJcbiAgICBmZC10YWJsZS1yb3dcbiAgICBbYWN0aXZhYmxlXT1cImZhbHNlXCJcbiAgICBbaG92ZXJhYmxlXT1cImZhbHNlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbbW9dPVwibW9cIlxuICAgIFtob3N0RWxdPVwidHJFbFwiXG4gICAgW21haW5dPVwidHJ1ZVwiXG4gICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4gICAgW2ZvY3VzYWJsZV09XCIhaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdFwiXG4gICAgW2NsYXNzLmJydWxlLW1lc3NhZ2VdPVwiYnJ1bGVBY3Rpb25NZXNzYWdlXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNhblZpZXcgPyBjb2x1bW5zQ291bnQgKyAxIDogY29sdW1uc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicm93LWdyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzcy5tb2JpbGUtbW9kZV09XCJzZWNvbmRhcnlDb2x1bW5zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2F0dHIubGV2ZWxdPVwibGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnJvb3QtZ3JvdXBdPVwibGV2ZWwgPT09IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgIT09IGZhbHNlID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCAqbmdJZj1cImlzQ2hlY2tMaXN0XCI+XG4gICAgICAgICAgICA8ZmQtY2hlY2tib3ggW25hbWVdPVwibW8uJENhcHRpb25cIiBbbmdNb2RlbF09XCJpc0NoZWNrZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvblJvd0NoZWNrKClcIj48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLXNlbGVjdFwiXG4gICAgICAgICAgICAqbmdJZj1cIiFpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgdGV4dC1hbGlnbjogY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIChoYXNFcnJvciB8fCBzYXZpbmcgfHwgc2F2ZWQpOyBlbHNlIGljb25TdGF0ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJzYXZlLWVycm9yXCIgZ2x5cGg9XCJlcnJvclwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzYXZpbmdcIlxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3MnXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJyZWNvcmQgc2F2aW5nXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cInNhdmVkXCIgY2xhc3M9XCJzYXZlLXN1Y2Nlc3NcIiBnbHlwaD1cImFjY2VwdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uU3RhdGVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cIm1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZFwiIGdseXBoPVwiZmF2b3JpdGVcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXQgJiYgaXNDaGVja2VkXCIgZ2x5cGg9XCJlZGl0XCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBbYXR0ci5kYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgI3RkRWxcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJ0ZEVsXCJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbbW9dPVwibW9cIlxuICAgIFtob3N0RWxdPVwidHJFbFwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWQgJiYgIWlubGluZUVkaXRNb2RlID8gdHJ1ZSA6IGZhbHNlXCJcbj5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIiAqbmdJZj1cIiFpc0NoZWNrTGlzdFwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj48L3RkPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIGNvbHNwYW49XCIxMDAlXCIgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiPlxuICAgICAgICA8cFxuICAgICAgICAgICAgI3BFbFxuICAgICAgICAgICAgZmQtdGFibGUtdGV4dFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBzZWNvbmRhcnlDb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlDb2x1bW5cIlxuICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICBbaG9zdEVsXT1cInBFbFwiXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgW2RiTmFtZV09XCJjb2x1bW4uTmFtZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsPnt7IGNvbHVtbi5DYXB0aW9uIH19IDo8L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvcD5cbiAgICA8L3RkPlxuPC90cj5cbjx0ciAqbmdJZj1cIiFkZXRhaWxzQ29sbGFwc2VkICYmIGNhcnRhYmxlUGFyYW1zPy5tb0lkXCIgZmQtdGFibGUtcm93IGNsYXNzPVwic2hvd2RldGFpbHNcIiBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIChjbGljayk9XCJvblJvd0NoZWNrKClcIj48L3RkPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggKyAxICsgKGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID8gMSA6IDApICsgKGNhblZpZXcgPyAxIDogMCkgKyAoc2hvd0RldGFpbHNJblJvdyA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxibnJjLWZvcm1cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiT25DYXJ0YWJsZUZvcm1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhcnRhYmxlLXRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1zXT1cImNhcnRhYmxlUGFyYW1zXCJcbiAgICAgICAgICAgICAgICAoZm9ybUNsb3NlKT1cIm9uQ2FydGFibGVGb3JtQ2xvc2VkKClcIlxuICAgICAgICAgICAgPjwvYm5yYy1mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuPC90cj5cbjx0clxuICAgICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgZGV0YWlsc0NvbXBvbmVudD8uU2VsZWN0b3JcIlxuICAgIGZkLXRhYmxlLXJvd1xuICAgIGNsYXNzPVwic2hvd2RldGFpbHNcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbj5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGRcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJcbiAgICAgICAgICAgIGNvbHVtbnMubGVuZ3RoICsgMSArIChjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA/IDEgOiAwKSArIChjYW5WaWV3ID8gMSA6IDApICsgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxzQ29sdW1uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzQ29tcG9uZW50ICYmIGRldGFpbHNDb21wb25lbnQuU2VsZWN0b3JcIj5cbiAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlBhcmFtZXRlcnNcIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L3RyPlxuPG5nLXRlbXBsYXRlICNkZXRhaWxzQ29sdW1uc1RlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRldGFpbHNGb3JtSXRlbXM7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBkZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkXG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0Zvcm1JdGVtcyBsZXQtZGV0YWlsc0NvbHVtbnMgbGV0LW1vPVwibW9cIiBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiIGxldC1sYXlvdXQkPVwibGF5b3V0JFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1zXCI+XG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGV0YWlsc0NvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBmb3I9XCJpbnB1dC0yXCI+e3sgY29sdW1uLkNhcHRpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjx0ciAqbmdJZj1cImJydWxlQWN0aW9uTWVzc2FnZSAmJiBpbmxpbmVFZGl0TW9kZVwiIGZkLXRhYmxlLXJvdz5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiPlxuICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcFxuICAgICAgICAgICAgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UuTWVzc2FnZVR5cGUgPT09IDJcIlxuICAgICAgICAgICAgW3R5cGVdPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyID8gJ2Vycm9yJyA6ICdpbmZvcm1hdGlvbidcIlxuICAgICAgICAgICAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VFeHByZXNzaW9uIH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2x1bW5UZW1wbGF0ZVxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPGRpdlxuICAgICAgICBbY2xhc3MuaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlXCJcbiAgICAgICAgW3N0eWxlLmNvbHVtbi1nYXBdPVwiY29sdW1uLiRNZXJnZWRGaWVsZHNUb0NvbHVtbj8ubGVuZ3RoID8gJzAuMnJlbScgOiBudWxsXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudDsgZWxzZSBjb2x1bW5SZW5kZXJlclRwbFwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiY29sdW1uLiRDdXN0b21Db21wb25lbnRcIlxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudC5TZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtblJlbmRlcmVyVHBsPlxuICAgICAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbFVpXT1cImNvbHVtbi5DYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NFwiXG4gICAgICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZXNjKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5UYWIpPVwib25UYWJLZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGRDYXB0aW9uIG9mIGNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGRDYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NCBhcyBsYXlvdXRDb25maWdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiZmllbGRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwibGF5b3V0Q29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5UYWIpPVwib25UYWJLZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBSW5CLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZ0IzQjtJQWRHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzNCLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDcEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsS0FBaEIsSUFBSSxDQUFDLFdBQVcsR0FBSyxTQUFTLEVBQUM7SUFDbkMsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDOzttSEF2QlEsc0JBQXNCO3VHQUF0QixzQkFBc0IsME9BSHBCLENBQUMsZ0JBQWdCLENBQUMscUxDYmpDLG13YkFtVkE7MkZEblVhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFDWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQzJDLGdCQUFnQjtzQkFBaEUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCxcclxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICBFanJheU9sZ28sXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbFxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdGFibGUtcm93JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYVRhYmxlUm93Q29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGV0YWlsc0NvbXBvbmVudD86IEVqcmF5T2xnbztcclxuICAgIEBJbnB1dCgpIGRldGFpbHNDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY29sdW1uQ29tcG9uZW50czogeyBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47IGNvbXBvbmVudDogTWV0YW9iamVjdERhdGFNb2RlbCB9W107XHJcbiAgICBAVmlld0NoaWxkKCdkZXRhaWxzRm9ybUl0ZW1zJywgeyBzdGF0aWM6IHRydWUgfSkgZGV0YWlsc0Zvcm1JdGVtczogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBkZXRhaWxzQ29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIGRldGFpbHNDb21wb25lbnRTZXR0aW5nOiBhbnk7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudFNldHRpbmcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcclxuICAgICAgICAgICAgJGRldGFpbHNDb2x1bW5zOiB0aGlzLmRldGFpbHNDb2x1bW5zLFxyXG4gICAgICAgICAgICAkZGV0YWlsc0Zvcm1JdGVtczogdGhpcy5kZXRhaWxzRm9ybUl0ZW1zXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRldGFpbHNUZXh0IHx8PSAnRGV0YWlscyc7XHJcbiAgICB9XHJcbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29sbGFwc2VkID0gIXRoaXMuZGV0YWlsc0NvbGxhcHNlZDtcclxuXHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8dHJcclxuICAgIFtjbGFzcy5yb3ctZXJyb3JdPVwiaGFzRXJyb3JcIlxyXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcclxuICAgICN0ckVsXHJcbiAgICAqbmdJZj1cIighbW8uJFBhcmVudCB8fCBwYXJlbnRFeHBhbmRlZCkgJiYgdmlzaWJpbGl0eSAhPT0gZmFsc2VcIlxyXG4gICAgZmQtdGFibGUtcm93XHJcbiAgICBbYWN0aXZhYmxlXT1cImZhbHNlXCJcclxuICAgIFtob3ZlcmFibGVdPVwiZmFsc2VcIlxyXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICBbbW9dPVwibW9cIlxyXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcclxuICAgIFttYWluXT1cInRydWVcIlxyXG4gICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcclxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcclxuICAgIFtmb2N1c2FibGVdPVwiIWlubGluZUVkaXRNb2RlIHx8ICFhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgW2NsYXNzLmJydWxlLW1lc3NhZ2VdPVwiYnJ1bGVBY3Rpb25NZXNzYWdlXCJcclxuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vLiRHcm91cCB8fCBtby4kR3JvdXAgPT09ICcnOyBlbHNlIHJlbmRlclJvd1wiPlxyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCJydGwgPyAnY2FsYyggMXJlbSArICcgKyBsZXZlbCAqIDEyICsgJ3B4JyArICcgKScgOiAnaW5oZXJpdCdcIlxyXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cIiFydGwgPyAnY2FsYyggMXJlbSArICcgKyBsZXZlbCAqIDEyICsgJ3B4JyArICcgKScgOiAnaW5oZXJpdCdcIlxyXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXHJcbiAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY2FuVmlldyA/IGNvbHVtbnNDb3VudCArIDEgOiBjb2x1bW5zQ291bnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInJvdy1ncm91cFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5tb2JpbGUtbW9kZV09XCJzZWNvbmRhcnlDb2x1bW5zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICBbYXR0ci5sZXZlbF09XCJsZXZlbFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5yb290LWdyb3VwXT1cImxldmVsID09PSAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJleHBhbmRlZCAhPT0gZmFsc2UgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2VsbC1leHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkV4cGFuZENsaWNrKClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxyXG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cclxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXHJcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzQ2hlY2tMaXN0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgdGV4dC1hbGlnbjogY2VudGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIChoYXNFcnJvciB8fCBzYXZpbmcgfHwgc2F2ZWQpOyBlbHNlIGljb25TdGF0ZVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNhdmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3MnXCJcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInJlY29yZCBzYXZpbmdcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cInNhdmVkXCIgY2xhc3M9XCJzYXZlLXN1Y2Nlc3NcIiBnbHlwaD1cImFjY2VwdFwiPjwvZmQtaWNvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cIm1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZFwiIGdseXBoPVwiZmF2b3JpdGVcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiBpc0NoZWNrZWRcIiBnbHlwaD1cImVkaXRcIj48L2ZkLWljb24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGRcclxuICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcclxuICAgICAgICAgICAgI3RkRWxcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlDb2x1bW5cIlxyXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXHJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxyXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcclxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxyXG4gICAgICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcclxuICAgICAgICAgICAgW2hvdmVyYWJsZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWNvbnRleHQtbWVudVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxyXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXHJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXHJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcclxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxyXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxyXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXHJcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIihkZXRhaWxzQ29sbGFwc2VkID8gZGV0YWlsc1RleHQgOiAnSGlkZScpIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dEZXRhaWxzKClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGRcclxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtdmlld1wiXHJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcclxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWhpZGVPcGVuSWNvbiAmJiBjYW5WaWV3ICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcclxuICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC90cj5cclxuXHJcbjx0clxyXG4gICAgI3RyRWxcclxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXHJcbiAgICBmZC10YWJsZS1yb3dcclxuICAgIFtzZWNvbmRhcnldPVwidHJ1ZVwiXHJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcclxuICAgIFttb109XCJtb1wiXHJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxyXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWQgJiYgIWlubGluZUVkaXRNb2RlID8gdHJ1ZSA6IGZhbHNlXCJcclxuPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIGNvbHNwYW49XCIxMDAlXCIgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICAgICNwRWxcclxuICAgICAgICAgICAgZmQtdGFibGUtdGV4dFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHNlY29uZGFyeUNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeUNvbHVtblwiXHJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxyXG4gICAgICAgICAgICBbaG9zdEVsXT1cInBFbFwiXHJcbiAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3A+XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG48dHIgKm5nSWY9XCIhZGV0YWlsc0NvbGxhcHNlZCAmJiBjYXJ0YWJsZVBhcmFtcz8ubW9JZFwiIGZkLXRhYmxlLXJvdyBjbGFzcz1cInNob3dkZXRhaWxzXCIgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWRcIj5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIChjbGljayk9XCJvblJvd0NoZWNrKClcIj48L3RkPlxyXG4gICAgPHRkXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXHJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxyXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXHJcbiAgICAgICAgICAgIGNvbHVtbnMubGVuZ3RoICsgMSArIChjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA/IDEgOiAwKSArIChjYW5WaWV3ID8gMSA6IDApICsgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcclxuICAgICAgICBcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxibnJjLWZvcm1cclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJPbkNhcnRhYmxlRm9ybUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS10ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbcGFyYW1zXT1cImNhcnRhYmxlUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgIChmb3JtQ2xvc2UpPVwib25DYXJ0YWJsZUZvcm1DbG9zZWQoKVwiXHJcbiAgICAgICAgICAgID48L2JucmMtZm9ybT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdGQ+XHJcbjwvdHI+XHJcbjx0clxyXG4gICAgKm5nSWY9XCIhZGV0YWlsc0NvbGxhcHNlZCAmJiBkZXRhaWxzQ29tcG9uZW50Py5TZWxlY3RvclwiXHJcbiAgICBmZC10YWJsZS1yb3dcclxuICAgIGNsYXNzPVwic2hvd2RldGFpbHNcIlxyXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxyXG4+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbCAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cclxuICAgIDx0ZFxyXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxyXG4gICAgICAgIGZkLXRhYmxlLWNlbGxcclxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxyXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArIDEgKyAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgKyAoY2FuVmlldyA/IDEgOiAwKSArIChzaG93RGV0YWlsc0luUm93ID8gMSA6IDApXHJcbiAgICAgICAgXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsc0NvbHVtbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzQ29tcG9uZW50ICYmIGRldGFpbHNDb21wb25lbnQuU2VsZWN0b3JcIj5cclxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJkZXRhaWxzQ29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICBbc2V0dGluZ109XCJkZXRhaWxzQ29tcG9uZW50U2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcclxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC90ZD5cclxuPC90cj5cclxuPG5nLXRlbXBsYXRlICNkZXRhaWxzQ29sdW1uc1RlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgIGRldGFpbHNGb3JtSXRlbXM7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsc0NvbHVtbnMsXHJcbiAgICAgICAgICAgICAgICBtbzogbW8sXHJcbiAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsXHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNkZXRhaWxzRm9ybUl0ZW1zIGxldC1kZXRhaWxzQ29sdW1ucyBsZXQtbW89XCJtb1wiIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCIgbGV0LWxheW91dCQ9XCJsYXlvdXQkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiPlxyXG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGV0YWlsc0NvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIGZvcj1cImlucHV0LTJcIj57eyBjb2x1bW4uQ2FwdGlvbiB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48dHIgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UgJiYgaW5saW5lRWRpdE1vZGVcIiBmZC10YWJsZS1yb3c+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiPlxyXG4gICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcclxuICAgICAgICAgICAgW3R5cGVdPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyID8gJ2Vycm9yJyA6ICdpbmZvcm1hdGlvbidcIlxyXG4gICAgICAgICAgICBbZGlzbWlzc2libGVdPVwiZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VFeHByZXNzaW9uIH19XHJcbiAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxyXG4gICAgPC90ZD5cclxuPC90cj5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjY29sdW1uVGVtcGxhdGVcclxuICAgIGxldC1jb2x1bW5cclxuICAgIGxldC1tbz1cIm1vXCJcclxuICAgIGxldC1pbmRleD1cImluZGV4XCJcclxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgIGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCJcclxuPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIFtjbGFzcy5pbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXHJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyB3aWR0aDogMTAwJVwiXHJcbiAgICAgICAgW3N0eWxlLmNvbHVtbi1nYXBdPVwiY29sdW1uLiRNZXJnZWRGaWVsZHNUb0NvbHVtbj8ubGVuZ3RoID8gJzAuMnJlbScgOiBudWxsXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLiRDdXN0b21Db21wb25lbnQ7IGVsc2UgY29sdW1uUmVuZGVyZXJUcGxcIj5cclxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxyXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgW3NldHRpbmddPVwiZGV0YWlsc0NvbXBvbmVudFNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgW3BhcmFtZXRlcnNdPVwiY29sdW1uLiRDdXN0b21Db21wb25lbnQuU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcclxuICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXHJcbiAgICAgICAgICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtblJlbmRlcmVyVHBsPlxyXG4gICAgICAgICAgICA8YnN1LWNvbHVtbi1yZW5kZXJlclxyXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpc0NoZWNrZWQgJiYgaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcclxuICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtTGF5b3V0U2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xVaV09XCJjb2x1bW4uQ2FwdGlvbiB8IGNvbnRyb2xVaTogbGF5b3V0OTRcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5lc2MpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZENhcHRpb24gb2YgY29sdW1uLiRNZXJnZWRGaWVsZHNUb0NvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkQ2FwdGlvbiB8IGNvbnRyb2xVaTogbGF5b3V0OTQgYXMgbGF5b3V0Q29uZmlnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCJmaWVsZENhcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImxheW91dENvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWxheW91dC1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BarsaApi } from 'barsa-novin-ray-core';
|
|
3
|
+
import { UlNotifyPopupComponent } from './ul-notify-popup/ul-notify-popup.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/platform-browser";
|
|
6
|
+
import * as i2 from "@fundamental-ngx/core";
|
|
7
|
+
export class NotificationPopupService {
|
|
8
|
+
constructor(_domSanitizer, _notificationService) {
|
|
9
|
+
this._domSanitizer = _domSanitizer;
|
|
10
|
+
this._notificationService = _notificationService;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
this.defaultOptions = {
|
|
15
|
+
Sound: true,
|
|
16
|
+
Image: null,
|
|
17
|
+
Title: null,
|
|
18
|
+
Icon: false,
|
|
19
|
+
Delay: 8000,
|
|
20
|
+
Closable: true,
|
|
21
|
+
DelayIndicator: true,
|
|
22
|
+
CloseOnClick: true,
|
|
23
|
+
IsRtl: true,
|
|
24
|
+
Position: 'bottom left',
|
|
25
|
+
SoundPath: 'sounds/',
|
|
26
|
+
Size: 'normal',
|
|
27
|
+
ContinueDelayOnInactiveTab: true,
|
|
28
|
+
Width: 800,
|
|
29
|
+
MessageHeight: 60
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
popupNotify(msg, title, type, image, mo, uiOptions, otherOptions) {
|
|
33
|
+
uiOptions = this._getUiOptions(uiOptions);
|
|
34
|
+
const callback = this._getNotifyCallback(mo, otherOptions);
|
|
35
|
+
const notificationConfig = this._getNotificationConfig(image, title, uiOptions, msg, callback);
|
|
36
|
+
const notificationRef = this._notificationService.open(UlNotifyPopupComponent, notificationConfig);
|
|
37
|
+
this._notificationService.notifications.forEach((c) => (c.notificationComponent.instance.closeOnNavigation = false));
|
|
38
|
+
setTimeout(() => notificationRef.dismiss('dismissed'), uiOptions.Delay);
|
|
39
|
+
}
|
|
40
|
+
_getUiOptions(uiOptions) {
|
|
41
|
+
if (uiOptions) {
|
|
42
|
+
return { ...this.defaultOptions, ...uiOptions };
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return this.defaultOptions;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
_getNotificationConfig(image, title, uiOptions, msg, callback) {
|
|
49
|
+
return {
|
|
50
|
+
id: 'test_id_notify',
|
|
51
|
+
data: {
|
|
52
|
+
image,
|
|
53
|
+
title,
|
|
54
|
+
Closable: uiOptions.Closable,
|
|
55
|
+
isRtl: uiOptions.IsRtl,
|
|
56
|
+
msg: this._domSanitizer.bypassSecurityTrustHtml(msg),
|
|
57
|
+
callback
|
|
58
|
+
},
|
|
59
|
+
width: uiOptions.Width.toString() + 'px'
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
_getNotifyCallback(mo, otherOptions) {
|
|
63
|
+
let callback = () => { };
|
|
64
|
+
if (mo) {
|
|
65
|
+
callback = () => {
|
|
66
|
+
BarsaApi.Bw.Form.Show({
|
|
67
|
+
Mo: mo
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
else if (otherOptions) {
|
|
72
|
+
callback = () => {
|
|
73
|
+
BarsaApi.Bw.Form.Show({
|
|
74
|
+
MoId: otherOptions.MoId,
|
|
75
|
+
TypeDefId: otherOptions.TypeDefId
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return callback;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
NotificationPopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationPopupService, deps: [{ token: i1.DomSanitizer }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
+
NotificationPopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationPopupService });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationPopupService, decorators: [{
|
|
85
|
+
type: Injectable
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.NotificationService }]; } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXBvcHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9ub3RpZmljYXRpb24tcG9wdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxRQUFRLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFHckYsTUFBTSxPQUFPLHdCQUF3QjtJQXFCakMsWUFBb0IsYUFBMkIsRUFBVSxvQkFBeUM7UUFBOUUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFBVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBcEJsRzs7V0FFRztRQUNILG1CQUFjLEdBQWtCO1lBQzVCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsSUFBSTtZQUNkLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsSUFBSSxFQUFFLFFBQVE7WUFDZCwwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLEtBQUssRUFBRSxHQUFHO1lBQ1YsYUFBYSxFQUFFLEVBQUU7U0FDcEIsQ0FBQztJQUNtRyxDQUFDO0lBQ3RHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZO1FBQzVELFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDM0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FDdEUsQ0FBQztRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sYUFBYSxDQUFDLFNBQXdCO1FBQzFDLElBQUksU0FBUyxFQUFFO1lBQ1gsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO1NBQ25EO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQzFCLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBd0IsRUFDeEIsR0FBRyxFQUNILFFBQW9CO1FBRXBCLE9BQU87WUFDSCxFQUFFLEVBQUUsZ0JBQWdCO1lBQ3BCLElBQUksRUFBRTtnQkFDRixLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO2dCQUM1QixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7Z0JBQ3RCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQztnQkFDcEQsUUFBUTthQUNYO1lBQ0QsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSTtTQUMzQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxZQUFZO1FBQ3ZDLElBQUksUUFBUSxHQUFHLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLEVBQUUsRUFBRTtZQUNKLFFBQVEsR0FBRyxHQUFHLEVBQUU7Z0JBQ1osUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNsQixFQUFFLEVBQUUsRUFBRTtpQkFDVCxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUM7U0FDTDthQUFNLElBQUksWUFBWSxFQUFFO1lBQ3JCLFFBQVEsR0FBRyxHQUFHLEVBQUU7Z0JBQ1osUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNsQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7b0JBQ3ZCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUztpQkFDcEMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDO1NBQ0w7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOztxSEEvRVEsd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbmZpZywgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7IEJhcnNhQXBpLCBOb3RpZnlPcHRpb25zIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuaW1wb3J0IHsgVWxOb3RpZnlQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vdWwtbm90aWZ5LXBvcHVwL3VsLW5vdGlmeS1wb3B1cC5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uUG9wdXBTZXJ2aWNlIGltcGxlbWVudHMgTm90aWZpY2F0aW9uUG9wdXBTZXJ2aWNlIHtcclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZGVmYXVsdE9wdGlvbnM6IE5vdGlmeU9wdGlvbnMgPSB7XHJcbiAgICAgICAgU291bmQ6IHRydWUsXHJcbiAgICAgICAgSW1hZ2U6IG51bGwsXHJcbiAgICAgICAgVGl0bGU6IG51bGwsXHJcbiAgICAgICAgSWNvbjogZmFsc2UsXHJcbiAgICAgICAgRGVsYXk6IDgwMDAsXHJcbiAgICAgICAgQ2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgRGVsYXlJbmRpY2F0b3I6IHRydWUsXHJcbiAgICAgICAgQ2xvc2VPbkNsaWNrOiB0cnVlLFxyXG4gICAgICAgIElzUnRsOiB0cnVlLFxyXG4gICAgICAgIFBvc2l0aW9uOiAnYm90dG9tIGxlZnQnLFxyXG4gICAgICAgIFNvdW5kUGF0aDogJ3NvdW5kcy8nLFxyXG4gICAgICAgIFNpemU6ICdub3JtYWwnLFxyXG4gICAgICAgIENvbnRpbnVlRGVsYXlPbkluYWN0aXZlVGFiOiB0cnVlLFxyXG4gICAgICAgIFdpZHRoOiA4MDAsXHJcbiAgICAgICAgTWVzc2FnZUhlaWdodDogNjBcclxuICAgIH07XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBfbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkge31cclxuICAgIHBvcHVwTm90aWZ5KG1zZywgdGl0bGUsIHR5cGUsIGltYWdlLCBtbywgdWlPcHRpb25zLCBvdGhlck9wdGlvbnMpOiB2b2lkIHtcclxuICAgICAgICB1aU9wdGlvbnMgPSB0aGlzLl9nZXRVaU9wdGlvbnModWlPcHRpb25zKTtcclxuICAgICAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMuX2dldE5vdGlmeUNhbGxiYWNrKG1vLCBvdGhlck9wdGlvbnMpO1xyXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkNvbmZpZyA9IHRoaXMuX2dldE5vdGlmaWNhdGlvbkNvbmZpZyhpbWFnZSwgdGl0bGUsIHVpT3B0aW9ucywgbXNnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUmVmID0gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5vcGVuKFVsTm90aWZ5UG9wdXBDb21wb25lbnQsIG5vdGlmaWNhdGlvbkNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25zLmZvckVhY2goXHJcbiAgICAgICAgICAgIChjKSA9PiAoYy5ub3RpZmljYXRpb25Db21wb25lbnQuaW5zdGFuY2UuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbm90aWZpY2F0aW9uUmVmLmRpc21pc3MoJ2Rpc21pc3NlZCcpLCB1aU9wdGlvbnMuRGVsYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFVpT3B0aW9ucyh1aU9wdGlvbnM6IE5vdGlmeU9wdGlvbnMpOiBOb3RpZnlPcHRpb25zIHtcclxuICAgICAgICBpZiAodWlPcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsIC4uLnVpT3B0aW9ucyB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRPcHRpb25zO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXROb3RpZmljYXRpb25Db25maWcoXHJcbiAgICAgICAgaW1hZ2UsXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgdWlPcHRpb25zOiBOb3RpZnlPcHRpb25zLFxyXG4gICAgICAgIG1zZyxcclxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdm9pZFxyXG4gICAgKTogTm90aWZpY2F0aW9uQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogJ3Rlc3RfaWRfbm90aWZ5JyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICB0aXRsZSxcclxuICAgICAgICAgICAgICAgIENsb3NhYmxlOiB1aU9wdGlvbnMuQ2xvc2FibGUsXHJcbiAgICAgICAgICAgICAgICBpc1J0bDogdWlPcHRpb25zLklzUnRsLFxyXG4gICAgICAgICAgICAgICAgbXNnOiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobXNnKSxcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHdpZHRoOiB1aU9wdGlvbnMuV2lkdGgudG9TdHJpbmcoKSArICdweCdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE5vdGlmeUNhbGxiYWNrKG1vLCBvdGhlck9wdGlvbnMpOiAoKSA9PiB2b2lkIHtcclxuICAgICAgICBsZXQgY2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7fTtcclxuICAgICAgICBpZiAobW8pIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5Gb3JtLlNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgIE1vOiBtb1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvdGhlck9wdGlvbnMpIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5Gb3JtLlNob3coe1xyXG4gICAgICAgICAgICAgICAgICAgIE1vSWQ6IG90aGVyT3B0aW9ucy5Nb0lkLFxyXG4gICAgICAgICAgICAgICAgICAgIFR5cGVEZWZJZDogb3RoZXJPcHRpb25zLlR5cGVEZWZJZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYWxsYmFjaztcclxuICAgIH1cclxufVxyXG4iXX0=
|