barsa-develop-components 2.2.73 → 2.2.75
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/fesm2022/barsa-develop-components.mjs +205 -204
- package/fesm2022/barsa-develop-components.mjs.map +1 -1
- package/lib/avatar/avatar.component.d.ts +1 -1
- package/lib/form-report-view/form-report-view.component.d.ts +1 -1
- package/lib/geographic-location/geographic-location.component.d.ts +1 -1
- package/lib/report-button-view/report-button-view.component.d.ts +1 -1
- package/package.json +3 -5
- package/esm2022/barsa-develop-components.mjs +0 -5
- package/esm2022/lib/accept-reject/accept-reject.component.mjs +0 -68
- package/esm2022/lib/avatar/avatar.component.mjs +0 -29
- package/esm2022/lib/barcode-format-pipe.mjs +0 -25
- package/esm2022/lib/barcode-reader/barcode-reader.component.mjs +0 -62
- package/esm2022/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +0 -82
- package/esm2022/lib/barcode-reader-video/barcode-reader-video.component.mjs +0 -66
- package/esm2022/lib/barcode.service.mjs +0 -330
- package/esm2022/lib/barsa-develop-components.module.mjs +0 -292
- package/esm2022/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +0 -104
- package/esm2022/lib/barsa-documents/barsa-documents.component.mjs +0 -159
- package/esm2022/lib/barsa-geographic-location/barsa-geographic-location.component.mjs +0 -173
- package/esm2022/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +0 -50
- package/esm2022/lib/card-content-line-chart/card-content-line-chart.component.mjs +0 -36
- package/esm2022/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +0 -19
- package/esm2022/lib/card-header-kpi/card-header-kpi.component.mjs +0 -40
- package/esm2022/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +0 -45
- package/esm2022/lib/checkbox-button/checkbox-button.component.mjs +0 -23
- package/esm2022/lib/column-chip/column-chip.component.mjs +0 -44
- package/esm2022/lib/column-form-viewer/column-form-viewer.component.mjs +0 -88
- package/esm2022/lib/column-progressbar/column-progressbar.component.mjs +0 -87
- package/esm2022/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +0 -18
- package/esm2022/lib/footer/footer.component.mjs +0 -43
- package/esm2022/lib/form-card/form-card.component.mjs +0 -17
- package/esm2022/lib/form-chart-content/form-chart-content.component.mjs +0 -36
- package/esm2022/lib/form-content-quick-view/form-content-quick-view.component.mjs +0 -102
- package/esm2022/lib/form-report-view/form-report-view.component.mjs +0 -25
- package/esm2022/lib/form-report-view-item/form-report-view-item.component.mjs +0 -45
- package/esm2022/lib/g4b-details/g4b-details.component.mjs +0 -28
- package/esm2022/lib/g4b-estelam/g4b-estelam.component.mjs +0 -30
- package/esm2022/lib/geographic-location/geographic-location.component.mjs +0 -88
- package/esm2022/lib/login-form/login-form.component.mjs +0 -55
- package/esm2022/lib/login-social-conncetions/login-social-conncetions.component.mjs +0 -30
- package/esm2022/lib/master-detail-card-form/master-detail-card-form.component.mjs +0 -17
- package/esm2022/lib/media-file-uploader/media-file-uploader.component.mjs +0 -238
- package/esm2022/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +0 -52
- package/esm2022/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +0 -24
- package/esm2022/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +0 -23
- package/esm2022/lib/models/document-item.mjs +0 -2
- package/esm2022/lib/models/documents-setting.mjs +0 -2
- package/esm2022/lib/models/form-report-view-setting.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -8
- package/esm2022/lib/models/micro-process-flow-view-setting.mjs +0 -2
- package/esm2022/lib/models/person.mjs +0 -2
- package/esm2022/lib/models/service-desk-view-of-services-setting.mjs +0 -2
- package/esm2022/lib/models/tab-process-view-setting.mjs +0 -2
- package/esm2022/lib/pipes/datasource-to-flow-item.mjs +0 -23
- package/esm2022/lib/pipes/index.mjs +0 -3
- package/esm2022/lib/pipes/mo-list-to-flow-item.pipe.mjs +0 -23
- package/esm2022/lib/query-string-form-observable/query-string-form-observable.component.mjs +0 -37
- package/esm2022/lib/query-string-observable/query-string-observable.component.mjs +0 -22
- package/esm2022/lib/report-button-view/report-button-view.component.mjs +0 -37
- package/esm2022/lib/report-line-chart-view/report-line-chart-view.component.mjs +0 -12
- package/esm2022/lib/report-tab-view/report-tab-view.component.mjs +0 -27
- package/esm2022/lib/resend-verification-code/resend-verification-code.component.mjs +0 -62
- package/esm2022/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +0 -28
- package/esm2022/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +0 -110
- package/esm2022/lib/service-desk-header/service-desk-header.component.mjs +0 -249
- package/esm2022/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +0 -142
- package/esm2022/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +0 -37
- package/esm2022/lib/setting-form/setting-form.component.mjs +0 -64
- package/esm2022/lib/subform-in-row-report/subform-in-row-report.component.mjs +0 -73
- package/esm2022/lib/tab-process-view/tab-process-view.component.mjs +0 -48
- package/esm2022/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +0 -16
- package/esm2022/lib/timer-count-down/timer-count-down.component.mjs +0 -104
- package/esm2022/lib/token-report-view/token-report-view.component.mjs +0 -27
- package/esm2022/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +0 -25
- package/esm2022/lib/ui-num-rate/ui-num-rate.component.mjs +0 -41
- package/esm2022/lib/ui-person/ui-person.component.mjs +0 -160
- package/esm2022/lib/ui-person/ui-person.pipe.mjs +0 -41
- package/esm2022/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +0 -17
- package/esm2022/lib/ui-text-field-search/ui-text-field-search.component.mjs +0 -42
- package/esm2022/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +0 -69
- package/esm2022/public-api.mjs +0 -64
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { FundamentalNgxCoreModule } from '@fundamental-ngx/core';
|
|
5
|
-
import { BarsaNovinRayCoreModule, BaseModule } from 'barsa-novin-ray-core';
|
|
6
|
-
import { BarsaSapUiModule } from 'barsa-sap-ui';
|
|
7
|
-
import { BarsaTilesModule } from 'barsa-tiles';
|
|
8
|
-
import { BarsaEchartsModule } from 'barsa-echarts';
|
|
9
|
-
import { LoginFormComponent } from './login-form/login-form.component';
|
|
10
|
-
import { LoginSocialConncetionsComponent } from './login-social-conncetions/login-social-conncetions.component';
|
|
11
|
-
import { UiPersonComponent } from './ui-person/ui-person.component';
|
|
12
|
-
import { UiPersonPipe } from './ui-person/ui-person.pipe';
|
|
13
|
-
import { BarcodeReaderComponent } from './barcode-reader/barcode-reader.component';
|
|
14
|
-
import { BarcodeReaderDialogComponent } from './barcode-reader-dialog/barcode-reader-dialog.component';
|
|
15
|
-
import { BarcodeReaderVideoComponent } from './barcode-reader-video/barcode-reader-video.component';
|
|
16
|
-
import { UserMediaBaseService, WebBarcodeService } from './barcode.service';
|
|
17
|
-
import { SettingFormComponent } from './setting-form/setting-form.component';
|
|
18
|
-
import { MicroProcessFlowViewComponent } from './micro-process-flow-view/micro-process-flow-view.component';
|
|
19
|
-
import { UiEnumSegmentedButtonComponent } from './ui-enum-segmented-button/ui-enum-segmented-button.component';
|
|
20
|
-
import { TabProcessViewComponent } from './tab-process-view/tab-process-view.component';
|
|
21
|
-
import { UiTextFieldSearchComponent } from './ui-text-field-search/ui-text-field-search.component';
|
|
22
|
-
import { BarcodeFormatPipe } from './barcode-format-pipe';
|
|
23
|
-
import { ServiceDeskHeaderComponent } from './service-desk-header/service-desk-header.component';
|
|
24
|
-
import { CardContentImageAndTitleComponent } from './card-content-image-and-title/card-content-image-and-title.component';
|
|
25
|
-
import { CardHeaderLogoTitleSubtitleComponent } from './card-header-logo-title-subtitle/card-header-logo-title-subtitle.component';
|
|
26
|
-
import { FormContentQuickViewComponent } from './form-content-quick-view/form-content-quick-view.component';
|
|
27
|
-
import { ServiceDeskServcieDetailComponent } from './service-desk-servcie-detail/service-desk-servcie-detail.component';
|
|
28
|
-
import { ServiceDeskViewOfServicesComponent } from './service-desk-view-of-services/service-desk-view-of-services.component';
|
|
29
|
-
import { ServiceDeskCardContentMojavezhayAkhzShodeComponent } from './service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component';
|
|
30
|
-
import { CardHeaderBigImageTitleAndSubtitleComponent } from './card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component';
|
|
31
|
-
import { ServiceDeskFormLayoutContentMojavezComponent } from './service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component';
|
|
32
|
-
import { UlvContextMenuItemShowFileContentComponent } from './ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component';
|
|
33
|
-
import { ResendVerificationCodeComponent } from './resend-verification-code/resend-verification-code.component';
|
|
34
|
-
import { CheckboxButtonComponent } from './checkbox-button/checkbox-button.component';
|
|
35
|
-
import { ReportTabViewComponent } from './report-tab-view/report-tab-view.component';
|
|
36
|
-
import { ReportLineChartViewComponent } from './report-line-chart-view/report-line-chart-view.component';
|
|
37
|
-
import { CardHeaderKpiComponent } from './card-header-kpi/card-header-kpi.component';
|
|
38
|
-
import { CardContentLineChartComponent } from './card-content-line-chart/card-content-line-chart.component';
|
|
39
|
-
import { FormChartContentComponent } from './form-chart-content/form-chart-content.component';
|
|
40
|
-
import { TableViewVerticalColumnsComponent } from './table-view-vertical-columns/table-view-vertical-columns.component';
|
|
41
|
-
import { QueryStringObservableComponent } from './query-string-observable/query-string-observable.component';
|
|
42
|
-
import { QueryStringFormObservableComponent } from './query-string-form-observable/query-string-form-observable.component';
|
|
43
|
-
import { G4bDetailsComponent } from './g4b-details/g4b-details.component';
|
|
44
|
-
import { AvatarComponent } from './avatar/avatar.component';
|
|
45
|
-
import { G4bEstelamComponent } from './g4b-estelam/g4b-estelam.component';
|
|
46
|
-
import { TimerCountDownComponent } from './timer-count-down/timer-count-down.component';
|
|
47
|
-
import { MoInfoMicroProccessFlowComponent } from './mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component';
|
|
48
|
-
import { MicroProccessFlowComponent } from './micro-proccess-flow/micro-proccess-flow.component';
|
|
49
|
-
import { EnumInfoMicroProccessFlowComponent } from './enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component';
|
|
50
|
-
import { DataSourceToFlowItemPipe, MoListToFlowItemPipe } from './pipes';
|
|
51
|
-
import { UiPicturesCarouselComponent } from './ui-pictures-carousel/ui-pictures-carousel.component';
|
|
52
|
-
import { UiNumRateComponent } from './ui-num-rate/ui-num-rate.component';
|
|
53
|
-
import { MediaFileUploaderComponent } from './media-file-uploader/media-file-uploader.component';
|
|
54
|
-
import { SubformInRowReportComponent } from './subform-in-row-report/subform-in-row-report.component';
|
|
55
|
-
import { MasterDetailCardFormComponent } from './master-detail-card-form/master-detail-card-form.component';
|
|
56
|
-
import { ReportButtonViewComponent } from './report-button-view/report-button-view.component';
|
|
57
|
-
import { BarsaDocumentsComponent } from './barsa-documents/barsa-documents.component';
|
|
58
|
-
import { BarsaDocumentListItemComponent } from './barsa-document-list-item/barsa-document-list-item.component';
|
|
59
|
-
import { AcceptRejectComponent } from './accept-reject/accept-reject.component';
|
|
60
|
-
import { FooterComponent } from './footer/footer.component';
|
|
61
|
-
import { GeographicLocationComponent } from './geographic-location/geographic-location.component';
|
|
62
|
-
import { BarsaGeographicLocationComponent } from './barsa-geographic-location/barsa-geographic-location.component';
|
|
63
|
-
import { TokenReportViewComponent } from './token-report-view/token-report-view.component';
|
|
64
|
-
import { ColumnFormViewerComponent } from './column-form-viewer/column-form-viewer.component';
|
|
65
|
-
import { PlatformInputGroupModule } from '@fundamental-ngx/platform';
|
|
66
|
-
import { FormReportViewComponent } from './form-report-view/form-report-view.component';
|
|
67
|
-
import { FormReportViewItemComponent } from './form-report-view-item/form-report-view-item.component';
|
|
68
|
-
import { FormCardComponent } from './form-card/form-card.component';
|
|
69
|
-
import { ColumnProgressbarComponent } from './column-progressbar/column-progressbar.component';
|
|
70
|
-
import { ColumnChipComponent } from '../public-api';
|
|
71
|
-
import * as i0 from "@angular/core";
|
|
72
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
73
|
-
const components = [
|
|
74
|
-
LoginFormComponent,
|
|
75
|
-
LoginSocialConncetionsComponent,
|
|
76
|
-
UiPersonComponent,
|
|
77
|
-
BarcodeReaderComponent,
|
|
78
|
-
BarcodeReaderDialogComponent,
|
|
79
|
-
BarcodeReaderVideoComponent,
|
|
80
|
-
SettingFormComponent,
|
|
81
|
-
MicroProcessFlowViewComponent,
|
|
82
|
-
UiEnumSegmentedButtonComponent,
|
|
83
|
-
TabProcessViewComponent,
|
|
84
|
-
UiTextFieldSearchComponent,
|
|
85
|
-
ServiceDeskHeaderComponent,
|
|
86
|
-
CardContentImageAndTitleComponent,
|
|
87
|
-
CardHeaderLogoTitleSubtitleComponent,
|
|
88
|
-
FormContentQuickViewComponent,
|
|
89
|
-
ServiceDeskServcieDetailComponent,
|
|
90
|
-
ServiceDeskViewOfServicesComponent,
|
|
91
|
-
ServiceDeskCardContentMojavezhayAkhzShodeComponent,
|
|
92
|
-
CardHeaderBigImageTitleAndSubtitleComponent,
|
|
93
|
-
ServiceDeskFormLayoutContentMojavezComponent,
|
|
94
|
-
UlvContextMenuItemShowFileContentComponent,
|
|
95
|
-
ResendVerificationCodeComponent,
|
|
96
|
-
CheckboxButtonComponent,
|
|
97
|
-
ReportTabViewComponent,
|
|
98
|
-
ReportLineChartViewComponent,
|
|
99
|
-
CardHeaderKpiComponent,
|
|
100
|
-
CardContentLineChartComponent,
|
|
101
|
-
FormChartContentComponent,
|
|
102
|
-
TableViewVerticalColumnsComponent,
|
|
103
|
-
QueryStringObservableComponent,
|
|
104
|
-
QueryStringFormObservableComponent,
|
|
105
|
-
G4bDetailsComponent,
|
|
106
|
-
AvatarComponent,
|
|
107
|
-
G4bEstelamComponent,
|
|
108
|
-
TimerCountDownComponent,
|
|
109
|
-
MoInfoMicroProccessFlowComponent,
|
|
110
|
-
MicroProccessFlowComponent,
|
|
111
|
-
EnumInfoMicroProccessFlowComponent,
|
|
112
|
-
UiPicturesCarouselComponent,
|
|
113
|
-
UiNumRateComponent,
|
|
114
|
-
MediaFileUploaderComponent,
|
|
115
|
-
SubformInRowReportComponent,
|
|
116
|
-
MasterDetailCardFormComponent,
|
|
117
|
-
ReportButtonViewComponent,
|
|
118
|
-
BarsaDocumentsComponent,
|
|
119
|
-
BarsaDocumentListItemComponent,
|
|
120
|
-
AcceptRejectComponent,
|
|
121
|
-
FooterComponent,
|
|
122
|
-
GeographicLocationComponent,
|
|
123
|
-
BarsaGeographicLocationComponent,
|
|
124
|
-
TokenReportViewComponent,
|
|
125
|
-
ColumnFormViewerComponent,
|
|
126
|
-
FormReportViewComponent,
|
|
127
|
-
FormReportViewItemComponent,
|
|
128
|
-
FormCardComponent,
|
|
129
|
-
ColumnProgressbarComponent,
|
|
130
|
-
ColumnChipComponent
|
|
131
|
-
];
|
|
132
|
-
const pipes = [UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe];
|
|
133
|
-
export class BarsaDevelopComponentsModule extends BaseModule {
|
|
134
|
-
constructor(dcm, cfr) {
|
|
135
|
-
super(dcm, cfr, 'BarsaDevelopComponentsModule');
|
|
136
|
-
this.dcm = dcm;
|
|
137
|
-
this.cfr = cfr;
|
|
138
|
-
this.dynamicComponents = [...components];
|
|
139
|
-
}
|
|
140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
141
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, declarations: [LoginFormComponent,
|
|
142
|
-
LoginSocialConncetionsComponent,
|
|
143
|
-
UiPersonComponent,
|
|
144
|
-
BarcodeReaderComponent,
|
|
145
|
-
BarcodeReaderDialogComponent,
|
|
146
|
-
BarcodeReaderVideoComponent,
|
|
147
|
-
SettingFormComponent,
|
|
148
|
-
MicroProcessFlowViewComponent,
|
|
149
|
-
UiEnumSegmentedButtonComponent,
|
|
150
|
-
TabProcessViewComponent,
|
|
151
|
-
UiTextFieldSearchComponent,
|
|
152
|
-
ServiceDeskHeaderComponent,
|
|
153
|
-
CardContentImageAndTitleComponent,
|
|
154
|
-
CardHeaderLogoTitleSubtitleComponent,
|
|
155
|
-
FormContentQuickViewComponent,
|
|
156
|
-
ServiceDeskServcieDetailComponent,
|
|
157
|
-
ServiceDeskViewOfServicesComponent,
|
|
158
|
-
ServiceDeskCardContentMojavezhayAkhzShodeComponent,
|
|
159
|
-
CardHeaderBigImageTitleAndSubtitleComponent,
|
|
160
|
-
ServiceDeskFormLayoutContentMojavezComponent,
|
|
161
|
-
UlvContextMenuItemShowFileContentComponent,
|
|
162
|
-
ResendVerificationCodeComponent,
|
|
163
|
-
CheckboxButtonComponent,
|
|
164
|
-
ReportTabViewComponent,
|
|
165
|
-
ReportLineChartViewComponent,
|
|
166
|
-
CardHeaderKpiComponent,
|
|
167
|
-
CardContentLineChartComponent,
|
|
168
|
-
FormChartContentComponent,
|
|
169
|
-
TableViewVerticalColumnsComponent,
|
|
170
|
-
QueryStringObservableComponent,
|
|
171
|
-
QueryStringFormObservableComponent,
|
|
172
|
-
G4bDetailsComponent,
|
|
173
|
-
AvatarComponent,
|
|
174
|
-
G4bEstelamComponent,
|
|
175
|
-
TimerCountDownComponent,
|
|
176
|
-
MoInfoMicroProccessFlowComponent,
|
|
177
|
-
MicroProccessFlowComponent,
|
|
178
|
-
EnumInfoMicroProccessFlowComponent,
|
|
179
|
-
UiPicturesCarouselComponent,
|
|
180
|
-
UiNumRateComponent,
|
|
181
|
-
MediaFileUploaderComponent,
|
|
182
|
-
SubformInRowReportComponent,
|
|
183
|
-
MasterDetailCardFormComponent,
|
|
184
|
-
ReportButtonViewComponent,
|
|
185
|
-
BarsaDocumentsComponent,
|
|
186
|
-
BarsaDocumentListItemComponent,
|
|
187
|
-
AcceptRejectComponent,
|
|
188
|
-
FooterComponent,
|
|
189
|
-
GeographicLocationComponent,
|
|
190
|
-
BarsaGeographicLocationComponent,
|
|
191
|
-
TokenReportViewComponent,
|
|
192
|
-
ColumnFormViewerComponent,
|
|
193
|
-
FormReportViewComponent,
|
|
194
|
-
FormReportViewItemComponent,
|
|
195
|
-
FormCardComponent,
|
|
196
|
-
ColumnProgressbarComponent,
|
|
197
|
-
ColumnChipComponent, UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe], imports: [CommonModule,
|
|
198
|
-
BarsaNovinRayCoreModule,
|
|
199
|
-
ReactiveFormsModule,
|
|
200
|
-
BarsaSapUiModule,
|
|
201
|
-
BarsaEchartsModule,
|
|
202
|
-
BarsaTilesModule,
|
|
203
|
-
FundamentalNgxCoreModule,
|
|
204
|
-
PlatformInputGroupModule,
|
|
205
|
-
FormsModule], exports: [LoginFormComponent,
|
|
206
|
-
LoginSocialConncetionsComponent,
|
|
207
|
-
UiPersonComponent,
|
|
208
|
-
BarcodeReaderComponent,
|
|
209
|
-
BarcodeReaderDialogComponent,
|
|
210
|
-
BarcodeReaderVideoComponent,
|
|
211
|
-
SettingFormComponent,
|
|
212
|
-
MicroProcessFlowViewComponent,
|
|
213
|
-
UiEnumSegmentedButtonComponent,
|
|
214
|
-
TabProcessViewComponent,
|
|
215
|
-
UiTextFieldSearchComponent,
|
|
216
|
-
ServiceDeskHeaderComponent,
|
|
217
|
-
CardContentImageAndTitleComponent,
|
|
218
|
-
CardHeaderLogoTitleSubtitleComponent,
|
|
219
|
-
FormContentQuickViewComponent,
|
|
220
|
-
ServiceDeskServcieDetailComponent,
|
|
221
|
-
ServiceDeskViewOfServicesComponent,
|
|
222
|
-
ServiceDeskCardContentMojavezhayAkhzShodeComponent,
|
|
223
|
-
CardHeaderBigImageTitleAndSubtitleComponent,
|
|
224
|
-
ServiceDeskFormLayoutContentMojavezComponent,
|
|
225
|
-
UlvContextMenuItemShowFileContentComponent,
|
|
226
|
-
ResendVerificationCodeComponent,
|
|
227
|
-
CheckboxButtonComponent,
|
|
228
|
-
ReportTabViewComponent,
|
|
229
|
-
ReportLineChartViewComponent,
|
|
230
|
-
CardHeaderKpiComponent,
|
|
231
|
-
CardContentLineChartComponent,
|
|
232
|
-
FormChartContentComponent,
|
|
233
|
-
TableViewVerticalColumnsComponent,
|
|
234
|
-
QueryStringObservableComponent,
|
|
235
|
-
QueryStringFormObservableComponent,
|
|
236
|
-
G4bDetailsComponent,
|
|
237
|
-
AvatarComponent,
|
|
238
|
-
G4bEstelamComponent,
|
|
239
|
-
TimerCountDownComponent,
|
|
240
|
-
MoInfoMicroProccessFlowComponent,
|
|
241
|
-
MicroProccessFlowComponent,
|
|
242
|
-
EnumInfoMicroProccessFlowComponent,
|
|
243
|
-
UiPicturesCarouselComponent,
|
|
244
|
-
UiNumRateComponent,
|
|
245
|
-
MediaFileUploaderComponent,
|
|
246
|
-
SubformInRowReportComponent,
|
|
247
|
-
MasterDetailCardFormComponent,
|
|
248
|
-
ReportButtonViewComponent,
|
|
249
|
-
BarsaDocumentsComponent,
|
|
250
|
-
BarsaDocumentListItemComponent,
|
|
251
|
-
AcceptRejectComponent,
|
|
252
|
-
FooterComponent,
|
|
253
|
-
GeographicLocationComponent,
|
|
254
|
-
BarsaGeographicLocationComponent,
|
|
255
|
-
TokenReportViewComponent,
|
|
256
|
-
ColumnFormViewerComponent,
|
|
257
|
-
FormReportViewComponent,
|
|
258
|
-
FormReportViewItemComponent,
|
|
259
|
-
FormCardComponent,
|
|
260
|
-
ColumnProgressbarComponent,
|
|
261
|
-
ColumnChipComponent] }); }
|
|
262
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, providers: [UserMediaBaseService, WebBarcodeService], imports: [CommonModule,
|
|
263
|
-
BarsaNovinRayCoreModule,
|
|
264
|
-
ReactiveFormsModule,
|
|
265
|
-
BarsaSapUiModule,
|
|
266
|
-
BarsaEchartsModule,
|
|
267
|
-
BarsaTilesModule,
|
|
268
|
-
FundamentalNgxCoreModule,
|
|
269
|
-
PlatformInputGroupModule,
|
|
270
|
-
FormsModule] }); }
|
|
271
|
-
}
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, decorators: [{
|
|
273
|
-
type: NgModule,
|
|
274
|
-
args: [{
|
|
275
|
-
declarations: [...components, ...pipes],
|
|
276
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
|
|
277
|
-
imports: [
|
|
278
|
-
CommonModule,
|
|
279
|
-
BarsaNovinRayCoreModule,
|
|
280
|
-
ReactiveFormsModule,
|
|
281
|
-
BarsaSapUiModule,
|
|
282
|
-
BarsaEchartsModule,
|
|
283
|
-
BarsaTilesModule,
|
|
284
|
-
FundamentalNgxCoreModule,
|
|
285
|
-
PlatformInputGroupModule,
|
|
286
|
-
FormsModule
|
|
287
|
-
],
|
|
288
|
-
providers: [UserMediaBaseService, WebBarcodeService],
|
|
289
|
-
exports: [...components]
|
|
290
|
-
}]
|
|
291
|
-
}], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixzQkFBc0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQs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eEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLCBCYXNlTW9kdWxlLCBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgQmFyc2FTYXBVaU1vZHVsZSB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XHJcbmltcG9ydCB7IEJhcnNhVGlsZXNNb2R1bGUgfSBmcm9tICdiYXJzYS10aWxlcyc7XHJcbmltcG9ydCB7IEJhcnNhRWNoYXJ0c01vZHVsZSB9IGZyb20gJ2JhcnNhLWVjaGFydHMnO1xyXG5cclxuaW1wb3J0IHsgTG9naW5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5Tb2NpYWxDb25uY2V0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vbG9naW4tc29jaWFsLWNvbm5jZXRpb25zL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktcGVyc29uL3VpLXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVBlcnNvblBpcGUgfSBmcm9tICcuL3VpLXBlcnNvbi91aS1wZXJzb24ucGlwZSc7XHJcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyL2JhcmNvZGUtcmVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyY29kZVJlYWRlclZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJjb2RlLXJlYWRlci12aWRlby9iYXJjb2RlLXJlYWRlci12aWRlby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyTWVkaWFCYXNlU2VydmljZSwgV2ViQmFyY29kZVNlcnZpY2UgfSBmcm9tICcuL2JhcmNvZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNldHRpbmdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWZvcm0vc2V0dGluZy1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1pY3JvUHJvY2Vzc0Zsb3dWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9taWNyby1wcm9jZXNzLWZsb3ctdmlldy9taWNyby1wcm9jZXNzLWZsb3ctdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUVudW1TZWdtZW50ZWRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLWVudW0tc2VnbWVudGVkLWJ1dHRvbi91aS1lbnVtLXNlZ21lbnRlZC1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFiUHJvY2Vzc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wcm9jZXNzLXZpZXcvdGFiLXByb2Nlc3Mtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaVRleHRGaWVsZFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vdWktdGV4dC1maWVsZC1zZWFyY2gvdWktdGV4dC1maWVsZC1zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyY29kZUZvcm1hdFBpcGUgfSBmcm9tICcuL2JhcmNvZGUtZm9ybWF0LXBpcGUnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRDb250ZW50SW1hZ2VBbmRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJMb2dvVGl0bGVTdWJ0aXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXItbG9nby10aXRsZS1zdWJ0aXRsZS9jYXJkLWhlYWRlci1sb2dvLXRpdGxlLXN1YnRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza1NlcnZjaWVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1zZXJ2Y2llLWRldGFpbC9zZXJ2aWNlLWRlc2stc2VydmNpZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VydmljZURlc2tWaWV3T2ZTZXJ2aWNlc0NvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMvc2VydmljZS1kZXNrLXZpZXctb2Ytc2VydmljZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VydmljZURlc2tDYXJkQ29udGVudE1vamF2ZXpoYXlBa2h6U2hvZGVDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtaGVhZGVyLWJpZy1pbWFnZS10aXRsZS1hbmQtc3VidGl0bGUvY2FyZC1oZWFkZXItYmlnLWltYWdlLXRpdGxlLWFuZC1zdWJ0aXRsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza0Zvcm1MYXlvdXRDb250ZW50TW9qYXZlekNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWZvcm0tbGF5b3V0LWNvbnRlbnQtbW9qYXZlei9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWx2LWNvbnRleHQtbWVudS1pdGVtLXNob3ctZmlsZS1jb250ZW50L3Vsdi1jb250ZXh0LW1lbnUtaXRlbS1zaG93LWZpbGUtY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNlbmRWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNlbmQtdmVyaWZpY2F0aW9uLWNvZGUvcmVzZW5kLXZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC1idXR0b24vY2hlY2tib3gtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydFRhYlZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC10YWItdmlldy9yZXBvcnQtdGFiLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0TGluZUNoYXJ0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWxpbmUtY2hhcnQtdmlldy9yZXBvcnQtbGluZS1jaGFydC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhcmRIZWFkZXJLcGlDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtaGVhZGVyLWtwaS9jYXJkLWhlYWRlci1rcGkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0L2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1DaGFydENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY2hhcnQtY29udGVudC9mb3JtLWNoYXJ0LWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVWaWV3VmVydGljYWxDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS12aWV3LXZlcnRpY2FsLWNvbHVtbnMvdGFibGUtdmlldy12ZXJ0aWNhbC1jb2x1bW5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLW9ic2VydmFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlcnlTdHJpbmdGb3JtT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLWZvcm0tb2JzZXJ2YWJsZS9xdWVyeS1zdHJpbmctZm9ybS1vYnNlcnZhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEc0YkRldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2c0Yi1kZXRhaWxzL2c0Yi1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHNGJFc3RlbGFtQ29tcG9uZW50IH0gZnJvbSAnLi9nNGItZXN0ZWxhbS9nNGItZXN0ZWxhbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lckNvdW50RG93bkNvbXBvbmVudCB9IGZyb20gJy4vdGltZXItY291bnQtZG93bi90aW1lci1jb3VudC1kb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9tby1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvbW8taW5mby1taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9taWNyby1wcm9jY2Vzcy1mbG93L21pY3JvLXByb2NjZXNzLWZsb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUluZm9NaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vZW51bS1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvZW51bS1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VUb0Zsb3dJdGVtUGlwZSwgTW9MaXN0VG9GbG93SXRlbVBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuaW1wb3J0IHsgVWlQaWN0dXJlc0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi91aS1waWN0dXJlcy1jYXJvdXNlbC91aS1waWN0dXJlcy1jYXJvdXNlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaU51bVJhdGVDb21wb25lbnQgfSBmcm9tICcuL3VpLW51bS1yYXRlL3VpLW51bS1yYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lZGlhRmlsZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9tZWRpYS1maWxlLXVwbG9hZGVyL21lZGlhLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViZm9ybUluUm93UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9zdWJmb3JtLWluLXJvdy1yZXBvcnQvc3ViZm9ybS1pbi1yb3ctcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRCdXR0b25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtYnV0dG9uLXZpZXcvcmVwb3J0LWJ1dHRvbi12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1kb2N1bWVudHMvYmFyc2EtZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NlcHRSZWplY3RDb21wb25lbnQgfSBmcm9tICcuL2FjY2VwdC1yZWplY3QvYWNjZXB0LXJlamVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9ncmFwaGljLWxvY2F0aW9uL2dlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWdlb2dyYXBoaWMtbG9jYXRpb24vYmFyc2EtZ2VvZ3JhcGhpYy1sb2NhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2tlblJlcG9ydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3Rva2VuLXJlcG9ydC12aWV3L3Rva2VuLXJlcG9ydC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbkZvcm1WaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1mb3JtLXZpZXdlci9jb2x1bW4tZm9ybS12aWV3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGxhdGZvcm1JbnB1dEdyb3VwTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEZvcm1SZXBvcnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3L2Zvcm0tcmVwb3J0LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3LWl0ZW0vZm9ybS1yZXBvcnQtdmlldy1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNhcmQvZm9ybS1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtblByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tcHJvZ3Jlc3NiYXIvY29sdW1uLXByb2dyZXNzYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbkNoaXBDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcclxuXHJcbmNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXHJcbiAgICBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50LFxyXG4gICAgVWlQZXJzb25Db21wb25lbnQsXHJcbiAgICBCYXJjb2RlUmVhZGVyQ29tcG9uZW50LFxyXG4gICAgQmFyY29kZVJlYWRlckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIEJhcmNvZGVSZWFkZXJWaWRlb0NvbXBvbmVudCxcclxuICAgIFNldHRpbmdGb3JtQ29tcG9uZW50LFxyXG4gICAgTWljcm9Qcm9jZXNzRmxvd1ZpZXdDb21wb25lbnQsXHJcbiAgICBVaUVudW1TZWdtZW50ZWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCxcclxuICAgIFVpVGV4dEZpZWxkU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VydmljZURlc2tIZWFkZXJDb21wb25lbnQsXHJcbiAgICBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQsXHJcbiAgICBDYXJkSGVhZGVyTG9nb1RpdGxlU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udGVudFF1aWNrVmlld0NvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrVmlld09mU2VydmljZXNDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0NhcmRDb250ZW50TW9qYXZlemhheUFraHpTaG9kZUNvbXBvbmVudCxcclxuICAgIENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0Zvcm1MYXlvdXRDb250ZW50TW9qYXZlekNvbXBvbmVudCxcclxuICAgIFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCxcclxuICAgIFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXHJcbiAgICBDaGVja2JveEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFJlcG9ydFRhYlZpZXdDb21wb25lbnQsXHJcbiAgICBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50LFxyXG4gICAgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCxcclxuICAgIENhcmRDb250ZW50TGluZUNoYXJ0Q29tcG9uZW50LFxyXG4gICAgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCxcclxuICAgIFRhYmxlVmlld1ZlcnRpY2FsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQsXHJcbiAgICBHNGJEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgRzRiRXN0ZWxhbUNvbXBvbmVudCxcclxuICAgIFRpbWVyQ291bnREb3duQ29tcG9uZW50LFxyXG4gICAgTW9JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcclxuICAgIEVudW1JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQsXHJcbiAgICBVaU51bVJhdGVDb21wb25lbnQsXHJcbiAgICBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFN1YmZvcm1JblJvd1JlcG9ydENvbXBvbmVudCxcclxuICAgIE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50LFxyXG4gICAgUmVwb3J0QnV0dG9uVmlld0NvbXBvbmVudCxcclxuICAgIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgQWNjZXB0UmVqZWN0Q29tcG9uZW50LFxyXG4gICAgRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgQmFyc2FHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQsXHJcbiAgICBUb2tlblJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBDb2x1bW5Gb3JtVmlld2VyQ29tcG9uZW50LFxyXG4gICAgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBGb3JtUmVwb3J0Vmlld0l0ZW1Db21wb25lbnQsXHJcbiAgICBGb3JtQ2FyZENvbXBvbmVudCxcclxuICAgIENvbHVtblByb2dyZXNzYmFyQ29tcG9uZW50LFxyXG4gICAgQ29sdW1uQ2hpcENvbXBvbmVudFxyXG5dO1xyXG5jb25zdCBwaXBlcyA9IFtVaVBlcnNvblBpcGUsIEJhcmNvZGVGb3JtYXRQaXBlLCBNb0xpc3RUb0Zsb3dJdGVtUGlwZSwgRGF0YVNvdXJjZVRvRmxvd0l0ZW1QaXBlXTtcclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzXSxcclxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxyXG4gICAgICAgIEJhcnNhRWNoYXJ0c01vZHVsZSxcclxuICAgICAgICBCYXJzYVRpbGVzTW9kdWxlLFxyXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcclxuICAgICAgICBQbGF0Zm9ybUlucHV0R3JvdXBNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtVc2VyTWVkaWFCYXNlU2VydmljZSwgV2ViQmFyY29kZVNlcnZpY2VdLFxyXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgICAgc3VwZXIoZGNtLCBjZnIsICdCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { AudioMimeType, BaseComponent, ImageMimeType, PreventDefaulEvent, VideoMimeType, AllFilesMimeType, isImage, getIcon } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "barsa-sap-ui";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/action-sheet";
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/avatar";
|
|
9
|
-
import * as i6 from "@fundamental-ngx/core/button";
|
|
10
|
-
import * as i7 from "@fundamental-ngx/core/file-uploader";
|
|
11
|
-
import * as i8 from "@fundamental-ngx/core/form";
|
|
12
|
-
import * as i9 from "@fundamental-ngx/core/inline-help";
|
|
13
|
-
import * as i10 from "@fundamental-ngx/core/object-status";
|
|
14
|
-
import * as i11 from "@fundamental-ngx/core/table";
|
|
15
|
-
import * as i12 from "@fundamental-ngx/core/toolbar";
|
|
16
|
-
export class BarsaDocumentListItemComponent extends BaseComponent {
|
|
17
|
-
constructor(_cdr, _picFieldSrc) {
|
|
18
|
-
super();
|
|
19
|
-
this._cdr = _cdr;
|
|
20
|
-
this._picFieldSrc = _picFieldSrc;
|
|
21
|
-
this.statusChanged = new EventEmitter();
|
|
22
|
-
this.rejectTextChange = new EventEmitter();
|
|
23
|
-
this.fileSelectionChange = new EventEmitter();
|
|
24
|
-
this.removeFile = new EventEmitter();
|
|
25
|
-
this.fullscreen = new EventEmitter();
|
|
26
|
-
this.download = new EventEmitter();
|
|
27
|
-
this.downloadAll = new EventEmitter();
|
|
28
|
-
this.hasFiles = false;
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
super.ngOnInit();
|
|
32
|
-
const documentItem = this.documentItem;
|
|
33
|
-
documentItem.$ValidExtensions = `
|
|
34
|
-
${documentItem.SupportImage ? ImageMimeType : ''},
|
|
35
|
-
${documentItem.SupportAudio ? AudioMimeType : ''},
|
|
36
|
-
${documentItem.SupportVideo ? VideoMimeType : ''},
|
|
37
|
-
${documentItem.SupportFile ? AllFilesMimeType : ''}
|
|
38
|
-
`;
|
|
39
|
-
}
|
|
40
|
-
ngOnChanges(changes) {
|
|
41
|
-
super.ngOnChanges(changes);
|
|
42
|
-
const { files } = changes;
|
|
43
|
-
files && Array.isArray(files.currentValue) && this._setFirstImage(files.currentValue);
|
|
44
|
-
this._detectChanges();
|
|
45
|
-
}
|
|
46
|
-
onReject(e) {
|
|
47
|
-
this.statusChanged.emit({ value: e, rejectedText: e === 2 ? '' : this.rejectedReason });
|
|
48
|
-
}
|
|
49
|
-
onRejectedTextChange(e) {
|
|
50
|
-
this.rejectTextChange.emit(e.target.value);
|
|
51
|
-
}
|
|
52
|
-
onPreventClick(e) {
|
|
53
|
-
PreventDefaulEvent(e);
|
|
54
|
-
}
|
|
55
|
-
onFileSelection(files) {
|
|
56
|
-
this.fileSelectionChange.emit(files);
|
|
57
|
-
}
|
|
58
|
-
_setFirstImage(files) {
|
|
59
|
-
files.length &&
|
|
60
|
-
(this.firstImageUrl = isImage(files[0].Type)
|
|
61
|
-
? this._picFieldSrc.transform(files[0].Id, 'ID', null, '', 120, 120)
|
|
62
|
-
: getIcon(files[0].Type));
|
|
63
|
-
}
|
|
64
|
-
_detectChanges() {
|
|
65
|
-
this._cdr.detectChanges();
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: { documentItem: "documentItem", deviceSize: "deviceSize", files: "files", accepted: "accepted", rejectedReason: "rejectedReason", readonly: "readonly", status: "status", uploadingState: "uploadingState" }, outputs: { statusChanged: "statusChanged", rejectTextChange: "rejectTextChange", fileSelectionChange: "fileSelectionChange", removeFile: "removeFile", fullscreen: "fullscreen", download: "download", downloadAll: "downloadAll" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "component", type: i4.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i4.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i4.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i4.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: i5.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i8.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ selector: 'bdc-barsa-document-list-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"] }]
|
|
73
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PictureFieldSourcePipe }], propDecorators: { documentItem: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], deviceSize: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], files: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], accepted: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], rejectedReason: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], readonly: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], status: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], uploadingState: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], statusChanged: [{
|
|
90
|
-
type: Output
|
|
91
|
-
}], rejectTextChange: [{
|
|
92
|
-
type: Output
|
|
93
|
-
}], fileSelectionChange: [{
|
|
94
|
-
type: Output
|
|
95
|
-
}], removeFile: [{
|
|
96
|
-
type: Output
|
|
97
|
-
}], fullscreen: [{
|
|
98
|
-
type: Output
|
|
99
|
-
}], download: [{
|
|
100
|
-
type: Output
|
|
101
|
-
}], downloadAll: [{
|
|
102
|
-
type: Output
|
|
103
|
-
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVU5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFD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Q0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBBdWRpb01pbWVUeXBlLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIEltYWdlTWltZVR5cGUsXHJcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXHJcbiAgICBWaWRlb01pbWVUeXBlLFxyXG4gICAgQWxsRmlsZXNNaW1lVHlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBpc0ltYWdlLFxyXG4gICAgZ2V0SWNvbixcclxuICAgIElVcGxvYWRpbmdTdGF0ZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiZGMtYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURvY3VtZW50TGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xyXG5cclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcmVqZWN0ZWRSZWFzb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhdHVzOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB1cGxvYWRpbmdTdGF0ZTogSVVwbG9hZGluZ1N0YXRlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBudW1iZXI7IHJlamVjdGVkVGV4dDogc3RyaW5nIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVqZWN0VGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlQXR0YWNobWVudEluZm8+KCk7XHJcbiAgICBAT3V0cHV0KCkgZnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbCB8IEZpbGVBdHRhY2htZW50SW5mbz4oKTtcclxuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xyXG4gICAgQE91dHB1dCgpIGRvd25sb2FkQWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XHJcbiAgICBmaXJzdEltYWdlVXJsOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9waWNGaWVsZFNyYzogUGljdHVyZUZpZWxkU291cmNlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50SXRlbSA9IHRoaXMuZG9jdW1lbnRJdGVtO1xyXG4gICAgICAgIGRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zID0gYCAgICAgICAgICAgIFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXHJcbiAgICAgICAgJHtkb2N1bWVudEl0ZW0uU3VwcG9ydEF1ZGlvID8gQXVkaW9NaW1lVHlwZSA6ICcnfSxcclxuICAgICAgICAke2RvY3VtZW50SXRlbS5TdXBwb3J0VmlkZW8gPyBWaWRlb01pbWVUeXBlIDogJyd9LFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxyXG4gICAgICAgIGA7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gY2hhbmdlcztcclxuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHsgdmFsdWU6IGUsIHJlamVjdGVkVGV4dDogZSA9PT0gMiA/ICcnIDogdGhpcy5yZWplY3RlZFJlYXNvbiB9KTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlamVjdFRleHRDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XHJcbiAgICAgICAgUHJldmVudERlZmF1bEV2ZW50KGUpO1xyXG4gICAgfVxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3Rpb25DaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaXJzdEltYWdlKGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXSk6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9waWNGaWVsZFNyYy50cmFuc2Zvcm0oZmlsZXNbMF0uSWQsICdJRCcsIG51bGwsICcnLCAxMjAsIDEyMClcclxuICAgICAgICAgICAgICAgIDogZ2V0SWNvbihmaWxlc1swXS5UeXBlKSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxsaSBmZC1saXN0LWl0ZW0gc3R5bGU9XCJwYWRkaW5nOiAwLjVyZW0gMXJlbVwiPlxyXG48c3BhbiBmZC1saXN0LXRodW1ibmFpbD5cclxuICA8ZmQtaWNvbiAqbmdJZj1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtnbHlwaF09XCJkb2N1bWVudEl0ZW0uRm9udEljb25cIj48L2ZkLWljb24+XHJcbiAgPGZkLWF2YXRhclxyXG4gICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcclxuICAgIHNpemU9XCJzXCJcclxuICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxyXG4gICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgID48L2ZkLWF2YXRhclxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxkaXYgZmQtbGlzdC1jb250ZW50PlxyXG4gICAgPGRpdiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogM3B4XCI+XHJcbiAgICAgICAgPHN0cm9uZ1xyXG4gICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxyXG4gICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiICpuZ0lmPVwiZG9jdW1lbnRJdGVtLklzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cImRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IGZhbHNlIHx8IGRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IHRydWVcIlxyXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgIFtzdGF0dXNdPVwiYWNjZXB0ZWQgPyAncG9zaXRpdmUnIDogJ25lZ2F0aXZlJ1wiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDxmZC1wb3BvdmVyIHRpdGxlPVwiUmVqZWN0ZWQgZG9jdW1lbnRcIiAqbmdJZj1cInJlamVjdGVkUmVhc29uICYmICFhY2NlcHRlZFwiPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cInF1ZXN0aW9uLW1hcmtcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJOZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCB0eXBlPVwiZXJyb3JcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlamVjdGVkUmVhc29uIH19XHJcbiAgICAgICAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cclxuICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1sZWZ0PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyByb3ctZ2FwOiA1cHg7IGZsZXgtd3JhcDogd3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgY29sdW1uLWdhcDogM3B4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVGaWxlKGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAjdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cclxuICAgICAgICAgIDxiZGMtYWNjZXB0LXJlamVjdFxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwicmVqZWN0ZWRSZWFzb25cIlxyXG4gICAgICAgICAgICBbcG9zaXRpdmVUZXh0XT1cImFjY2VwdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtuZWdhdGl2ZVRleHRdPVwicmVqZWN0ZWRUZXh0XCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9iZGMtYWNjZXB0LXJlamVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xpPiAtLT5cclxuXHJcbjx0ciBmZC10YWJsZS1yb3c+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cclxuICAgICAgICBAaWYgKGRvY3VtZW50SXRlbS5BdmF0YXIgJiYgIWZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgc2l6ZT1cInNcIlxyXG4gICAgICAgICAgICBbaW1hZ2VdPVwiZG9jdW1lbnRJdGVtLkF2YXRhci5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsOicnOjY0OjY0XCJcclxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxyXG4gICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICB9IEBlbHNlIHsgQGlmIChmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICA8ZmQtYXZhdGFyIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgc2l6ZT1cInNcIiBbaW1hZ2VdPVwiZmlyc3RJbWFnZVVybFwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gQGlmICghZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgPGZkLWF2YXRhciBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIHNpemU9XCJzXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC90ZD5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIHN0eWxlPVwibWluLXdpZHRoOiAxNDBweFwiPlxyXG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XHJcbiAgICAgICAgICAgIDxzdHJvbmdcclxuICAgICAgICAgICAgICAgID57eyBkb2N1bWVudEl0ZW0uVGl0bGUgfX1cclxuICAgICAgICAgICAgICAgIEBpZiAoZG9jdW1lbnRJdGVtLklzUmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIj4qKHt7ICfYp9is2KjYp9ix24wnIHwgYmJiVHJhbnNsYXRlIH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICB7eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBjb2x1bW4tZ2FwOiAzcHg7IHJvdy1nYXA6IDNweDsgZmxleC1kaXJlY3Rpb246IGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZSkge1xyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj48ZmQtaWNvbiBnbHlwaD1cImF0dGFjaG1lbnRcIj48L2ZkLWljb24+PGEgZmQtbGluaz57e2ZpbGUuRmlsZU5hbWV9fTwvYT48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItcG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZpbGUuZW1pdChmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIrZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxyXG4gICAgICAgIGdseXBoPVwiYWRkXCJcclxuICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgID48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxwICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCIgZmQtdGFibGUtdGV4dD5cclxuICAgIDxmZC1hY3Rpb24tc2hlZXQgID5cclxuICAgICAgPGZkLWFjdGlvbi1zaGVldC1jb250cm9sPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXHJcbiAgICAgICAgICB0aXRsZT1cIk9wZW4gQWN0aW9uIFNoZWV0IE1vYmlsZVwiXHJcbiAgICAgICAgICBpZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZmlsZS5GaWxlTmFtZSB8fCcnXCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJmZC1hY3Rpb24tc2hlZXQtbW9iaWxlLWJvZHlcIlxyXG4gICAgICAgID48L2J1dHRvbj5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuXHJcbiAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keVxyXG4gICAgICAgIGFjdGlvblNoZWV0Qm9keUlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1ib2R5XCJcclxuICAgICAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEb3dubG9hZFwiIGdseXBoPVwiZG93bmxvYWRcIiA+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJBY2NlcHRcIiBnbHlwaD1cImFjY2VwdFwiID48L2xpPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiRGVjaWRlIExhdGVyXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQ2FuY2VsXCIgW25lZ2F0aXZlXT1cInRydWVcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0PlxyXG4gIDwvcD4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVwbG9hZGluZ1N0YXRlPy5rZXkgPT09IGRvY3VtZW50SXRlbS5UaXRsZSAmJiB1cGxvYWRpbmdTdGF0ZT8udXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmICh1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFttYXJnaW5Ub3BdPVwiJzNweCdcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgICAgIFtmaWxlc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnRJdGVtLlRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEFsbC5lbWl0KClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XHJcbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWNjZXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxyXG4gICAgICAgICAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUmVqZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9saT5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cclxuXHJcbiAgICAgICAgQGlmIChzdGF0dXMgPT09IDMpIHtcclxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIj5cclxuICAgICAgICAgICAgQGlmIChyZWFkb25seSAmJiByZWplY3RlZFJlYXNvbikge1xyXG4gICAgICAgICAgICA8c3Bhbj4ge3sgcmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIifYr9mE2KfbjNmEINix2K8g2YXYr9ix2qknIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICB9XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG5cclxuPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICN1cGxvYWRlclxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgIFtuYW1lXT1cIidwaWN0dXJlc18nICsgZG9jdW1lbnRJdGVtLkl0ZW1LZXlcIlxyXG4gICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXHJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxyXG4gICAgW211bHRpcGxlXT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgPiAwXCJcclxuICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgIEBpZiAoc3RhdHVzID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1vZvtuM2YjYs9iqINmF2K/Yp9ix2qldJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInW9m+24zZiNiz2Kog2YXYr9in2LHaqV0nIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfSBAaWYgKHN0YXR1cyA9PT0gMikge1xyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJtZXNzYWdlLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoc3RhdHVzID09PSAzKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInUmVqZWN0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|