barsa-sap-ui 2.0.129 → 2.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +5 -3
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +1 -1
- package/esm2022/lib/card-item/card-item.component.mjs +3 -3
- package/esm2022/lib/column-renderer/column-renderer.component.mjs +5 -3
- package/esm2022/lib/layout-wizard/layout-wizard.component.mjs +10 -3
- package/esm2022/lib/list-item/list-item.component.mjs +1 -1
- package/fesm2022/barsa-sap-ui.mjs +21 -10
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-table-column/barsa-table-column.component.d.ts +2 -1
- package/lib/column-renderer/column-renderer.component.d.ts +2 -1
- package/lib/layout-wizard/layout-wizard.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -82,6 +82,13 @@ export class LayoutWizardComponent extends FormPropsBaseComponent {
|
|
|
82
82
|
this.setHeightOfFormContent();
|
|
83
83
|
}, 10);
|
|
84
84
|
}
|
|
85
|
+
onMouseDown(i, e) {
|
|
86
|
+
if (this.preventStepByClick) {
|
|
87
|
+
e.stopPropagation();
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
85
92
|
onStepClick(i, e) {
|
|
86
93
|
if (i > this.selectedIndex || this.preventStepByClick) {
|
|
87
94
|
e.stopPropagation();
|
|
@@ -142,11 +149,11 @@ export class LayoutWizardComponent extends FormPropsBaseComponent {
|
|
|
142
149
|
}
|
|
143
150
|
}
|
|
144
151
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutWizardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutWizardComponent, selector: "bsu-layout-wizard", inputs: { root: "root", parentContentRef: "parentContentRef", selectedIndex: "selectedIndex", maxContentWidth: "maxContentWidth", minTabHeight: "minTabHeight" }, viewQueries: [{ propertyName: "layoutRef", first: true, predicate: ["layoutRef"], descendants: true }, { propertyName: "containerRootRef", first: true, predicate: ["containerRootRef"], descendants: true, read: ElementRef }, { propertyName: "wizardEl", first: true, predicate: WizardComponent, descendants: true, read: ElementRef }, { propertyName: "_wizardComponent", first: true, predicate: WizardComponent, descendants: true, read: ElementRef }, { propertyName: "wizardStepComponents", predicate: WizardStepComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-wizard [appendToWizard]=\"false\">\n <fd-wizard-navigation>\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\n @for (step of modernTabs; track step; let i = $index) {\n <li\n fd-wizard-step\n [status]=\"arrStatus[i]\"\n (statusChange)=\"onStatusChange(i, $event)\"\n [label]=\"step.Title || '' | bbbTranslate\"\n (click)=\"onStepClick(i, $event)\"\n >\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\n <fd-wizard-content>\n <div class=\"fix-form-content\">\n <div\n #layoutRef\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\n >\n @if (i === selectedIndex) {\n <bsu-ly-layout-container-of-root\n #containerRootRef\n class=\"content-wizard\"\n [config]=\"step\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n }\n </div>\n </div>\n </fd-wizard-content>\n </li>\n }\n </ul>\n </fd-wizard-navigation>\n @if(showFooter){\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [landscape]=\"landscape\"\n [standalone]=\"standalone\"\n [workflowButtons]=\"workflowButtons\"\n [footerDesign]=\"footerDesign\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onEvents('toolbarClick', $event)\"\n (workflowChoiceSelect)=\"onEvents('workflowChoiceSelect', $event)\"\n >\n </bsu-layout-actions>\n }\n</fd-wizard>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none;z-index:0}.fix-form-content{display:flex;justify-content:center;align-items:flex-start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"], dependencies: [{ kind: "component", type: i1.WizardComponent, selector: "fd-wizard", inputs: ["appendToWizard", "contentHeight", "responsivePaddings", "displaySummaryStep", "ariaLabel"] }, { kind: "component", type: i1.WizardNavigationComponent, selector: "fd-wizard-navigation", inputs: ["ariaLabel"] }, { kind: "directive", type: i1.WizardProgressBarDirective, selector: "[fd-wizard-progress-bar]", inputs: ["size"] }, { kind: "component", type: i1.WizardStepComponent, selector: "[fd-wizard-step]", inputs: ["ariaLabel", "ariaRoleDecription", "status", "branching", "label", "optionalText", "isSummary", "stepClickValidator"], outputs: ["statusChange", "stepClicked", "stepIndicatorItemClicked"] }, { kind: "component", type: i1.WizardStepIndicatorComponent, selector: "fd-wizard-step-indicator", inputs: ["glyph", "glyphFont"], outputs: ["stepIndicatorItemClicked"] }, { kind: "component", type: i1.WizardContentComponent, selector: "fd-wizard-content", inputs: ["contentBackground", "size"] }, { kind: "component", type: i2.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i3.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutWizardComponent, selector: "bsu-layout-wizard", inputs: { root: "root", parentContentRef: "parentContentRef", selectedIndex: "selectedIndex", maxContentWidth: "maxContentWidth", minTabHeight: "minTabHeight" }, viewQueries: [{ propertyName: "layoutRef", first: true, predicate: ["layoutRef"], descendants: true }, { propertyName: "containerRootRef", first: true, predicate: ["containerRootRef"], descendants: true, read: ElementRef }, { propertyName: "wizardEl", first: true, predicate: WizardComponent, descendants: true, read: ElementRef }, { propertyName: "_wizardComponent", first: true, predicate: WizardComponent, descendants: true, read: ElementRef }, { propertyName: "wizardStepComponents", predicate: WizardStepComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-wizard [appendToWizard]=\"false\">\n <fd-wizard-navigation>\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\n @for (step of modernTabs; track step; let i = $index) {\n <li\n fd-wizard-step\n [status]=\"arrStatus[i]\"\n (statusChange)=\"onStatusChange(i, $event)\"\n [label]=\"step.Title || '' | bbbTranslate\"\n (click)=\"onStepClick(i, $event)\"\n (mousedown)=\"onMouseDown(i, $event)\"\n >\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\n <fd-wizard-content>\n <div class=\"fix-form-content\">\n <div\n #layoutRef\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\n >\n @if (i === selectedIndex) {\n <bsu-ly-layout-container-of-root\n #containerRootRef\n class=\"content-wizard\"\n [config]=\"step\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n }\n </div>\n </div>\n </fd-wizard-content>\n </li>\n }\n </ul>\n </fd-wizard-navigation>\n @if(showFooter){\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [landscape]=\"landscape\"\n [standalone]=\"standalone\"\n [workflowButtons]=\"workflowButtons\"\n [footerDesign]=\"footerDesign\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onEvents('toolbarClick', $event)\"\n (workflowChoiceSelect)=\"onEvents('workflowChoiceSelect', $event)\"\n >\n </bsu-layout-actions>\n }\n</fd-wizard>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none;z-index:0}.fix-form-content{display:flex;justify-content:center;align-items:flex-start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"], dependencies: [{ kind: "component", type: i1.WizardComponent, selector: "fd-wizard", inputs: ["appendToWizard", "contentHeight", "responsivePaddings", "displaySummaryStep", "ariaLabel"] }, { kind: "component", type: i1.WizardNavigationComponent, selector: "fd-wizard-navigation", inputs: ["ariaLabel"] }, { kind: "directive", type: i1.WizardProgressBarDirective, selector: "[fd-wizard-progress-bar]", inputs: ["size"] }, { kind: "component", type: i1.WizardStepComponent, selector: "[fd-wizard-step]", inputs: ["ariaLabel", "ariaRoleDecription", "status", "branching", "label", "optionalText", "isSummary", "stepClickValidator"], outputs: ["statusChange", "stepClicked", "stepIndicatorItemClicked"] }, { kind: "component", type: i1.WizardStepIndicatorComponent, selector: "fd-wizard-step-indicator", inputs: ["glyph", "glyphFont"], outputs: ["stepIndicatorItemClicked"] }, { kind: "component", type: i1.WizardContentComponent, selector: "fd-wizard-content", inputs: ["contentBackground", "size"] }, { kind: "component", type: i2.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i3.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
146
153
|
}
|
|
147
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutWizardComponent, decorators: [{
|
|
148
155
|
type: Component,
|
|
149
|
-
args: [{ selector: 'bsu-layout-wizard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-wizard [appendToWizard]=\"false\">\n <fd-wizard-navigation>\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\n @for (step of modernTabs; track step; let i = $index) {\n <li\n fd-wizard-step\n [status]=\"arrStatus[i]\"\n (statusChange)=\"onStatusChange(i, $event)\"\n [label]=\"step.Title || '' | bbbTranslate\"\n (click)=\"onStepClick(i, $event)\"\n >\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\n <fd-wizard-content>\n <div class=\"fix-form-content\">\n <div\n #layoutRef\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\n >\n @if (i === selectedIndex) {\n <bsu-ly-layout-container-of-root\n #containerRootRef\n class=\"content-wizard\"\n [config]=\"step\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n }\n </div>\n </div>\n </fd-wizard-content>\n </li>\n }\n </ul>\n </fd-wizard-navigation>\n @if(showFooter){\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [landscape]=\"landscape\"\n [standalone]=\"standalone\"\n [workflowButtons]=\"workflowButtons\"\n [footerDesign]=\"footerDesign\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onEvents('toolbarClick', $event)\"\n (workflowChoiceSelect)=\"onEvents('workflowChoiceSelect', $event)\"\n >\n </bsu-layout-actions>\n }\n</fd-wizard>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none;z-index:0}.fix-form-content{display:flex;justify-content:center;align-items:flex-start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"] }]
|
|
156
|
+
args: [{ selector: 'bsu-layout-wizard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-wizard [appendToWizard]=\"false\">\n <fd-wizard-navigation>\n <ul fd-wizard-progress-bar [size]=\"wizardSize\" role=\"list\" aria-label=\"Wizard Steps\">\n @for (step of modernTabs; track step; let i = $index) {\n <li\n fd-wizard-step\n [status]=\"arrStatus[i]\"\n (statusChange)=\"onStatusChange(i, $event)\"\n [label]=\"step.Title || '' | bbbTranslate\"\n (click)=\"onStepClick(i, $event)\"\n (mousedown)=\"onMouseDown(i, $event)\"\n >\n <fd-wizard-step-indicator>{{ i + 1 }}</fd-wizard-step-indicator>\n <fd-wizard-content>\n <div class=\"fix-form-content\">\n <div\n #layoutRef\n [style.max-width]=\"maxContentWidth ? maxContentWidth + 'px' : 'auto'\"\n [style.min-height.px]=\"minTabHeight ? minTabHeight : 400\"\n >\n @if (i === selectedIndex) {\n <bsu-ly-layout-container-of-root\n #containerRootRef\n class=\"content-wizard\"\n [config]=\"step\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n }\n </div>\n </div>\n </fd-wizard-content>\n </li>\n }\n </ul>\n </fd-wizard-navigation>\n @if(showFooter){\n <bsu-layout-actions\n [canSend]=\"canSend\"\n [buttons]=\"layoutActions\"\n [isMobile]=\"isMobile\"\n [landscape]=\"landscape\"\n [standalone]=\"standalone\"\n [workflowButtons]=\"workflowButtons\"\n [footerDesign]=\"footerDesign\"\n [workflowButtonsComboMode]=\"workflowButtonsComboMode\"\n [deviceSize]=\"deviceSize\"\n [rtl]=\"rtl\"\n (toolClick)=\"onEvents('toolbarClick', $event)\"\n (workflowChoiceSelect)=\"onEvents('workflowChoiceSelect', $event)\"\n >\n </bsu-layout-actions>\n }\n</fd-wizard>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .fd-wizard-container-wrapper{background:var(--fdWizard_Content_Default_Background)}:host ::ng-deep fd-dynamic-page-content{padding:0!important}.fd-wizard__progress-bar{border-bottom:1px solid #e4e4e4;box-shadow:none;z-index:0}.fix-form-content{display:flex;justify-content:center;align-items:flex-start;overflow-y:auto}.fix-form-content>div{flex-grow:1;position:relative}.content-wizard{position:absolute}@media (max-width: 767px){.content-wizard{padding:0 10px}}\n"] }]
|
|
150
157
|
}], propDecorators: { layoutRef: [{
|
|
151
158
|
type: ViewChild,
|
|
152
159
|
args: ['layoutRef']
|
|
@@ -173,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
173
180
|
type: ViewChild,
|
|
174
181
|
args: [WizardComponent, { read: ElementRef }]
|
|
175
182
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9sYXlvdXQtd2l6YXJkL2xheW91dC13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LXdpemFyZC9sYXlvdXQtd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBSUwsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLG1CQUFtQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFPN0UsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHNCQUFzQjtJQU5qRTs7UUFZYSxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQU8xQixjQUFTLEdBQXVCLEVBQUUsQ0FBQztRQWtIbkMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0F3QjNCO0lBcklHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxD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TCxDQUFDO0lBQ0wsQ0FBQzs4R0F4SlEscUJBQXFCO2tHQUFyQixxQkFBcUIscVpBRVMsVUFBVSx3REFTdEMsZUFBZSwyQkFBVSxVQUFVLGdFQUVuQyxlQUFlLDJCQUFVLFVBQVUsdURBSmhDLG1CQUFtQiw0RkMvQnJDLG90RUFxREE7OzJGRC9CYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEJBR3ZCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFdEIsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUUxQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVOLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBR2pDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUdoRCxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaXphcmRDb21wb25lbnQsIFdpemFyZFNpemUsIFdpemFyZFN0ZXBDb21wb25lbnQsIFdpemFyZFN0ZXBTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQsIExheW91dFNldHRpbmcgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtd2l6YXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LXdpemFyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LXdpemFyZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExheW91dFdpemFyZENvbXBvbmVudCBleHRlbmRzIEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dFJlZicpIGxheW91dFJlZjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXJSb290UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgY29udGFpbmVyUm9vdFJlZjogRWxlbWVudFJlZjtcbiAgICBASW5wdXQoKSByb290OiBMYXlvdXRTZXR0aW5nO1xuICAgIEBJbnB1dCgpIHBhcmVudENvbnRlbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXggPSAwO1xuICAgIEBJbnB1dCgpIG1heENvbnRlbnRXaWR0aCA9IDA7XG4gICAgQElucHV0KCkgbWluVGFiSGVpZ2h0ID0gMDtcbiAgICBAVmlld0NoaWxkcmVuKFdpemFyZFN0ZXBDb21wb25lbnQpXG4gICAgd2l6YXJkU3RlcENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxXaXphcmRTdGVwQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKFdpemFyZENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgd2l6YXJkRWw6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZChXaXphcmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIF93aXphcmRDb21wb25lbnQ6IEVsZW1lbnRSZWY7XG4gICAgYXJyU3RhdHVzOiBXaXphcmRTdGVwU3RhdHVzW10gPSBbXTtcbiAgICB3aXphcmRTaXplOiBXaXphcmRTaXplO1xuICAgIHNob3dGb290ZXI6IGJvb2xlYW47XG4gICAgcHJldmVudFN0ZXBCeUNsaWNrOiBib29sZWFuO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2l6YXJkTmV4dFN0ZXAkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXAoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2l6YXJkUHJldmlvdXNTdGVwJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU3RlcCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmRldmljZVNpemUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgdGhpcy53aXphcmRTaXplID0gJ3NtJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgICAgY2FzZSAneGwnOlxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkU2l6ZSA9ICdtZCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkU2l6ZSA9ICdzbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb2Rlcm5UYWJzLmZvckVhY2goKGMsIGkpID0+IHRoaXMuYXJyU3RhdHVzLnB1c2goaSA9PT0gMCA/ICdjdXJyZW50JyA6ICd1cGNvbWluZycpKTtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvb3RlciA9IHRoaXMuc2V0dGluZ3MuU2hvd0Zvb3RlcjtcbiAgICAgICAgICAgIHRoaXMucHJldmVudFN0ZXBCeUNsaWNrID0gdGhpcy5zZXR0aW5ncy5QcmV2ZW50U3RlcEJ5Q2xpY2s7XG4gICAgICAgICAgICB0aGlzLm1pblRhYkhlaWdodCA9IHRoaXMuc2V0dGluZ3MuTWluVGFiSGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGggPSB0aGlzLnNldHRpbmdzLk1heENvbnRlbnRXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBjaGFuZ2VzS2V5ID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7XG4gICAgICAgIGNoYW5nZXNLZXkuZmlsdGVyKChjKSA9PiAhY2hhbmdlc1tjXS5maXJzdENoYW5nZSkuZm9yRWFjaCgoYykgPT4gKHRoaXNbY10gPSBjaGFuZ2VzW2NdLmN1cnJlbnRWYWx1ZSkpO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVpZ2h0T2ZGb3JtQ29udGVudCgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICByZXNpemVXb3JrcygpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGlzLnNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RIZWlnaHQgPSB0aGlzLmNvbnRhaW5lclJvb3RSZWY/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGlmICghdGhpcy5taW5UYWJIZWlnaHQgJiYgcm9vdEhlaWdodCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1pblRhYkhlaWdodCA9IHJvb3RIZWlnaHQgKyAyMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIG9uU3RhdHVzQ2hhbmdlKGksIGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcnJTdGF0dXNbaV0gPSBlO1xuICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy53aXphcmRTdGVwQ29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwQ21wID0gdGhpcy53aXphcmRTdGVwQ29tcG9uZW50cy50b0FycmF5KClbaV07XG4gICAgICAgICAgICAgICAgaWYgKGUgIT09ICdjdXJyZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5zdGF0dXMgPSBlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXBDbXAudmlzaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcENtcC5icmFuY2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgfSwgMTApO1xuICAgIH1cbiAgICBvblN0ZXBDbGljayhpLCBlKTogdm9pZCB7XG4gICAgICAgIGlmIChpID4gdGhpcy5zZWxlY3RlZEluZGV4IHx8IHRoaXMucHJldmVudFN0ZXBCeUNsaWNrKSB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2ldID0gJ2N1cnJlbnQnO1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCB0aGlzLmFyclN0YXR1cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgdGhpcy5hcnJTdGF0dXNbal0gPSAndXBjb21pbmcnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCgpO1xuICAgIH1cbiAgICByZWZyZXNoTGF5b3V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLmFyclN0YXR1cy5maW5kSW5kZXgoKGMpID0+IGMgPT09ICdjdXJyZW50Jyk7XG4gICAgICAgIGNvbnN0IGFycldpemFyZFN0ZXAgPSB0aGlzLndpemFyZFN0ZXBDb21wb25lbnRzPy50b0FycmF5KCk7XG4gICAgICAgIGlmIChhcnJXaXphcmRTdGVwKSB7XG4gICAgICAgICAgICBhcnJXaXphcmRTdGVwW3RoaXMuc2VsZWN0ZWRJbmRleF0udmlzaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyV2l6YXJkU3RlcFt0aGlzLnNlbGVjdGVkSW5kZXhdLmNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyV2l6YXJkU3RlcFt0aGlzLnNlbGVjdGVkSW5kZXhdLnN0YXR1cyA9ICdjdXJyZW50JztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2l6ZVdvcmtzKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX25leHRTdGVwKCk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkSW5kZXgrKztcbiAgICAgICAgY29uc3QgY3VycklkID0gdGhpcy5hcnJTdGF0dXMuZmluZEluZGV4KChjKSA9PiBjID09PSAnY3VycmVudCcpO1xuICAgICAgICBpZiAoY3VycklkID49IHRoaXMuYXJyU3RhdHVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2N1cnJJZF0gPSAnY29tcGxldGVkJztcbiAgICAgICAgdGhpcy5hcnJTdGF0dXNbY3VycklkICsgMV0gPSAnY3VycmVudCc7XG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wcmV2aW91c1N0ZXAoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRJbmRleCsrO1xuICAgICAgICBjb25zdCBjdXJySWQgPSB0aGlzLmFyclN0YXR1cy5maW5kSW5kZXgoKGMpID0+IGMgPT09ICdjdXJyZW50Jyk7XG4gICAgICAgIGlmIChjdXJySWQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2N1cnJJZCAtIDFdID0gJ2N1cnJlbnQnO1xuICAgICAgICB0aGlzLmFyclN0YXR1c1tjdXJySWRdID0gJ3VwY29taW5nJztcbiAgICAgICAgdGhpcy5yZWZyZXNoTGF5b3V0KCk7XG4gICAgfVxuICAgIHNlY3Rpb25EZWNyZWFzZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgc2V0SGVpZ2h0T2ZGb3JtQ29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2l6YXJkRWwgPSB0aGlzLndpemFyZEVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNlY3Rpb25FbCA9IHdpemFyZEVsLnF1ZXJ5U2VsZWN0b3IoJy5mZC13aXphcmQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRlbnRFbCA9IHdpemFyZEVsLnF1ZXJ5U2VsZWN0b3IoJy5maXgtZm9ybS1jb250ZW50Jyk7XG4gICAgICAgIGNvbnN0IGJvdW5kID0gZm9ybUNvbnRlbnRFbD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGZvb3RlckggPSAhdGhpcy5zaG93Rm9vdGVyID8gJycgOiAnLSA0MHB4JztcblxuICAgICAgICBpZiAoYm91bmQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShmb3JtQ29udGVudEVsLCAnaGVpZ2h0JywgYGNhbGMoMTAwdmggLSAke01hdGgucm91bmQoYm91bmQudG9wKX1weCkgJHtmb290ZXJIfWApO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0Zvb3RlciAmJiBzZWN0aW9uRWwgJiYgIXRoaXMuc2VjdGlvbkRlY3JlYXNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uRGVjcmVhc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uRWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBjYWxjKCAxMDBzdmggLSAke3NlY3Rpb25FbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3B9cHhgXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShzZWN0aW9uRWwyLCAnaGVpZ2h0Jywgc2VjdGlvbkVsMi5vZmZzZXRIZWlnaHQgLSBkZWMgKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHNlY3Rpb25FbDMsICdoZWlnaHQnLCBzZWN0aW9uRWwzLm9mZnNldEhlaWdodCAtIGRlYyArICdweCcpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLXdpemFyZCBbYXBwZW5kVG9XaXphcmRdPVwiZmFsc2VcIj5cbiAgICA8ZmQtd2l6YXJkLW5hdmlnYXRpb24+XG4gICAgICAgIDx1bCBmZC13aXphcmQtcHJvZ3Jlc3MtYmFyIFtzaXplXT1cIndpemFyZFNpemVcIiByb2xlPVwibGlzdFwiIGFyaWEtbGFiZWw9XCJXaXphcmQgU3RlcHNcIj5cbiAgICAgICAgICAgIEBmb3IgKHN0ZXAgb2YgbW9kZXJuVGFiczsgdHJhY2sgc3RlcDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGZkLXdpemFyZC1zdGVwXG4gICAgICAgICAgICAgICAgW3N0YXR1c109XCJhcnJTdGF0dXNbaV1cIlxuICAgICAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwib25TdGF0dXNDaGFuZ2UoaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInN0ZXAuVGl0bGUgfHwgJycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN0ZXBDbGljayhpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtd2l6YXJkLXN0ZXAtaW5kaWNhdG9yPnt7IGkgKyAxIH19PC9mZC13aXphcmQtc3RlcC1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLXdpemFyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZml4LWZvcm0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNsYXlvdXRSZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cIm1heENvbnRlbnRXaWR0aCA/IG1heENvbnRlbnRXaWR0aCArICdweCcgOiAnYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cIm1pblRhYkhlaWdodCA/IG1pblRhYkhlaWdodCA6IDQwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpID09PSBzZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NvbnRhaW5lclJvb3RSZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LXdpemFyZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZkLXdpemFyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L2ZkLXdpemFyZC1uYXZpZ2F0aW9uPlxuICAgIEBpZihzaG93Rm9vdGVyKXtcbiAgICA8YnN1LWxheW91dC1hY3Rpb25zXG4gICAgICAgIFtjYW5TZW5kXT1cImNhblNlbmRcIlxuICAgICAgICBbYnV0dG9uc109XCJsYXlvdXRBY3Rpb25zXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW2xhbmRzY2FwZV09XCJsYW5kc2NhcGVcIlxuICAgICAgICBbc3RhbmRhbG9uZV09XCJzdGFuZGFsb25lXCJcbiAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxuICAgICAgICBbZm9vdGVyRGVzaWduXT1cImZvb3RlckRlc2lnblwiXG4gICAgICAgIFt3b3JrZmxvd0J1dHRvbnNDb21ib01vZGVdPVwid29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgKHRvb2xDbGljayk9XCJvbkV2ZW50cygndG9vbGJhckNsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJvbkV2ZW50cygnd29ya2Zsb3dDaG9pY2VTZWxlY3QnLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtbGF5b3V0LWFjdGlvbnM+XG4gICAgfVxuPC9mZC13aXphcmQ+XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9sYXlvdXQtd2l6YXJkL2xheW91dC13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LXdpemFyZC9sYXlvdXQtd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEVBSUwsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLG1CQUFtQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFPN0UsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHNCQUFzQjtJQU5qRTs7UUFZYSxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQU8xQixjQUFTLEdBQXVCLEVBQUUsQ0FBQztRQXlIbkMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0F3QjNCO0lBNUlHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxD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QyxVQUFVLENBQUMsUUFBUSxDQUNwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLGtCQUFrQixTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FDOUQsQ0FBQztvQkFDRix3RkFBd0Y7b0JBQ3hGLHdGQUF3RjtnQkFDNUYsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBL0pRLHFCQUFxQjtrR0FBckIscUJBQXFCLHFaQUVTLFVBQVUsd0RBU3RDLGVBQWUsMkJBQVUsVUFBVSxnRUFFbkMsZUFBZSwyQkFBVSxVQUFVLHVEQUpoQyxtQkFBbUIsNEZDL0JyQyw0d0VBc0RBOzsyRkRoQ2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd2QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRXRCLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFFMUMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTixvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsbUJBQW1CO2dCQUdqQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFHaEQsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2l6YXJkQ29tcG9uZW50LCBXaXphcmRTaXplLCBXaXphcmRTdGVwQ29tcG9uZW50LCBXaXphcmRTdGVwU3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb3JtUHJvcHNCYXNlQ29tcG9uZW50LCBMYXlvdXRTZXR0aW5nIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtbGF5b3V0LXdpemFyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC13aXphcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC13aXphcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRXaXphcmRDb21wb25lbnQgZXh0ZW5kcyBGb3JtUHJvcHNCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdsYXlvdXRSZWYnKSBsYXlvdXRSZWY6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyUm9vdFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGNvbnRhaW5lclJvb3RSZWY6IEVsZW1lbnRSZWY7XG4gICAgQElucHV0KCkgcm9vdDogTGF5b3V0U2V0dGluZztcbiAgICBASW5wdXQoKSBwYXJlbnRDb250ZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZEluZGV4ID0gMDtcbiAgICBASW5wdXQoKSBtYXhDb250ZW50V2lkdGggPSAwO1xuICAgIEBJbnB1dCgpIG1pblRhYkhlaWdodCA9IDA7XG4gICAgQFZpZXdDaGlsZHJlbihXaXphcmRTdGVwQ29tcG9uZW50KVxuICAgIHdpemFyZFN0ZXBDb21wb25lbnRzOiBRdWVyeUxpc3Q8V2l6YXJkU3RlcENvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZChXaXphcmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHdpemFyZEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoV2l6YXJkQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBfd2l6YXJkQ29tcG9uZW50OiBFbGVtZW50UmVmO1xuICAgIGFyclN0YXR1czogV2l6YXJkU3RlcFN0YXR1c1tdID0gW107XG4gICAgd2l6YXJkU2l6ZTogV2l6YXJkU2l6ZTtcbiAgICBzaG93Rm9vdGVyOiBib29sZWFuO1xuICAgIHByZXZlbnRTdGVwQnlDbGljazogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLndpemFyZE5leHRTdGVwJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX25leHRTdGVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLndpemFyZFByZXZpb3VzU3RlcCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1N0ZXAoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kZXZpY2VTaXplKSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHRoaXMud2l6YXJkU2l6ZSA9ICdzbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZFNpemUgPSAnbWQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZFNpemUgPSAnc20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kZXJuVGFicy5mb3JFYWNoKChjLCBpKSA9PiB0aGlzLmFyclN0YXR1cy5wdXNoKGkgPT09IDAgPyAnY3VycmVudCcgOiAndXBjb21pbmcnKSk7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dGb290ZXIgPSB0aGlzLnNldHRpbmdzLlNob3dGb290ZXI7XG4gICAgICAgICAgICB0aGlzLnByZXZlbnRTdGVwQnlDbGljayA9IHRoaXMuc2V0dGluZ3MuUHJldmVudFN0ZXBCeUNsaWNrO1xuICAgICAgICAgICAgdGhpcy5taW5UYWJIZWlnaHQgPSB0aGlzLnNldHRpbmdzLk1pblRhYkhlaWdodDtcbiAgICAgICAgICAgIHRoaXMubWF4Q29udGVudFdpZHRoID0gdGhpcy5zZXR0aW5ncy5NYXhDb250ZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgY2hhbmdlc0tleSA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuICAgICAgICBjaGFuZ2VzS2V5LmZpbHRlcigoYykgPT4gIWNoYW5nZXNbY10uZmlyc3RDaGFuZ2UpLmZvckVhY2goKGMpID0+ICh0aGlzW2NdID0gY2hhbmdlc1tjXS5jdXJyZW50VmFsdWUpKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgcmVzaXplV29ya3MoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRIZWlnaHRPZkZvcm1Db250ZW50KCk7XG4gICAgICAgICAgICBjb25zdCByb290SGVpZ2h0ID0gdGhpcy5jb250YWluZXJSb290UmVmPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWluVGFiSGVpZ2h0ICYmIHJvb3RIZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5taW5UYWJIZWlnaHQgPSByb290SGVpZ2h0ICsgMjA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBvblN0YXR1c0NoYW5nZShpLCBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2ldID0gZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGF5b3V0KCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMud2l6YXJkU3RlcENvbXBvbmVudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcENtcCA9IHRoaXMud2l6YXJkU3RlcENvbXBvbmVudHMudG9BcnJheSgpW2ldO1xuICAgICAgICAgICAgICAgIGlmIChlICE9PSAnY3VycmVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXBDbXAuc3RhdHVzID0gZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXBDbXAuY29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwQ21wLnZpc2l0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXBDbXAuYnJhbmNoaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRIZWlnaHRPZkZvcm1Db250ZW50KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG4gICAgb25Nb3VzZURvd24oaSwgZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcmV2ZW50U3RlcEJ5Q2xpY2spIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TdGVwQ2xpY2soaSwgZSk6IHZvaWQge1xuICAgICAgICBpZiAoaSA+IHRoaXMuc2VsZWN0ZWRJbmRleCB8fCB0aGlzLnByZXZlbnRTdGVwQnlDbGljaykge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFyclN0YXR1c1tpXSA9ICdjdXJyZW50JztcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgdGhpcy5hcnJTdGF0dXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIHRoaXMuYXJyU3RhdHVzW2pdID0gJ3VwY29taW5nJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICB9XG4gICAgcmVmcmVzaExheW91dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5hcnJTdGF0dXMuZmluZEluZGV4KChjKSA9PiBjID09PSAnY3VycmVudCcpO1xuICAgICAgICBjb25zdCBhcnJXaXphcmRTdGVwID0gdGhpcy53aXphcmRTdGVwQ29tcG9uZW50cz8udG9BcnJheSgpO1xuICAgICAgICBpZiAoYXJyV2l6YXJkU3RlcCkge1xuICAgICAgICAgICAgYXJyV2l6YXJkU3RlcFt0aGlzLnNlbGVjdGVkSW5kZXhdLnZpc2l0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGFycldpemFyZFN0ZXBbdGhpcy5zZWxlY3RlZEluZGV4XS5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGFycldpemFyZFN0ZXBbdGhpcy5zZWxlY3RlZEluZGV4XS5zdGF0dXMgPSAnY3VycmVudCc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVXb3JrcygpO1xuICAgIH1cbiAgICBwcml2YXRlIF9uZXh0U3RlcCgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZEluZGV4Kys7XG4gICAgICAgIGNvbnN0IGN1cnJJZCA9IHRoaXMuYXJyU3RhdHVzLmZpbmRJbmRleCgoYykgPT4gYyA9PT0gJ2N1cnJlbnQnKTtcbiAgICAgICAgaWYgKGN1cnJJZCA+PSB0aGlzLmFyclN0YXR1cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFyclN0YXR1c1tjdXJySWRdID0gJ2NvbXBsZXRlZCc7XG4gICAgICAgIHRoaXMuYXJyU3RhdHVzW2N1cnJJZCArIDFdID0gJ2N1cnJlbnQnO1xuICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJldmlvdXNTdGVwKCk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkSW5kZXgrKztcbiAgICAgICAgY29uc3QgY3VycklkID0gdGhpcy5hcnJTdGF0dXMuZmluZEluZGV4KChjKSA9PiBjID09PSAnY3VycmVudCcpO1xuICAgICAgICBpZiAoY3VycklkIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFyclN0YXR1c1tjdXJySWQgLSAxXSA9ICdjdXJyZW50JztcbiAgICAgICAgdGhpcy5hcnJTdGF0dXNbY3VycklkXSA9ICd1cGNvbWluZyc7XG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCgpO1xuICAgIH1cbiAgICBzZWN0aW9uRGVjcmVhc2UgPSBmYWxzZTtcbiAgICBwcml2YXRlIHNldEhlaWdodE9mRm9ybUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdpemFyZEVsID0gdGhpcy53aXphcmRFbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBzZWN0aW9uRWwgPSB3aXphcmRFbC5xdWVyeVNlbGVjdG9yKCcuZmQtd2l6YXJkJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGZvcm1Db250ZW50RWwgPSB3aXphcmRFbC5xdWVyeVNlbGVjdG9yKCcuZml4LWZvcm0tY29udGVudCcpO1xuICAgICAgICBjb25zdCBib3VuZCA9IGZvcm1Db250ZW50RWw/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBmb290ZXJIID0gIXRoaXMuc2hvd0Zvb3RlciA/ICcnIDogJy0gNDBweCc7XG5cbiAgICAgICAgaWYgKGJvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZm9ybUNvbnRlbnRFbCwgJ2hlaWdodCcsIGBjYWxjKDEwMHZoIC0gJHtNYXRoLnJvdW5kKGJvdW5kLnRvcCl9cHgpICR7Zm9vdGVySH1gKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dGb290ZXIgJiYgc2VjdGlvbkVsICYmICF0aGlzLnNlY3Rpb25EZWNyZWFzZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbkRlY3JlYXNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbkVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBgY2FsYyggMTAwc3ZoIC0gJHtzZWN0aW9uRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wfXB4YFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoc2VjdGlvbkVsMiwgJ2hlaWdodCcsIHNlY3Rpb25FbDIub2Zmc2V0SGVpZ2h0IC0gZGVjICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShzZWN0aW9uRWwzLCAnaGVpZ2h0Jywgc2VjdGlvbkVsMy5vZmZzZXRIZWlnaHQgLSBkZWMgKyAncHgnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC13aXphcmQgW2FwcGVuZFRvV2l6YXJkXT1cImZhbHNlXCI+XG4gICAgPGZkLXdpemFyZC1uYXZpZ2F0aW9uPlxuICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhciBbc2l6ZV09XCJ3aXphcmRTaXplXCIgcm9sZT1cImxpc3RcIiBhcmlhLWxhYmVsPVwiV2l6YXJkIFN0ZXBzXCI+XG4gICAgICAgICAgICBAZm9yIChzdGVwIG9mIG1vZGVyblRhYnM7IHRyYWNrIHN0ZXA7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBmZC13aXphcmQtc3RlcFxuICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiYXJyU3RhdHVzW2ldXCJcbiAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdGVwLlRpdGxlIHx8ICcnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdGVwQ2xpY2soaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtd2l6YXJkLXN0ZXAtaW5kaWNhdG9yPnt7IGkgKyAxIH19PC9mZC13aXphcmQtc3RlcC1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLXdpemFyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZml4LWZvcm0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNsYXlvdXRSZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cIm1heENvbnRlbnRXaWR0aCA/IG1heENvbnRlbnRXaWR0aCArICdweCcgOiAnYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cIm1pblRhYkhlaWdodCA/IG1pblRhYkhlaWdodCA6IDQwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpID09PSBzZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NvbnRhaW5lclJvb3RSZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LXdpemFyZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc1BhbmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZkLXdpemFyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L2ZkLXdpemFyZC1uYXZpZ2F0aW9uPlxuICAgIEBpZihzaG93Rm9vdGVyKXtcbiAgICA8YnN1LWxheW91dC1hY3Rpb25zXG4gICAgICAgIFtjYW5TZW5kXT1cImNhblNlbmRcIlxuICAgICAgICBbYnV0dG9uc109XCJsYXlvdXRBY3Rpb25zXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW2xhbmRzY2FwZV09XCJsYW5kc2NhcGVcIlxuICAgICAgICBbc3RhbmRhbG9uZV09XCJzdGFuZGFsb25lXCJcbiAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxuICAgICAgICBbZm9vdGVyRGVzaWduXT1cImZvb3RlckRlc2lnblwiXG4gICAgICAgIFt3b3JrZmxvd0J1dHRvbnNDb21ib01vZGVdPVwid29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgKHRvb2xDbGljayk9XCJvbkV2ZW50cygndG9vbGJhckNsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgICh3b3JrZmxvd0Nob2ljZVNlbGVjdCk9XCJvbkV2ZW50cygnd29ya2Zsb3dDaG9pY2VTZWxlY3QnLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtbGF5b3V0LWFjdGlvbnM+XG4gICAgfVxuPC9mZC13aXphcmQ+XG4iXX0=
|
|
@@ -21,7 +21,7 @@ export class ListItemComponent extends BaseViewItemPropsComponent {
|
|
|
21
21
|
PreventDefaulEvent(e);
|
|
22
22
|
}
|
|
23
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n @if (isCheckList) {\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\n } @if (setting.IconFont || setting.AvatarField) {\n <span fd-list-thumbnail>\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n }\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n @if (contextMenuItems.length) {\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n } @if (canView && !hideOpenIcon) {\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\n }\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n @if (!mo.parent || mo.parent?.expanded) {\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n @if (setting.AvatarField) {\n <img\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n } @if (setting.IconFont) {\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\n </i>\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\n <i fd-list-icon glyph=\"favorite\"></i>\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\n <i fd-list-icon glyph=\"edit\"></i>\n } @if (isCheckList) {\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\n }\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.CounterField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n @if (canView && !hideOpenIcon) {\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\n } @if (contextMenuItems.length) {\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n }\n </span>\n </a>\n </li>\n }\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n @if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i9.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i11.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i11.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i11.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i11.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [ngClass]=\"deviceSize\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n @if (isCheckList) {\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\n } @if (setting.IconFont || setting.AvatarField) {\n <span fd-list-thumbnail>\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n }\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n @if (contextMenuItems.length) {\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n } @if (canView && !hideOpenIcon) {\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\n }\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n @if (!mo.parent || mo.parent?.expanded) {\n <li\n class=\"display\"\n [ngClass]=\"deviceSize\"\n fd-list-item\n [interactive]=\"false\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n @if (setting.AvatarField) {\n <img\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n } @if (setting.IconFont) {\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\n </i>\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\n <i fd-list-icon glyph=\"favorite\"></i>\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\n <i fd-list-icon glyph=\"edit\"></i>\n } @if (isCheckList) {\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\n }\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.CounterField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n @if (canView && !hideOpenIcon) {\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\n } @if (contextMenuItems.length) {\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n }\n </span>\n </a>\n </li>\n }\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n @if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [disableEllapsis]=\"true\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n", styles: [":host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i9.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i11.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i11.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i11.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i11.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
27
27
|
type: Component,
|