barsa-develop-components 1.0.455 → 1.0.457

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.
Files changed (153) hide show
  1. package/fesm2022/barsa-develop-components.mjs +3774 -0
  2. package/fesm2022/barsa-develop-components.mjs.map +1 -0
  3. package/index.d.ts +5 -5
  4. package/lib/accept-reject/accept-reject.component.d.ts +28 -28
  5. package/lib/avatar/avatar.component.d.ts +12 -12
  6. package/lib/barcode-format-pipe.d.ts +7 -7
  7. package/lib/barcode-reader/barcode-reader.component.d.ts +19 -19
  8. package/lib/barcode-reader-dialog/barcode-reader-dialog.component.d.ts +32 -32
  9. package/lib/barcode-reader-video/barcode-reader-video.component.d.ts +22 -22
  10. package/lib/barcode.service.d.ts +98 -98
  11. package/lib/barsa-develop-components.module.d.ts +120 -117
  12. package/lib/barsa-document-list-item/barsa-document-list-item.component.d.ts +39 -39
  13. package/lib/barsa-documents/barsa-documents.component.d.ts +47 -47
  14. package/lib/barsa-geographic-location/barsa-geographic-location.component.d.ts +46 -46
  15. package/lib/card-content-image-and-title/card-content-image-and-title.component.d.ts +18 -18
  16. package/lib/card-content-line-chart/card-content-line-chart.component.d.ts +9 -9
  17. package/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.d.ts +6 -6
  18. package/lib/card-header-kpi/card-header-kpi.component.d.ts +14 -14
  19. package/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.d.ts +23 -23
  20. package/lib/checkbox-button/checkbox-button.component.d.ts +13 -13
  21. package/lib/column-chip/column-chip.component.d.ts +17 -0
  22. package/lib/column-form-viewer/column-form-viewer.component.d.ts +30 -30
  23. package/lib/column-progressbar/column-progressbar.component.d.ts +41 -0
  24. package/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.d.ts +8 -8
  25. package/lib/footer/footer.component.d.ts +15 -15
  26. package/lib/form-card/form-card.component.d.ts +8 -8
  27. package/lib/form-chart-content/form-chart-content.component.d.ts +9 -9
  28. package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +18 -18
  29. package/lib/form-report-view/form-report-view.component.d.ts +13 -13
  30. package/lib/form-report-view-item/form-report-view-item.component.d.ts +15 -15
  31. package/lib/g4b-details/g4b-details.component.d.ts +9 -9
  32. package/lib/g4b-estelam/g4b-estelam.component.d.ts +11 -11
  33. package/lib/geographic-location/geographic-location.component.d.ts +34 -34
  34. package/lib/login-form/login-form.component.d.ts +12 -12
  35. package/lib/login-social-conncetions/login-social-conncetions.component.d.ts +12 -12
  36. package/lib/master-detail-card-form/master-detail-card-form.component.d.ts +8 -8
  37. package/lib/media-file-uploader/media-file-uploader.component.d.ts +52 -52
  38. package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +28 -28
  39. package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +14 -14
  40. package/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.d.ts +9 -9
  41. package/lib/models/document-item.d.ts +19 -19
  42. package/lib/models/documents-setting.d.ts +11 -11
  43. package/lib/models/form-report-view-setting.d.ts +7 -7
  44. package/lib/models/index.d.ts +7 -7
  45. package/lib/models/micro-process-flow-view-setting.d.ts +8 -8
  46. package/lib/models/person.d.ts +10 -10
  47. package/lib/models/service-desk-view-of-services-setting.d.ts +6 -6
  48. package/lib/models/tab-process-view-setting.d.ts +7 -7
  49. package/lib/pipes/datasource-to-flow-item.d.ts +10 -10
  50. package/lib/pipes/index.d.ts +2 -2
  51. package/lib/pipes/mo-list-to-flow-item.pipe.d.ts +10 -10
  52. package/lib/query-string-form-observable/query-string-form-observable.component.d.ts +13 -13
  53. package/lib/query-string-observable/query-string-observable.component.d.ts +9 -9
  54. package/lib/report-button-view/report-button-view.component.d.ts +12 -12
  55. package/lib/report-line-chart-view/report-line-chart-view.component.d.ts +7 -7
  56. package/lib/report-tab-view/report-tab-view.component.d.ts +15 -15
  57. package/lib/resend-verification-code/resend-verification-code.component.d.ts +19 -18
  58. package/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.d.ts +15 -15
  59. package/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.d.ts +26 -26
  60. package/lib/service-desk-header/service-desk-header.component.d.ts +61 -63
  61. package/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.d.ts +39 -39
  62. package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +16 -16
  63. package/lib/setting-form/setting-form.component.d.ts +20 -20
  64. package/lib/subform-in-row-report/subform-in-row-report.component.d.ts +22 -21
  65. package/lib/tab-process-view/tab-process-view.component.d.ts +20 -20
  66. package/lib/table-view-vertical-columns/table-view-vertical-columns.component.d.ts +6 -6
  67. package/lib/timer-count-down/timer-count-down.component.d.ts +16 -15
  68. package/lib/token-report-view/token-report-view.component.d.ts +15 -15
  69. package/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.d.ts +9 -9
  70. package/lib/ui-num-rate/ui-num-rate.component.d.ts +9 -9
  71. package/lib/ui-person/ui-person.component.d.ts +31 -31
  72. package/lib/ui-person/ui-person.pipe.d.ts +7 -7
  73. package/lib/ui-pictures-carousel/ui-pictures-carousel.component.d.ts +6 -6
  74. package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +17 -17
  75. package/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.d.ts +25 -25
  76. package/package.json +5 -13
  77. package/public-api.d.ts +60 -58
  78. package/esm2020/barsa-develop-components.mjs +0 -5
  79. package/esm2020/lib/accept-reject/accept-reject.component.mjs +0 -69
  80. package/esm2020/lib/avatar/avatar.component.mjs +0 -29
  81. package/esm2020/lib/barcode-format-pipe.mjs +0 -24
  82. package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +0 -62
  83. package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +0 -82
  84. package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +0 -66
  85. package/esm2020/lib/barcode.service.mjs +0 -330
  86. package/esm2020/lib/barsa-develop-components.module.mjs +0 -284
  87. package/esm2020/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +0 -104
  88. package/esm2020/lib/barsa-documents/barsa-documents.component.mjs +0 -173
  89. package/esm2020/lib/barsa-geographic-location/barsa-geographic-location.component.mjs +0 -174
  90. package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +0 -51
  91. package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +0 -38
  92. package/esm2020/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +0 -20
  93. package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +0 -41
  94. package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +0 -46
  95. package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +0 -23
  96. package/esm2020/lib/column-form-viewer/column-form-viewer.component.mjs +0 -88
  97. package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +0 -18
  98. package/esm2020/lib/footer/footer.component.mjs +0 -44
  99. package/esm2020/lib/form-card/form-card.component.mjs +0 -18
  100. package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +0 -38
  101. package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +0 -102
  102. package/esm2020/lib/form-report-view/form-report-view.component.mjs +0 -26
  103. package/esm2020/lib/form-report-view-item/form-report-view-item.component.mjs +0 -45
  104. package/esm2020/lib/g4b-details/g4b-details.component.mjs +0 -28
  105. package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +0 -30
  106. package/esm2020/lib/geographic-location/geographic-location.component.mjs +0 -88
  107. package/esm2020/lib/login-form/login-form.component.mjs +0 -55
  108. package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +0 -30
  109. package/esm2020/lib/master-detail-card-form/master-detail-card-form.component.mjs +0 -17
  110. package/esm2020/lib/media-file-uploader/media-file-uploader.component.mjs +0 -238
  111. package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +0 -53
  112. package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +0 -24
  113. package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +0 -23
  114. package/esm2020/lib/models/document-item.mjs +0 -2
  115. package/esm2020/lib/models/documents-setting.mjs +0 -2
  116. package/esm2020/lib/models/form-report-view-setting.mjs +0 -2
  117. package/esm2020/lib/models/index.mjs +0 -8
  118. package/esm2020/lib/models/micro-process-flow-view-setting.mjs +0 -2
  119. package/esm2020/lib/models/person.mjs +0 -2
  120. package/esm2020/lib/models/service-desk-view-of-services-setting.mjs +0 -2
  121. package/esm2020/lib/models/tab-process-view-setting.mjs +0 -2
  122. package/esm2020/lib/pipes/datasource-to-flow-item.mjs +0 -22
  123. package/esm2020/lib/pipes/index.mjs +0 -3
  124. package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +0 -22
  125. package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +0 -37
  126. package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +0 -22
  127. package/esm2020/lib/report-button-view/report-button-view.component.mjs +0 -38
  128. package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +0 -13
  129. package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +0 -28
  130. package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +0 -59
  131. package/esm2020/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +0 -28
  132. package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +0 -110
  133. package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +0 -236
  134. package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +0 -142
  135. package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +0 -37
  136. package/esm2020/lib/setting-form/setting-form.component.mjs +0 -64
  137. package/esm2020/lib/subform-in-row-report/subform-in-row-report.component.mjs +0 -65
  138. package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +0 -49
  139. package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +0 -16
  140. package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +0 -98
  141. package/esm2020/lib/token-report-view/token-report-view.component.mjs +0 -27
  142. package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +0 -25
  143. package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +0 -29
  144. package/esm2020/lib/ui-person/ui-person.component.mjs +0 -160
  145. package/esm2020/lib/ui-person/ui-person.pipe.mjs +0 -40
  146. package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +0 -17
  147. package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +0 -42
  148. package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +0 -70
  149. package/esm2020/public-api.mjs +0 -62
  150. package/fesm2015/barsa-develop-components.mjs +0 -3660
  151. package/fesm2015/barsa-develop-components.mjs.map +0 -1
  152. package/fesm2020/barsa-develop-components.mjs +0 -3625
  153. package/fesm2020/barsa-develop-components.mjs.map +0 -1
