barsa-sap-ui 0.0.6 → 1.0.248
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/apply-conditional-formmatings.directive.mjs +1 -1
- package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +2 -2
- package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +1 -1
- package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +4 -4
- package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +14 -14
- package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +20 -12
- package/esm2020/lib/barsa-sap-ui-routing.module.mjs +1 -1
- package/esm2020/lib/barsa-sap-ui.module.mjs +25 -16
- package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +3 -3
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +4 -4
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +6 -6
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +23 -12
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +8 -7
- package/esm2020/lib/blob-viewer/blob-viewer.component.mjs +60 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/captcha-field/captcha-field.component.mjs +1 -1
- package/esm2020/lib/card-item/card-item.component.mjs +4 -4
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +3 -3
- package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +3 -3
- package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +1 -1
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +6 -5
- package/esm2020/lib/constants.mjs +1 -1
- package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +1 -1
- package/esm2020/lib/device-info-field-base.mjs +1 -1
- package/esm2020/lib/download-files.directive.mjs +33 -0
- package/esm2020/lib/empty-page/empty-page.component.mjs +3 -3
- package/esm2020/lib/file-in-dialog/file-in-dialog.component.mjs +1 -1
- package/esm2020/lib/file-viewer/file-viewer.component.mjs +47 -0
- package/esm2020/lib/file-viewer-content/file-viewer-content.component.mjs +49 -0
- package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +34 -0
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +3 -3
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +1 -1
- package/esm2020/lib/form-page/form-page.component.mjs +17 -17
- package/esm2020/lib/form-page-base.mjs +1 -1
- package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +3 -3
- package/esm2020/lib/form-wizard/form-wizard.component.mjs +3 -3
- package/esm2020/lib/fullscreen-dialog.directive.mjs +1 -1
- package/esm2020/lib/fullscreen-files.directive.mjs +39 -0
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
- package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +1 -1
- package/esm2020/lib/global-search/global-search.component.mjs +1 -1
- package/esm2020/lib/global-search-module/global-search-module.component.mjs +1 -1
- package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +1 -1
- package/esm2020/lib/header-avatar/header-avatar.component.mjs +1 -1
- package/esm2020/lib/header-facet-form/header-facet-form.component.mjs +1 -1
- package/esm2020/lib/header-facet-key-value/header-facet-key-value.component.mjs +1 -1
- package/esm2020/lib/header-facet-microchart/header-facet-microchart.component.mjs +3 -3
- package/esm2020/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +3 -3
- package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +1 -1
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +1 -1
- package/esm2020/lib/index.mjs +18 -3
- package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +1 -1
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +1 -1
- package/esm2020/lib/layout-control/layout-control.component.mjs +4 -4
- package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +25 -3
- package/esm2020/lib/list-item/list-item.component.mjs +3 -3
- package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +5 -7
- package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +8 -7
- package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +3 -3
- package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +3 -3
- package/esm2020/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +1 -1
- package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +9 -3
- package/esm2020/lib/ly-line/ly-line.component.mjs +1 -1
- package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +6 -10
- package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +7 -3
- package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +3 -3
- package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +8 -7
- package/esm2020/lib/mask/mask.component.mjs +3 -3
- package/esm2020/lib/message-strip/message-strip.component.mjs +1 -1
- package/esm2020/lib/models/grid-data-provider.mjs +2 -2
- package/esm2020/lib/models/grid-view.mjs +1 -1
- package/esm2020/lib/no-data/no-data.component.mjs +3 -3
- package/esm2020/lib/page-with-form-handler-base.mjs +1 -1
- package/esm2020/lib/page-with-header/page-with-header.component.mjs +1 -1
- package/esm2020/lib/progress-indicator/progress-indicator.component.mjs +1 -1
- package/esm2020/lib/report-navigator/report-navigator.component.mjs +3 -3
- package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +3 -3
- package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +3 -3
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +3 -3
- package/esm2020/lib/report-tree-base.mjs +4 -1
- package/esm2020/lib/report-view-renderer.directive.mjs +32 -2
- package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +1 -1
- package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +1 -1
- package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +1 -1
- package/esm2020/lib/sap-ui-report-base.component.mjs +87 -64
- package/esm2020/lib/search-panel/search-panel.component.mjs +1 -1
- package/esm2020/lib/static-text/static-text.component.mjs +3 -3
- package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +3 -3
- package/esm2020/lib/ui-button/ui-button.component.mjs +3 -3
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
- package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +3 -3
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
- package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +1 -1
- package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +3 -3
- package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +3 -3
- package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +3 -3
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +3 -3
- package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +1 -1
- package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +29 -90
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
- package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +3 -3
- package/esm2020/lib/ui-graph/ui-graph.component.mjs +1 -1
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
- package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +3 -3
- package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +1 -1
- package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +1 -1
- package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +1 -1
- package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +1 -1
- package/esm2020/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +1 -1
- package/esm2020/lib/ui-label/ui-label.component.mjs +3 -3
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +2 -2
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +4 -3
- package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +1 -1
- package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +19 -14
- package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +3 -3
- package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +26 -9
- package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +1 -1
- package/esm2020/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +3 -3
- package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +19 -20
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +26 -30
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +39 -31
- package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +3 -3
- package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +3 -3
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +1 -1
- package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +3 -3
- package/esm2020/lib/ui-single-picture/ui-single-picture.component.mjs +1 -1
- package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +3 -3
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +8 -3
- package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +3 -3
- package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +1 -1
- package/esm2020/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +3 -3
- package/esm2020/lib/ui-time-span/ui-time-span.component.mjs +1 -1
- package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +1 -1
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +26 -3
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +9 -3
- package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +2 -2
- package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +6 -3
- package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +1 -1
- package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +7 -2
- package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +3 -3
- package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +1 -1
- package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +1 -1
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +3 -3
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +3 -3
- package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +3 -3
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +5 -5
- package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +3 -3
- package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +1 -1
- package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +2 -2
- package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +1 -1
- package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +3 -3
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +11 -5
- package/esm2020/lib/wizard-layout.directive.mjs +1 -1
- package/esm2020/public-api.mjs +7 -1
- package/fesm2015/barsa-sap-ui.mjs +888 -542
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +879 -541
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +3 -2
- package/lib/barsa-sap-ui.module.d.ts +31 -25
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +7 -1
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +3 -1
- package/lib/blob-viewer/blob-viewer.component.d.ts +20 -0
- package/lib/download-files.directive.d.ts +9 -0
- package/lib/file-viewer/file-viewer.component.d.ts +21 -0
- package/lib/file-viewer-content/file-viewer-content.component.d.ts +18 -0
- package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +13 -0
- package/lib/fullscreen-files.directive.d.ts +15 -0
- package/lib/index.d.ts +8 -4
- package/lib/layout-control/layout-control.component.d.ts +5 -5
- package/lib/layout-wizard/layout-wizard.component.d.ts +1 -0
- package/lib/ly-empty-space/ly-empty-space.component.d.ts +1 -3
- package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +4 -3
- package/lib/ly-simple-label/ly-simple-label.component.d.ts +1 -3
- package/lib/ly-tab-container/ly-tab-container.component.d.ts +3 -1
- package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +4 -3
- package/lib/report-tree-base.d.ts +2 -1
- package/lib/report-view-renderer.directive.d.ts +10 -1
- package/lib/sap-ui-report-base.component.d.ts +13 -4
- package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +15 -18
- package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +9 -3
- package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +5 -6
- package/lib/ui-picture-file/ui-picture-file.component.d.ts +4 -6
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +8 -7
- package/lib/ui-table-view/ui-table-view.component.d.ts +1 -0
- package/lib/ui-tree/ui-tree.component.d.ts +5 -0
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +7 -1
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +2 -1
- package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +2 -1
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +4 -1
- package/package.json +3 -3
- package/public-api.d.ts +6 -0
|
@@ -2,15 +2,17 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
|
|
|
2
2
|
import { BaseViewItemPropsComponent } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/
|
|
6
|
-
import * as i3 from "@
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
9
|
-
import * as i6 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i7 from "@fundamental-ngx/
|
|
11
|
-
import * as i8 from "
|
|
12
|
-
import * as i9 from "
|
|
13
|
-
import * as i10 from "../
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/cdk/drag-drop";
|
|
7
|
+
import * as i4 from "@fundamental-ngx/core/busy-indicator";
|
|
8
|
+
import * as i5 from "@fundamental-ngx/core/button";
|
|
9
|
+
import * as i6 from "@fundamental-ngx/core/checkbox";
|
|
10
|
+
import * as i7 from "@fundamental-ngx/core/icon";
|
|
11
|
+
import * as i8 from "@fundamental-ngx/core/list";
|
|
12
|
+
import * as i9 from "@fundamental-ngx/platform/button";
|
|
13
|
+
import * as i10 from "../ulv-context-menu/ulv-context-menu.component";
|
|
14
|
+
import * as i11 from "../htree-create-new/htree-create-new.component";
|
|
15
|
+
import * as i12 from "../apply-conditional-formmatings.directive";
|
|
14
16
|
export class BarsaTreeItemComponent extends BaseViewItemPropsComponent {
|
|
15
17
|
constructor() {
|
|
16
18
|
super(...arguments);
|
|
@@ -18,6 +20,7 @@ export class BarsaTreeItemComponent extends BaseViewItemPropsComponent {
|
|
|
18
20
|
/* eslint-disable */
|
|
19
21
|
this.createNew = new EventEmitter();
|
|
20
22
|
this.select = new EventEmitter();
|
|
23
|
+
this.checkChange = new EventEmitter();
|
|
21
24
|
this.viewClick = new EventEmitter();
|
|
22
25
|
this.loadChildren = new EventEmitter();
|
|
23
26
|
this.dragMoved = new EventEmitter();
|
|
@@ -40,7 +43,13 @@ export class BarsaTreeItemComponent extends BaseViewItemPropsComponent {
|
|
|
40
43
|
this.onRowCheck();
|
|
41
44
|
}
|
|
42
45
|
}
|
|
46
|
+
onCheckbox(checked) {
|
|
47
|
+
this.checkChange.emit({ node: this.node, index: this.index, checked });
|
|
48
|
+
}
|
|
43
49
|
onRowCheck() {
|
|
50
|
+
if (this.inDialog && this.isMultiSelect) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
44
53
|
this.select.emit({ node: this.node, index: this.index });
|
|
45
54
|
}
|
|
46
55
|
onUlvCommand() {
|
|
@@ -76,10 +85,10 @@ export class BarsaTreeItemComponent extends BaseViewItemPropsComponent {
|
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
BarsaTreeItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTreeItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
BarsaTreeItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: { node: "node", selectedNode: "selectedNode", relationList: "relationList", hasDragDrop: "hasDragDrop", hasArrowIcon: "hasArrowIcon", collapseIcon: "collapseIcon", loading: "loading", hasChildren: "hasChildren", isExpand: "isExpand", children: "children", parentNode: "parentNode", text: "text", isHetro: "isHetro" }, outputs: { createNew: "createNew", select: "select", viewClick: "viewClick", loadChildren: "loadChildren", dragMoved: "dragMoved" }, usesInheritance: true, ngImport: i0, template: "<li\n fd-list-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"node.Data\"\n [hostEl]=\"liEl\"\n [focusable]=\"true\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 1\"\n [selected]=\"isChecked\"\n (dblclick)=\"onNodeViewClick()\"\n cdkDrag\n [cdkDragData]=\"node.Data.Id\"\n (cdkDragMoved)=\"onDragMoved($event)\"\n (click)=\"onListItemClick(liEl, $event)\"\n>\n <div (click)=\"onRowCheck()\" class=\"spacer\" [style.width]=\"(level - 1) * 4 + 'rem'\"></div>\n <fd-icon *ngIf=\"hasDragDrop && !isHetro\" glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\" cdkDragHandle></fd-icon>\n\n <div (click)=\"onRowCheck()\" style=\"display: flex; width: 100%; justify-content: space-between\">\n <div style=\"display: flex\">\n <ng-container *ngIf=\"hasArrowIcon\">\n <div class=\"arrow-container\" *ngIf=\"hasChildren; else emptyBtn\">\n <button\n [attr.rtl]=\"rtl\"\n fd-button\n fdType=\"transparent\"\n [glyph]=\"hasChildren ? (isExpand ? 'less' : collapseIcon) : ''\"\n (click)=\"onLoadChildren($event)\"\n (dblclick)=\"onExpandDblClick($event)\"\n ></button>\n </div>\n <fd-busy-indicator\n style=\"display: flex; align-items: center; width: 2rem\"\n *ngIf=\"loading\"\n size=\"s\"\n [loading]=\"true\"\n ></fd-busy-indicator>\n </ng-container>\n <div style=\"display: flex; flex: unset; align-items: center\" fd-list-title [focusable]=\"true\">\n <img\n *ngIf=\"!hideIcon\"\n [src]=\"node.icon\"\n [style.padding-right.px]=\"!rtl ? 5 : null\"\n [style.padding-left.px]=\"rtl ? 5 : null\"\n />\n <span>{{ text }}</span>\n <span *ngIf=\"children\">{{ ' ( ' + children.length + ' )' }}</span>\n </div>\n </div>\n <i\n *ngIf=\"contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"node.Data\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n ></i>\n <bsu-htree-create-new\n *ngIf=\"access
|
|
88
|
+
BarsaTreeItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: { node: "node", selectedNode: "selectedNode", relationList: "relationList", hasDragDrop: "hasDragDrop", hasArrowIcon: "hasArrowIcon", collapseIcon: "collapseIcon", loading: "loading", hasChildren: "hasChildren", isExpand: "isExpand", children: "children", parentNode: "parentNode", text: "text", isHetro: "isHetro" }, outputs: { createNew: "createNew", select: "select", checkChange: "checkChange", viewClick: "viewClick", loadChildren: "loadChildren", dragMoved: "dragMoved" }, usesInheritance: true, ngImport: i0, template: "<li\n fd-list-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"node.Data\"\n [hostEl]=\"liEl\"\n [focusable]=\"true\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 1\"\n [selected]=\"isChecked\"\n (dblclick)=\"onNodeViewClick()\"\n cdkDrag\n [cdkDragData]=\"node.Data.Id\"\n (cdkDragMoved)=\"onDragMoved($event)\"\n (click)=\"onListItemClick(liEl, $event)\"\n>\n <div (click)=\"onRowCheck()\" class=\"spacer\" [style.width]=\"(level - 1) * 4 + 'rem'\"></div>\n <fd-icon *ngIf=\"hasDragDrop && !isHetro\" glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\" cdkDragHandle></fd-icon>\n <fd-checkbox\n *ngIf=\"inDialog && isMultiSelect\"\n [name]=\"node.Data.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onCheckbox($event)\"\n ></fd-checkbox>\n\n <div (click)=\"onRowCheck()\" style=\"display: flex; width: 100%; justify-content: space-between\">\n <div style=\"display: flex\">\n <ng-container *ngIf=\"hasArrowIcon\">\n <div class=\"arrow-container\" *ngIf=\"hasChildren; else emptyBtn\">\n <button\n [attr.rtl]=\"rtl\"\n fd-button\n fdType=\"transparent\"\n [glyph]=\"hasChildren ? (isExpand ? 'less' : collapseIcon) : ''\"\n (click)=\"onLoadChildren($event)\"\n (dblclick)=\"onExpandDblClick($event)\"\n ></button>\n </div>\n <fd-busy-indicator\n style=\"display: flex; align-items: center; width: 2rem\"\n *ngIf=\"loading\"\n size=\"s\"\n [loading]=\"true\"\n ></fd-busy-indicator>\n </ng-container>\n <div style=\"display: flex; flex: unset; align-items: center\" fd-list-title [focusable]=\"true\">\n <img\n *ngIf=\"!hideIcon\"\n [src]=\"node.icon\"\n [style.padding-right.px]=\"!rtl ? 5 : null\"\n [style.padding-left.px]=\"rtl ? 5 : null\"\n />\n <span>{{ text }}</span>\n <span *ngIf=\"children\">{{ ' ( ' + children.length + ' )' }}</span>\n </div>\n </div>\n <i\n *ngIf=\"contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"node.Data\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n ></i>\n <bsu-htree-create-new\n *ngIf=\"access?.Add !== false && !inDialog\"\n [node]=\"node\"\n [relationList]=\"relationList\"\n (createNew)=\"onCreateNew($event)\"\n ></bsu-htree-create-new>\n </div>\n <fdp-button\n *ngIf=\"access?.View && !showOkCancelButtons && deviceName !== 'desktop'\"\n [glyph]=\"navigationArrow\"\n buttonType=\"transparent\"\n (click)=\"onNodeViewClick()\"\n ></fdp-button>\n\n <bsu-barsa-tree-item\n *cdkDragPreview\n [node]=\"node\"\n [rtl]=\"rtl\"\n [selectedNode]=\"selectedNode\"\n [hasArrowIcon]=\"false\"\n ></bsu-barsa-tree-item>\n</li>\n<ng-template #emptyBtn>\n <div class=\"empty-container\" *ngIf=\"!parentNode?.hasOneDepthLevel\" (click)=\"onRowCheck()\">\n <button fd-button></button>\n </div>\n</ng-template>\n", styles: [":host{display:block}li{column-gap:8px}li .cdk-drag-handle{opacity:.5;cursor:move}li .spacer{height:100%}li .arrow-container,li .empty-container{display:flex;width:28px;align-items:center;justify-content:center}li .arrow-container fd-icon,li .empty-container fd-icon{cursor:pointer;width:100%;height:100%;text-align:center}li .arrow-container button[rtl=true],li .empty-container button[rtl=true]{margin-left:5px}li .arrow-container button[rtl=false],li .empty-container button[rtl=false]{margin-right:5px}li .empty-container{visibility:hidden!important}.cdk-drag{cursor:auto}.tree-icon-children{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i3.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { 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.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i9.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i10.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hasDragDrop", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "isExpand", "children", "parentNode", "text", "isHetro"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i11.HtreeCreateNewComponent, selector: "bsu-htree-create-new", inputs: ["relationList", "node"], outputs: ["createNew"] }, { kind: "directive", type: i12.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "mo", "hostEl", "dbName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTreeItemComponent, decorators: [{
|
|
81
90
|
type: Component,
|
|
82
|
-
args: [{ selector: 'bsu-barsa-tree-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li\n fd-list-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"node.Data\"\n [hostEl]=\"liEl\"\n [focusable]=\"true\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 1\"\n [selected]=\"isChecked\"\n (dblclick)=\"onNodeViewClick()\"\n cdkDrag\n [cdkDragData]=\"node.Data.Id\"\n (cdkDragMoved)=\"onDragMoved($event)\"\n (click)=\"onListItemClick(liEl, $event)\"\n>\n <div (click)=\"onRowCheck()\" class=\"spacer\" [style.width]=\"(level - 1) * 4 + 'rem'\"></div>\n <fd-icon *ngIf=\"hasDragDrop && !isHetro\" glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\" cdkDragHandle></fd-icon>\n\n <div (click)=\"onRowCheck()\" style=\"display: flex; width: 100%; justify-content: space-between\">\n <div style=\"display: flex\">\n <ng-container *ngIf=\"hasArrowIcon\">\n <div class=\"arrow-container\" *ngIf=\"hasChildren; else emptyBtn\">\n <button\n [attr.rtl]=\"rtl\"\n fd-button\n fdType=\"transparent\"\n [glyph]=\"hasChildren ? (isExpand ? 'less' : collapseIcon) : ''\"\n (click)=\"onLoadChildren($event)\"\n (dblclick)=\"onExpandDblClick($event)\"\n ></button>\n </div>\n <fd-busy-indicator\n style=\"display: flex; align-items: center; width: 2rem\"\n *ngIf=\"loading\"\n size=\"s\"\n [loading]=\"true\"\n ></fd-busy-indicator>\n </ng-container>\n <div style=\"display: flex; flex: unset; align-items: center\" fd-list-title [focusable]=\"true\">\n <img\n *ngIf=\"!hideIcon\"\n [src]=\"node.icon\"\n [style.padding-right.px]=\"!rtl ? 5 : null\"\n [style.padding-left.px]=\"rtl ? 5 : null\"\n />\n <span>{{ text }}</span>\n <span *ngIf=\"children\">{{ ' ( ' + children.length + ' )' }}</span>\n </div>\n </div>\n <i\n *ngIf=\"contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"node.Data\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n ></i>\n <bsu-htree-create-new\n *ngIf=\"access
|
|
91
|
+
args: [{ selector: 'bsu-barsa-tree-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li\n fd-list-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [mo]=\"node.Data\"\n [hostEl]=\"liEl\"\n [focusable]=\"true\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 1\"\n [selected]=\"isChecked\"\n (dblclick)=\"onNodeViewClick()\"\n cdkDrag\n [cdkDragData]=\"node.Data.Id\"\n (cdkDragMoved)=\"onDragMoved($event)\"\n (click)=\"onListItemClick(liEl, $event)\"\n>\n <div (click)=\"onRowCheck()\" class=\"spacer\" [style.width]=\"(level - 1) * 4 + 'rem'\"></div>\n <fd-icon *ngIf=\"hasDragDrop && !isHetro\" glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\" cdkDragHandle></fd-icon>\n <fd-checkbox\n *ngIf=\"inDialog && isMultiSelect\"\n [name]=\"node.Data.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onCheckbox($event)\"\n ></fd-checkbox>\n\n <div (click)=\"onRowCheck()\" style=\"display: flex; width: 100%; justify-content: space-between\">\n <div style=\"display: flex\">\n <ng-container *ngIf=\"hasArrowIcon\">\n <div class=\"arrow-container\" *ngIf=\"hasChildren; else emptyBtn\">\n <button\n [attr.rtl]=\"rtl\"\n fd-button\n fdType=\"transparent\"\n [glyph]=\"hasChildren ? (isExpand ? 'less' : collapseIcon) : ''\"\n (click)=\"onLoadChildren($event)\"\n (dblclick)=\"onExpandDblClick($event)\"\n ></button>\n </div>\n <fd-busy-indicator\n style=\"display: flex; align-items: center; width: 2rem\"\n *ngIf=\"loading\"\n size=\"s\"\n [loading]=\"true\"\n ></fd-busy-indicator>\n </ng-container>\n <div style=\"display: flex; flex: unset; align-items: center\" fd-list-title [focusable]=\"true\">\n <img\n *ngIf=\"!hideIcon\"\n [src]=\"node.icon\"\n [style.padding-right.px]=\"!rtl ? 5 : null\"\n [style.padding-left.px]=\"rtl ? 5 : null\"\n />\n <span>{{ text }}</span>\n <span *ngIf=\"children\">{{ ' ( ' + children.length + ' )' }}</span>\n </div>\n </div>\n <i\n *ngIf=\"contextMenuItems && contextMenuItems.length > 0\"\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"node.Data\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n ></i>\n <bsu-htree-create-new\n *ngIf=\"access?.Add !== false && !inDialog\"\n [node]=\"node\"\n [relationList]=\"relationList\"\n (createNew)=\"onCreateNew($event)\"\n ></bsu-htree-create-new>\n </div>\n <fdp-button\n *ngIf=\"access?.View && !showOkCancelButtons && deviceName !== 'desktop'\"\n [glyph]=\"navigationArrow\"\n buttonType=\"transparent\"\n (click)=\"onNodeViewClick()\"\n ></fdp-button>\n\n <bsu-barsa-tree-item\n *cdkDragPreview\n [node]=\"node\"\n [rtl]=\"rtl\"\n [selectedNode]=\"selectedNode\"\n [hasArrowIcon]=\"false\"\n ></bsu-barsa-tree-item>\n</li>\n<ng-template #emptyBtn>\n <div class=\"empty-container\" *ngIf=\"!parentNode?.hasOneDepthLevel\" (click)=\"onRowCheck()\">\n <button fd-button></button>\n </div>\n</ng-template>\n", styles: [":host{display:block}li{column-gap:8px}li .cdk-drag-handle{opacity:.5;cursor:move}li .spacer{height:100%}li .arrow-container,li .empty-container{display:flex;width:28px;align-items:center;justify-content:center}li .arrow-container fd-icon,li .empty-container fd-icon{cursor:pointer;width:100%;height:100%;text-align:center}li .arrow-container button[rtl=true],li .empty-container button[rtl=true]{margin-left:5px}li .arrow-container button[rtl=false],li .empty-container button[rtl=false]{margin-right:5px}li .empty-container{visibility:hidden!important}.cdk-drag{cursor:auto}.tree-icon-children{cursor:pointer}\n"] }]
|
|
83
92
|
}], propDecorators: { node: [{
|
|
84
93
|
type: Input
|
|
85
94
|
}], selectedNode: [{
|
|
@@ -110,6 +119,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
110
119
|
type: Output
|
|
111
120
|
}], select: [{
|
|
112
121
|
type: Output
|
|
122
|
+
}], checkChange: [{
|
|
123
|
+
type: Output
|
|
113
124
|
}], viewClick: [{
|
|
114
125
|
type: Output
|
|
115
126
|
}], loadChildren: [{
|
|
@@ -117,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
117
128
|
}], dragMoved: [{
|
|
118
129
|
type: Output
|
|
119
130
|
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRyZWUtaXRlbS9iYXJzYS10cmVlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdHJlZS1pdGVtL2JhcnNhLXRyZWUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBc0QsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXRILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwwQkFBMEI7SUFOdEU7O1FBV2EsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFVN0Isb0JBQW9CO1FBQ1YsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFHL0IsQ0FBQztRQUVLLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFHbEMsQ0FBQztRQUNLLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHakQsWUFBTyxHQUFHO1lBQ04sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxnQ0FBZ0MsRUFBRTtZQUN6RDtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsbUNBQW1DO2FBQzlDO1NBQ0osQ0FBQztLQW1ETDtJQWpERyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFB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QUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgVHJlZU5vZGVPYmosIFJlbGF0aW9uSXRlbVR5cGUsIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10cmVlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10cmVlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRyZWUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVHJlZUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbm9kZTogVHJlZU5vZGVPYmo7XG4gICAgQElucHV0KCkgc2VsZWN0ZWROb2RlOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbDtcbiAgICBASW5wdXQoKSByZWxhdGlvbkxpc3Q6IFJlbGF0aW9uSXRlbVR5cGVbXTtcbiAgICBASW5wdXQoKSBoYXNEcmFnRHJvcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoYXNBcnJvd0ljb24gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlSWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGFzQ2hpbGRyZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNFeHBhbmQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2hpbGRyZW46IFRyZWVOb2RlT2JqW107XG4gICAgQElucHV0KCkgcGFyZW50Tm9kZTogVHJlZU5vZGVPYmo7XG4gICAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzSGV0cm86IGJvb2xlYW47XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBPdXRwdXQoKSBjcmVhdGVOZXcgPSBuZXcgRXZlbnRFbWl0dGVyPFJlbGF0aW9uSXRlbVR5cGU+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgQE91dHB1dCgpIHZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIGxvYWRDaGlsZHJlbiA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZHJhZ01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgaWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoaWRlSWNvbjogYm9vbGVhbjtcbiAgICByb3dCdG5zID0gW1xuICAgICAgICB7IEljb246ICdhZGQnLCBBY3Rpb246ICdjb25zb2xlLmxvZyhcImFkZCBidG4gY2xpY2tlZFwiKScgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgSWNvbjogJ2RlbGV0ZScsXG4gICAgICAgICAgICBBY3Rpb246ICdjb25zb2xlLmxvZyhcImRlbGV0ZSBidG4gY2xpY2tlZFwiKSdcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLm5vZGUuaWNvbi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZUljb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTGlzdEl0ZW1DbGljayhsaUVsLCBlKSB7XG4gICAgICAgIGlmIChlLnRhcmdldCA9PT0gbGlFbD8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Sb3dDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdCh7IG5vZGU6IHRoaXMubm9kZSwgaW5kZXg6IHRoaXMuaW5kZXggfSk7XG4gICAgfVxuXG4gICAgb25VbHZDb21tYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVsdkNvbW1hbmQuZW1pdCh7IG1vOiB0aGlzLm5vZGUuRGF0YSwgaW5kZXg6IHRoaXMuaW5kZXggfSk7XG4gICAgfVxuXG4gICAgb25Ob2RlVmlld0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdDbGljay5lbWl0KHsgbm9kZTogdGhpcy5ub2RlLkRhdGEsIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cblxuICAgIG9uTG9hZENoaWxkcmVuKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4uZW1pdCh0aGlzLm5vZGUuRGF0YSk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkV4cGFuZERibENsaWNrKGUpOiB2b2lkIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBvbkNyZWF0ZU5ldyhlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Sb3dDaGVjaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3JlYXRlTmV3LmVtaXQoZSk7XG4gICAgfVxuICAgIG9uUm93QWN0aW9uKGNvbW1hbmRCb2R5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBGdW5jdGlvbihjb21tYW5kQm9keSk7XG4gICAgICAgIGNvbW1hbmQoKTtcbiAgICB9XG4gICAgb25EcmFnTW92ZWQoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSGV0cm8pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyYWdNb3ZlZC5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIiwiPGxpXG4gICAgZmQtbGlzdC1pdGVtXG4gICAgI2xpRWxcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbbW9dPVwibm9kZS5EYXRhXCJcbiAgICBbaG9zdEVsXT1cImxpRWxcIlxuICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgW2F0dHIubGV2ZWxdPVwibGV2ZWxcIlxuICAgIFtjbGFzcy5yb290LWdyb3VwXT1cImxldmVsID09PSAxXCJcbiAgICBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICAoZGJsY2xpY2spPVwib25Ob2RlVmlld0NsaWNrKClcIlxuICAgIGNka0RyYWdcbiAgICBbY2RrRHJhZ0RhdGFdPVwibm9kZS5EYXRhLklkXCJcbiAgICAoY2RrRHJhZ01vdmVkKT1cIm9uRHJhZ01vdmVkKCRldmVudClcIlxuICAgIChjbGljayk9XCJvbkxpc3RJdGVtQ2xpY2sobGlFbCwgJGV2ZW50KVwiXG4+XG4gICAgPGRpdiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgY2xhc3M9XCJzcGFjZXJcIiBbc3R5bGUud2lkdGhdPVwiKGxldmVsIC0gMSkgKiA0ICsgJ3JlbSdcIj48L2Rpdj5cbiAgICA8ZmQtaWNvbiAqbmdJZj1cImhhc0RyYWdEcm9wICYmICFpc0hldHJvXCIgZ2x5cGg9XCJncmlwXCIgZm9udD1cIkJ1c2luZXNzU3VpdGVJbkFwcFN5bWJvbHNcIiBjZGtEcmFnSGFuZGxlPjwvZmQtaWNvbj5cblxuICAgIDxkaXYgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCU7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlblwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Fycm93SWNvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnJvdy1jb250YWluZXJcIiAqbmdJZj1cImhhc0NoaWxkcmVuOyBlbHNlIGVtcHR5QnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJ0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaGFzQ2hpbGRyZW4gPyAoaXNFeHBhbmQgPyAnbGVzcycgOiBjb2xsYXBzZUljb24pIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uRXhwYW5kRGJsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB3aWR0aDogMnJlbVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4OiB1bnNldDsgYWxpZ24taXRlbXM6IGNlbnRlclwiIGZkLWxpc3QtdGl0bGUgW2ZvY3VzYWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibm9kZS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHQucHhdPVwiIXJ0bCA/IDUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdC5weF09XCJydGwgPyA1IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpbGRyZW5cIj57eyAnICggJyArIGNoaWxkcmVuLmxlbmd0aCArICcgKScgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgIHVsdkNvbnRleHRNZW51XG4gICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgW21vXT1cIm5vZGUuRGF0YVwiXG4gICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPGJzdS1odHJlZS1jcmVhdGUtbmV3XG4gICAgICAgICAgICAqbmdJZj1cImFjY2Vzcy5BZGQgIT09IGZhbHNlXCJcbiAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgW3JlbGF0aW9uTGlzdF09XCJyZWxhdGlvbkxpc3RcIlxuICAgICAgICAgICAgKGNyZWF0ZU5ldyk9XCJvbkNyZWF0ZU5ldygkZXZlbnQpXCJcbiAgICAgICAgPjwvYnN1LWh0cmVlLWNyZWF0ZS1uZXc+XG4gICAgPC9kaXY+XG4gICAgPGZkcC1idXR0b25cbiAgICAgICAgKm5nSWY9XCJhY2Nlc3M/LlZpZXcgJiYgIXNob3dPa0NhbmNlbEJ1dHRvbnMgJiYgZGV2aWNlTmFtZSAhPT0gJ2Rlc2t0b3AnXCJcbiAgICAgICAgW2dseXBoXT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIChjbGljayk9XCJvbk5vZGVWaWV3Q2xpY2soKVwiXG4gICAgPjwvZmRwLWJ1dHRvbj5cblxuICAgIDxic3UtYmFyc2EtdHJlZS1pdGVtXG4gICAgICAgICpjZGtEcmFnUHJldmlld1xuICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbc2VsZWN0ZWROb2RlXT1cInNlbGVjdGVkTm9kZVwiXG4gICAgICAgIFtoYXNBcnJvd0ljb25dPVwiZmFsc2VcIlxuICAgID48L2JzdS1iYXJzYS10cmVlLWl0ZW0+XG48L2xpPlxuPG5nLXRlbXBsYXRlICNlbXB0eUJ0bj5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCIgKm5nSWY9XCIhcGFyZW50Tm9kZT8uaGFzT25lRGVwdGhMZXZlbFwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRyZWUtaXRlbS9iYXJzYS10cmVlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdHJlZS1pdGVtL2JhcnNhLXRyZWUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBc0QsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQU50RTs7UUFXYSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQVU3QixvQkFBb0I7UUFDVixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDakQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUcvQixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFJcEMsQ0FBQztRQUNLLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFHbEMsQ0FBQztRQUNLLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHakQsWUFBTyxHQUFHO1lBQ04sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxnQ0FBZ0MsRUFBRTtZQUN6RDtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsbUNBQW1DO2FBQzlDO1NBQ0osQ0FBQztLQXlETDtJQXZERyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEs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SztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUlHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNZXRhb2JqZWN0RGF0YU1vZGVsLCBUcmVlTm9kZU9iaiwgUmVsYXRpb25JdGVtVHlwZSwgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXRyZWUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRyZWUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdHJlZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUcmVlSXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBub2RlOiBUcmVlTm9kZU9iajtcbiAgICBASW5wdXQoKSBzZWxlY3RlZE5vZGU6IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsO1xuICAgIEBJbnB1dCgpIHJlbGF0aW9uTGlzdDogUmVsYXRpb25JdGVtVHlwZVtdO1xuICAgIEBJbnB1dCgpIGhhc0RyYWdEcm9wOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhhc0Fycm93SWNvbiA9IHRydWU7XG4gICAgQElucHV0KCkgY29sbGFwc2VJY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoYXNDaGlsZHJlbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjaGlsZHJlbjogVHJlZU5vZGVPYmpbXTtcbiAgICBASW5wdXQoKSBwYXJlbnROb2RlOiBUcmVlTm9kZU9iajtcbiAgICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNIZXRybzogYm9vbGVhbjtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ldyA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25JdGVtVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIG5vZGU6IFRyZWVOb2RlT2JqO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIGNoZWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIG5vZGU6IFRyZWVOb2RlT2JqO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICBjaGVja2VkOiBib29sZWFuO1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIHZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIGxvYWRDaGlsZHJlbiA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZHJhZ01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgaWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoaWRlSWNvbjogYm9vbGVhbjtcbiAgICByb3dCdG5zID0gW1xuICAgICAgICB7IEljb246ICdhZGQnLCBBY3Rpb246ICdjb25zb2xlLmxvZyhcImFkZCBidG4gY2xpY2tlZFwiKScgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgSWNvbjogJ2RlbGV0ZScsXG4gICAgICAgICAgICBBY3Rpb246ICdjb25zb2xlLmxvZyhcImRlbGV0ZSBidG4gY2xpY2tlZFwiKSdcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLm5vZGUuaWNvbi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZUljb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTGlzdEl0ZW1DbGljayhsaUVsLCBlKSB7XG4gICAgICAgIGlmIChlLnRhcmdldCA9PT0gbGlFbD8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25DaGVja2JveChjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tDaGFuZ2UuZW1pdCh7IG5vZGU6IHRoaXMubm9kZSwgaW5kZXg6IHRoaXMuaW5kZXgsIGNoZWNrZWQgfSk7XG4gICAgfVxuICAgIG9uUm93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nICYmIHRoaXMuaXNNdWx0aVNlbGVjdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0LmVtaXQoeyBub2RlOiB0aGlzLm5vZGUsIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cblxuICAgIG9uVWx2Q29tbWFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bHZDb21tYW5kLmVtaXQoeyBtbzogdGhpcy5ub2RlLkRhdGEsIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cblxuICAgIG9uTm9kZVZpZXdDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q2xpY2suZW1pdCh7IG5vZGU6IHRoaXMubm9kZS5EYXRhLCBpbmRleDogdGhpcy5pbmRleCB9KTtcbiAgICB9XG5cbiAgICBvbkxvYWRDaGlsZHJlbihlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZENoaWxkcmVuLmVtaXQodGhpcy5ub2RlLkRhdGEpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FeHBhbmREYmxDbGljayhlKTogdm9pZCB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgb25DcmVhdGVOZXcoZSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyZWF0ZU5ldy5lbWl0KGUpO1xuICAgIH1cbiAgICBvblJvd0FjdGlvbihjb21tYW5kQm9keTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgRnVuY3Rpb24oY29tbWFuZEJvZHkpO1xuICAgICAgICBjb21tYW5kKCk7XG4gICAgfVxuICAgIG9uRHJhZ01vdmVkKCRldmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0hldHJvKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcmFnTW92ZWQuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxsaVxuICAgIGZkLWxpc3QtaXRlbVxuICAgICNsaUVsXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW21vXT1cIm5vZGUuRGF0YVwiXG4gICAgW2hvc3RFbF09XCJsaUVsXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmxldmVsXT1cImxldmVsXCJcbiAgICBbY2xhc3Mucm9vdC1ncm91cF09XCJsZXZlbCA9PT0gMVwiXG4gICAgW3NlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4gICAgKGRibGNsaWNrKT1cIm9uTm9kZVZpZXdDbGljaygpXCJcbiAgICBjZGtEcmFnXG4gICAgW2Nka0RyYWdEYXRhXT1cIm5vZGUuRGF0YS5JZFwiXG4gICAgKGNka0RyYWdNb3ZlZCk9XCJvbkRyYWdNb3ZlZCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwib25MaXN0SXRlbUNsaWNrKGxpRWwsICRldmVudClcIlxuPlxuICAgIDxkaXYgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIGNsYXNzPVwic3BhY2VyXCIgW3N0eWxlLndpZHRoXT1cIihsZXZlbCAtIDEpICogNCArICdyZW0nXCI+PC9kaXY+XG4gICAgPGZkLWljb24gKm5nSWY9XCJoYXNEcmFnRHJvcCAmJiAhaXNIZXRyb1wiIGdseXBoPVwiZ3JpcFwiIGZvbnQ9XCJCdXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xzXCIgY2RrRHJhZ0hhbmRsZT48L2ZkLWljb24+XG4gICAgPGZkLWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwiaW5EaWFsb2cgJiYgaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtuYW1lXT1cIm5vZGUuRGF0YS4kQ2FwdGlvblwiXG4gICAgICAgIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hlY2tib3goJGV2ZW50KVwiXG4gICAgPjwvZmQtY2hlY2tib3g+XG5cbiAgICA8ZGl2IChjbGljayk9XCJvblJvd0NoZWNrKClcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNBcnJvd0ljb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3ctY29udGFpbmVyXCIgKm5nSWY9XCJoYXNDaGlsZHJlbjsgZWxzZSBlbXB0eUJ0blwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImhhc0NoaWxkcmVuID8gKGlzRXhwYW5kID8gJ2xlc3MnIDogY29sbGFwc2VJY29uKSA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvYWRDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkV4cGFuZERibENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgd2lkdGg6IDJyZW1cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleDogdW5zZXQ7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiBmZC1saXN0LXRpdGxlIFtmb2N1c2FibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaGlkZUljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm5vZGUuaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnB4XT1cIiFydGwgPyA1IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwicnRsID8gNSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNoaWxkcmVuXCI+e3sgJyAoICcgKyBjaGlsZHJlbi5sZW5ndGggKyAnICknIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aVxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICB1bHZDb250ZXh0TWVudVxuICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgIFttb109XCJub2RlLkRhdGFcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgID48L2k+XG4gICAgICAgIDxic3UtaHRyZWUtY3JlYXRlLW5ld1xuICAgICAgICAgICAgKm5nSWY9XCJhY2Nlc3M/LkFkZCAhPT0gZmFsc2UgJiYgIWluRGlhbG9nXCJcbiAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgW3JlbGF0aW9uTGlzdF09XCJyZWxhdGlvbkxpc3RcIlxuICAgICAgICAgICAgKGNyZWF0ZU5ldyk9XCJvbkNyZWF0ZU5ldygkZXZlbnQpXCJcbiAgICAgICAgPjwvYnN1LWh0cmVlLWNyZWF0ZS1uZXc+XG4gICAgPC9kaXY+XG4gICAgPGZkcC1idXR0b25cbiAgICAgICAgKm5nSWY9XCJhY2Nlc3M/LlZpZXcgJiYgIXNob3dPa0NhbmNlbEJ1dHRvbnMgJiYgZGV2aWNlTmFtZSAhPT0gJ2Rlc2t0b3AnXCJcbiAgICAgICAgW2dseXBoXT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIChjbGljayk9XCJvbk5vZGVWaWV3Q2xpY2soKVwiXG4gICAgPjwvZmRwLWJ1dHRvbj5cblxuICAgIDxic3UtYmFyc2EtdHJlZS1pdGVtXG4gICAgICAgICpjZGtEcmFnUHJldmlld1xuICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbc2VsZWN0ZWROb2RlXT1cInNlbGVjdGVkTm9kZVwiXG4gICAgICAgIFtoYXNBcnJvd0ljb25dPVwiZmFsc2VcIlxuICAgID48L2JzdS1iYXJzYS10cmVlLWl0ZW0+XG48L2xpPlxuPG5nLXRlbXBsYXRlICNlbXB0eUJ0bj5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCIgKm5nSWY9XCIhcGFyZW50Tm9kZT8uaGFzT25lRGVwdGhMZXZlbFwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -20,8 +20,9 @@ import * as i15 from "../search-panel/search-panel.component";
|
|
|
20
20
|
import * as i16 from "../breadcrumb/breadcrumb.component";
|
|
21
21
|
import * as i17 from "../dynamic-page-size.pipe";
|
|
22
22
|
export class BarsaUlvMainComponent extends BaseComponent {
|
|
23
|
-
constructor() {
|
|
24
|
-
super(
|
|
23
|
+
constructor(el) {
|
|
24
|
+
super();
|
|
25
|
+
this.el = el;
|
|
25
26
|
this.close = new EventEmitter();
|
|
26
27
|
this.searchPanelMoChange = new EventEmitter();
|
|
27
28
|
this.openManageFilters = new EventEmitter();
|
|
@@ -84,12 +85,12 @@ export class BarsaUlvMainComponent extends BaseComponent {
|
|
|
84
85
|
this.selectSearchPanelSettings.emit(selectedSearchPanelSettingsId);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
BarsaUlvMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaUlvMainComponent, deps:
|
|
88
|
-
BarsaUlvMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context" }, outputs: { close: "close", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n *ngIf=\"!loading\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"true\"\n >\n <fd-dynamic-page-header [title]=\"title | bbbTranslate\" class=\"p-b0\">\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\" *ngIf=\"isAnonymous === false\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 380px\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [cozy]=\"true\">\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <!-- <fdp-search-field\n *ngIf=\"deviceSize !== 's'\"\n fd-toolbar-item\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [suggestions]=\"[]\"\n ></fdp-search-field> -->\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <!-- <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" class=\"layout-actions\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n buttonType=\"transparent\"\n fd-toolbar-item\n glyph=\"decline\"\n fdOverflowPriority=\"never\"\n (click)=\"onClose()\"\n [contentDensity]=\"contentDensity\"\n >\n </fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions> -->\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container [renderUlvPaging]=\"context\"></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container *ngIf=\"pagingSetting?.TotalPages\" [renderUlvPaging]=\"context\"></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\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.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "renderUlvViewer"] }, { kind: "directive", type: i2.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "renderUlvPaging"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i3.DeprecatedBarContentDensityDirective, selector: "[fd-bar][cozy]" }, { kind: "component", type: i4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i8.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "component", type: i10.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i10.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i10.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i10.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i10.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i11.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i11.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i11.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i11.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "directive", type: i11.ToolbarOverflowGroupDirective, selector: "[fdOverflowGroup]", inputs: ["fdOverflowGroup"] }, { kind: "directive", type: i12.PlatformContentDensityDeprecationDirective, selector: " fdp-action-bar[contentDensity], fdp-button[contentDensity], fdp-object-list-item[contentDensity], fdp-standard-list-item[contentDensity], fdp-menu[contentDensity], fdp-menu-button[contentDensity], fdp-panel[contentDensity], fdp-search-field[contentDensity], fdp-split-menu-button[contentDensity], fdp-file-uploader[contentDensity], fdp-upload-collection[contentDensity], fdp-table[contentDensity], fdp-multi-input[contentDensity], fdp-list[contentDensity], fdp-slider[contentDensity], fdp-time-picker[contentDensity], fdp-textarea[contentDensity], fdp-switch[contentDensity], fdp-number-step-input[contentDensity], fdp-select[contentDensity], fdp-date-picker[contentDensity], fdp-checkbox[contentDensity], fdp-checkbox-group[contentDensity], fdp-combobox[contentDensity], fdp-datetime-picker[contentDensity], fdp-input[contentDensity], fdp-radio-group[contentDensity], fdp-radio-button[contentDensity], fdp-multi-combobox[contentDensity], fdp-input-group-addon-body[contentDensity], fdp-input-group[contentDensity], fdp-value-help-dialog[contentDensity], fdp-filter-single-select[contentDensity], fdp-filter-multi-select[contentDensity], fdp-filter-custom[contentDensity] " }, { kind: "component", type: i13.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i14.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i15.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons"], outputs: ["moChanged"] }, { kind: "component", type: i16.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i17.DynamicPageSizePipe, name: "dynamicPageSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
88
|
+
BarsaUlvMainComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaUlvMainComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
BarsaUlvMainComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaUlvMainComponent, selector: "bsu-barsa-ulv-main", inputs: { viewerControl: "viewerControl", loading: "loading", viewerLoading: "viewerLoading", isReportPage: "isReportPage", deviceSize: "deviceSize", title: "title", searchPanelUi: "searchPanelUi", breadCrumbs: "breadCrumbs", allSearchPanelSettings: "allSearchPanelSettings", isAnonymous: "isAnonymous", rtl: "rtl", selectedSearchPanelSettings: "selectedSearchPanelSettings", searchPanelMoChanged: "searchPanelMoChanged", selectedSearchPanelSettingsId: "selectedSearchPanelSettingsId", hideSearchPanel: "hideSearchPanel", pagingSetting: "pagingSetting", contentDensity: "contentDensity", context: "context" }, outputs: { close: "close", searchPanelMoChange: "searchPanelMoChange", openManageFilters: "openManageFilters", collapsedChange: "collapsedChange", hideSearchPanelClick: "hideSearchPanelClick", filterSave: "filterSave", filterSaveAs: "filterSaveAs", showFilterFieldsSetting: "showFilterFieldsSetting", manageFilters: "manageFilters", clearSearch: "clearSearch", search: "search", selectSearchPanelSettings: "selectSearchPanelSettings" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n *ngIf=\"!loading\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"true\"\n >\n <fd-dynamic-page-header [title]=\"title | bbbTranslate\" class=\"p-b0\">\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: 320px\">\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\" *ngIf=\"isAnonymous === false\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 380px\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [cozy]=\"true\">\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <!-- <fdp-search-field\n *ngIf=\"deviceSize !== 's'\"\n fd-toolbar-item\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [suggestions]=\"[]\"\n ></fdp-search-field> -->\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"never\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"never\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <!-- <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" class=\"layout-actions\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n buttonType=\"transparent\"\n fd-toolbar-item\n glyph=\"decline\"\n fdOverflowPriority=\"never\"\n (click)=\"onClose()\"\n [contentDensity]=\"contentDensity\"\n >\n </fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions> -->\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container [renderUlvPaging]=\"context\"></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container *ngIf=\"pagingSetting?.TotalPages\" [renderUlvPaging]=\"context\"></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\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.RenderUlvViewerDirective, selector: "[renderUlvViewer]", inputs: ["mask", "renderUlvViewer"] }, { kind: "directive", type: i2.RenderUlvPaginDirective, selector: "[renderUlvPaging]", inputs: ["mask", "renderUlvPaging"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "directive", type: i3.DeprecatedBarContentDensityDirective, selector: "[fd-bar][cozy]" }, { kind: "component", type: i4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["containerElement", "reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "role", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i8.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "component", type: i10.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i10.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i10.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i10.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i10.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i11.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i11.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i11.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i11.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "directive", type: i11.ToolbarOverflowGroupDirective, selector: "[fdOverflowGroup]", inputs: ["fdOverflowGroup"] }, { kind: "directive", type: i12.PlatformContentDensityDeprecationDirective, selector: " fdp-action-bar[contentDensity], fdp-button[contentDensity], fdp-object-list-item[contentDensity], fdp-standard-list-item[contentDensity], fdp-menu[contentDensity], fdp-menu-button[contentDensity], fdp-panel[contentDensity], fdp-search-field[contentDensity], fdp-split-menu-button[contentDensity], fdp-file-uploader[contentDensity], fdp-upload-collection[contentDensity], fdp-table[contentDensity], fdp-multi-input[contentDensity], fdp-list[contentDensity], fdp-slider[contentDensity], fdp-time-picker[contentDensity], fdp-textarea[contentDensity], fdp-switch[contentDensity], fdp-number-step-input[contentDensity], fdp-select[contentDensity], fdp-date-picker[contentDensity], fdp-checkbox[contentDensity], fdp-checkbox-group[contentDensity], fdp-combobox[contentDensity], fdp-datetime-picker[contentDensity], fdp-input[contentDensity], fdp-radio-group[contentDensity], fdp-radio-button[contentDensity], fdp-multi-combobox[contentDensity], fdp-input-group-addon-body[contentDensity], fdp-input-group[contentDensity], fdp-value-help-dialog[contentDensity], fdp-filter-single-select[contentDensity], fdp-filter-multi-select[contentDensity], fdp-filter-custom[contentDensity] " }, { kind: "component", type: i13.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i14.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i15.SearchPanelComponent, selector: "bsu-search-panel", inputs: ["searchPanelUi", "hideButtons"], outputs: ["moChanged"] }, { kind: "component", type: i16.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i17.DynamicPageSizePipe, name: "dynamicPageSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
89
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaUlvMainComponent, decorators: [{
|
|
90
91
|
type: Component,
|
|
91
|
-
args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n *ngIf=\"!loading\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"true\"\n >\n <fd-dynamic-page-header [title]=\"title | bbbTranslate\" class=\"p-b0\">\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions>\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\" *ngIf=\"isAnonymous === false\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 380px\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [cozy]=\"true\">\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <!-- <fdp-search-field\n *ngIf=\"deviceSize !== 's'\"\n fd-toolbar-item\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [suggestions]=\"[]\"\n ></fdp-search-field> -->\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <!-- <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" class=\"layout-actions\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n buttonType=\"transparent\"\n fd-toolbar-item\n glyph=\"decline\"\n fdOverflowPriority=\"never\"\n (click)=\"onClose()\"\n [contentDensity]=\"contentDensity\"\n >\n </fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions> -->\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container [renderUlvPaging]=\"context\"></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container *ngIf=\"pagingSetting?.TotalPages\" [renderUlvPaging]=\"context\"></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"] }]
|
|
92
|
-
}], propDecorators: { _dynamicPageComponent: [{
|
|
92
|
+
args: [{ selector: 'bsu-barsa-ulv-main', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <ng-container *ngIf=\"isReportPage; else reportTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n reportPageTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n >\n </ng-container>\n</ng-container> -->\n<ng-container\n *ngTemplateOutlet=\"\n isReportPage ? reportPageTemplate : reportTemplate;\n context: {\n $implicit: viewerControl,\n tabMode: viewerControl?.Setting?.ClassNames?.CustomUi?.Parameters?.TabMode\n }\n \"\n>\n</ng-container>\n<bsu-mask *ngIf=\"loading\" size=\"m\"></bsu-mask>\n<ng-template #reportPageTemplate let-viewerControl let-tabMode=\"tabMode\">\n <fd-dynamic-page\n *ngIf=\"!loading\"\n [size]=\"deviceSize | dynamicPageSize\"\n [attr.tabMode]=\"tabMode\"\n [autoResponsive]=\"true\"\n >\n <fd-dynamic-page-header [title]=\"title | bbbTranslate\" class=\"p-b0\">\n <fd-breadcrumb>\n <ng-container *ngIf=\"breadCrumbs\">\n <ng-container\n *ngFor=\"\n let breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length;\n let i = index;\n let last = last\n \"\n >\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n </ng-container>\n </ng-container>\n </fd-breadcrumb>\n <fd-dynamic-page-global-actions *untilInView=\"el\" style=\"min-width: 320px\">\n <fd-toolbar\n *ngIf=\"searchPanelUi\"\n class=\"global-actions\"\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [shouldOverflow]=\"deviceSize === 's'\"\n >\n <fd-popover fd-toolbar-item #popover fdOverflowPriority=\"never\" *ngIf=\"isAnonymous === false\">\n <fd-popover-control>\n <div style=\"display: flex; align-items: center\">\n <h3 class=\"header-search\" [attr.rtl]=\"rtl\" fd-title>\n {{\n selectedSearchPanelSettings?.IsStandard\n ? ''\n : selectedSearchPanelSettings?.Title\n }}\n <strong *ngIf=\"searchPanelMoChanged\">*</strong>\n </h3>\n <fdp-button\n glyph=\"slim-arrow-down\"\n buttonType=\"transparent\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </div>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 380px\">\n <div fd-popover-body-header>\n <div fd-bar [cozy]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>{{ 'Filters' | bbbTranslate }}</fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list style=\"min-height: 200px; background-color: var(--sapBackgroundColor, #f7f7f7)\">\n <li\n fd-list-item\n *ngFor=\"let option of allSearchPanelSettings\"\n [selected]=\"option.Id === selectedSearchPanelSettingsId\"\n (click)=\"onSelectSearchPanelSettings(option.Id, popover)\"\n >\n <span fd-list-title>{{ option.Title }}</span>\n </li>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar [barDesign]=\"'footer'\" [cozy]=\"true\">\n <div fd-bar-right *ngIf=\"selectedSearchPanelSettings\">\n <fd-button-bar\n *ngIf=\"!selectedSearchPanelSettings.IsPrimary && searchPanelMoChanged\"\n [label]=\"'Save' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onFilterSave(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"searchPanelMoChanged\"\n [label]=\"'SaveAs' | bbbTranslate\"\n [fdType]=\"\n selectedSearchPanelSettings.IsDefault ? 'emphasized' : 'transparent'\n \"\n (click)=\"onFilterSaveAs(popover)\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'Manage' | bbbTranslate\"\n fdInitialFocus\n fdType=\"transparent\"\n (click)=\"onManageFilters(popover)\"\n >\n </fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n <!-- <fdp-search-field\n *ngIf=\"deviceSize !== 's'\"\n fd-toolbar-item\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [suggestions]=\"[]\"\n ></fdp-search-field> -->\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\"></fd-toolbar-spacer>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n buttonType=\"emphasized\"\n [label]=\"'Search' | bbbTranslate\"\n (click)=\"onSearch()\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"never\"\n [label]=\"'Filters' | bbbTranslate\"\n (click)=\"onShowFilterFieldsSetting()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n fdOverflowPriority=\"never\"\n [label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClearSearch()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n buttonType=\"transparent\"\n [label]=\"hideSearchPanel ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onHideSearchPanelClick()\"\n [fdOverflowGroup]=\"1\"\n [contentDensity]=\"contentDensity\"\n ></fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <!-- <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\" class=\"layout-actions\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n buttonType=\"transparent\"\n fd-toolbar-item\n glyph=\"decline\"\n fdOverflowPriority=\"never\"\n (click)=\"onClose()\"\n [contentDensity]=\"contentDensity\"\n >\n </fdp-button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions> -->\n <fd-dynamic-page-layout-actions>\n <!-- layout actions -->\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-subheader [pinnable]=\"true\" [collapsible]=\"false\" *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <ng-container>\n <bsu-search-panel\n [hideButtons]=\"true\"\n [searchPanelUi]=\"searchPanelUi\"\n (moChanged)=\"onSearchPanelMoChanged()\"\n ></bsu-search-panel>\n </ng-container>\n </fd-dynamic-page-subheader>\n <fd-dynamic-page-content *ngIf=\"!tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer *ngIf=\"pagingSetting?.TotalPages\">\n <!-- page footer content goes here -->\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-middle>\n <ng-container [renderUlvPaging]=\"context\"></ng-container>\n </div>\n </div>\n </fd-dynamic-page-footer>\n </fd-dynamic-page>\n <ng-container *ngIf=\"tabMode\">\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n<ng-template #reportTemplate>\n <bsu-mask *ngIf=\"loading\" size=\"s\"></bsu-mask>\n <ng-container *ngIf=\"!hideSearchPanel && searchPanelUi\">\n <bsu-search-panel [searchPanelUi]=\"searchPanelUi\" (moChanged)=\"onSearchPanelMoChanged()\"></bsu-search-panel>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"viewerTemplate\"></ng-container>\n <ng-container *ngIf=\"pagingSetting?.TotalPages\" [renderUlvPaging]=\"context\"></ng-container>\n</ng-template>\n<ng-template #viewerTemplate>\n <div\n class=\"viewer-container\"\n [style.height]=\"viewerLoading ? '100%' : 'auto'\"\n [style.position]=\"viewerLoading ? 'relative' : null\"\n >\n <bsu-mask *ngIf=\"viewerLoading\" size=\"m\"></bsu-mask>\n <ng-container *ngIf=\"viewerControl\" [renderUlvViewer]=\"viewerControl\"></ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;flex-grow:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{margin:0!important}:host ::ng-deep .fd-dynamic-page__collapsible-header{padding-top:0!important;padding-bottom:0!important}:host ::ng-deep .fd-dynamic-page__toolbar-container{flex:1}:host ::ng-deep .fdp-search-field__input-group{outline:none}:host ::ng-deep .fdp-search-field__input-group :-webkit-autofill,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:hover,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:focus,:host ::ng-deep .fdp-search-field__input-group:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important}:host ::ng-deep .global-actions .fd-toolbar{padding:0}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep fd-dynamic-page[tabMode=true] .fd-dynamic-page .fd-dynamic-page__collapsible-header-visibility-container{box-shadow:none}fd-dynamic-page-global-actions{flex:1;width:100%}h3[rtl=true]{margin-left:5px}h3[rtl=false]{margin-right:5px}.header-search{color:var(--sapButton_TextColor, #0854a0)!important}.filter-wrapper{border-bottom:1px solid var(--sapObjectHeader_BorderColor, #d9d9d9)}.report-toolbar-container{display:flex}.report-toolbar-container .global-actions{flex-grow:1}@media (max-width: 599px){.fd-dynamic-page,fd-dynamic-page-content{padding:1rem 0!important}.report-toolbar-container{flex-direction:column-reverse}.report-toolbar-container .layout-actions{flex-grow:1}}\n"] }]
|
|
93
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _dynamicPageComponent: [{
|
|
93
94
|
type: ViewChild,
|
|
94
95
|
args: [DynamicPageComponent]
|
|
95
96
|
}], viewerControl: [{
|
|
@@ -153,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
153
154
|
}], selectSearchPanelSettings: [{
|
|
154
155
|
type: Output
|
|
155
156
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBeUIsYUFBYSxFQUFrQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTVGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTnhEOztRQTBCYyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1Qiw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBMkRwRTtJQXpERyxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxhQUFhLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUM1QztTQUNKO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWtCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBTztRQUNoQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQU87UUFDbEIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFPO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUEyQixDQUFDLDZCQUFxQyxFQUFFLE9BQU87UUFDdEUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN2RSxDQUFDOztrSEF6RlEscUJBQXFCO3NHQUFyQixxQkFBcUIsd29DQUNuQixvQkFBb0IsdUVDbkJuQyxxclhBME9BOzJGRHhOYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07OEJBR2QscUJBQXFCO3NCQUFyRCxTQUFTO3VCQUFDLG9CQUFvQjtnQkFDdEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQWJicmV2YXRpb25EZXZpY2VTaXplLCBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iSW5mbyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdWx2LW1haW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVVsdk1haW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljUGFnZUNvbXBvbmVudCkgX2R5bmFtaWNQYWdlQ29tcG9uZW50OiBEeW5hbWljUGFnZUNvbXBvbmVudDtcbiAgICBASW5wdXQoKSB2aWV3ZXJDb250cm9sOiBhbnk7XG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB2aWV3ZXJMb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzUmVwb3J0UGFnZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZWFyY2hQYW5lbFVpOiBhbnk7XG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW107XG4gICAgQElucHV0KCkgYWxsU2VhcmNoUGFuZWxTZXR0aW5nczogYW55W107XG4gICAgQElucHV0KCkgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nczogYW55O1xuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaGlkZVNlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHBhZ2luZ1NldHRpbmc6IGFueTtcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogYW55O1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaFBhbmVsTW9DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9wZW5NYW5hZ2VGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGhpZGVTZWFyY2hQYW5lbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXJTYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXJTYXZlQXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNob3dGaWx0ZXJGaWVsZHNTZXR0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtYW5hZ2VGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjbGVhclNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICd4bCcgJiYgdGhpcy5fZHluYW1pY1BhZ2VDb21wb25lbnQuc2l6ZSAhPT0gJ2V4dHJhLWxhcmdlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50LnJlZnJlc2hTaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfVxuICAgIG9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxNb0NoYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25PcGVuTWFuYWdlRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuTWFuYWdlRmlsdGVycy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZWRDaGFuZ2UoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQoY29sbGFwc2VkKTtcbiAgICB9XG4gICAgb25IaWRlU2VhcmNoUGFuZWxDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNoUGFuZWxDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJTYXZlKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLmZpbHRlclNhdmUuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZUFzKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLmZpbHRlclNhdmVBcy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25TaG93RmlsdGVyRmllbGRzU2V0dGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmlsdGVyRmllbGRzU2V0dGluZy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25NYW5hZ2VGaWx0ZXJzKHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLm1hbmFnZUZpbHRlcnMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWFyY2guZW1pdCgpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5nc0lkOiBzdHJpbmcsIHBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MuZW1pdChzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZCk7XG4gICAgfVxufVxuIiwiPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSZXBvcnRQYWdlOyBlbHNlIHJlcG9ydFRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgcmVwb3J0UGFnZVRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogdmlld2VyQ29udHJvbCxcbiAgICAgICAgICAgICAgICB0YWJNb2RlOiB2aWV3ZXJDb250cm9sLlNldHRpbmc/LkNsYXNzTmFtZXM/LkN1c3RvbVVpPy5QYXJhbWV0ZXJzPy5UYWJNb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+IC0tPlxuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGlzUmVwb3J0UGFnZSA/IHJlcG9ydFBhZ2VUZW1wbGF0ZSA6IHJlcG9ydFRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHZpZXdlckNvbnRyb2wsXG4gICAgICAgICAgICB0YWJNb2RlOiB2aWV3ZXJDb250cm9sPy5TZXR0aW5nPy5DbGFzc05hbWVzPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uVGFiTW9kZVxuICAgICAgICB9XG4gICAgXCJcbj5cbjwvbmctY29udGFpbmVyPlxuPGJzdS1tYXNrICpuZ0lmPVwibG9hZGluZ1wiIHNpemU9XCJtXCI+PC9ic3UtbWFzaz5cbjxuZy10ZW1wbGF0ZSAjcmVwb3J0UGFnZVRlbXBsYXRlIGxldC12aWV3ZXJDb250cm9sIGxldC10YWJNb2RlPVwidGFiTW9kZVwiPlxuICAgIDxmZC1keW5hbWljLXBhZ2VcbiAgICAgICAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gICAgICAgIFtzaXplXT1cImRldmljZVNpemUgfCBkeW5hbWljUGFnZVNpemVcIlxuICAgICAgICBbYXR0ci50YWJNb2RlXT1cInRhYk1vZGVcIlxuICAgICAgICBbYXV0b1Jlc3BvbnNpdmVdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGUgfCBiYmJUcmFuc2xhdGVcIiBjbGFzcz1cInAtYjBcIj5cbiAgICAgICAgICAgIDxmZC1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZENydW1ic1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnJlYWRDcnVtYiBvZiBicmVhZENydW1icyB8IHNsaWNlOiAwOmJyZWFkQ3J1bWJzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYXN0ID0gbGFzdFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnN1LWJyZWFkY3J1bWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnJlYWRDcnVtYl09XCJicmVhZENydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbEJyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2JzdS1icmVhZGNydW1iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iPlxuICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgZmQtdG9vbGJhci1pdGVtICNwb3BvdmVyIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCIgKm5nSWY9XCJpc0Fub255bW91cyA9PT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGVhZGVyLXNlYXJjaFwiIFthdHRyLnJ0bF09XCJydGxcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5Jc1N0YW5kYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LlRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqbmdJZj1cInNlYXJjaFBhbmVsTW9DaGFuZ2VkXCI+Kjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDM4MHB4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbY296eV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD57eyAnRmlsdGVycycgfCBiYmJUcmFuc2xhdGUgfX08L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0IHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNhcEJhY2tncm91bmRDb2xvciwgI2Y3ZjdmNylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYWxsU2VhcmNoUGFuZWxTZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLklkID09PSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKG9wdGlvbi5JZCwgcG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IG9wdGlvbi5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiIFtjb3p5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0ICpuZ0lmPVwic2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzLklzUHJpbWFyeSAmJiBzZWFyY2hQYW5lbE1vQ2hhbmdlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2F2ZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyU2F2ZShwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFBhbmVsTW9DaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlQXMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5Jc0RlZmF1bHQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlclNhdmVBcyhwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ01hbmFnZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEluaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1hbmFnZUZpbHRlcnMocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidFbnRlclNlYXJjaENyaXRlcmlhJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiW11cIlxuICAgICAgICAgID48L2ZkcC1zZWFyY2gtZmllbGQ+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXIgKm5nSWY9XCJkZXZpY2VTaXplICE9PSAncydcIj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NlYXJjaCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRmlsdGVycycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaGlkZVNlYXJjaFBhbmVsID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxuICAgICAgICAgICAgPCEtLSA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCIgY2xhc3M9XCJsYXlvdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPiAtLT5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPCEtLSBsYXlvdXQgYWN0aW9ucyAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLWRlY2xpbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyIFtwaW5uYWJsZV09XCJ0cnVlXCIgW2NvbGxhcHNpYmxlXT1cImZhbHNlXCIgKm5nSWY9XCIhaGlkZVNlYXJjaFBhbmVsICYmIHNlYXJjaFBhbmVsVWlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2VhcmNoUGFuZWxVaV09XCJzZWFyY2hQYW5lbFVpXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vQ2hhbmdlZCk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgICAgICAgICAgICAgID48L2JzdS1zZWFyY2gtcGFuZWw+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQgKm5nSWY9XCIhdGFiTW9kZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZpZXdlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyICpuZ0lmPVwicGFnaW5nU2V0dGluZz8uVG90YWxQYWdlc1wiPlxuICAgICAgICAgICAgPCEtLSBwYWdlIGZvb3RlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiJ2Zvb3RlcidcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1taWRkbGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW3JlbmRlclVsdlBhZ2luZ109XCJjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJNb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVwb3J0VGVtcGxhdGU+XG4gICAgPGJzdS1tYXNrICpuZ0lmPVwibG9hZGluZ1wiIHNpemU9XCJzXCI+PC9ic3UtbWFzaz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpXCI+XG4gICAgICAgIDxic3Utc2VhcmNoLXBhbmVsIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIiAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlld2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnaW5nU2V0dGluZz8uVG90YWxQYWdlc1wiIFtyZW5kZXJVbHZQYWdpbmddPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdmlld2VyVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInZpZXdlckxvYWRpbmcgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICBbc3R5bGUucG9zaXRpb25dPVwidmlld2VyTG9hZGluZyA/ICdyZWxhdGl2ZScgOiBudWxsXCJcbiAgICA+XG4gICAgICAgIDxic3UtbWFzayAqbmdJZj1cInZpZXdlckxvYWRpbmdcIiBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3ZXJDb250cm9sXCIgW3JlbmRlclVsdlZpZXdlcl09XCJ2aWV3ZXJDb250cm9sXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdWx2LW1haW4vYmFyc2EtdWx2LW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBeUIsYUFBYSxFQUFrQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTVGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBZ0NwRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVp2QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0Msa0JBQWEsR0FBRyxJQUFJ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QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBBYmJyZXZhdGlvbkRldmljZVNpemUsIEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWJJbmZvIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS11bHYtbWFpbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXVsdi1tYWluLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVWx2TWFpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKER5bmFtaWNQYWdlQ29tcG9uZW50KSBfZHluYW1pY1BhZ2VDb21wb25lbnQ6IER5bmFtaWNQYWdlQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIHZpZXdlckNvbnRyb2w6IGFueTtcbiAgICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHZpZXdlckxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNSZXBvcnRQYWdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsVWk6IGFueTtcbiAgICBASW5wdXQoKSBicmVhZENydW1iczogQnJlYWRDcnVtYkluZm9bXTtcbiAgICBASW5wdXQoKSBhbGxTZWFyY2hQYW5lbFNldHRpbmdzOiBhbnlbXTtcbiAgICBASW5wdXQoKSBpc0Fub255bW91czogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzOiBhbnk7XG4gICAgQElucHV0KCkgc2VhcmNoUGFuZWxNb0NoYW5nZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBoaWRlU2VhcmNoUGFuZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGFnaW5nU2V0dGluZzogYW55O1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBhbnk7XG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VhcmNoUGFuZWxNb0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb3Blbk1hbmFnZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgaGlkZVNlYXJjaFBhbmVsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbHRlclNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbHRlclNhdmVBcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1hbmFnZUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNsZWFyU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdFNlYXJjaFBhbmVsU2V0dGluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAneGwnICYmIHRoaXMuX2R5bmFtaWNQYWdlQ29tcG9uZW50LnNpemUgIT09ICdleHRyYS1sYXJnZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9keW5hbWljUGFnZUNvbXBvbmVudC5yZWZyZXNoU2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgICBvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFBhbmVsTW9DaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uT3Blbk1hbmFnZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbk1hbmFnZUZpbHRlcnMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ29sbGFwc2VkQ2hhbmdlKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbGxhcHNlZENoYW5nZS5lbWl0KGNvbGxhcHNlZCk7XG4gICAgfVxuICAgIG9uSGlkZVNlYXJjaFBhbmVsQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaFBhbmVsQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRmlsdGVyU2F2ZShwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTYXZlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlclNhdmVBcyhwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTYXZlQXMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckZpZWxkc1NldHRpbmcuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uTWFuYWdlRmlsdGVycyhwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5tYW5hZ2VGaWx0ZXJzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyU2VhcmNoLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2guZW1pdCgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0U2VhcmNoUGFuZWxTZXR0aW5ncyhzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZDogc3RyaW5nLCBwb3BvdmVyKTogdm9pZCB7XG4gICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzLmVtaXQoc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzSWQpO1xuICAgIH1cbn1cbiIsIjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVwb3J0UGFnZTsgZWxzZSByZXBvcnRUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJlcG9ydFBhZ2VUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHZpZXdlckNvbnRyb2wsXG4gICAgICAgICAgICAgICAgdGFiTW9kZTogdmlld2VyQ29udHJvbC5TZXR0aW5nPy5DbGFzc05hbWVzPy5DdXN0b21VaT8uUGFyYW1ldGVycz8uVGFiTW9kZVxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiAtLT5cbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpc1JlcG9ydFBhZ2UgPyByZXBvcnRQYWdlVGVtcGxhdGUgOiByZXBvcnRUZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB2aWV3ZXJDb250cm9sLFxuICAgICAgICAgICAgdGFiTW9kZTogdmlld2VyQ29udHJvbD8uU2V0dGluZz8uQ2xhc3NOYW1lcz8uQ3VzdG9tVWk/LlBhcmFtZXRlcnM/LlRhYk1vZGVcbiAgICAgICAgfVxuICAgIFwiXG4+XG48L25nLWNvbnRhaW5lcj5cbjxic3UtbWFzayAqbmdJZj1cImxvYWRpbmdcIiBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG48bmctdGVtcGxhdGUgI3JlcG9ydFBhZ2VUZW1wbGF0ZSBsZXQtdmlld2VyQ29udHJvbCBsZXQtdGFiTW9kZT1cInRhYk1vZGVcIj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlXG4gICAgICAgICpuZ0lmPVwiIWxvYWRpbmdcIlxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplIHwgZHluYW1pY1BhZ2VTaXplXCJcbiAgICAgICAgW2F0dHIudGFiTW9kZV09XCJ0YWJNb2RlXCJcbiAgICAgICAgW2F1dG9SZXNwb25zaXZlXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1oZWFkZXIgW3RpdGxlXT1cInRpdGxlIHwgYmJiVHJhbnNsYXRlXCIgY2xhc3M9XCJwLWIwXCI+XG4gICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTogMDpicmVhZENydW1icy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnMgKnVudGlsSW5WaWV3PVwiZWxcIiBzdHlsZT1cIm1pbi13aWR0aDogMzIwcHhcIj5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFBhbmVsVWlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgZmQtdG9vbGJhci1pdGVtICNwb3BvdmVyIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCIgKm5nSWY9XCJpc0Fub255bW91cyA9PT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGVhZGVyLXNlYXJjaFwiIFthdHRyLnJ0bF09XCJydGxcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzPy5Jc1N0YW5kYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3M/LlRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqbmdJZj1cInNlYXJjaFBhbmVsTW9DaGFuZ2VkXCI+Kjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDM4MHB4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBbY296eV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD57eyAnRmlsdGVycycgfCBiYmJUcmFuc2xhdGUgfX08L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0IHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNhcEJhY2tncm91bmRDb2xvciwgI2Y3ZjdmNylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYWxsU2VhcmNoUGFuZWxTZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwib3B0aW9uLklkID09PSBzZWxlY3RlZFNlYXJjaFBhbmVsU2V0dGluZ3NJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RTZWFyY2hQYW5lbFNldHRpbmdzKG9wdGlvbi5JZCwgcG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IG9wdGlvbi5UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiIFtjb3p5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0ICpuZ0lmPVwic2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2VsZWN0ZWRTZWFyY2hQYW5lbFNldHRpbmdzLklzUHJpbWFyeSAmJiBzZWFyY2hQYW5lbE1vQ2hhbmdlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU2F2ZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyU2F2ZShwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFBhbmVsTW9DaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlQXMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU2VhcmNoUGFuZWxTZXR0aW5ncy5Jc0RlZmF1bHQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlclNhdmVBcyhwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ01hbmFnZScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZEluaXRpYWxGb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1hbmFnZUZpbHRlcnMocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidFbnRlclNlYXJjaENyaXRlcmlhJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiW11cIlxuICAgICAgICAgID48L2ZkcC1zZWFyY2gtZmllbGQ+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXIgKm5nSWY9XCJkZXZpY2VTaXplICE9PSAncydcIj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NlYXJjaCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRmlsdGVycycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0ZpbHRlckZpZWxkc1NldHRpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRPdmVyZmxvd0dyb3VwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZkT3ZlcmZsb3dHcm91cF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaGlkZVNlYXJjaFBhbmVsID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlU2VhcmNoUGFuZWxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZE92ZXJmbG93R3JvdXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxuICAgICAgICAgICAgPCEtLSA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCIgY2xhc3M9XCJsYXlvdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPiAtLT5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPCEtLSBsYXlvdXQgYWN0aW9ucyAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLWRlY2xpbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyIFtwaW5uYWJsZV09XCJ0cnVlXCIgW2NvbGxhcHNpYmxlXT1cImZhbHNlXCIgKm5nSWY9XCIhaGlkZVNlYXJjaFBhbmVsICYmIHNlYXJjaFBhbmVsVWlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGJzdS1zZWFyY2gtcGFuZWxcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2VhcmNoUGFuZWxVaV09XCJzZWFyY2hQYW5lbFVpXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vQ2hhbmdlZCk9XCJvblNlYXJjaFBhbmVsTW9DaGFuZ2VkKClcIlxuICAgICAgICAgICAgICAgID48L2JzdS1zZWFyY2gtcGFuZWw+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2Utc3ViaGVhZGVyPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQgKm5nSWY9XCIhdGFiTW9kZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZpZXdlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZm9vdGVyICpuZ0lmPVwicGFnaW5nU2V0dGluZz8uVG90YWxQYWdlc1wiPlxuICAgICAgICAgICAgPCEtLSBwYWdlIGZvb3RlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiJ2Zvb3RlcidcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1taWRkbGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW3JlbmRlclVsdlBhZ2luZ109XCJjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJNb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVwb3J0VGVtcGxhdGU+XG4gICAgPGJzdS1tYXNrICpuZ0lmPVwibG9hZGluZ1wiIHNpemU9XCJzXCI+PC9ic3UtbWFzaz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVTZWFyY2hQYW5lbCAmJiBzZWFyY2hQYW5lbFVpXCI+XG4gICAgICAgIDxic3Utc2VhcmNoLXBhbmVsIFtzZWFyY2hQYW5lbFVpXT1cInNlYXJjaFBhbmVsVWlcIiAobW9DaGFuZ2VkKT1cIm9uU2VhcmNoUGFuZWxNb0NoYW5nZWQoKVwiPjwvYnN1LXNlYXJjaC1wYW5lbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlld2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnaW5nU2V0dGluZz8uVG90YWxQYWdlc1wiIFtyZW5kZXJVbHZQYWdpbmddPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdmlld2VyVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInZpZXdlckxvYWRpbmcgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICBbc3R5bGUucG9zaXRpb25dPVwidmlld2VyTG9hZGluZyA/ICdyZWxhdGl2ZScgOiBudWxsXCJcbiAgICA+XG4gICAgICAgIDxic3UtbWFzayAqbmdJZj1cInZpZXdlckxvYWRpbmdcIiBzaXplPVwibVwiPjwvYnN1LW1hc2s+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3ZXJDb250cm9sXCIgW3JlbmRlclVsdlZpZXdlcl09XCJ2aWV3ZXJDb250cm9sXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|