barsa-sap-ui 2.0.21 → 2.0.22
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/form-dialog/form-dialog.component.mjs +3 -3
- package/esm2022/lib/index.mjs +1 -29
- package/esm2022/lib/layout-control/layout-control.component.mjs +3 -3
- package/esm2022/lib/ui-button/ui-button.component.mjs +6 -5
- package/fesm2022/barsa-sap-ui.mjs +6 -34
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -164,7 +164,7 @@ export class LayoutControlComponent extends LayoutItemBaseComponent {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutControlComponent, deps: [{ token: i1.FormPanelService }, { token: i0.ElementRef }, { token: i2.ContentDensityService }, { token: i3.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.BbbTranslatePipe }, { token: i1.LayoutService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.isButton": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\n<bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attrRtl]\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox\n ? 'fit-content'\n : config.CaptionSetting?.AlignMode === 'AutoSize'\n ? 'fit-content'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n config.CaptionSetting?.AlignMode === 'AutoSize'\n ? 'auto'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n></bsu-ly-label>\n}\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n<bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [formHeight]=\"(formHeight$ | async)!!\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n></bnrc-field-ui>\n}\n", styles: [":host{width:100%;display:flex}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}bnrc-field-ui{height:auto}}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "formHeight"] }, { kind: "directive", type: i1.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: i4.LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "caption", "captionIcon", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutControlComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
@@ -206,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
206
206
|
args: ['style.height']
|
|
207
207
|
}], isCheckbox: [{
|
|
208
208
|
type: HostBinding,
|
|
209
|
-
args: ['attr.
|
|
209
|
+
args: ['attr.isCheckbox']
|
|
210
210
|
}], isButton: [{
|
|
211
211
|
type: HostBinding,
|
|
212
212
|
args: ['attr.isButton']
|
|
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
245
245
|
}], SetVisible: [{
|
|
246
246
|
type: Input
|
|
247
247
|
}] } });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBTXZCLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBK0MvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNuQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0IsRUFDbkIsb0JBQW1DO1FBRXpELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQVZwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixD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Vzt1QkFBQyx1QkFBdUI7Z0JBRUosUUFBUTtzQkFBdkMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ0UsUUFBUTtzQkFBdkMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ0csU0FBUztzQkFBekMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0YsTUFBTTtzQkFBbEMsV0FBVzt1QkFBQyxjQUFjO2dCQUNJLFVBQVU7c0JBQXhDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNDLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRSxlQUFlO3NCQUE1QyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0UsWUFBWTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQUNHLGFBQWE7c0JBQTNDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNBLFdBQVc7c0JBQXZDLFdBQVc7dUJBQUMsY0FBYztnQkFDbEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFpS0UsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29udHJvbENvbXBvbmVudCBleHRlbmRzIExheW91dEl0ZW1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd0ZW1wTGFiZWxSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHRlbXBMYWJlbFJlZjogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGF5b3V0LWNvbnRyb2wnKSBsYXlvdXRDb250cm9sQ2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LWRpcmVjdGlvbicpIGlzUm93RGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LXJldmVyc2UtZGlyZWN0aW9uJykgaXNSb3dSZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLWRpcmVjdGlvbicpIGlzQ29sdW1uRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLXJldmVyc2UtZGlyZWN0aW9uJykgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udGFpbmVyLWZpZWxkJykgaXNDb250YWluZXIgPSB0cnVlO1xuICAgIC8vIEBIb3N0QmluZGluZygnc3R5bGUudmlzaWJpbGl0eScpIHZpc2liaWxpdHk6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aCcpIG1heFdpZHRoO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJykgbWluV2lkdGg7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgbWluSGVpZ2h0ID0gJzIuMjVyZW0nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgaGVpZ2h0O1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0NoZWtib3gnKSBpc0NoZWNrYm94O1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0J1dHRvbicpIGlzQnV0dG9uO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0J1dHRvbicpIGlzU2luZ2xlUGljdHVyZTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIubWluV2lkdGgnKSBhdHRyTWluV2lkdGg7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNvbnRyb2xJZCcpIGF0dHJDb250cm9sSWQ7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNhcHRpb24nKSBhdHRyQ2FwdGlvbjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhcHRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBmb2N1c0NvbnRyb2w6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG1heExhYmVsV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBoYXNIb3Jpem9udGFsVGV4dDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XG4gICAgQElucHV0KCkgZmxleDogc3RyaW5nO1xuICAgIEBPdXRwdXQoKSBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9PigpO1xuXG4gICAgaGlkZSA9IHRydWU7XG4gICAgbGF5b3V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgd3JhcENvbnRlbnQ6IGJvb2xlYW47XG4gICAgbGFiZWxXaWR0aDogbnVtYmVyO1xuICAgIGxhYmVsQ2FwdGlvbjogc3RyaW5nIHwgU2FmZUh0bWw7XG4gICAgbGFiZWxWaXNpYmxlPzogYm9vbGVhbjtcbiAgICBsYXlvdXRTZXRTaXplOiBib29sZWFuO1xuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNVbHY6IGJvb2xlYW47XG4gICAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gICAgZmllbGRJY29uOiBzdHJpbmc7XG4gICAgb3JpZ2luYWxYdHlwZTogc3RyaW5nO1xuICAgIHRleHRWaXNpYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGVtcHR5VGV4dCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKCcmIzgyMDM7Jyk7XG4gICAgbGF5b3V0Q29udHJvbFdpZHRoOiBudW1iZXI7XG4gICAgZm9ybUhlaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIEBTa2lwU2VsZigpIHByb3RlY3RlZCBfcGFyZW50TGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtUGFuZWxTZXJ2aWNlLCBfY2RyKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudERlbnNpdHkgPT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgdGhpcy5taW5IZWlnaHQgPSAnMnJlbSc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBmbGV4IH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoZmxleCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0RmxleChmbGV4LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZm9ybUhlaWdodCQgPSB0aGlzLmZvcm1QYW5lbFNlcnZpY2UuZm9ybUhlaWdodCQ7XG4gICAgICAgIHRoaXMuX3NldEZsZXgodGhpcy5mbGV4KTtcblxuICAgICAgICB0aGlzLmxheW91dENvbnRyb2xXaWR0aCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgbWluSGVpZ2h0QXV0byA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgJ0ZpZWxkVWkuU2V0dGluZy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1pbkhlaWdodEF1dG8nLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuaW5saW5lRWRpdCB8fCBtaW5IZWlnaHRBdXRvKSB7XG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlVsdk1haW5VaScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNVbHYgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXR0ckNhcHRpb24gPSBjb25maWcuQ2FwdGlvbi5yZXBsYWNlKCc6JywgJycpO1xuICAgICAgICB0aGlzLmF0dHJDb250cm9sSWQgPSBjb25maWcuQ29udHJvbElkO1xuICAgICAgICB0aGlzLmlzQnV0dG9uID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkJ1dHRvbic7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hMYWJlbCgpO1xuXG4gICAgICAgIHRoaXMuaXNSb3dEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnUmlnaHQnIHx8IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdEZWZhdWx0JztcbiAgICAgICAgdGhpcy5pc1Jvd1JldmVyc2VEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnTGVmdCc7XG4gICAgICAgIHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnVG9wJyB8fCB0aGlzLmlzU2VhcmNoUGFuZWw7XG4gICAgICAgIHRoaXMuaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0JvdHRvbSc7XG5cbiAgICAgICAgY29uZmlnLkZpZWxkVWkuTGF5b3V0Q29udHJvbCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5maWVsZEljb24gPSBjb25maWcuRmllbGRVaS5TZXR0aW5nLkZpZWxkSWNvbjtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFh0eXBlID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZTtcbiAgICAgICAgdGhpcy50ZXh0VmlzaWJsZSA9IGNvbmZpZy5UZXh0VmlzaWJsZTtcbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJykge1xuICAgICAgICAgICAgdGhpcy5sYWJlbENhcHRpb24gPSAnJiM4MjAzOyc7XG4gICAgICAgICAgICB0aGlzLmxhYmVsVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRleHRWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXBhcmVNaW5BbmRNYXhTaXplKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlZnJlc2hMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIGxldCBsYWJlbENhcHRpb24gPSBjb25maWcuQ2FwdGlvbjtcbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLlNldHRpbmc/LklzTWFuZGF0b3J5KSB7XG4gICAgICAgICAgICBpZiAobGFiZWxDYXB0aW9uLmluZGV4T2YoJyonKSA8IDApIHtcbiAgICAgICAgICAgICAgICBsYWJlbENhcHRpb24gPSBsYWJlbENhcHRpb24gKyAnIConO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uLnJlcGxhY2UoJyonLCAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ2hlY2tib3ggPSBjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuQ2hlY2tCb3gnO1xuXG4gICAgICAgIHRoaXMuaXNTaW5nbGVQaWN0dXJlID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlNpbmdsZVBpY3R1cmUnO1xuICAgICAgICBjb25zdCBjb2xvbkxhYmVsID0gdGhpcy5mb3JtUGFuZWxTZXJ2aWNlLkNvbG9uSW5MYWJlbCA/ICc6JyA6ICcnO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGVDYXB0aW9uID0gYCR7dGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybShsYWJlbENhcHRpb24pfSR7XG4gICAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwgfHwgbGFiZWxDYXB0aW9uID09PSAnJnp3bmo7JyA/ICcnIDogY29sb25MYWJlbFxuICAgICAgICB9YDtcbiAgICAgICAgdGhpcy5sYWJlbENhcHRpb24gPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0cmFuc2xhdGVDYXB0aW9uKTtcbiAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGUgJiYgdGhpcy5zaG93TGFiZWwgIT09IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuX3NldEhpZGUoY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jc1Zpc2libGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICAgICAgdGhpcy5pc01hbmRhdG9yeSA9IGNvbmZpZy5GaWVsZFVpLlNldHRpbmc/LklzTWFuZGF0b3J5O1xuICAgIH1cblxuICAgIF9yZXNpemVVbHZCeURldmljZShkZXZpY2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVWx2KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRldmljZUhlaWdodCA9ICdEZXNrdG9wSGVpZ2h0JztcbiAgICAgICAgc3dpdGNoIChkZXZpY2UpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIGRldmljZUhlaWdodCA9ICdNb2JpbGVIZWlnaHQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgZGV2aWNlSGVpZ2h0ID0gJ1RhYmxldEhlaWdodCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oZWlnaHQgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgJ0ZpZWxkVWkuU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuJyArIGRldmljZUhlaWdodCxcbiAgICAgICAgICAgICdhdXRvJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBwcmVwYXJlTWluQW5kTWF4U2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IGxheW91dEluZm8gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGlzQnV0dG9uID0gdGhpcy5pc0J1dHRvbjtcbiAgICAgICAgY29uc3QgaXNTaW5nbGVQaWN0dXJlID0gdGhpcy5pc1NpbmdsZVBpY3R1cmU7XG4gICAgICAgIGNvbnN0IGlzQ2hlY2tib3ggPSB0aGlzLmlzQ2hlY2tib3g7XG4gICAgICAgIGlmICghdGhpcy5pbmxpbmVFZGl0ICYmIGxheW91dEluZm8gJiYgKGlzQnV0dG9uIHx8IGlzQ2hlY2tib3ggfHwgaXNTaW5nbGVQaWN0dXJlKSkge1xuICAgICAgICAgICAgdGhpcy5hdHRyTWluV2lkdGggPSBjb25maWcuQm91bmRzLndpZHRoO1xuICAgICAgICAgICAgbGV0IGV4dHJhVmFsID0gMDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoKGlzQnV0dG9uIHx8IGlzQ2hlY2tib3gpICYmIGxheW91dEluZm8uRmllbGRVaS5TZXR0aW5nPy5GaWVsZEljb24pIHx8XG4gICAgICAgICAgICAgICAgbGF5b3V0SW5mby5GaWVsZFVpLlNldHRpbmcuSnNvbkV4dHJhUHJvcD8uR2x5cGhcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGV4dHJhVmFsID0gMTg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IE1heFNpemUsIE1pblNpemUgfSA9IGxheW91dEluZm87XG4gICAgICAgICAgICBpZiAoTWF4U2l6ZT8ud2lkdGggPiAwICYmICF0aGlzLmlzQ2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heFdpZHRoID0gTWF4U2l6ZS53aWR0aCArIGV4dHJhVmFsICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChNaW5TaXplPy53aWR0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gTWluU2l6ZS53aWR0aCArIGV4dHJhVmFsICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlYXJjaFBhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJNaW5XaWR0aCA9IHRoaXMubWF4TGFiZWxXaWR0aCArIDIwMDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heFdpZHRoID0gJzMyMHB4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2V0RGV2aWNlSXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBSZWZyZXNoTGFiZWwgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hMYWJlbCgpO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHsgdGl0bGU6ICdyZWZyZXNoTGFiZWwnLCBkYXRhOiB0aGlzLmNvbmZpZyB9KTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBTZXRWaXNpYmxlID0gKHZpc2libGUsIHJlZnJlc2gpID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5GaWVsZFVpLlNldHRpbmcuSXNWaXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgICAgIHRoaXMuX3NldEhpZGUoIXZpc2libGUpO1xuICAgICAgICAgICAgLy8gdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLiRCUnVsZUhpZGUgPSAhdmlzaWJsZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcHJpdmF0ZSBfc2V0SGlkZShoaWRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGhpZGUgPSB0aGlzLmNvbmZpZy5GaWVsZFVpLlNldHRpbmcuSGlkZVNlYXJjaENvbW1hbmRJbmZvVWkgPT09IHRydWUgPyB0cnVlIDogaGlkZTsgLy8gaGlkZSBkZWZhdWx0IGJ1dHRvbnMgb2Ygc2VhcmNoIHBhbmVsXG4gICAgICAgIHRoaXMuaGlkZSA9IGhpZGU7XG4gICAgICAgIGlmIChoaWRlKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaGlkZS1mb3JtLWl0ZW0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdoaWRlLWZvcm0taXRlbScpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3NldEZsZXgoZmxleDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgZmxleCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdmbGV4JywgZmxleCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKCFoaWRlKSB7IEBpZiAobGFiZWxWaXNpYmxlKSB7XG48YnN1LWx5LWxhYmVsXG4gICAgW2F0dHIubGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcbiAgICBbYXR0clJ0bF1cbiAgICBbY2xhc3Mubm8tcGFkZGluZ109XCJjb25maWcuUGFkZGluZ1swXSA9PT0gMFwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtjYXB0aW9uXT1cImxhYmVsQ2FwdGlvblwiXG4gICAgW29yaWdpbmFsV2lkdGhdPVwibGFiZWxXaWR0aFwiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJcbiAgICAgICAgaXNDaGVja2JveFxuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXG4gICAgICAgICAgICA6IGNvbmZpZy5DYXB0aW9uU2V0dGluZz8uQWxpZ25Nb2RlID09PSAnQXV0b1NpemUnXG4gICAgICAgICAgICA/ICdmaXQtY29udGVudCdcbiAgICAgICAgICAgIDogaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXG4gICAgICAgICAgICA/ICcxMDAlJ1xuICAgICAgICAgICAgOiBtYXhMYWJlbFdpZHRoICsgJ3B4J1xuICAgIFwiXG4gICAgW3N0eWxlLndpZHRoXT1cIlxuICAgICAgICBjb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA9PT0gJ0F1dG9TaXplJ1xuICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgIDogaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXG4gICAgICAgICAgICA/ICcxMDAlJ1xuICAgICAgICAgICAgOiBtYXhMYWJlbFdpZHRoICsgJ3B4J1xuICAgIFwiXG4gICAgW2lzTWFuZGF0b3J5XT1cImlzTWFuZGF0b3J5XCJcbiAgICBbZmllbGRJY29uXT1cImZpZWxkSWNvblwiXG4gICAgW29yaWdpbmFsWHR5cGVdPVwib3JpZ2luYWxYdHlwZVwiXG4gICAgW3RleHRWaXNpYmxlXT1cInRleHRWaXNpYmxlXCJcbiAgICBbaXNDb2x1bW5dPVwiaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXCJcbj48L2JzdS1seS1sYWJlbD5cbn1cbjxsYWJlbCBbYXR0ci52aXNpYmxlXT1cImxhYmVsVmlzaWJsZVwiIGNsYXNzPVwiaG9yaXpvbnRhbC1sYWJlbFwiIFtpbm5lckh0bWxdPVwiZW1wdHlUZXh0XCI+PC9sYWJlbD5cbjxibnJjLWZpZWxkLXVpXG4gICAgW2F0dHIueHR5cGVdPVwiY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZVwiXG4gICAgW2F0dHIuZmllbGRXaWR0aF09XCJsYXlvdXRDb250cm9sV2lkdGhcIlxuICAgIFthdHRyLmlzQ2hlY2tib3hdPVwiaXNDaGVja2JveFwiXG4gICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJpc0NoZWNrYm94ID8gMSA6IDBcIlxuICAgIFtjbGFzcy5uby1wYWRkaW5nXT1cImNvbmZpZy5QYWRkaW5nWzBdID09PSAwXCJcbiAgICBbY3VzdG9tRmllbGRdPVwiY29uZmlnLkZpZWxkVWlcIlxuICAgIFtsYXlvdXRJbmZvXT1cImNvbmZpZ1wiXG4gICAgW2lubGluZUVkaXRdPVwiaW5saW5lRWRpdFwiXG4gICAgW2Zvcm1IZWlnaHRdPVwiKGZvcm1IZWlnaHQkIHwgYXN5bmMpISFcIlxuICAgIFtmb2N1c0NvbnRyb2xdPVwiZm9jdXNDb250cm9sXCJcbiAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cImlzVWx2ID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICBbYXR0ci5pc3Vsdl09XCJpc1VsdlwiXG4+PC9ibnJjLWZpZWxkLXVpPlxufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBTXZCLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFcEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBK0MvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNuQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0IsRUFDbkIsb0JBQW1DO1FBRXpELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQVZwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixD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Vzt1QkFBQyx1QkFBdUI7Z0JBRUosUUFBUTtzQkFBdkMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ0UsUUFBUTtzQkFBdkMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ0csU0FBUztzQkFBekMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0YsTUFBTTtzQkFBbEMsV0FBVzt1QkFBQyxjQUFjO2dCQUNLLFVBQVU7c0JBQXpDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNBLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRSxlQUFlO3NCQUE1QyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0UsWUFBWTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQUNHLGFBQWE7c0JBQTNDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNBLFdBQVc7c0JBQXZDLFdBQVc7dUJBQUMsY0FBYztnQkFDbEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFpS0UsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29udHJvbENvbXBvbmVudCBleHRlbmRzIExheW91dEl0ZW1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd0ZW1wTGFiZWxSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHRlbXBMYWJlbFJlZjogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGF5b3V0LWNvbnRyb2wnKSBsYXlvdXRDb250cm9sQ2xhc3MgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LWRpcmVjdGlvbicpIGlzUm93RGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LXJldmVyc2UtZGlyZWN0aW9uJykgaXNSb3dSZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLWRpcmVjdGlvbicpIGlzQ29sdW1uRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLXJldmVyc2UtZGlyZWN0aW9uJykgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udGFpbmVyLWZpZWxkJykgaXNDb250YWluZXIgPSB0cnVlO1xuICAgIC8vIEBIb3N0QmluZGluZygnc3R5bGUudmlzaWJpbGl0eScpIHZpc2liaWxpdHk6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aCcpIG1heFdpZHRoO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJykgbWluV2lkdGg7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgbWluSGVpZ2h0ID0gJzIuMjVyZW0nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgaGVpZ2h0O1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0NoZWNrYm94JykgaXNDaGVja2JveDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaXNCdXR0b24nKSBpc0J1dHRvbjtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaXNCdXR0b24nKSBpc1NpbmdsZVBpY3R1cmU7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm1pbldpZHRoJykgYXR0ck1pbldpZHRoO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5jb250cm9sSWQnKSBhdHRyQ29udHJvbElkO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5jYXB0aW9uJykgYXR0ckNhcHRpb247XG4gICAgQElucHV0KCkgaW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9jdXNDb250cm9sOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtYXhMYWJlbFdpZHRoOiBudW1iZXI7XG4gICAgQElucHV0KCkgaGFzSG9yaXpvbnRhbFRleHQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIGZsZXg6IHN0cmluZztcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfT4oKTtcblxuICAgIGhpZGUgPSB0cnVlO1xuICAgIGxheW91dFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHdyYXBDb250ZW50OiBib29sZWFuO1xuICAgIGxhYmVsV2lkdGg6IG51bWJlcjtcbiAgICBsYWJlbENhcHRpb246IHN0cmluZyB8IFNhZmVIdG1sO1xuICAgIGxhYmVsVmlzaWJsZT86IGJvb2xlYW47XG4gICAgbGF5b3V0U2V0U2l6ZTogYm9vbGVhbjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzVWx2OiBib29sZWFuO1xuICAgIGlzTWFuZGF0b3J5OiBib29sZWFuO1xuICAgIGZpZWxkSWNvbjogc3RyaW5nO1xuICAgIG9yaWdpbmFsWHR5cGU6IHN0cmluZztcbiAgICB0ZXh0VmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBlbXB0eVRleHQgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCgnJiM4MjAzOycpO1xuICAgIGxheW91dENvbnRyb2xXaWR0aDogbnVtYmVyO1xuICAgIGZvcm1IZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBmb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByb3RlY3RlZCBfYmJiVHJhbnNsYXRlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBAU2tpcFNlbGYoKSBwcm90ZWN0ZWQgX3BhcmVudExheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybVBhbmVsU2VydmljZSwgX2Nkcik7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICAgIHRoaXMubWluSGVpZ2h0ID0gJzJyZW0nO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgZmxleCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKGZsZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEZsZXgoZmxleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmZvcm1IZWlnaHQkID0gdGhpcy5mb3JtUGFuZWxTZXJ2aWNlLmZvcm1IZWlnaHQkO1xuICAgICAgICB0aGlzLl9zZXRGbGV4KHRoaXMuZmxleCk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRDb250cm9sV2lkdGggPSAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IG1pbkhlaWdodEF1dG8gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICdGaWVsZFVpLlNldHRpbmcuQ3VzdG9tVWkuUGFyYW1ldGVycy5NaW5IZWlnaHRBdXRvJyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmlubGluZUVkaXQgfHwgbWluSGVpZ2h0QXV0bykge1xuICAgICAgICAgICAgdGhpcy5taW5IZWlnaHQgPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5VbHZNYWluVWknKSB7XG4gICAgICAgICAgICB0aGlzLmlzVWx2ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF0dHJDYXB0aW9uID0gY29uZmlnLkNhcHRpb24ucmVwbGFjZSgnOicsICcnKTtcbiAgICAgICAgdGhpcy5hdHRyQ29udHJvbElkID0gY29uZmlnLkNvbnRyb2xJZDtcbiAgICAgICAgdGhpcy5pc0J1dHRvbiA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5CdXR0b24nO1xuICAgICAgICB0aGlzLl9yZWZyZXNoTGFiZWwoKTtcblxuICAgICAgICB0aGlzLmlzUm93RGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1JpZ2h0JyB8fCBjb25maWcuVGV4dExvY2F0aW9uID09PSAnRGVmYXVsdCc7XG4gICAgICAgIHRoaXMuaXNSb3dSZXZlcnNlRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0xlZnQnO1xuICAgICAgICB0aGlzLmlzQ29sdW1uRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1RvcCcgfHwgdGhpcy5pc1NlYXJjaFBhbmVsO1xuICAgICAgICB0aGlzLmlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvbiA9IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdCb3R0b20nO1xuXG4gICAgICAgIGNvbmZpZy5GaWVsZFVpLkxheW91dENvbnRyb2wgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuZmllbGRJY29uID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZy5GaWVsZEljb247XG4gICAgICAgIHRoaXMub3JpZ2luYWxYdHlwZSA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGU7XG4gICAgICAgIHRoaXMudGV4dFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGU7XG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuU2VhcmNoQ29tbWFuZEluZm9VaScpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gJyYjODIwMzsnO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50ZXh0VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmVwYXJlTWluQW5kTWF4U2l6ZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWZyZXNoTGFiZWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBsZXQgbGFiZWxDYXB0aW9uID0gY29uZmlnLkNhcHRpb247XG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5TZXR0aW5nPy5Jc01hbmRhdG9yeSkge1xuICAgICAgICAgICAgaWYgKGxhYmVsQ2FwdGlvbi5pbmRleE9mKCcqJykgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uICsgJyAqJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbi5yZXBsYWNlKCcqJywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0NoZWNrYm94ID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkNoZWNrQm94JztcblxuICAgICAgICB0aGlzLmlzU2luZ2xlUGljdHVyZSA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TaW5nbGVQaWN0dXJlJztcbiAgICAgICAgY29uc3QgY29sb25MYWJlbCA9IHRoaXMuZm9ybVBhbmVsU2VydmljZS5Db2xvbkluTGFiZWwgPyAnOicgOiAnJztcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlQ2FwdGlvbiA9IGAke3RoaXMuX2JiYlRyYW5zbGF0ZS50cmFuc2Zvcm0obGFiZWxDYXB0aW9uKX0ke1xuICAgICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsIHx8IGxhYmVsQ2FwdGlvbiA9PT0gJyZ6d25qOycgPyAnJyA6IGNvbG9uTGFiZWxcbiAgICAgICAgfWA7XG4gICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodHJhbnNsYXRlQ2FwdGlvbik7XG4gICAgICAgIHRoaXMubGFiZWxWaXNpYmxlID0gY29uZmlnLlRleHRWaXNpYmxlICYmIHRoaXMuc2hvd0xhYmVsICE9PSBmYWxzZTtcblxuICAgICAgICB0aGlzLl9zZXRIaWRlKGNvbmZpZy5GaWVsZFVpLlNldHRpbmcuSXNWaXNpYmxlID09PSBmYWxzZSA/IHRydWUgOiBmYWxzZSk7XG4gICAgICAgIHRoaXMuaXNNYW5kYXRvcnkgPSBjb25maWcuRmllbGRVaS5TZXR0aW5nPy5Jc01hbmRhdG9yeTtcbiAgICB9XG5cbiAgICBfcmVzaXplVWx2QnlEZXZpY2UoZGV2aWNlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1Vsdikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBkZXZpY2VIZWlnaHQgPSAnRGVza3RvcEhlaWdodCc7XG4gICAgICAgIHN3aXRjaCAoZGV2aWNlKSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICBkZXZpY2VIZWlnaHQgPSAnTW9iaWxlSGVpZ2h0JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIGRldmljZUhlaWdodCA9ICdUYWJsZXRIZWlnaHQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgICdGaWVsZFVpLlNldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzLicgKyBkZXZpY2VIZWlnaHQsXG4gICAgICAgICAgICAnYXV0bydcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJlcGFyZU1pbkFuZE1heFNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25zdCBsYXlvdXRJbmZvID0gY29uZmlnO1xuICAgICAgICBjb25zdCBpc0J1dHRvbiA9IHRoaXMuaXNCdXR0b247XG4gICAgICAgIGNvbnN0IGlzU2luZ2xlUGljdHVyZSA9IHRoaXMuaXNTaW5nbGVQaWN0dXJlO1xuICAgICAgICBjb25zdCBpc0NoZWNrYm94ID0gdGhpcy5pc0NoZWNrYm94O1xuICAgICAgICBpZiAoIXRoaXMuaW5saW5lRWRpdCAmJiBsYXlvdXRJbmZvICYmIChpc0J1dHRvbiB8fCBpc0NoZWNrYm94IHx8IGlzU2luZ2xlUGljdHVyZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0ck1pbldpZHRoID0gY29uZmlnLkJvdW5kcy53aWR0aDtcbiAgICAgICAgICAgIGxldCBleHRyYVZhbCA9IDA7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKChpc0J1dHRvbiB8fCBpc0NoZWNrYm94KSAmJiBsYXlvdXRJbmZvLkZpZWxkVWkuU2V0dGluZz8uRmllbGRJY29uKSB8fFxuICAgICAgICAgICAgICAgIGxheW91dEluZm8uRmllbGRVaS5TZXR0aW5nLkpzb25FeHRyYVByb3A/LkdseXBoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBleHRyYVZhbCA9IDE4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBNYXhTaXplLCBNaW5TaXplIH0gPSBsYXlvdXRJbmZvO1xuICAgICAgICAgICAgaWYgKE1heFNpemU/LndpZHRoID4gMCAmJiAhdGhpcy5pc0NoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IE1heFNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoTWluU2l6ZT8ud2lkdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IE1pblNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2hQYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5hdHRyTWluV2lkdGggPSB0aGlzLm1heExhYmVsV2lkdGggKyAyMDA7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NlYXJjUGFuZWxJblNpZGVDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9ICczMjBweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdldERldmljZUlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMubWluV2lkdGggPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgUmVmcmVzaExhYmVsID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZWZyZXNoTGFiZWwoKTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7IHRpdGxlOiAncmVmcmVzaExhYmVsJywgZGF0YTogdGhpcy5jb25maWcgfSk7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgU2V0VmlzaWJsZSA9ICh2aXNpYmxlLCByZWZyZXNoKSA9PiB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLklzVmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgICAgICB0aGlzLl9zZXRIaWRlKCF2aXNpYmxlKTtcbiAgICAgICAgICAgIC8vIHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy4kQlJ1bGVIaWRlID0gIXZpc2libGU7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHByaXZhdGUgX3NldEhpZGUoaGlkZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBoaWRlID0gdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLkhpZGVTZWFyY2hDb21tYW5kSW5mb1VpID09PSB0cnVlID8gdHJ1ZSA6IGhpZGU7IC8vIGhpZGUgZGVmYXVsdCBidXR0b25zIG9mIHNlYXJjaCBwYW5lbFxuICAgICAgICB0aGlzLmhpZGUgPSBoaWRlO1xuICAgICAgICBpZiAoaGlkZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hpZGUtZm9ybS1pdGVtJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaGlkZS1mb3JtLWl0ZW0nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9zZXRGbGV4KGZsZXg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGZsZXggIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZmxleCcsIGZsZXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICghaGlkZSkgeyBAaWYgKGxhYmVsVmlzaWJsZSkge1xuPGJzdS1seS1sYWJlbFxuICAgIFthdHRyLmxhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXG4gICAgW2F0dHJSdGxdXG4gICAgW2NsYXNzLm5vLXBhZGRpbmddPVwiY29uZmlnLlBhZGRpbmdbMF0gPT09IDBcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbY2FwdGlvbl09XCJsYWJlbENhcHRpb25cIlxuICAgIFtvcmlnaW5hbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwiXG4gICAgICAgIGlzQ2hlY2tib3hcbiAgICAgICAgICAgID8gJ2ZpdC1jb250ZW50J1xuICAgICAgICAgICAgOiBjb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA9PT0gJ0F1dG9TaXplJ1xuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXG4gICAgICAgICAgICA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxuICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcbiAgICBcIlxuICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZSdcbiAgICAgICAgICAgID8gJ2F1dG8nXG4gICAgICAgICAgICA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxuICAgICAgICAgICAgPyAnMTAwJSdcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcbiAgICBcIlxuICAgIFtpc01hbmRhdG9yeV09XCJpc01hbmRhdG9yeVwiXG4gICAgW2ZpZWxkSWNvbl09XCJmaWVsZEljb25cIlxuICAgIFtvcmlnaW5hbFh0eXBlXT1cIm9yaWdpbmFsWHR5cGVcIlxuICAgIFt0ZXh0VmlzaWJsZV09XCJ0ZXh0VmlzaWJsZVwiXG4gICAgW2lzQ29sdW1uXT1cImlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblwiXG4+PC9ic3UtbHktbGFiZWw+XG59XG48bGFiZWwgW2F0dHIudmlzaWJsZV09XCJsYWJlbFZpc2libGVcIiBjbGFzcz1cImhvcml6b250YWwtbGFiZWxcIiBbaW5uZXJIdG1sXT1cImVtcHR5VGV4dFwiPjwvbGFiZWw+XG48Ym5yYy1maWVsZC11aVxuICAgIFthdHRyLnh0eXBlXT1cImNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGVcIlxuICAgIFthdHRyLmZpZWxkV2lkdGhdPVwibGF5b3V0Q29udHJvbFdpZHRoXCJcbiAgICBbYXR0ci5pc0NoZWNrYm94XT1cImlzQ2hlY2tib3hcIlxuICAgIFtzdHlsZS5mbGV4LWdyb3ddPVwiaXNDaGVja2JveCA/IDEgOiAwXCJcbiAgICBbY2xhc3Mubm8tcGFkZGluZ109XCJjb25maWcuUGFkZGluZ1swXSA9PT0gMFwiXG4gICAgW2N1c3RvbUZpZWxkXT1cImNvbmZpZy5GaWVsZFVpXCJcbiAgICBbbGF5b3V0SW5mb109XCJjb25maWdcIlxuICAgIFtpbmxpbmVFZGl0XT1cImlubGluZUVkaXRcIlxuICAgIFtmb3JtSGVpZ2h0XT1cIihmb3JtSGVpZ2h0JCB8IGFzeW5jKSEhXCJcbiAgICBbZm9jdXNDb250cm9sXT1cImZvY3VzQ29udHJvbFwiXG4gICAgW2lzU2VhcmNoUGFuZWxdPVwiaXNTZWFyY2hQYW5lbFwiXG4gICAgW3N0eWxlLmhlaWdodF09XCJpc1VsdiA/ICcxMDAlJyA6ICdhdXRvJ1wiXG4gICAgW2F0dHIuaXN1bHZdPVwiaXNVbHZcIlxuPjwvYm5yYy1maWVsZC11aT5cbn1cbiJdfQ==
|
|
@@ -2,8 +2,9 @@ import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
|
|
|
2
2
|
import { FieldBaseComponent } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@fundamental-ngx/core/button";
|
|
5
|
-
import * as i2 from "@
|
|
6
|
-
import * as i3 from "
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/form";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "barsa-novin-ray-core";
|
|
7
8
|
export class UiButtonComponent extends FieldBaseComponent {
|
|
8
9
|
ngOnInit() {
|
|
9
10
|
super.ngOnInit();
|
|
@@ -19,13 +20,13 @@ export class UiButtonComponent extends FieldBaseComponent {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiButtonComponent, selector: "bsu-ui-button", host: { properties: { "style.margin": "this.designMode" } }, usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiButtonComponent, selector: "bsu-ui-button", host: { properties: { "style.margin": "this.designMode" } }, usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n<input fd-form-control class=\"extra-input-hidden\" />\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100%}.fd-button__text{font-size:.78rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
24
|
}
|
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiButtonComponent, decorators: [{
|
|
25
26
|
type: Component,
|
|
26
|
-
args: [{ selector: 'bsu-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100
|
|
27
|
+
args: [{ selector: 'bsu-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n<input fd-form-control class=\"extra-input-hidden\" />\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100%}.fd-button__text{font-size:.78rem}\n"] }]
|
|
27
28
|
}], propDecorators: { designMode: [{
|
|
28
29
|
type: HostBinding,
|
|
29
30
|
args: ['style.margin']
|
|
30
31
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWJ1dHRvbi91aS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktYnV0dG9uL3VpLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBTzFELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFHckQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSwyQkFBMkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0wsQ0FBQzs4R0FmUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5SUNUOUIseWpCQWVBOzsyRkROYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0ksZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdsQixVQUFVO3NCQUF0QyxXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXJnaW4nKSBkZXNpZ25Nb2RlOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5jb250ZXh0LnRleHQ7XHJcbiAgICAgICAgdGhpcy5kZXNpZ25Nb2RlID0gdGhpcy5Kc29uRXh0cmFQcm9wPy5EZXNpZ24gPyAnM3B4IDFweCcgOiAnMCc7XHJcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0SW5mbz8uVXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sICYmICF0aGlzLmxheW91dEluZm8uVGV4dFZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMubGF5b3V0SW5mby5DYXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5maXJlRXZlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2xpY2snLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSEhXCJcbiAgICBmZC1idXR0b25cbiAgICBbZmRUeXBlXT1cInBhcmFtZXRlcnM/LkZkVHlwZSRDYXB0aW9uXCJcbiAgICBbZ2x5cGhdPVwicGFyYW1ldGVycz8uSWNvblwiXG4gICAgW3RpdGxlXT1cImxhYmVsIHwgYmJiVHJhbnNsYXRlXCJcbj5cbiAgICBAaWYgKCFwYXJhbWV0ZXJzPy5JY29uICYmIGNvbnRleHQ/LlNldHRpbmc/LkZpZWxkSWNvbiAmJiAhSnNvbkV4dHJhUHJvcD8uSWNvbikge1xuICAgIDxpbWcgW3NyY109XCJjb250ZXh0Py5TZXR0aW5nLkZpZWxkSWNvblwiIC8+XG4gICAgfSBAaWYgKGxhYmVsICYmICFKc29uRXh0cmFQcm9wPy5Pbmx5SWNvbiAmJiAhcGFyYW1ldGVycz8uT25seUljb24pIHtcbiAgICA8c3BhbiBjbGFzcz1cImZkLWJ1dHRvbl9fdGV4dFwiPnt7IGxhYmVsIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIH1cbjwvYnV0dG9uPlxuPGlucHV0IGZkLWZvcm0tY29udHJvbCBjbGFzcz1cImV4dHJhLWlucHV0LWhpZGRlblwiIC8+XG4iXX0=
|
|
@@ -934,7 +934,7 @@ class LayoutControlComponent extends LayoutItemBaseComponent {
|
|
|
934
934
|
}
|
|
935
935
|
}
|
|
936
936
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutControlComponent, deps: [{ token: i2.FormPanelService }, { token: i0.ElementRef }, { token: i1$1.ContentDensityService }, { token: i1$2.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.BbbTranslatePipe }, { token: i2.LayoutService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
937
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.
|
|
937
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.isButton": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\n<bsu-ly-label\n [attr.labelWidth]=\"labelWidth\"\n [attrRtl]\n [class.no-padding]=\"config.Padding[0] === 0\"\n [config]=\"config\"\n [caption]=\"labelCaption\"\n [originalWidth]=\"labelWidth\"\n [style.min-width]=\"\n isCheckbox\n ? 'fit-content'\n : config.CaptionSetting?.AlignMode === 'AutoSize'\n ? 'fit-content'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [style.width]=\"\n config.CaptionSetting?.AlignMode === 'AutoSize'\n ? 'auto'\n : isColumnDirection || isColumnReverseDirection\n ? '100%'\n : maxLabelWidth + 'px'\n \"\n [isMandatory]=\"isMandatory\"\n [fieldIcon]=\"fieldIcon\"\n [originalXtype]=\"originalXtype\"\n [textVisible]=\"textVisible\"\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\n></bsu-ly-label>\n}\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\n<bnrc-field-ui\n [attr.xtype]=\"config.FieldUi.originalXtype\"\n [attr.fieldWidth]=\"layoutControlWidth\"\n [attr.isCheckbox]=\"isCheckbox\"\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\n [class.no-padding]=\"config.Padding[0] === 0\"\n [customField]=\"config.FieldUi\"\n [layoutInfo]=\"config\"\n [inlineEdit]=\"inlineEdit\"\n [formHeight]=\"(formHeight$ | async)!!\"\n [focusControl]=\"focusControl\"\n [isSearchPanel]=\"isSearchPanel\"\n [style.height]=\"isUlv ? '100%' : 'auto'\"\n [attr.isulv]=\"isUlv\"\n></bnrc-field-ui>\n}\n", styles: [":host{width:100%;display:flex}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bnrc-field-ui{padding:0 5px;margin:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}bnrc-field-ui{height:auto}}\n"], dependencies: [{ kind: "component", type: i2.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "formHeight"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "caption", "captionIcon", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
938
938
|
}
|
|
939
939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LayoutControlComponent, decorators: [{
|
|
940
940
|
type: Component,
|
|
@@ -976,7 +976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
976
976
|
args: ['style.height']
|
|
977
977
|
}], isCheckbox: [{
|
|
978
978
|
type: HostBinding,
|
|
979
|
-
args: ['attr.
|
|
979
|
+
args: ['attr.isCheckbox']
|
|
980
980
|
}], isButton: [{
|
|
981
981
|
type: HostBinding,
|
|
982
982
|
args: ['attr.isButton']
|
|
@@ -10561,11 +10561,11 @@ class FormDialogComponent extends BaseComponent {
|
|
|
10561
10561
|
this.caption = typeDefName + ':' + moCaption;
|
|
10562
10562
|
}
|
|
10563
10563
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormDialogComponent, deps: [{ token: i1$1.DialogService }, { token: i2.DialogParams }, { token: i2.PortalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10564
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FormDialogComponent, selector: "bsu-form-dialog", providers: [ContainerService], viewQueries: [{ propertyName: "dialogTemplateRef", first: true, predicate: ["dialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title>{{ dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-right>\n
|
|
10564
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: FormDialogComponent, selector: "bsu-form-dialog", providers: [ContainerService], viewQueries: [{ propertyName: "dialogTemplateRef", first: true, predicate: ["dialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title>{{ dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-right>\n <bsu-form-toolbar\n fd-bar-right\n style=\"width: auto\"\n [deviceSize]=\"deviceSize\"\n [buttons]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n @if (dialogConfig.data.canFullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"fullscreen\"\n (fullscreenChanged)=\"fullscreen = $event\"\n [dialogComponent]=\"dialogTplRef\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel()\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <ng-template\n fdkTemplate=\"subheader\"\n *ngIf=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false as toolbarItems\"\n >\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\" class=\"!tw-justify-end\">\n <bsu-form-toolbar\n [deviceSize]=\"deviceSize\"\n [buttons]=\"toolbarItems\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n </fd-bar-element>\n </div>\n </ng-template> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <bnrc-form\n [formPanelCtrl]=\"formPanelCtrlr\"\n [params]=\"params\"\n (formClose)=\"onFormClose()\"\n (uiComponent)=\"onFormUiComponentReady($event)\"\n ></bnrc-form>\n </fd-dialog-body>\n <fd-dialog-footer [style.display]=\"!showFooter ? 'none' : null\">\n @for (btn of (extendToolbarItems$ | async); track btn.Id) { @if (!(btn === '-' || btn.text === '-') &&\n ((btn.isBuiltin && btn.inFooter) || btn.isWorkflow)) {\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-dialog-decisive-button\n [fdType]=\"btn.isWorkflow ? 'attention' : btn.design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : null\"\n (click)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <fd-dialog-footer-button>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></bnrc-dynamic-form-toolbaritem>\n </fd-dialog-footer-button>\n </ng-template>\n } } @if (!isNonePersistance && showSaveButton !== false) {\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-initial-focus\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n (click)=\"onCancel()\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:auto}fd-dialog-body{display:flex;flex-direction:column;height:100%;align-items:stretch;justify-content:stretch}fd-dialog-body>bnrc-form{flex-grow:1;display:flex;flex-direction:row;height:100%;justify-content:stretch;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4$1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4$1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i5$1.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7$1.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "directive", type: FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10565
10565
|
}
|
|
10566
10566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormDialogComponent, decorators: [{
|
|
10567
10567
|
type: Component,
|
|
10568
|
-
args: [{ selector: 'bsu-form-dialog', providers: [ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title>{{ dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-right>\n
|
|
10568
|
+
args: [{ selector: 'bsu-form-dialog', providers: [ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <h1 fd-title>{{ dialogConfig.data.caption }}</h1>\n </div>\n <div fd-bar-right>\n <bsu-form-toolbar\n fd-bar-right\n style=\"width: auto\"\n [deviceSize]=\"deviceSize\"\n [buttons]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n @if (dialogConfig.data.canFullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"fullscreen\"\n (fullscreenChanged)=\"fullscreen = $event\"\n [dialogComponent]=\"dialogTplRef\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel()\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <ng-template\n fdkTemplate=\"subheader\"\n *ngIf=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false as toolbarItems\"\n >\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\" class=\"!tw-justify-end\">\n <bsu-form-toolbar\n [deviceSize]=\"deviceSize\"\n [buttons]=\"toolbarItems\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [isFirefox]=\"isFirefox\"\n (toolbarClick)=\"onToolbarClick($event)\"\n #formToolbar\n ></bsu-form-toolbar>\n </fd-bar-element>\n </div>\n </ng-template> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <bnrc-form\n [formPanelCtrl]=\"formPanelCtrlr\"\n [params]=\"params\"\n (formClose)=\"onFormClose()\"\n (uiComponent)=\"onFormUiComponentReady($event)\"\n ></bnrc-form>\n </fd-dialog-body>\n <fd-dialog-footer [style.display]=\"!showFooter ? 'none' : null\">\n @for (btn of (extendToolbarItems$ | async); track btn.Id) { @if (!(btn === '-' || btn.text === '-') &&\n ((btn.isBuiltin && btn.inFooter) || btn.isWorkflow)) {\n <ng-container\n *ngTemplateOutlet=\"\n btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate;\n context: { $implicit: btn }\n \"\n ></ng-container>\n <ng-template #btnTemplate let-btn>\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-dialog-decisive-button\n [fdType]=\"btn.isWorkflow ? 'attention' : btn.design\"\n [label]=\"btn.text | bbbTranslate\"\n [glyph]=\"btn.newIcon ? btn.newIcon : null\"\n (click)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n </ng-template>\n <ng-template #dynamicBtnTemplate let-btn>\n <fd-dialog-footer-button>\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [component]=\"btn.Data.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n (btnClick)=\"btn.handler(btn, formPanelCtrlr?.Adapter?.Control)\"\n ></bnrc-dynamic-form-toolbaritem>\n </fd-dialog-footer-button>\n </ng-template>\n } } @if (!isNonePersistance && showSaveButton !== false) {\n <fd-dialog-footer-button>\n <fd-button-bar\n fd-initial-focus\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n (click)=\"onCancel()\"\n ></fd-button-bar>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;height:auto}fd-dialog-body{display:flex;flex-direction:column;height:100%;align-items:stretch;justify-content:stretch}fd-dialog-body>bnrc-form{flex-grow:1;display:flex;flex-direction:row;height:100%;justify-content:stretch;align-items:stretch}\n"] }]
|
|
10569
10569
|
}], ctorParameters: () => [{ type: i1$1.DialogService }, { type: i2.DialogParams }, { type: i2.PortalService }], propDecorators: { dialogTemplateRef: [{
|
|
10570
10570
|
type: ViewChild,
|
|
10571
10571
|
args: ['dialog', { read: TemplateRef, static: true }]
|
|
@@ -10729,11 +10729,11 @@ class UiButtonComponent extends FieldBaseComponent {
|
|
|
10729
10729
|
}
|
|
10730
10730
|
}
|
|
10731
10731
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
10732
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiButtonComponent, selector: "bsu-ui-button", host: { properties: { "style.margin": "this.designMode" } }, usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100
|
|
10732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiButtonComponent, selector: "bsu-ui-button", host: { properties: { "style.margin": "this.designMode" } }, usesInheritance: true, ngImport: i0, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n<input fd-form-control class=\"extra-input-hidden\" />\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100%}.fd-button__text{font-size:.78rem}\n"], dependencies: [{ kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i1.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10733
10733
|
}
|
|
10734
10734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiButtonComponent, decorators: [{
|
|
10735
10735
|
type: Component,
|
|
10736
|
-
args: [{ selector: 'bsu-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100
|
|
10736
|
+
args: [{ selector: 'bsu-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n (click)=\"onClick()\"\n [disabled]=\"(disable$ | async)!!\"\n fd-button\n [fdType]=\"parameters?.FdType$Caption\"\n [glyph]=\"parameters?.Icon\"\n [title]=\"label | bbbTranslate\"\n>\n @if (!parameters?.Icon && context?.Setting?.FieldIcon && !JsonExtraProp?.Icon) {\n <img [src]=\"context?.Setting.FieldIcon\" />\n } @if (label && !JsonExtraProp?.OnlyIcon && !parameters?.OnlyIcon) {\n <span class=\"fd-button__text\">{{ label | bbbTranslate }}</span>\n }\n</button>\n<input fd-form-control class=\"extra-input-hidden\" />\n", styles: [":host{display:flex;height:100%;align-items:center}button{width:100%}.fd-button__text{font-size:.78rem}\n"] }]
|
|
10737
10737
|
}], propDecorators: { designMode: [{
|
|
10738
10738
|
type: HostBinding,
|
|
10739
10739
|
args: ['style.margin']
|
|
@@ -14500,34 +14500,6 @@ const directives = [
|
|
|
14500
14500
|
];
|
|
14501
14501
|
const INIT_SAPFIORI = (rtlService, contentDensityService, themeService, portalService, domSanitizer) => () => {
|
|
14502
14502
|
rtlService.rtl.next(BarsaApi.LoginFormData.IsRtl);
|
|
14503
|
-
const YekanDigit = 'IRANYekanDigits';
|
|
14504
|
-
let fontFamily = YekanDigit;
|
|
14505
|
-
const iranSans = 'BarsaFont';
|
|
14506
|
-
if (BarsaApi.LoginFormData.Culture === 'en-US') {
|
|
14507
|
-
fontFamily = iranSans;
|
|
14508
|
-
}
|
|
14509
|
-
const css = `* {
|
|
14510
|
-
--sapFontFamily: '${iranSans}';
|
|
14511
|
-
--fdDynamicPage_Title_Font_Family: '${fontFamily}';
|
|
14512
|
-
--fdButton_Font_Family: '${iranSans}';
|
|
14513
|
-
--fdIcon_Tab_Bar_Label_Font_Family: '${iranSans}';
|
|
14514
|
-
--sapFontFamily: '${fontFamily}';
|
|
14515
|
-
--fdWizard_Label_Font_Family: '${fontFamily}';
|
|
14516
|
-
--sapFontLightFamily: '${fontFamily}';
|
|
14517
|
-
--sapFontHeaderFamily: '${fontFamily}';
|
|
14518
|
-
--_ui5_input_compact_height: 1.625rem;
|
|
14519
|
-
--sapFontSize: 0.885rem;
|
|
14520
|
-
/* --sapContent_HeaderShadow: none; */
|
|
14521
|
-
}`, head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style');
|
|
14522
|
-
head.appendChild(style);
|
|
14523
|
-
style.type = 'text/css';
|
|
14524
|
-
if (style.styleSheet) {
|
|
14525
|
-
// This is required for IE8 and below.
|
|
14526
|
-
style.styleSheet.cssText = css;
|
|
14527
|
-
}
|
|
14528
|
-
else {
|
|
14529
|
-
style.appendChild(document.createTextNode(css));
|
|
14530
|
-
}
|
|
14531
14503
|
portalService.userPortalSettings$.pipe().subscribe((userPortalSettings) => {
|
|
14532
14504
|
const userSettings = userPortalSettings['UserPortalSettings'];
|
|
14533
14505
|
if (!userSettings) {
|