@@ -1,284 +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 * as i0 from "@angular/core";
70
- import * as i1 from "barsa-novin-ray-core";
71
- const components = [
72
- LoginFormComponent,
73
- LoginSocialConncetionsComponent,
74
- UiPersonComponent,
75
- BarcodeReaderComponent,
76
- BarcodeReaderDialogComponent,
77
- BarcodeReaderVideoComponent,
78
- SettingFormComponent,
79
- MicroProcessFlowViewComponent,
80
- UiEnumSegmentedButtonComponent,
81
- TabProcessViewComponent,
82
- UiTextFieldSearchComponent,
83
- ServiceDeskHeaderComponent,
84
- CardContentImageAndTitleComponent,
85
- CardHeaderLogoTitleSubtitleComponent,
86
- FormContentQuickViewComponent,
87
- ServiceDeskServcieDetailComponent,
88
- ServiceDeskViewOfServicesComponent,
89
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
90
- CardHeaderBigImageTitleAndSubtitleComponent,
91
- ServiceDeskFormLayoutContentMojavezComponent,
92
- UlvContextMenuItemShowFileContentComponent,
93
- ResendVerificationCodeComponent,
94
- CheckboxButtonComponent,
95
- ReportTabViewComponent,
96
- ReportLineChartViewComponent,
97
- CardHeaderKpiComponent,
98
- CardContentLineChartComponent,
99
- FormChartContentComponent,
100
- TableViewVerticalColumnsComponent,
101
- QueryStringObservableComponent,
102
- QueryStringFormObservableComponent,
103
- G4bDetailsComponent,
104
- AvatarComponent,
105
- G4bEstelamComponent,
106
- TimerCountDownComponent,
107
- MoInfoMicroProccessFlowComponent,
108
- MicroProccessFlowComponent,
109
- EnumInfoMicroProccessFlowComponent,
110
- UiPicturesCarouselComponent,
111
- UiNumRateComponent,
112
- MediaFileUploaderComponent,
113
- SubformInRowReportComponent,
114
- MasterDetailCardFormComponent,
115
- ReportButtonViewComponent,
116
- BarsaDocumentsComponent,
117
- BarsaDocumentListItemComponent,
118
- AcceptRejectComponent,
119
- FooterComponent,
120
- GeographicLocationComponent,
121
- BarsaGeographicLocationComponent,
122
- TokenReportViewComponent,
123
- ColumnFormViewerComponent,
124
- FormReportViewComponent,
125
- FormReportViewItemComponent,
126
- FormCardComponent
127
- ];
128
- const pipes = [UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe];
129
- export class BarsaDevelopComponentsModule extends BaseModule {
130
- constructor(dcm, cfr) {
131
- super(dcm, cfr, 'BarsaDevelopComponentsModule');
132
- this.dcm = dcm;
133
- this.cfr = cfr;
134
- this.dynamicComponents = [...components];
135
- }
136
- }
137
- BarsaDevelopComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDevelopComponentsModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule });
138
- BarsaDevelopComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: BarsaDevelopComponentsModule, declarations: [LoginFormComponent,
139
- LoginSocialConncetionsComponent,
140
- UiPersonComponent,
141
- BarcodeReaderComponent,
142
- BarcodeReaderDialogComponent,
143
- BarcodeReaderVideoComponent,
144
- SettingFormComponent,
145
- MicroProcessFlowViewComponent,
146
- UiEnumSegmentedButtonComponent,
147
- TabProcessViewComponent,
148
- UiTextFieldSearchComponent,
149
- ServiceDeskHeaderComponent,
150
- CardContentImageAndTitleComponent,
151
- CardHeaderLogoTitleSubtitleComponent,
152
- FormContentQuickViewComponent,
153
- ServiceDeskServcieDetailComponent,
154
- ServiceDeskViewOfServicesComponent,
155
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
156
- CardHeaderBigImageTitleAndSubtitleComponent,
157
- ServiceDeskFormLayoutContentMojavezComponent,
158
- UlvContextMenuItemShowFileContentComponent,
159
- ResendVerificationCodeComponent,
160
- CheckboxButtonComponent,
161
- ReportTabViewComponent,
162
- ReportLineChartViewComponent,
163
- CardHeaderKpiComponent,
164
- CardContentLineChartComponent,
165
- FormChartContentComponent,
166
- TableViewVerticalColumnsComponent,
167
- QueryStringObservableComponent,
168
- QueryStringFormObservableComponent,
169
- G4bDetailsComponent,
170
- AvatarComponent,
171
- G4bEstelamComponent,
172
- TimerCountDownComponent,
173
- MoInfoMicroProccessFlowComponent,
174
- MicroProccessFlowComponent,
175
- EnumInfoMicroProccessFlowComponent,
176
- UiPicturesCarouselComponent,
177
- UiNumRateComponent,
178
- MediaFileUploaderComponent,
179
- SubformInRowReportComponent,
180
- MasterDetailCardFormComponent,
181
- ReportButtonViewComponent,
182
- BarsaDocumentsComponent,
183
- BarsaDocumentListItemComponent,
184
- AcceptRejectComponent,
185
- FooterComponent,
186
- GeographicLocationComponent,
187
- BarsaGeographicLocationComponent,
188
- TokenReportViewComponent,
189
- ColumnFormViewerComponent,
190
- FormReportViewComponent,
191
- FormReportViewItemComponent,
192
- FormCardComponent, UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe], imports: [CommonModule,
193
- BarsaNovinRayCoreModule,
194
- ReactiveFormsModule,
195
- BarsaSapUiModule,
196
- BarsaEchartsModule,
197
- BarsaTilesModule,
198
- FundamentalNgxCoreModule,
199
- PlatformInputGroupModule,
200
- FormsModule], exports: [LoginFormComponent,
201
- LoginSocialConncetionsComponent,
202
- UiPersonComponent,
203
- BarcodeReaderComponent,
204
- BarcodeReaderDialogComponent,
205
- BarcodeReaderVideoComponent,
206
- SettingFormComponent,
207
- MicroProcessFlowViewComponent,
208
- UiEnumSegmentedButtonComponent,
209
- TabProcessViewComponent,
210
- UiTextFieldSearchComponent,
211
- ServiceDeskHeaderComponent,
212
- CardContentImageAndTitleComponent,
213
- CardHeaderLogoTitleSubtitleComponent,
214
- FormContentQuickViewComponent,
215
- ServiceDeskServcieDetailComponent,
216
- ServiceDeskViewOfServicesComponent,
217
- ServiceDeskCardContentMojavezhayAkhzShodeComponent,
218
- CardHeaderBigImageTitleAndSubtitleComponent,
219
- ServiceDeskFormLayoutContentMojavezComponent,
220
- UlvContextMenuItemShowFileContentComponent,
221
- ResendVerificationCodeComponent,
222
- CheckboxButtonComponent,
223
- ReportTabViewComponent,
224
- ReportLineChartViewComponent,
225
- CardHeaderKpiComponent,
226
- CardContentLineChartComponent,
227
- FormChartContentComponent,
228
- TableViewVerticalColumnsComponent,
229
- QueryStringObservableComponent,
230
- QueryStringFormObservableComponent,
231
- G4bDetailsComponent,
232
- AvatarComponent,
233
- G4bEstelamComponent,
234
- TimerCountDownComponent,
235
- MoInfoMicroProccessFlowComponent,
236
- MicroProccessFlowComponent,
237
- EnumInfoMicroProccessFlowComponent,
238
- UiPicturesCarouselComponent,
239
- UiNumRateComponent,
240
- MediaFileUploaderComponent,
241
- SubformInRowReportComponent,
242
- MasterDetailCardFormComponent,
243
- ReportButtonViewComponent,
244
- BarsaDocumentsComponent,
245
- BarsaDocumentListItemComponent,
246
- AcceptRejectComponent,
247
- FooterComponent,
248
- GeographicLocationComponent,
249
- BarsaGeographicLocationComponent,
250
- TokenReportViewComponent,
251
- ColumnFormViewerComponent,
252
- FormReportViewComponent,
253
- FormReportViewItemComponent,
254
- FormCardComponent] });
255
- BarsaDevelopComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDevelopComponentsModule, providers: [UserMediaBaseService, WebBarcodeService], imports: [CommonModule,
256
- BarsaNovinRayCoreModule,
257
- ReactiveFormsModule,
258
- BarsaSapUiModule,
259
- BarsaEchartsModule,
260
- BarsaTilesModule,
261
- FundamentalNgxCoreModule,
262
- PlatformInputGroupModule,
263
- FormsModule] });
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDevelopComponentsModule, decorators: [{
265
- type: NgModule,
266
- args: [{
267
- declarations: [...components, ...pipes],
268
- schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
269
- imports: [
270
- CommonModule,
271
- BarsaNovinRayCoreModule,
272
- ReactiveFormsModule,
273
- BarsaSapUiModule,
274
- BarsaEchartsModule,
275
- BarsaTilesModule,
276
- FundamentalNgxCoreModule,
277
- PlatformInputGroupModule,
278
- FormsModule
279
- ],
280
- providers: [UserMediaBaseService, WebBarcodeService],
281
- exports: [...components]
282
- }]
283
- }], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }]; } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixzQkFBc0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQs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d0JBQ25CLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixXQUFXO3FCQUNkO29CQUNELFNBQVMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO29CQUNwRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGdW5kYW1lbnRhbE5neENvcmVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsIEJhc2VNb2R1bGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBCYXJzYVNhcFVpTW9kdWxlIH0gZnJvbSAnYmFyc2Etc2FwLXVpJztcclxuaW1wb3J0IHsgQmFyc2FUaWxlc01vZHVsZSB9IGZyb20gJ2JhcnNhLXRpbGVzJztcclxuaW1wb3J0IHsgQmFyc2FFY2hhcnRzTW9kdWxlIH0gZnJvbSAnYmFyc2EtZWNoYXJ0cyc7XHJcblxyXG5pbXBvcnQgeyBMb2dpbkZvcm1Db21wb25lbnQgfSBmcm9tICcuL2xvZ2luLWZvcm0vbG9naW4tZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMvbG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpUGVyc29uQ29tcG9uZW50IH0gZnJvbSAnLi91aS1wZXJzb24vdWktcGVyc29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpUGVyc29uUGlwZSB9IGZyb20gJy4vdWktcGVyc29uL3VpLXBlcnNvbi5waXBlJztcclxuaW1wb3J0IHsgQmFyY29kZVJlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXIvYmFyY29kZS1yZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyY29kZVJlYWRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXItZGlhbG9nL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYXJjb2RlUmVhZGVyVmlkZW9Db21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyLXZpZGVvL2JhcmNvZGUtcmVhZGVyLXZpZGVvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJNZWRpYUJhc2VTZXJ2aWNlLCBXZWJCYXJjb2RlU2VydmljZSB9IGZyb20gJy4vYmFyY29kZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2V0dGluZ0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL3NldHRpbmctZm9ybS9zZXR0aW5nLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWljcm9Qcm9jZXNzRmxvd1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL21pY3JvLXByb2Nlc3MtZmxvdy12aWV3L21pY3JvLXByb2Nlc3MtZmxvdy12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpRW51bVNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktZW51bS1zZWdtZW50ZWQtYnV0dG9uL3VpLWVudW0tc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdGFiLXByb2Nlc3Mtdmlldy90YWItcHJvY2Vzcy12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpVGV4dEZpZWxkU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi91aS10ZXh0LWZpZWxkLXNlYXJjaC91aS10ZXh0LWZpZWxkLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYXJjb2RlRm9ybWF0UGlwZSB9IGZyb20gJy4vYmFyY29kZS1mb3JtYXQtcGlwZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VEZXNrSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZENvbnRlbnRJbWFnZUFuZFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWNvbnRlbnQtaW1hZ2UtYW5kLXRpdGxlL2NhcmQtY29udGVudC1pbWFnZS1hbmQtdGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZEhlYWRlckxvZ29UaXRsZVN1YnRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWhlYWRlci1sb2dvLXRpdGxlLXN1YnRpdGxlL2NhcmQtaGVhZGVyLWxvZ28tdGl0bGUtc3VidGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNvbnRlbnRRdWlja1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY29udGVudC1xdWljay12aWV3L2Zvcm0tY29udGVudC1xdWljay12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLXNlcnZjaWUtZGV0YWlsL3NlcnZpY2UtZGVzay1zZXJ2Y2llLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlRGVza0NhcmRDb250ZW50TW9qYXZlemhheUFraHpTaG9kZUNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUvc2VydmljZS1kZXNrLWNhcmQtY29udGVudC1tb2phdmV6aGF5LWFraHotc2hvZGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZEhlYWRlckJpZ0ltYWdlVGl0bGVBbmRTdWJ0aXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXItYmlnLWltYWdlLXRpdGxlLWFuZC1zdWJ0aXRsZS9jYXJkLWhlYWRlci1iaWctaW1hZ2UtdGl0bGUtYW5kLXN1YnRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlcnZpY2VEZXNrRm9ybUxheW91dENvbnRlbnRNb2phdmV6Q29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6L3NlcnZpY2UtZGVzay1mb3JtLWxheW91dC1jb250ZW50LW1vamF2ZXouY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWx2Q29udGV4dE1lbnVJdGVtU2hvd0ZpbGVDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi91bHYtY29udGV4dC1tZW51LWl0ZW0tc2hvdy1maWxlLWNvbnRlbnQvdWx2LWNvbnRleHQtbWVudS1pdGVtLXNob3ctZmlsZS1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgfSBmcm9tICcuL3Jlc2VuZC12ZXJpZmljYXRpb24tY29kZS9yZXNlbmQtdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LWJ1dHRvbi9jaGVja2JveC1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0VGFiVmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LXRhYi12aWV3L3JlcG9ydC10YWItdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtbGluZS1jaGFydC12aWV3L3JlcG9ydC1saW5lLWNoYXJ0LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXIta3BpL2NhcmQtaGVhZGVyLWtwaS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkQ29udGVudExpbmVDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1jb250ZW50LWxpbmUtY2hhcnQvY2FyZC1jb250ZW50LWxpbmUtY2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1jaGFydC1jb250ZW50L2Zvcm0tY2hhcnQtY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZVZpZXdWZXJ0aWNhbENvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXZpZXctdmVydGljYWwtY29sdW1ucy90YWJsZS12aWV3LXZlcnRpY2FsLWNvbHVtbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlcnlTdHJpbmdPYnNlcnZhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1zdHJpbmctb2JzZXJ2YWJsZS9xdWVyeS1zdHJpbmctb2JzZXJ2YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWVyeVN0cmluZ0Zvcm1PYnNlcnZhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1zdHJpbmctZm9ybS1vYnNlcnZhYmxlL3F1ZXJ5LXN0cmluZy1mb3JtLW9ic2VydmFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRzRiRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vZzRiLWRldGFpbHMvZzRiLWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEc0YkVzdGVsYW1Db21wb25lbnQgfSBmcm9tICcuL2c0Yi1lc3RlbGFtL2c0Yi1lc3RlbGFtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpbWVyQ291bnREb3duQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lci1jb3VudC1kb3duL3RpbWVyLWNvdW50LWRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQgfSBmcm9tICcuL21vLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy9tby1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQgfSBmcm9tICcuL21pY3JvLXByb2NjZXNzLWZsb3cvbWljcm8tcHJvY2Nlc3MtZmxvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVRvRmxvd0l0ZW1QaXBlLCBNb0xpc3RUb0Zsb3dJdGVtUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xyXG5pbXBvcnQgeyBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL3VpLXBpY3R1cmVzLWNhcm91c2VsL3VpLXBpY3R1cmVzLWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpTnVtUmF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdWktbnVtLXJhdGUvdWktbnVtLXJhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVkaWFGaWxlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL21lZGlhLWZpbGUtdXBsb2FkZXIvbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJmb3JtSW5Sb3dSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL3N1YmZvcm0taW4tcm93LXJlcG9ydC9zdWJmb3JtLWluLXJvdy1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFzdGVyRGV0YWlsQ2FyZEZvcm1Db21wb25lbnQgfSBmcm9tICcuL21hc3Rlci1kZXRhaWwtY2FyZC1mb3JtL21hc3Rlci1kZXRhaWwtY2FyZC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcG9ydEJ1dHRvblZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1idXR0b24tdmlldy9yZXBvcnQtYnV0dG9uLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FEb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY2VwdFJlamVjdENvbXBvbmVudCB9IGZyb20gJy4vYWNjZXB0LXJlamVjdC9hY2NlcHQtcmVqZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2dlb2dyYXBoaWMtbG9jYXRpb24vZ2VvZ3JhcGhpYy1sb2NhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYXJzYUdlb2dyYXBoaWNMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZ2VvZ3JhcGhpYy1sb2NhdGlvbi9iYXJzYS1nZW9ncmFwaGljLWxvY2F0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRva2VuUmVwb3J0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vdG9rZW4tcmVwb3J0LXZpZXcvdG9rZW4tcmVwb3J0LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uRm9ybVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLWZvcm0tdmlld2VyL2NvbHVtbi1mb3JtLXZpZXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybUlucHV0R3JvdXBNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtJztcclxuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tcmVwb3J0LXZpZXcvZm9ybS1yZXBvcnQtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtUmVwb3J0Vmlld0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0tcmVwb3J0LXZpZXctaXRlbS9mb3JtLXJlcG9ydC12aWV3LWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY2FyZC9mb3JtLWNhcmQuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXHJcbiAgICBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50LFxyXG4gICAgVWlQZXJzb25Db21wb25lbnQsXHJcbiAgICBCYXJjb2RlUmVhZGVyQ29tcG9uZW50LFxyXG4gICAgQmFyY29kZVJlYWRlckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIEJhcmNvZGVSZWFkZXJWaWRlb0NvbXBvbmVudCxcclxuICAgIFNldHRpbmdGb3JtQ29tcG9uZW50LFxyXG4gICAgTWljcm9Qcm9jZXNzRmxvd1ZpZXdDb21wb25lbnQsXHJcbiAgICBVaUVudW1TZWdtZW50ZWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCxcclxuICAgIFVpVGV4dEZpZWxkU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VydmljZURlc2tIZWFkZXJDb21wb25lbnQsXHJcbiAgICBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQsXHJcbiAgICBDYXJkSGVhZGVyTG9nb1RpdGxlU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udGVudFF1aWNrVmlld0NvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCxcclxuICAgIFNlcnZpY2VEZXNrVmlld09mU2VydmljZXNDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0NhcmRDb250ZW50TW9qYXZlemhheUFraHpTaG9kZUNvbXBvbmVudCxcclxuICAgIENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQsXHJcbiAgICBTZXJ2aWNlRGVza0Zvcm1MYXlvdXRDb250ZW50TW9qYXZlekNvbXBvbmVudCxcclxuICAgIFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCxcclxuICAgIFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXHJcbiAgICBDaGVja2JveEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFJlcG9ydFRhYlZpZXdDb21wb25lbnQsXHJcbiAgICBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50LFxyXG4gICAgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCxcclxuICAgIENhcmRDb250ZW50TGluZUNoYXJ0Q29tcG9uZW50LFxyXG4gICAgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCxcclxuICAgIFRhYmxlVmlld1ZlcnRpY2FsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCxcclxuICAgIFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQsXHJcbiAgICBHNGJEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgRzRiRXN0ZWxhbUNvbXBvbmVudCxcclxuICAgIFRpbWVyQ291bnREb3duQ29tcG9uZW50LFxyXG4gICAgTW9JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcclxuICAgIEVudW1JbmZvTWljcm9Qcm9jY2Vzc0Zsb3dDb21wb25lbnQsXHJcbiAgICBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQsXHJcbiAgICBVaU51bVJhdGVDb21wb25lbnQsXHJcbiAgICBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFN1YmZvcm1JblJvd1JlcG9ydENvbXBvbmVudCxcclxuICAgIE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50LFxyXG4gICAgUmVwb3J0QnV0dG9uVmlld0NvbXBvbmVudCxcclxuICAgIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgQWNjZXB0UmVqZWN0Q29tcG9uZW50LFxyXG4gICAgRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgQmFyc2FHZW9ncmFwaGljTG9jYXRpb25Db21wb25lbnQsXHJcbiAgICBUb2tlblJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBDb2x1bW5Gb3JtVmlld2VyQ29tcG9uZW50LFxyXG4gICAgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQsXHJcbiAgICBGb3JtUmVwb3J0Vmlld0l0ZW1Db21wb25lbnQsXHJcbiAgICBGb3JtQ2FyZENvbXBvbmVudFxyXG5dO1xyXG5jb25zdCBwaXBlcyA9IFtVaVBlcnNvblBpcGUsIEJhcmNvZGVGb3JtYXRQaXBlLCBNb0xpc3RUb0Zsb3dJdGVtUGlwZSwgRGF0YVNvdXJjZVRvRmxvd0l0ZW1QaXBlXTtcclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzXSxcclxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxyXG4gICAgICAgIEJhcnNhRWNoYXJ0c01vZHVsZSxcclxuICAgICAgICBCYXJzYVRpbGVzTW9kdWxlLFxyXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcclxuICAgICAgICBQbGF0Zm9ybUlucHV0R3JvdXBNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtVc2VyTWVkaWFCYXNlU2VydmljZSwgV2ViQmFyY29kZVNlcnZpY2VdLFxyXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgICAgc3VwZXIoZGNtLCBjZnIsICdCYXJzYURldmVsb3BDb21wb25lbnRzTW9kdWxlJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -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
- }
68
- BarsaDocumentListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component });
69
- BarsaDocumentListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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\">\n <span fd-list-thumbnail>\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\n <fd-avatar\n *ngIf=\"documentItem.Avatar\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\n [clickable]=\"true\"\n ></fd-avatar\n ></span>\n \n <div fd-list-content>\n <div fd-list-title>\n <div style=\"display: flex; column-gap: 3px\">\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n <div\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\n >\n <span\n fd-object-status\n [status]=\"accepted ? 'positive' : 'negative'\"\n [label]=\"accepted ? acceptedText : rejectedText\"\n [clickable]=\"true\"\n [inverted]=\"true\"\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\n ></span>\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\n <fd-popover-control>\n <span\n fd-object-status\n status=\"negative\"\n glyph=\"question-mark\"\n glyphAriaLabel=\"Negative\"\n title=\"Rejected document\"\n ></span>\n </fd-popover-control>\n <fd-popover-body>\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\n {{ rejectedReason }}\n </fd-message-strip>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\n <div fd-list-byline-left>\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\n <span>\n {{ documentItem.Description }}\n </span>\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\n <ng-container *ngIf=\"hasFiles\">\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\n <ng-container *ngFor=\"let file of files\">\n <fd-token\n [readOnly]=\"readonly\"\n *ngIf=\"!file.IsDeleted\"\n (onCloseClick)=\"onRemoveFile(file)\"\n >{{ file.FileName }}</fd-token\n >\n </ng-container>\n </ng-container>\n <button\n fd-button\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n (click)=\"!readonly && uploader.open()\"\n ></button>\n <fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n ></fd-file-uploader>\n </div>\n </div>\n </div>\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\n <bdc-accept-reject\n [rejectedReason]=\"rejectedReason\"\n [positiveText]=\"acceptedText\"\n [negativeText]=\"rejectedText\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"readonly\"\n ></bdc-accept-reject>\n </div>\n </div>\n </div>\n</li> -->\n\n<tr fd-table-row>\n <td fd-table-cell>\n <fd-avatar\n *ngIf=\"documentItem.Avatar && !files.length; else fontIconTpl\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\n [clickable]=\"true\"\n [transparent]=\"true\"\n ></fd-avatar>\n <ng-template #fontIconTpl>\n <fd-avatar\n *ngIf=\"files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [image]=\"firstImageUrl\"\n [clickable]=\"true\"\n ></fd-avatar>\n <fd-avatar\n *ngIf=\"!files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [glyph]=\"documentItem.FontIcon\"\n [clickable]=\"true\"\n ></fd-avatar>\n </ng-template>\n </td>\n <td fd-table-cell style=\"min-width: 140px\">\n <p fd-table-text>\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n </p>\n <div>\n <span>\n {{ documentItem.Description }}\n </span>\n </div>\n </td>\n\n <td fd-table-cell>\n <ng-container>\n <!-- <ul fd-list>\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\n <span fd-list-title>\n {{ file.FileName }}\n </span>\n <span fd-list-secondary>\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\n </span>\n </li>\n </ul> -->\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\n <ng-container *ngFor=\"let file of files\">\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\n <bsu-file-viewer-popover\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n (remove)=\"removeFile.emit(file)\"\n ></bsu-file-viewer-popover>\n </ng-container>\n <!-- <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"add\"\n (click)=\"!readonly && uploader.open()\"\n ></button> -->\n </div>\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\n <fd-action-sheet >\n <fd-action-sheet-control>\n <button\n fd-button\n glyph=\"settings\"\n title=\"Open Action Sheet Mobile\"\n id=\"fd-action-sheet-mobile-control\"\n aria-haspopup=\"menu\"\n [label]=\"file.FileName ||''\"\n aria-controls=\"fd-action-sheet-mobile-body\"\n ></button>\n </fd-action-sheet-control>\n \n <fd-action-sheet-body\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\n >\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n </p> -->\n </ng-container>\n </td>\n <td fd-table-cell>\n <div class=\"status\" style=\"position: relative\">\n <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n (click)=\"!readonly && uploader.open()\"\n >\n <bsu-mask\n *ngIf=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n [marginTop]=\"'3px'\"\n ></bsu-mask>\n </button>\n <button\n fd-button\n glyph=\"show\"\n fullscreenFiles\n [files]=\"files\"\n [title]=\"documentItem.Title\"\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n fullscreenFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n ></button>\n <button\n fd-button\n glyph=\"download\"\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n downloadFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n (click)=\"downloadAll.emit()\"\n ></button>\n </div>\n </td>\n <td fd-table-cell>\n <fd-action-sheet #actionSheet>\n <fd-action-sheet-control>\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\n </fd-action-sheet-control>\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n [label]=\"'Accept' | bbbTranslate\"\n glyph=\"accept\"\n (click)=\"actionSheet.close(); onReject(2)\"\n ></li>\n <li\n fd-action-sheet-item\n [label]=\"'Reject' | bbbTranslate\"\n glyph=\"cancel\"\n (click)=\"actionSheet.close(); onReject(3)\"\n ></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n\n <p fd-table-text maxWidth=\"400px\" *ngIf=\"status === 3\">\n <span *ngIf=\"readonly && rejectedReason\"> {{ rejectedReason | bbbTranslate }} </span>\n <input\n *ngIf=\"!readonly\"\n fd-form-control\n [value]=\"rejectedReason | bbbTranslate\"\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\n />\n </p>\n </td>\n</tr>\n\n<fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n></fd-file-uploader>\n<ng-template #statusTpl>\n <div class=\"status\">\n <button fd-button fdType=\"transparent\">\n <span\n *ngIf=\"status === 1\"\n fd-object-status\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 2\"\n fd-object-status\n glyph=\"message-success\"\n status=\"positive\"\n [label]=\"'Accepted' | bbbTranslate\"\n [label]=\"'Accepted' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 3\"\n fd-object-status\n glyph=\"cancel\"\n status=\"negative\"\n [label]=\"'Rejected' | bbbTranslate\"\n [aria-label]=\"'Rejected' | bbbTranslate\"\n ></span>\n </button>\n </div>\n</ng-template>\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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"], 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", "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", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[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: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i8.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help], [fd-inline-help-template]", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help", "fd-inline-help-template"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { 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", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
71
- type: Component,
72
- args: [{ selector: 'bdc-barsa-document-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\n <span fd-list-thumbnail>\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\n <fd-avatar\n *ngIf=\"documentItem.Avatar\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\n [clickable]=\"true\"\n ></fd-avatar\n ></span>\n \n <div fd-list-content>\n <div fd-list-title>\n <div style=\"display: flex; column-gap: 3px\">\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n <div\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\n >\n <span\n fd-object-status\n [status]=\"accepted ? 'positive' : 'negative'\"\n [label]=\"accepted ? acceptedText : rejectedText\"\n [clickable]=\"true\"\n [inverted]=\"true\"\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\n ></span>\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\n <fd-popover-control>\n <span\n fd-object-status\n status=\"negative\"\n glyph=\"question-mark\"\n glyphAriaLabel=\"Negative\"\n title=\"Rejected document\"\n ></span>\n </fd-popover-control>\n <fd-popover-body>\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\n {{ rejectedReason }}\n </fd-message-strip>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n </div>\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\n <div fd-list-byline-left>\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\n <span>\n {{ documentItem.Description }}\n </span>\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\n <ng-container *ngIf=\"hasFiles\">\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\n <ng-container *ngFor=\"let file of files\">\n <fd-token\n [readOnly]=\"readonly\"\n *ngIf=\"!file.IsDeleted\"\n (onCloseClick)=\"onRemoveFile(file)\"\n >{{ file.FileName }}</fd-token\n >\n </ng-container>\n </ng-container>\n <button\n fd-button\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n (click)=\"!readonly && uploader.open()\"\n ></button>\n <fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n ></fd-file-uploader>\n </div>\n </div>\n </div>\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\n <bdc-accept-reject\n [rejectedReason]=\"rejectedReason\"\n [positiveText]=\"acceptedText\"\n [negativeText]=\"rejectedText\"\n [deviceSize]=\"deviceSize\"\n [readonly]=\"readonly\"\n ></bdc-accept-reject>\n </div>\n </div>\n </div>\n</li> -->\n\n<tr fd-table-row>\n <td fd-table-cell>\n <fd-avatar\n *ngIf=\"documentItem.Avatar && !files.length; else fontIconTpl\"\n size=\"s\"\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\n [clickable]=\"true\"\n [transparent]=\"true\"\n ></fd-avatar>\n <ng-template #fontIconTpl>\n <fd-avatar\n *ngIf=\"files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [image]=\"firstImageUrl\"\n [clickable]=\"true\"\n ></fd-avatar>\n <fd-avatar\n *ngIf=\"!files.length\"\n [transparent]=\"true\"\n size=\"s\"\n [glyph]=\"documentItem.FontIcon\"\n [clickable]=\"true\"\n ></fd-avatar>\n </ng-template>\n </td>\n <td fd-table-cell style=\"min-width: 140px\">\n <p fd-table-text>\n <strong\n >{{ documentItem.Title }}\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\n </span>\n </strong>\n </p>\n <div>\n <span>\n {{ documentItem.Description }}\n </span>\n </div>\n </td>\n\n <td fd-table-cell>\n <ng-container>\n <!-- <ul fd-list>\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\n <span fd-list-title>\n {{ file.FileName }}\n </span>\n <span fd-list-secondary>\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\n </span>\n </li>\n </ul> -->\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\n <ng-container *ngFor=\"let file of files\">\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\n <bsu-file-viewer-popover\n *ngIf=\"!file.IsDeleted\"\n [file]=\"file\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n (remove)=\"removeFile.emit(file)\"\n ></bsu-file-viewer-popover>\n </ng-container>\n <!-- <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"add\"\n (click)=\"!readonly && uploader.open()\"\n ></button> -->\n </div>\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\n <fd-action-sheet >\n <fd-action-sheet-control>\n <button\n fd-button\n glyph=\"settings\"\n title=\"Open Action Sheet Mobile\"\n id=\"fd-action-sheet-mobile-control\"\n aria-haspopup=\"menu\"\n [label]=\"file.FileName ||''\"\n aria-controls=\"fd-action-sheet-mobile-body\"\n ></button>\n </fd-action-sheet-control>\n \n <fd-action-sheet-body\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\n >\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n </p> -->\n </ng-container>\n </td>\n <td fd-table-cell>\n <div class=\"status\" style=\"position: relative\">\n <button\n fd-button\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\n glyph=\"attachment\"\n [label]=\"'AttachFile' | bbbTranslate\"\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n (click)=\"!readonly && uploader.open()\"\n >\n <bsu-mask\n *ngIf=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\n [marginTop]=\"'3px'\"\n ></bsu-mask>\n </button>\n <button\n fd-button\n glyph=\"show\"\n fullscreenFiles\n [files]=\"files\"\n [title]=\"documentItem.Title\"\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\n fullscreenFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n ></button>\n <button\n fd-button\n glyph=\"download\"\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\n downloadFiles\n [disabled]=\"!files.length\"\n [files]=\"files\"\n (click)=\"downloadAll.emit()\"\n ></button>\n </div>\n </td>\n <td fd-table-cell>\n <fd-action-sheet #actionSheet>\n <fd-action-sheet-control>\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\n </fd-action-sheet-control>\n <fd-action-sheet-body>\n <li\n fd-action-sheet-item\n [label]=\"'Accept' | bbbTranslate\"\n glyph=\"accept\"\n (click)=\"actionSheet.close(); onReject(2)\"\n ></li>\n <li\n fd-action-sheet-item\n [label]=\"'Reject' | bbbTranslate\"\n glyph=\"cancel\"\n (click)=\"actionSheet.close(); onReject(3)\"\n ></li>\n </fd-action-sheet-body>\n </fd-action-sheet>\n\n <p fd-table-text maxWidth=\"400px\" *ngIf=\"status === 3\">\n <span *ngIf=\"readonly && rejectedReason\"> {{ rejectedReason | bbbTranslate }} </span>\n <input\n *ngIf=\"!readonly\"\n fd-form-control\n [value]=\"rejectedReason | bbbTranslate\"\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\n />\n </p>\n </td>\n</tr>\n\n<fd-file-uploader\n #uploader\n [style.display]=\"'none'\"\n fd-toolbar-item\n [id]=\"documentItem.ItemKey\"\n [name]=\"'pictures_' + documentItem.ItemKey\"\n [accept]=\"documentItem.$ValidExtensions\"\n [fileLimit]=\"documentItem.MaxFileCount\"\n [multiple]=\"documentItem.MaxFileCount > 0\"\n (selectedFilesChanged)=\"onFileSelection($event)\"\n></fd-file-uploader>\n<ng-template #statusTpl>\n <div class=\"status\">\n <button fd-button fdType=\"transparent\">\n <span\n *ngIf=\"status === 1\"\n fd-object-status\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 2\"\n fd-object-status\n glyph=\"message-success\"\n status=\"positive\"\n [label]=\"'Accepted' | bbbTranslate\"\n [label]=\"'Accepted' | bbbTranslate\"\n ></span>\n <span\n *ngIf=\"status === 3\"\n fd-object-status\n glyph=\"cancel\"\n status=\"negative\"\n [label]=\"'Rejected' | bbbTranslate\"\n [aria-label]=\"'Rejected' | bbbTranslate\"\n ></span>\n </button>\n </div>\n</ng-template>\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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFD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QUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIEF1ZGlvTWltZVR5cGUsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBGaWxlQXR0YWNobWVudEluZm8sXG4gICAgSW1hZ2VNaW1lVHlwZSxcbiAgICBQcmV2ZW50RGVmYXVsRXZlbnQsXG4gICAgVmlkZW9NaW1lVHlwZSxcbiAgICBBbGxGaWxlc01pbWVUeXBlLFxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgaXNJbWFnZSxcbiAgICBnZXRJY29uLFxuICAgIElVcGxvYWRpbmdTdGF0ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xuXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcbiAgICBASW5wdXQoKSBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByZWplY3RlZFJlYXNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0YXR1czogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVwbG9hZGluZ1N0YXRlOiBJVXBsb2FkaW5nU3RhdGU7XG5cbiAgICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyOyByZWplY3RlZFRleHQ6IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSByZWplY3RUZXh0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcbiAgICBAT3V0cHV0KCkgcmVtb3ZlRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBmdWxsc2NyZWVuID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsIHwgRmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xuICAgIEBPdXRwdXQoKSBkb3dubG9hZEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XG4gICAgZmlyc3RJbWFnZVVybDogYW55O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3BpY0ZpZWxkU3JjOiBQaWN0dXJlRmllbGRTb3VyY2VQaXBlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBkb2N1bWVudEl0ZW0gPSB0aGlzLmRvY3VtZW50SXRlbTtcbiAgICAgICAgZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnMgPSBgICAgICAgICAgICAgXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRBdWRpbyA/IEF1ZGlvTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRWaWRlbyA/IFZpZGVvTWltZVR5cGUgOiAnJ30sXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxuICAgICAgICBgO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGZpbGVzIH0gPSBjaGFuZ2VzO1xuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQuZW1pdCh7IHZhbHVlOiBlLCByZWplY3RlZFRleHQ6IGUgPT09IDIgPyAnJyA6IHRoaXMucmVqZWN0ZWRSZWFzb24gfSk7XG4gICAgfVxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWplY3RUZXh0Q2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XG4gICAgICAgIFByZXZlbnREZWZhdWxFdmVudChlKTtcbiAgICB9XG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlU2VsZWN0aW9uQ2hhbmdlLmVtaXQoZmlsZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2V0Rmlyc3RJbWFnZShmaWxlczogRmlsZUF0dGFjaG1lbnRJbmZvW10pOiB2b2lkIHtcbiAgICAgICAgZmlsZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxuICAgICAgICAgICAgICAgID8gdGhpcy5fcGljRmllbGRTcmMudHJhbnNmb3JtKGZpbGVzWzBdLklkLCAnSUQnLCBudWxsLCAnJywgMTIwLCAxMjApXG4gICAgICAgICAgICAgICAgOiBnZXRJY29uKGZpbGVzWzBdLlR5cGUpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjwhLS0gPGxpIGZkLWxpc3QtaXRlbSBzdHlsZT1cInBhZGRpbmc6IDAuNXJlbSAxcmVtXCI+XG4gICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWw+XG4gICAgICAgIDxmZC1pY29uICpuZ0lmPVwiZG9jdW1lbnRJdGVtLkZvbnRJY29uXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyXG4gICAgPjwvc3Bhbj5cbiAgICBcbiAgICA8ZGl2IGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDNweFwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1vYmplY3Qtc3RhdHVzIHN0YXR1cz1cIm5lZ2F0aXZlXCIgKm5nSWY9XCJkb2N1bWVudEl0ZW0uSXNSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uJEFjY2VwdGVkID09PSBmYWxzZSB8fCBkb2N1bWVudEl0ZW0uJEFjY2VwdGVkID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJhY2NlcHRlZCA/ICdwb3NpdGl2ZScgOiAnbmVnYXRpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ludmVydGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCIgKm5nSWY9XCJyZWplY3RlZFJlYXNvbiAmJiAhYWNjZXB0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwicXVlc3Rpb24tbWFya1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoQXJpYUxhYmVsPVwiTmVnYXRpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByZWplY3RlZFJlYXNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUtbGVmdD5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcm93LWdhcDogNXB4OyBmbGV4LXdyYXA6IHdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkb2N1bWVudEl0ZW0uRGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBjb2x1bW4tZ2FwOiAzcHg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmlsZS5Jc0RlbGV0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VDbGljayk9XCJvblJlbW92ZUZpbGUoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYXR0YWNobWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFyZWFkb25seSAmJiB1cGxvYWRlci5vcGVuKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWZpbGUtdXBsb2FkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdXBsb2FkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3BpY3R1cmVzXycgKyBkb2N1bWVudEl0ZW0uSXRlbUtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1maWxlLXVwbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cbiAgICAgICAgICAgICAgICA8YmRjLWFjY2VwdC1yZWplY3RcbiAgICAgICAgICAgICAgICAgICAgW3JlamVjdGVkUmVhc29uXT1cInJlamVjdGVkUmVhc29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aXZlVGV4dF09XCJhY2NlcHRlZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbbmVnYXRpdmVUZXh0XT1cInJlamVjdGVkVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgID48L2JkYy1hY2NlcHQtcmVqZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9saT4gLS0+XG5cbjx0ciBmZC10YWJsZS1yb3c+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgICpuZ0lmPVwiZG9jdW1lbnRJdGVtLkF2YXRhciAmJiAhZmlsZXMubGVuZ3RoOyBlbHNlIGZvbnRJY29uVHBsXCJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6Jyc6NjQ6NjRcIlxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2ZvbnRJY29uVHBsPlxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtpbWFnZV09XCJmaXJzdEltYWdlVXJsXCJcbiAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZG9jdW1lbnRJdGVtLkZvbnRJY29uXCJcbiAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGQ+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJtaW4td2lkdGg6IDE0MHB4XCI+XG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XG4gICAgICAgICAgICA8c3Ryb25nXG4gICAgICAgICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIiAqbmdJZj1cImRvY3VtZW50SXRlbS5Jc1JlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPiooe3sgJ9in2KzYqNin2LHbjCcgfCBiYmJUcmFuc2xhdGUgfX0pXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IGxldCBpbmQgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5GaWxlTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3Qtc2Vjb25kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPiAtLT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgY29sdW1uLWdhcDogM3B4OyByb3ctZ2FwOiAzcHg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+PGZkLWljb24gZ2x5cGg9XCJhdHRhY2htZW50XCI+PC9mZC1pY29uPjxhIGZkLWxpbms+e3tmaWxlLkZpbGVOYW1lfX08L2E+PC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVGaWxlLmVtaXQoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhZGRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8cCAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiIGZkLXRhYmxlLXRleHQ+XG4gICAgICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAgPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJPcGVuIEFjdGlvbiBTaGVldCBNb2JpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpbGUuRmlsZU5hbWUgfHwnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25TaGVldEJvZHlJZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIkRvd25sb2FkXCIgZ2x5cGg9XCJkb3dubG9hZFwiID48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQWNjZXB0XCIgZ2x5cGg9XCJhY2NlcHRcIiA+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEZWNpZGUgTGF0ZXJcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIkNhbmNlbFwiIFtuZWdhdGl2ZV09XCJ0cnVlXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYWN0aW9uLXNoZWV0LWJvZHk+XG4gICAgICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQ+XG4gICAgICAgICAgICA8L3A+IC0tPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIitkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0F0dGFjaEZpbGUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidXBsb2FkaW5nU3RhdGU/LmtleSA9PT0gZG9jdW1lbnRJdGVtLlRpdGxlICYmIHVwbG9hZGluZ1N0YXRlPy51cGxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnN1LW1hc2tcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXJnaW5Ub3BdPVwiJzNweCdcIlxuICAgICAgICAgICAgICAgID48L2JzdS1tYXNrPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJzaG93XCJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJkb2N1bWVudEl0ZW0uVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cIifZhdi02KfZh9iv2Ycg2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZXNcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpbGVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGwuZW1pdCgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XG4gICAgICAgICAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keT5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhY2NlcHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxuICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXG4gICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldC1ib2R5PlxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cblxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIiAqbmdJZj1cInN0YXR1cyA9PT0gM1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyZWFkb25seSAmJiByZWplY3RlZFJlYXNvblwiPiB7eyByZWplY3RlZFJlYXNvbiB8IGJiYlRyYW5zbGF0ZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlamVjdGVkUmVhc29uIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ9iv2YTYp9uM2YQg2LHYryDZhdiv2LHaqScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuXG48ZmQtZmlsZS11cGxvYWRlclxuICAgICN1cGxvYWRlclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXG4gICAgZmQtdG9vbGJhci1pdGVtXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcbiAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcbiAgICBbYWNjZXB0XT1cImRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zXCJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxuICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXG4gICAgKHNlbGVjdGVkRmlsZXNDaGFuZ2VkKT1cIm9uRmlsZVNlbGVjdGlvbigkZXZlbnQpXCJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XG48bmctdGVtcGxhdGUgI3N0YXR1c1RwbD5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCI+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzID09PSAxXCJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidb2b7bjNmI2LPYqiDZhdiv2KfYsdqpXScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidb2b7bjNmI2LPYqiDZhdiv2KfYsdqpXScgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdGF0dXMgPT09IDJcIlxuICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICBnbHlwaD1cIm1lc3NhZ2Utc3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQWNjZXB0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXR1cyA9PT0gM1wiXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgIGdseXBoPVwiY2FuY2VsXCJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidSZWplY3RlZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidSZWplY3RlZCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19