barsa-develop-components 0.0.2 → 0.0.3

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 (88) hide show
  1. package/esm2020/lib/accept-reject/accept-reject.component.mjs +69 -0
  2. package/esm2020/lib/avatar/avatar.component.mjs +3 -3
  3. package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +1 -1
  4. package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +1 -1
  5. package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +1 -1
  6. package/esm2020/lib/barsa-develop-components.module.mjs +36 -4
  7. package/esm2020/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +104 -0
  8. package/esm2020/lib/barsa-documents/barsa-documents.component.mjs +173 -0
  9. package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +3 -3
  10. package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +3 -3
  11. package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +3 -3
  12. package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +1 -1
  13. package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +3 -3
  14. package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +3 -3
  15. package/esm2020/lib/footer/footer.component.mjs +41 -0
  16. package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +3 -3
  17. package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +14 -5
  18. package/esm2020/lib/g4b-details/g4b-details.component.mjs +3 -3
  19. package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +3 -3
  20. package/esm2020/lib/login-form/login-form.component.mjs +17 -12
  21. package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +3 -3
  22. package/esm2020/lib/master-detail-card-form/master-detail-card-form.component.mjs +17 -0
  23. package/esm2020/lib/media-file-uploader/media-file-uploader.component.mjs +238 -0
  24. package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +12 -7
  25. package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +1 -1
  26. package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +3 -3
  27. package/esm2020/lib/models/document-item.mjs +2 -0
  28. package/esm2020/lib/models/documents-setting.mjs +2 -0
  29. package/esm2020/lib/models/index.mjs +7 -0
  30. package/esm2020/lib/models/micro-process-flow-view-setting.mjs +2 -0
  31. package/esm2020/lib/models/service-desk-view-of-services-setting.mjs +2 -0
  32. package/esm2020/lib/models/tab-process-view-setting.mjs +2 -0
  33. package/esm2020/lib/pipes/datasource-to-flow-item.mjs +1 -1
  34. package/esm2020/lib/pipes/index.mjs +1 -1
  35. package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +1 -1
  36. package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +1 -1
  37. package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +1 -1
  38. package/esm2020/lib/report-button-view/report-button-view.component.mjs +38 -0
  39. package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +3 -3
  40. package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +3 -3
  41. package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +3 -3
  42. package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +1 -1
  43. package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +7 -6
  44. package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +3 -3
  45. package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +3 -3
  46. package/esm2020/lib/setting-form/setting-form.component.mjs +3 -3
  47. package/esm2020/lib/subform-in-row-report/subform-in-row-report.component.mjs +24 -0
  48. package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +1 -1
  49. package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +4 -3
  50. package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +6 -6
  51. package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +1 -1
  52. package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +3 -3
  53. package/esm2020/lib/ui-person/ui-person.component.mjs +1 -1
  54. package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +3 -3
  55. package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +16 -5
  56. package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +1 -1
  57. package/esm2020/public-api.mjs +9 -1
  58. package/fesm2015/barsa-develop-components.mjs +812 -116
  59. package/fesm2015/barsa-develop-components.mjs.map +1 -1
  60. package/fesm2020/barsa-develop-components.mjs +803 -114
  61. package/fesm2020/barsa-develop-components.mjs.map +1 -1
  62. package/lib/accept-reject/accept-reject.component.d.ts +28 -0
  63. package/lib/barsa-develop-components.module.d.ts +30 -18
  64. package/lib/barsa-document-list-item/barsa-document-list-item.component.d.ts +39 -0
  65. package/lib/barsa-documents/barsa-documents.component.d.ts +47 -0
  66. package/lib/footer/footer.component.d.ts +15 -0
  67. package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +1 -0
  68. package/lib/login-form/login-form.component.d.ts +3 -1
  69. package/lib/master-detail-card-form/master-detail-card-form.component.d.ts +8 -0
  70. package/lib/media-file-uploader/media-file-uploader.component.d.ts +52 -0
  71. package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +7 -1
  72. package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +1 -1
  73. package/lib/models/document-item.d.ts +19 -0
  74. package/lib/models/documents-setting.d.ts +11 -0
  75. package/lib/models/index.d.ts +6 -0
  76. package/lib/models/micro-process-flow-view-setting.d.ts +8 -0
  77. package/lib/models/service-desk-view-of-services-setting.d.ts +6 -0
  78. package/lib/models/tab-process-view-setting.d.ts +7 -0
  79. package/lib/report-button-view/report-button-view.component.d.ts +12 -0
  80. package/lib/service-desk-header/service-desk-header.component.d.ts +2 -1
  81. package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +1 -1
  82. package/lib/subform-in-row-report/subform-in-row-report.component.d.ts +10 -0
  83. package/lib/tab-process-view/tab-process-view.component.d.ts +1 -1
  84. package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +3 -0
  85. package/package.json +1 -1
  86. package/public-api.d.ts +8 -0
  87. package/esm2020/lib/models/models.mjs +0 -2
  88. package/lib/models/models.d.ts +0 -19
@@ -22,9 +22,9 @@ export class G4bEstelamComponent extends BaseItemContentPropsComponent {
22
22
  }
23
23
  }
24
24
  G4bEstelamComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: G4bEstelamComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
- G4bEstelamComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: G4bEstelamComponent, selector: "bdc-g4b-estelam", usesInheritance: true, ngImport: i0, template: "<div fd-form-item class=\"textarea\">\n <label fd-form-label for=\"input-2\">\u067E\u0627\u0633\u062E \u0627\u0633\u062A\u0639\u0644\u0627\u0645</label>\n <textarea fd-form-control style=\"height: 1.8rem\"></textarea>\n</div>\n\n<div fd-form-item>\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\n <fd-segmented-button [(ngModel)]=\"natijeh\" (click)=\"onClick($event)\">\n <button fd-button [label]=\"'\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u067E\u0627\u0633\u062E'\" value=\"1\" [fdType]=\"'standard'\"></button>\n <button fd-button [label]=\"'\u062A\u0627\u06CC\u06CC\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"2\" [fdType]=\"'positive'\"></button>\n <button fd-button [label]=\"'\u0631\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"3\" [fdType]=\"'negative'\"></button>\n </fd-segmented-button>\n</div>\n<!-- <div fd-form-item>\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\n <fd-select placeholder=\"Select value\" stateMessage=\"Success message\" state=\"success\">\n <li fd-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</li>\n </fd-select>\n</div> -->\n", styles: [":host{display:flex;column-gap:1rem;padding:1rem 0}fd-segmented-button{margin:.1875rem 0}.textarea{flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i3.TextareaFormControlDirective, selector: "textarea[fd-form-control]" }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i4.SegmentedButtonComponent, selector: "fd-segmented-button", inputs: ["toggle"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ G4bEstelamComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: G4bEstelamComponent, selector: "bdc-g4b-estelam", usesInheritance: true, ngImport: i0, template: "<div fd-form-item class=\"textarea\">\r\n <label fd-form-label for=\"input-2\">\u067E\u0627\u0633\u062E \u0627\u0633\u062A\u0639\u0644\u0627\u0645</label>\r\n <textarea fd-form-control style=\"height: 1.8rem\"></textarea>\r\n</div>\r\n\r\n<div fd-form-item>\r\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\r\n <fd-segmented-button [(ngModel)]=\"natijeh\" (click)=\"onClick($event)\">\r\n <button fd-button [label]=\"'\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u067E\u0627\u0633\u062E'\" value=\"1\" [fdType]=\"'standard'\"></button>\r\n <button fd-button [label]=\"'\u062A\u0627\u06CC\u06CC\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"2\" [fdType]=\"'positive'\"></button>\r\n <button fd-button [label]=\"'\u0631\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"3\" [fdType]=\"'negative'\"></button>\r\n </fd-segmented-button>\r\n</div>\r\n<!-- <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\r\n <fd-select placeholder=\"Select value\" stateMessage=\"Success message\" state=\"success\">\r\n <li fd-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</li>\r\n </fd-select>\r\n</div> -->\r\n", styles: [":host{display:flex;column-gap:1rem;padding:1rem 0}fd-segmented-button{margin:.1875rem 0}.textarea{flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i3.TextareaFormControlDirective, selector: "textarea[fd-form-control]" }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i4.SegmentedButtonComponent, selector: "fd-segmented-button", inputs: ["toggle"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: G4bEstelamComponent, decorators: [{
27
27
  type: Component,
28
- args: [{ selector: 'bdc-g4b-estelam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fd-form-item class=\"textarea\">\n <label fd-form-label for=\"input-2\">\u067E\u0627\u0633\u062E \u0627\u0633\u062A\u0639\u0644\u0627\u0645</label>\n <textarea fd-form-control style=\"height: 1.8rem\"></textarea>\n</div>\n\n<div fd-form-item>\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\n <fd-segmented-button [(ngModel)]=\"natijeh\" (click)=\"onClick($event)\">\n <button fd-button [label]=\"'\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u067E\u0627\u0633\u062E'\" value=\"1\" [fdType]=\"'standard'\"></button>\n <button fd-button [label]=\"'\u062A\u0627\u06CC\u06CC\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"2\" [fdType]=\"'positive'\"></button>\n <button fd-button [label]=\"'\u0631\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"3\" [fdType]=\"'negative'\"></button>\n </fd-segmented-button>\n</div>\n<!-- <div fd-form-item>\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\n <fd-select placeholder=\"Select value\" stateMessage=\"Success message\" state=\"success\">\n <li fd-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</li>\n </fd-select>\n</div> -->\n", styles: [":host{display:flex;column-gap:1rem;padding:1rem 0}fd-segmented-button{margin:.1875rem 0}.textarea{flex-grow:1}\n"] }]
28
+ args: [{ selector: 'bdc-g4b-estelam', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fd-form-item class=\"textarea\">\r\n <label fd-form-label for=\"input-2\">\u067E\u0627\u0633\u062E \u0627\u0633\u062A\u0639\u0644\u0627\u0645</label>\r\n <textarea fd-form-control style=\"height: 1.8rem\"></textarea>\r\n</div>\r\n\r\n<div fd-form-item>\r\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\r\n <fd-segmented-button [(ngModel)]=\"natijeh\" (click)=\"onClick($event)\">\r\n <button fd-button [label]=\"'\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u067E\u0627\u0633\u062E'\" value=\"1\" [fdType]=\"'standard'\"></button>\r\n <button fd-button [label]=\"'\u062A\u0627\u06CC\u06CC\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"2\" [fdType]=\"'positive'\"></button>\r\n <button fd-button [label]=\"'\u0631\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645'\" value=\"3\" [fdType]=\"'negative'\"></button>\r\n </fd-segmented-button>\r\n</div>\r\n<!-- <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">\u0648\u0636\u0639\u06CC\u062A</label>\r\n <fd-select placeholder=\"Select value\" stateMessage=\"Success message\" state=\"success\">\r\n <li fd-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</li>\r\n </fd-select>\r\n</div> -->\r\n", styles: [":host{display:flex;column-gap:1rem;padding:1rem 0}fd-segmented-button{margin:.1875rem 0}.textarea{flex-grow:1}\n"] }]
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZzRiLWVzdGVsYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVE5RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsNkJBQXNEO0lBTi9GOztRQU9JLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixZQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7S0FVL0Q7SUFURyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7Z0hBWFEsbUJBQW1CO29HQUFuQixtQkFBbUIsOEVDVGhDLDZ0Q0FtQkE7MkZEVmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlSXRlbUNvbnRlbnRQcm9wc0NvbXBvbmVudCwgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLWc0Yi1lc3RlbGFtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZzRiLWVzdGVsYW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2c0Yi1lc3RlbGFtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRzRiRXN0ZWxhbUNvbXBvbmVudCBleHRlbmRzIEJhc2VJdGVtQ29udGVudFByb3BzQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgbmF0aWplaCA9IDE7XG4gICAgb3B0aW9ucyA9IFsn2LHYryDYp9iz2KrYudmE2KfZhScsICfYqtin24zbjNivINin2LPYqti52YTYp9mFJywgJ9iv2LEg2KfZhtiq2LjYp9ixINm+2KfYs9iuJ107XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuICAgIG9uQ2xpY2soZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cInRleHRhcmVhXCI+XG4gICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPtm+2KfYs9iuINin2LPYqti52YTYp9mFPC9sYWJlbD5cbiAgICA8dGV4dGFyZWEgZmQtZm9ybS1jb250cm9sIHN0eWxlPVwiaGVpZ2h0OiAxLjhyZW1cIj48L3RleHRhcmVhPlxuPC9kaXY+XG5cbjxkaXYgZmQtZm9ybS1pdGVtPlxuICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIGZvcj1cImlucHV0LTJcIj7ZiNi22LnbjNiqPC9sYWJlbD5cbiAgICA8ZmQtc2VnbWVudGVkLWJ1dHRvbiBbKG5nTW9kZWwpXT1cIm5hdGlqZWhcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCIn2K/YsSDYp9mG2KrYuNin2LEg2b7Yp9iz2K4nXCIgdmFsdWU9XCIxXCIgW2ZkVHlwZV09XCInc3RhbmRhcmQnXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCIn2KrYp9uM24zYryDYp9iz2KrYudmE2KfZhSdcIiB2YWx1ZT1cIjJcIiBbZmRUeXBlXT1cIidwb3NpdGl2ZSdcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2xhYmVsXT1cIifYsdivINin2LPYqti52YTYp9mFJ1wiIHZhbHVlPVwiM1wiIFtmZFR5cGVdPVwiJ25lZ2F0aXZlJ1wiPjwvYnV0dG9uPlxuICAgIDwvZmQtc2VnbWVudGVkLWJ1dHRvbj5cbjwvZGl2PlxuPCEtLSA8ZGl2IGZkLWZvcm0taXRlbT5cbiAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBmb3I9XCJpbnB1dC0yXCI+2YjYtti524zYqjwvbGFiZWw+XG4gICAgPGZkLXNlbGVjdCBwbGFjZWhvbGRlcj1cIlNlbGVjdCB2YWx1ZVwiIHN0YXRlTWVzc2FnZT1cIlN1Y2Nlc3MgbWVzc2FnZVwiIHN0YXRlPVwic3VjY2Vzc1wiPlxuICAgICAgICA8bGkgZmQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIj57eyBvcHRpb24gfX08L2xpPlxuICAgIDwvZmQtc2VsZWN0PlxuPC9kaXY+IC0tPlxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZzRiLWVzdGVsYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVE5RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsNkJBQXNEO0lBTi9GOztRQU9JLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixZQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7S0FVL0Q7SUFURyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztRQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7Z0hBWFEsbUJBQW1CO29HQUFuQixtQkFBbUIsOEVDVGhDLG13Q0FtQkE7MkZEVmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VJdGVtQ29udGVudFByb3BzQ29tcG9uZW50LCBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiZGMtZzRiLWVzdGVsYW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2c0Yi1lc3RlbGFtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2c0Yi1lc3RlbGFtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRzRiRXN0ZWxhbUNvbXBvbmVudCBleHRlbmRzIEJhc2VJdGVtQ29udGVudFByb3BzQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBuYXRpamVoID0gMTtcclxuICAgIG9wdGlvbnMgPSBbJ9ix2K8g2KfYs9iq2LnZhNin2YUnLCAn2KrYp9uM24zYryDYp9iz2KrYudmE2KfZhScsICfYr9ixINin2YbYqti42KfYsSDZvtin2LPYriddO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuICAgIG9uQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xyXG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgZmQtZm9ybS1pdGVtIGNsYXNzPVwidGV4dGFyZWFcIj5cclxuICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIGZvcj1cImlucHV0LTJcIj7Zvtin2LPYriDYp9iz2KrYudmE2KfZhTwvbGFiZWw+XHJcbiAgICA8dGV4dGFyZWEgZmQtZm9ybS1jb250cm9sIHN0eWxlPVwiaGVpZ2h0OiAxLjhyZW1cIj48L3RleHRhcmVhPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgZmQtZm9ybS1pdGVtPlxyXG4gICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPtmI2LbYuduM2Ko8L2xhYmVsPlxyXG4gICAgPGZkLXNlZ21lbnRlZC1idXR0b24gWyhuZ01vZGVsKV09XCJuYXRpamVoXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCIn2K/YsSDYp9mG2KrYuNin2LEg2b7Yp9iz2K4nXCIgdmFsdWU9XCIxXCIgW2ZkVHlwZV09XCInc3RhbmRhcmQnXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2xhYmVsXT1cIifYqtin24zbjNivINin2LPYqti52YTYp9mFJ1wiIHZhbHVlPVwiMlwiIFtmZFR5cGVdPVwiJ3Bvc2l0aXZlJ1wiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtsYWJlbF09XCIn2LHYryDYp9iz2KrYudmE2KfZhSdcIiB2YWx1ZT1cIjNcIiBbZmRUeXBlXT1cIiduZWdhdGl2ZSdcIj48L2J1dHRvbj5cclxuICAgIDwvZmQtc2VnbWVudGVkLWJ1dHRvbj5cclxuPC9kaXY+XHJcbjwhLS0gPGRpdiBmZC1mb3JtLWl0ZW0+XHJcbiAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBmb3I9XCJpbnB1dC0yXCI+2YjYtti524zYqjwvbGFiZWw+XHJcbiAgICA8ZmQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiU2VsZWN0IHZhbHVlXCIgc3RhdGVNZXNzYWdlPVwiU3VjY2VzcyBtZXNzYWdlXCIgc3RhdGU9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgPGxpIGZkLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uIH19PC9saT5cclxuICAgIDwvZmQtc2VsZWN0PlxyXG48L2Rpdj4gLS0+XHJcbiJdfQ==
@@ -1,18 +1,20 @@
1
1
  import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import { FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';
2
+ import { map, takeUntil } from 'rxjs/operators';
3
+ import { BarsaApi, FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "barsa-novin-ray-core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "barsa-sap-ui";
8
- import * as i4 from "@fundamental-ngx/core/dynamic-side-content";
9
- import * as i5 from "@fundamental-ngx/core/layout-grid";
6
+ import * as i2 from "@angular/router";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "barsa-sap-ui";
9
+ import * as i5 from "@fundamental-ngx/core/dynamic-side-content";
10
+ import * as i6 from "@fundamental-ngx/core/layout-grid";
10
11
  export class LoginFormComponent extends FormBaseComponent {
11
- constructor(_controlUiPipe, _portalService, _formPanelService) {
12
+ constructor(_controlUiPipe, _portalService, _formPanelService, _activatedRoute) {
12
13
  super(_formPanelService);
13
14
  this._controlUiPipe = _controlUiPipe;
14
15
  this._portalService = _portalService;
15
16
  this._formPanelService = _formPanelService;
17
+ this._activatedRoute = _activatedRoute;
16
18
  this.onKeyEnter = (_) => {
17
19
  const layoutItem = this._controlUiPipe.transform(' ورود', this.layout94);
18
20
  if (layoutItem) {
@@ -21,6 +23,9 @@ export class LoginFormComponent extends FormBaseComponent {
21
23
  };
22
24
  }
23
25
  ngOnInit() {
26
+ this._activatedRoute.queryParams.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {
27
+ BarsaApi.Bw.SetCultureByDisplayName(params.culture);
28
+ });
24
29
  super.ngOnInit();
25
30
  this.layout94$.subscribe((layout94) => {
26
31
  this.layout94 = layout94;
@@ -37,13 +42,13 @@ export class LoginFormComponent extends FormBaseComponent {
37
42
  }));
38
43
  }
39
44
  }
40
- LoginFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LoginFormComponent, deps: [{ token: i1.ControlUiPipe }, { token: i1.PortalService }, { token: i1.FormPanelService }], target: i0.ɵɵFactoryTarget.Component });
41
- LoginFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LoginFormComponent, selector: "bdc-login-form", host: { listeners: { "keydown.enter": "onKeyEnter($event)" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mo$ | async as mo\">\n <bsu-mask *ngIf=\"mo.IsLogging\"></bsu-mask>\n <fd-layout-grid *ngIf=\"(size$ | async) === 'sm'; else sideContent\">\n <div [fdLayoutGridCol]=\"1\"></div>\n\n <div [fdLayoutGridCol]=\"10\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </div>\n\n <div [fdLayoutGridCol]=\"1\"></div>\n </fd-layout-grid>\n <ng-template #sideContent>\n <fd-dynamic-side-content [size]=\"(size$ | async)!!\">\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main>\n <!-- <ng-container *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647'\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n \n ></bsu-layout-control>\n </ng-container> -->\n <div\n *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\"\n id=\"bgLogin\"\n [style.backgroundImage]=\"\n 'url(' +\n (mo.Background.FileId\n | picFieldSrc: 'PictureFileInfo':null:layoutConfig.FieldUi.Setting.FieldDefId) +\n ')'\n \"\n ></div>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;background-color:#fff}:host ::ng-deep bsu-ly-simple-label{text-align:center}:host ::ng-deep bsu-ly-simple-label:nth-of-type(1){margin-top:15px}:host ::ng-deep bsu-ui-picture-file{text-align:center}:host ::ng-deep .wrap-content>.container-field{max-width:100%!important}fd-dynamic-side-content{min-height:99vh}fd-dynamic-side-content-side{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}bsu-ly-layout-container-of-root{padding:0 1rem;box-sizing:border-box;display:flex;align-items:center;height:100%}#bgLogin{width:100%;height:100%;background-position:center;background-size:cover;background-repeat:no-repeat}@media (max-width: 599px){:host ::ng-deep bsu-layout-control{min-width:auto!important}:host ::ng-deep bsu-ly-layout-container-of-root{padding:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i4.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i5.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ LoginFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LoginFormComponent, deps: [{ token: i1.ControlUiPipe }, { token: i1.PortalService }, { token: i1.FormPanelService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
46
+ LoginFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LoginFormComponent, selector: "bdc-login-form", host: { listeners: { "keydown.enter": "onKeyEnter($event)" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mo$ | async as mo\">\n <bsu-mask *ngIf=\"mo.IsLogging\"></bsu-mask>\n <fd-layout-grid *ngIf=\"(size$ | async) === 'sm'; else sideContent\">\n <div [fdLayoutGridCol]=\"1\"></div>\n\n <div [fdLayoutGridCol]=\"10\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </div>\n\n <div [fdLayoutGridCol]=\"1\"></div>\n </fd-layout-grid>\n <ng-template #sideContent>\n <fd-dynamic-side-content [size]=\"(size$ | async)!!\">\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main>\n <!-- <ng-container *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647'\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n \n ></bsu-layout-control>\n </ng-container> -->\n <div\n *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\"\n id=\"bgLogin\"\n [style.backgroundImage]=\"\n 'url(' +\n (mo.Background?.FileId\n | picFieldSrc: 'PictureFileInfo':null:layoutConfig.FieldUi.Setting.FieldDefId) +\n ')'\n \"\n ></div>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;background-color:#fff}:host ::ng-deep bsu-ly-simple-label{text-align:center}:host ::ng-deep bsu-ly-simple-label:nth-of-type(1){margin-top:15px}:host ::ng-deep bsu-ui-picture-file{text-align:center}:host ::ng-deep .wrap-content>.container-field{max-width:100%!important}fd-dynamic-side-content{min-height:99vh}fd-dynamic-side-content-side{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}bsu-ly-layout-container-of-root{padding:0 1rem;box-sizing:border-box;display:flex;align-items:center;height:100%}#bgLogin{width:100%;height:100%;background-position:center;background-size:cover;background-repeat:no-repeat}@media (max-width: 599px){:host ::ng-deep bsu-layout-control{min-width:auto!important}:host ::ng-deep bsu-ly-layout-container-of-root{padding:0}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i4.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i5.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i5.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i5.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i6.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i6.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LoginFormComponent, decorators: [{
43
48
  type: Component,
44
- args: [{ selector: 'bdc-login-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<ng-container *ngIf=\"mo$ | async as mo\">\n <bsu-mask *ngIf=\"mo.IsLogging\"></bsu-mask>\n <fd-layout-grid *ngIf=\"(size$ | async) === 'sm'; else sideContent\">\n <div [fdLayoutGridCol]=\"1\"></div>\n\n <div [fdLayoutGridCol]=\"10\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </div>\n\n <div [fdLayoutGridCol]=\"1\"></div>\n </fd-layout-grid>\n <ng-template #sideContent>\n <fd-dynamic-side-content [size]=\"(size$ | async)!!\">\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main>\n <!-- <ng-container *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647'\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n \n ></bsu-layout-control>\n </ng-container> -->\n <div\n *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\"\n id=\"bgLogin\"\n [style.backgroundImage]=\"\n 'url(' +\n (mo.Background.FileId\n | picFieldSrc: 'PictureFileInfo':null:layoutConfig.FieldUi.Setting.FieldDefId) +\n ')'\n \"\n ></div>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;background-color:#fff}:host ::ng-deep bsu-ly-simple-label{text-align:center}:host ::ng-deep bsu-ly-simple-label:nth-of-type(1){margin-top:15px}:host ::ng-deep bsu-ui-picture-file{text-align:center}:host ::ng-deep .wrap-content>.container-field{max-width:100%!important}fd-dynamic-side-content{min-height:99vh}fd-dynamic-side-content-side{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}bsu-ly-layout-container-of-root{padding:0 1rem;box-sizing:border-box;display:flex;align-items:center;height:100%}#bgLogin{width:100%;height:100%;background-position:center;background-size:cover;background-repeat:no-repeat}@media (max-width: 599px){:host ::ng-deep bsu-layout-control{min-width:auto!important}:host ::ng-deep bsu-ly-layout-container-of-root{padding:0}}\n"] }]
45
- }], ctorParameters: function () { return [{ type: i1.ControlUiPipe }, { type: i1.PortalService }, { type: i1.FormPanelService }]; }, propDecorators: { onKeyEnter: [{
49
+ args: [{ selector: 'bdc-login-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<ng-container *ngIf=\"mo$ | async as mo\">\n <bsu-mask *ngIf=\"mo.IsLogging\"></bsu-mask>\n <fd-layout-grid *ngIf=\"(size$ | async) === 'sm'; else sideContent\">\n <div [fdLayoutGridCol]=\"1\"></div>\n\n <div [fdLayoutGridCol]=\"10\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </div>\n\n <div [fdLayoutGridCol]=\"1\"></div>\n </fd-layout-grid>\n <ng-template #sideContent>\n <fd-dynamic-side-content [size]=\"(size$ | async)!!\">\n <fd-dynamic-side-content-side>\n <bsu-ly-layout-container-of-root\n [config]=\"layout94$ | async\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main>\n <!-- <ng-container *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647'\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n \n ></bsu-layout-control>\n </ng-container> -->\n <div\n *ngIf=\"'\u0639\u06A9\u0633 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647' | controlUi: layout94 as layoutConfig\"\n id=\"bgLogin\"\n [style.backgroundImage]=\"\n 'url(' +\n (mo.Background?.FileId\n | picFieldSrc: 'PictureFileInfo':null:layoutConfig.FieldUi.Setting.FieldDefId) +\n ')'\n \"\n ></div>\n </fd-dynamic-side-content-main>\n </fd-dynamic-side-content>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block;background-color:#fff}:host ::ng-deep bsu-ly-simple-label{text-align:center}:host ::ng-deep bsu-ly-simple-label:nth-of-type(1){margin-top:15px}:host ::ng-deep bsu-ui-picture-file{text-align:center}:host ::ng-deep .wrap-content>.container-field{max-width:100%!important}fd-dynamic-side-content{min-height:99vh}fd-dynamic-side-content-side{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}bsu-ly-layout-container-of-root{padding:0 1rem;box-sizing:border-box;display:flex;align-items:center;height:100%}#bgLogin{width:100%;height:100%;background-position:center;background-size:cover;background-repeat:no-repeat}@media (max-width: 599px){:host ::ng-deep bsu-layout-control{min-width:auto!important}:host ::ng-deep bsu-ly-layout-container-of-root{padding:0}}\n"] }]
50
+ }], ctorParameters: function () { return [{ type: i1.ControlUiPipe }, { type: i1.PortalService }, { type: i1.FormPanelService }, { type: i2.ActivatedRoute }]; }, propDecorators: { onKeyEnter: [{
46
51
  type: HostListener,
47
52
  args: ['keydown.enter', ['$event']]
48
53
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLGdCQUFnQixFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBUXpHLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFTckQsWUFDYyxjQUE2QixFQUM3QixjQUE2QixFQUM3QixpQkFBbUM7UUFFN0MsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFKZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVmpELGVBQVUsR0FBRyxDQUFDLENBQUMsRUFBUSxFQUFFO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekUsSUFBSSxVQUFVLEVBQUU7Z0JBQ1osVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM3RDtRQUNMLENBQUMsQ0FBQztJQVFGLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDZixRQUFRLFVBQVUsRUFBRTtnQkFDaEIsS0FBSyxHQUFHO29CQUNKLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixLQUFLLEdBQUc7b0JBQ0osT0FBTyxJQUFJLENBQUM7Z0JBQ2hCO29CQUNJLE9BQU8sSUFBSSxDQUFDO2FBQ25CO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OytHQWpDUSxrQkFBa0I7bUdBQWxCLGtCQUFrQix5R0FGaEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpRENWakMsb3BFQWdEQTsyRkRwQ2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsZ0JBQWdCLENBQUM7K0pBSTdCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb250cm9sVWlQaXBlLCBGb3JtQmFzZUNvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLWxvZ2luLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sb2dpbi1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRm9ybVBhbmVsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICAgIG9uS2V5RW50ZXIgPSAoXyk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBsYXlvdXRJdGVtID0gdGhpcy5fY29udHJvbFVpUGlwZS50cmFuc2Zvcm0oJyDZiNix2YjYrycsIHRoaXMubGF5b3V0OTQpO1xuICAgICAgICBpZiAobGF5b3V0SXRlbSkge1xuICAgICAgICAgICAgbGF5b3V0SXRlbS5GaWVsZFVpLmZpcmVFdmVudCgnY2xpY2snLCBsYXlvdXRJdGVtLkZpZWxkVWkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBzaXplJDogT2JzZXJ2YWJsZTwneGwnIHwgJ21kJyB8ICdzbSc+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NvbnRyb2xVaVBpcGU6IENvbnRyb2xVaVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9mb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9mb3JtUGFuZWxTZXJ2aWNlKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMubGF5b3V0OTQkLnN1YnNjcmliZSgobGF5b3V0OTQpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0OTQgPSBsYXlvdXQ5NDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGRldmljZVNpemUpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRldmljZVNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3NtJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ21kJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneGwnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vJCB8IGFzeW5jIGFzIG1vXCI+XG4gICAgPGJzdS1tYXNrICpuZ0lmPVwibW8uSXNMb2dnaW5nXCI+PC9ic3UtbWFzaz5cbiAgICA8ZmQtbGF5b3V0LWdyaWQgKm5nSWY9XCIoc2l6ZSQgfCBhc3luYykgPT09ICdzbSc7IGVsc2Ugc2lkZUNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjFcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTBcIj5cbiAgICAgICAgICAgIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290XG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2lzUGFuZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMVwiPjwvZGl2PlxuICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG4gICAgPG5nLXRlbXBsYXRlICNzaWRlQ29udGVudD5cbiAgICAgICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50IFtzaXplXT1cIihzaXplJCB8IGFzeW5jKSEhXCI+XG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtc2lkZT5cbiAgICAgICAgICAgICAgICA8YnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdFxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImxheW91dDk0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUGFuZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbaXNSb290XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3Q+XG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtbWFpbj5cbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCIn2LnaqdizINm+2LMg2LLZhduM2YbZhycgfCBjb250cm9sVWk6IGxheW91dDk0IGFzIGxheW91dENvbmZpZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWxheW91dC1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCIn2LnaqdizINm+2LMg2LLZhduM2YbZhydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXRDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lRWRpdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIifYudqp2LMg2b7YsyDYstmF24zZhtmHJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQgYXMgbGF5b3V0Q29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJiZ0xvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRJbWFnZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAobW8uQmFja2dyb3VuZC5GaWxlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBpY0ZpZWxkU3JjOiAnUGljdHVyZUZpbGVJbmZvJzpudWxsOmxheW91dENvbmZpZy5GaWVsZFVpLlNldHRpbmcuRmllbGREZWZJZCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFFBQVEsRUFBaUIsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBU25ILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFTckQsWUFDYyxjQUE2QixFQUM3QixjQUE2QixFQUM3QixpQkFBbUMsRUFDbkMsZUFBK0I7UUFFekMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFMZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQVg3QyxlQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQVEsRUFBRTtZQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pFLElBQUksVUFBVSxFQUFFO2dCQUNaLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDN0Q7UUFDTCxDQUFDLENBQUM7SUFTRixDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEYsUUFBUSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNmLFFBQVEsVUFBVSxFQUFFO2dCQUNoQixLQUFLLEdBQUc7b0JBQ0osT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLEtBQUssR0FBRztvQkFDSixPQUFPLElBQUksQ0FBQztnQkFDaEI7b0JBQ0ksT0FBTyxJQUFJLENBQUM7YUFDbkI7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7K0dBckNRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHlHQUZoQixDQUFDLGdCQUFnQixDQUFDLGlEQ1hqQyxxcEVBZ0RBOzJGRG5DYSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQzs0TEFJN0IsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFyc2FBcGksIENvbnRyb2xVaVBpcGUsIEZvcm1CYXNlQ29tcG9uZW50LCBGb3JtUGFuZWxTZXJ2aWNlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiZGMtbG9naW4tZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xvZ2luLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkZvcm1Db21wb25lbnQgZXh0ZW5kcyBGb3JtQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlFbnRlciA9IChfKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGxheW91dEl0ZW0gPSB0aGlzLl9jb250cm9sVWlQaXBlLnRyYW5zZm9ybSgnINmI2LHZiNivJywgdGhpcy5sYXlvdXQ5NCk7XG4gICAgICAgIGlmIChsYXlvdXRJdGVtKSB7XG4gICAgICAgICAgICBsYXlvdXRJdGVtLkZpZWxkVWkuZmlyZUV2ZW50KCdjbGljaycsIGxheW91dEl0ZW0uRmllbGRVaSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHNpemUkOiBPYnNlcnZhYmxlPCd4bCcgfCAnbWQnIHwgJ3NtJz47XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY29udHJvbFVpUGlwZTogQ29udHJvbFVpUGlwZSxcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2Zvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9mb3JtUGFuZWxTZXJ2aWNlKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgQmFyc2FBcGkuQncuU2V0Q3VsdHVyZUJ5RGlzcGxheU5hbWUocGFyYW1zLmN1bHR1cmUpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5sYXlvdXQ5NCQuc3Vic2NyaWJlKChsYXlvdXQ5NCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQ5NCA9IGxheW91dDk0O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZGV2aWNlU2l6ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZGV2aWNlU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnc20nO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnbWQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd4bCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW8kIHwgYXN5bmMgYXMgbW9cIj5cbiAgICA8YnN1LW1hc2sgKm5nSWY9XCJtby5Jc0xvZ2dpbmdcIj48L2JzdS1tYXNrPlxuICAgIDxmZC1sYXlvdXQtZ3JpZCAqbmdJZj1cIihzaXplJCB8IGFzeW5jKSA9PT0gJ3NtJzsgZWxzZSBzaWRlQ29udGVudFwiPlxuICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMVwiPjwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIxMFwiPlxuICAgICAgICAgICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImxheW91dDk0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3Q+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIxXCI+PC9kaXY+XG4gICAgPC9mZC1sYXlvdXQtZ3JpZD5cbiAgICA8bmctdGVtcGxhdGUgI3NpZGVDb250ZW50PlxuICAgICAgICA8ZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQgW3NpemVdPVwiKHNpemUkIHwgYXN5bmMpISFcIj5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXNpZGUtY29udGVudC1zaWRlPlxuICAgICAgICAgICAgICAgIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290XG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwibGF5b3V0OTQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LWx5LWxheW91dC1jb250YWluZXItb2Ytcm9vdD5cbiAgICAgICAgICAgIDwvZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQtc2lkZT5cbiAgICAgICAgICAgIDxmZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluPlxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIifYudqp2LMg2b7YsyDYstmF24zZhtmHJyB8IGNvbnRyb2xVaTogbGF5b3V0OTQgYXMgbGF5b3V0Q29uZmlnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxic3UtbGF5b3V0LWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYXB0aW9uXT1cIifYudqp2LMg2b7YsyDYstmF24zZhtmHJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImxheW91dENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVFZGl0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWxheW91dC1jb250cm9sPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiJ9i52qnYsyDZvtizINiy2YXbjNmG2YcnIHwgY29udHJvbFVpOiBsYXlvdXQ5NCBhcyBsYXlvdXRDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImJnTG9naW5cIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCgnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIChtby5CYWNrZ3JvdW5kPy5GaWxlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBpY0ZpZWxkU3JjOiAnUGljdHVyZUZpbGVJbmZvJzpudWxsOmxheW91dENvbmZpZy5GaWVsZFVpLlNldHRpbmcuRmllbGREZWZJZCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -19,12 +19,12 @@ export class LoginSocialConncetionsComponent extends ReportBaseComponent {
19
19
  }
20
20
  }
21
21
  LoginSocialConncetionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LoginSocialConncetionsComponent, deps: [{ token: i1.UlvMainService }, { token: i1.PortalService }, { token: i1.MoReportValuePipe }], target: i0.ɵɵFactoryTarget.Component });
22
- LoginSocialConncetionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LoginSocialConncetionsComponent, selector: "bdc-login-social-conncetions", host: { properties: { "attr.rtl": "this.rtl" } }, usesInheritance: true, ngImport: i0, template: "<button\n *ngFor=\"let mo of moDataList$ | async\"\n fd-button\n [label]=\"'Display Text' | rval: mo:allColumns\"\n [fdType]=\"'FdType' | rval: mo:allColumns:true\"\n (click)=\"onClick(mo)\"\n>\n <img\n style=\"max-width: 28px\"\n [src]=\"('Logo' | rval: mo:allColumns)?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\n />\n</button>\n", styles: [":host{display:flex;flex-wrap:wrap;width:100%;justify-content:stretch;margin-top:1rem;column-gap:5px;row-gap:5px}button{flex-grow:1;flex-direction:row-reverse}button img{padding:5px}fd-toolbar{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ LoginSocialConncetionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LoginSocialConncetionsComponent, selector: "bdc-login-social-conncetions", host: { properties: { "attr.rtl": "this.rtl" } }, usesInheritance: true, ngImport: i0, template: "<button\r\n *ngFor=\"let mo of moDataList$ | async\"\r\n fd-button\r\n [label]=\"'Display Text' | rval: mo:allColumns\"\r\n [fdType]=\"'FdType' | rval: mo:allColumns:true\"\r\n (click)=\"onClick(mo)\"\r\n>\r\n <img\r\n style=\"max-width: 28px\"\r\n [src]=\"('Logo' | rval: mo:allColumns)?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\r\n />\r\n</button>\r\n", styles: [":host{display:flex;flex-wrap:wrap;width:100%;justify-content:stretch;margin-top:1rem;column-gap:5px;row-gap:5px}button{flex-grow:1;flex-direction:row-reverse}button img{padding:5px}fd-toolbar{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LoginSocialConncetionsComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'bdc-login-social-conncetions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngFor=\"let mo of moDataList$ | async\"\n fd-button\n [label]=\"'Display Text' | rval: mo:allColumns\"\n [fdType]=\"'FdType' | rval: mo:allColumns:true\"\n (click)=\"onClick(mo)\"\n>\n <img\n style=\"max-width: 28px\"\n [src]=\"('Logo' | rval: mo:allColumns)?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\n />\n</button>\n", styles: [":host{display:flex;flex-wrap:wrap;width:100%;justify-content:stretch;margin-top:1rem;column-gap:5px;row-gap:5px}button{flex-grow:1;flex-direction:row-reverse}button img{padding:5px}fd-toolbar{width:100%}\n"] }]
25
+ args: [{ selector: 'bdc-login-social-conncetions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n *ngFor=\"let mo of moDataList$ | async\"\r\n fd-button\r\n [label]=\"'Display Text' | rval: mo:allColumns\"\r\n [fdType]=\"'FdType' | rval: mo:allColumns:true\"\r\n (click)=\"onClick(mo)\"\r\n>\r\n <img\r\n style=\"max-width: 28px\"\r\n [src]=\"('Logo' | rval: mo:allColumns)?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\r\n />\r\n</button>\r\n", styles: [":host{display:flex;flex-wrap:wrap;width:100%;justify-content:stretch;margin-top:1rem;column-gap:5px;row-gap:5px}button{flex-grow:1;flex-direction:row-reverse}button img{padding:5px}fd-toolbar{width:100%}\n"] }]
26
26
  }], ctorParameters: function () { return [{ type: i1.UlvMainService }, { type: i1.PortalService }, { type: i1.MoReportValuePipe }]; }, propDecorators: { rtl: [{
27
27
  type: HostBinding,
28
28
  args: ['attr.rtl']
29
29
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbG9naW4tc29jaWFsLWNvbm5jZXRpb25zL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFLWCxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU85QixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBRXBFLFlBQ2MsZUFBK0IsRUFDL0IsY0FBNkIsRUFDL0IsZUFBa0M7UUFFMUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUo3QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDL0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBSnJCLFFBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQU81RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQXVCO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRixNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLCtCQUErQixRQUFRLGNBQWMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDOzs0SEFkUSwrQkFBK0I7Z0hBQS9CLCtCQUErQiw2SUNoQjVDLDJYQVlBOzJGRElhLCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07aUtBR3RCLEdBQUc7c0JBQTNCLFdBQVc7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgUmVwb3J0QmFzZUNvbXBvbmVudCxcbiAgICBCYXJzYUFwaSxcbiAgICBVbHZNYWluU2VydmljZSxcbiAgICBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFBvcnRhbFNlcnZpY2Vcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiZGMtbG9naW4tc29jaWFsLWNvbm5jZXRpb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50IGV4dGVuZHMgUmVwb3J0QmFzZUNvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJ0bCcpIHJ0bCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGw7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVwb3J0VmFsdWVQaXBlOiBNb1JlcG9ydFZhbHVlUGlwZVxuICAgICkge1xuICAgICAgICBzdXBlcihfcG9ydGFsU2VydmljZSwgX3Vsdk1haW5TZXJ2aWNlKTtcbiAgICB9XG4gICAgb25DbGljayhtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybSgnTmFtZScsIG1vLCB0aGlzLmFsbENvbHVtbnMsIHRydWUpO1xuXG4gICAgICAgIGNvbnN0IHJldHVyblVybCA9IGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIEJhcnNhQXBpLkJ3Lk5hdmlnYXRlVG8oYC9hcGkvb3BlbklkL3NpZ25pbj9wcm92aWRlcj0ke3Byb3ZpZGVyfSZyZXR1cm5Vcmw9JHtyZXR1cm5Vcmx9YCk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0JCB8IGFzeW5jXCJcbiAgICBmZC1idXR0b25cbiAgICBbbGFiZWxdPVwiJ0Rpc3BsYXkgVGV4dCcgfCBydmFsOiBtbzphbGxDb2x1bW5zXCJcbiAgICBbZmRUeXBlXT1cIidGZFR5cGUnIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlXCJcbiAgICAoY2xpY2spPVwib25DbGljayhtbylcIlxuPlxuICAgIDxpbWdcbiAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDI4cHhcIlxuICAgICAgICBbc3JjXT1cIignTG9nbycgfCBydmFsOiBtbzphbGxDb2x1bW5zKT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdHZXRQaWN0dXJlRnJvbUZpbGVJbmZvJzpudWxsXCJcbiAgICAvPlxuPC9idXR0b24+XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbG9naW4tc29jaWFsLWNvbm5jZXRpb25zL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFLWCxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU85QixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBRXBFLFlBQ2MsZUFBK0IsRUFDL0IsY0FBNkIsRUFDL0IsZUFBa0M7UUFFMUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUo3QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDL0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBSnJCLFFBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQU81RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQXVCO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRixNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLCtCQUErQixRQUFRLGNBQWMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDOzs0SEFkUSwrQkFBK0I7Z0hBQS9CLCtCQUErQiw2SUNoQjVDLG1aQVlBOzJGRElhLCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07aUtBR3RCLEdBQUc7c0JBQTNCLFdBQVc7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgUmVwb3J0QmFzZUNvbXBvbmVudCxcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgVWx2TWFpblNlcnZpY2UsXHJcbiAgICBNb1JlcG9ydFZhbHVlUGlwZSxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBQb3J0YWxTZXJ2aWNlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmRjLWxvZ2luLXNvY2lhbC1jb25uY2V0aW9ucycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2xvZ2luLXNvY2lhbC1jb25uY2V0aW9ucy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luU29jaWFsQ29ubmNldGlvbnNDb21wb25lbnQgZXh0ZW5kcyBSZXBvcnRCYXNlQ29tcG9uZW50IHtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5ydGwnKSBydGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVwb3J0VmFsdWVQaXBlOiBNb1JlcG9ydFZhbHVlUGlwZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX3BvcnRhbFNlcnZpY2UsIF91bHZNYWluU2VydmljZSk7XHJcbiAgICB9XHJcbiAgICBvbkNsaWNrKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnJlcG9ydFZhbHVlUGlwZS50cmFuc2Zvcm0oJ05hbWUnLCBtbywgdGhpcy5hbGxDb2x1bW5zLCB0cnVlKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmV0dXJuVXJsID0gZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICBCYXJzYUFwaS5Cdy5OYXZpZ2F0ZVRvKGAvYXBpL29wZW5JZC9zaWduaW4/cHJvdmlkZXI9JHtwcm92aWRlcn0mcmV0dXJuVXJsPSR7cmV0dXJuVXJsfWApO1xyXG4gICAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICAgICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0JCB8IGFzeW5jXCJcclxuICAgIGZkLWJ1dHRvblxyXG4gICAgW2xhYmVsXT1cIidEaXNwbGF5IFRleHQnIHwgcnZhbDogbW86YWxsQ29sdW1uc1wiXHJcbiAgICBbZmRUeXBlXT1cIidGZFR5cGUnIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlXCJcclxuICAgIChjbGljayk9XCJvbkNsaWNrKG1vKVwiXHJcbj5cclxuICAgIDxpbWdcclxuICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMjhweFwiXHJcbiAgICAgICAgW3NyY109XCIoJ0xvZ28nIHwgcnZhbDogbW86YWxsQ29sdW1ucyk/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnR2V0UGljdHVyZUZyb21GaWxlSW5mbyc6bnVsbFwiXHJcbiAgICAvPlxyXG48L2J1dHRvbj5cclxuIl19
@@ -0,0 +1,17 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FormPropsBaseComponent } from 'barsa-novin-ray-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "barsa-sap-ui";
5
+ import * as i2 from "@fundamental-ngx/core/card";
6
+ export class MasterDetailCardFormComponent extends FormPropsBaseComponent {
7
+ ngOnInit() {
8
+ super.ngOnInit();
9
+ }
10
+ }
11
+ MasterDetailCardFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MasterDetailCardFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
+ MasterDetailCardFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MasterDetailCardFormComponent, selector: "bdc-master-detail-card-form", usesInheritance: true, ngImport: i0, template: "<fd-card class=\"master-tab\">\n <bsu-ly-tab-page [config]=\"modernTabs[0]\"></bsu-ly-tab-page>\n</fd-card>\n<fd-card class=\"details-tab\">\n <bsu-ly-tab-page [config]=\"modernTabs[1]\"></bsu-ly-tab-page>\n</fd-card>\n", styles: [":host{display:flex;width:100%;height:100%;column-gap:.525rem}fd-card.master-tab,fd-card.details-tab{height:100%}.master-tab{max-width:400px}.details-tab{width:100%}\n"], dependencies: [{ kind: "component", type: i1.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i2.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MasterDetailCardFormComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'bdc-master-detail-card-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card class=\"master-tab\">\n <bsu-ly-tab-page [config]=\"modernTabs[0]\"></bsu-ly-tab-page>\n</fd-card>\n<fd-card class=\"details-tab\">\n <bsu-ly-tab-page [config]=\"modernTabs[1]\"></bsu-ly-tab-page>\n</fd-card>\n", styles: [":host{display:flex;width:100%;height:100%;column-gap:.525rem}fd-card.master-tab,fd-card.details-tab{height:100%}.master-tab{max-width:400px}.details-tab{width:100%}\n"] }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLWRldGFpbC1jYXJkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbWFzdGVyLWRldGFpbC1jYXJkLWZvcm0vbWFzdGVyLWRldGFpbC1jYXJkLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbWFzdGVyLWRldGFpbC1jYXJkLWZvcm0vbWFzdGVyLWRldGFpbC1jYXJkLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVE5RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsc0JBQXNCO0lBQ3JFLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQzs7MEhBSFEsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMEZDVDFDLG1PQU1BOzJGREdhLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmRjLW1hc3Rlci1kZXRhaWwtY2FyZC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFzdGVyLWRldGFpbC1jYXJkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21hc3Rlci1kZXRhaWwtY2FyZC1mb3JtLmNvbXBvbmVudC5jc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNYXN0ZXJEZXRhaWxDYXJkRm9ybUNvbXBvbmVudCBleHRlbmRzIEZvcm1Qcm9wc0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cbn1cbiIsIjxmZC1jYXJkIGNsYXNzPVwibWFzdGVyLXRhYlwiPlxuICAgIDxic3UtbHktdGFiLXBhZ2UgW2NvbmZpZ109XCJtb2Rlcm5UYWJzWzBdXCI+PC9ic3UtbHktdGFiLXBhZ2U+XG48L2ZkLWNhcmQ+XG48ZmQtY2FyZCBjbGFzcz1cImRldGFpbHMtdGFiXCI+XG4gICAgPGJzdS1seS10YWItcGFnZSBbY29uZmlnXT1cIm1vZGVyblRhYnNbMV1cIj48L2JzdS1seS10YWItcGFnZT5cbjwvZmQtY2FyZD5cbiJdfQ==
@@ -0,0 +1,238 @@
1
+ import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';
2
+ import { AudioRecordingService, BarsaApi, UploadService, VideoRecordingService } from 'barsa-novin-ray-core';
3
+ import { UiPdfViewerComponent } from 'barsa-sap-ui';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@fundamental-ngx/core/button";
7
+ import * as i3 from "@fundamental-ngx/core/card";
8
+ import * as i4 from "@fundamental-ngx/core/nested-list";
9
+ import * as i5 from "@fundamental-ngx/core/progress-indicator";
10
+ import * as i6 from "barsa-novin-ray-core";
11
+ export class MediaFileUploaderComponent extends UiPdfViewerComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.isPlaying = false;
15
+ this.displayControls = true;
16
+ this.isRecording = false;
17
+ this.audioConf = { audio: true };
18
+ this.videoConf = { video: { facingMode: 'user', width: 320 }, audio: true };
19
+ this.recordType = 'audio';
20
+ }
21
+ get video() {
22
+ return this.videoElement?.nativeElement;
23
+ }
24
+ get fileInput() {
25
+ return this.photoElement?.nativeElement;
26
+ }
27
+ ngOnInit() {
28
+ super.ngOnInit();
29
+ this._videoRecoder.recordingFailed().subscribe(() => {
30
+ this.isRecording = false;
31
+ this._cdr.detectChanges();
32
+ });
33
+ this._videoRecoder.getRecordedTime().subscribe((time) => {
34
+ this.recordedTime = time;
35
+ this._cdr.detectChanges();
36
+ });
37
+ this._videoRecoder.getStream().subscribe((stream) => {
38
+ this.videoStream = stream;
39
+ this._cdr.detectChanges();
40
+ });
41
+ this._videoRecoder.getRecordedBlob().subscribe((data) => {
42
+ this.fileBlob = data.blob;
43
+ this.fileName = data.title;
44
+ this.valueUrl = this._domSanitizer.bypassSecurityTrustUrl(data.url);
45
+ this._cdr.detectChanges();
46
+ });
47
+ this._audioRecorder.recordingFailed().subscribe(() => {
48
+ this.isRecording = false;
49
+ this._cdr.detectChanges();
50
+ });
51
+ this._audioRecorder.getRecordedTime().subscribe((time) => {
52
+ this.recordedTime = time;
53
+ this._cdr.detectChanges();
54
+ });
55
+ this._audioRecorder.getRecordedBlob().subscribe((data) => {
56
+ this.fileBlob = data.blob;
57
+ this.fileName = data.title;
58
+ this.valueUrl = this._domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(data.blob));
59
+ this._cdr.detectChanges();
60
+ });
61
+ let glyph = '';
62
+ switch (this.recordType) {
63
+ case 'audio':
64
+ glyph = 'attachment-audio';
65
+ break;
66
+ case 'video':
67
+ glyph = 'attachment-video';
68
+ break;
69
+ default:
70
+ glyph = 'attachment-photo';
71
+ break;
72
+ }
73
+ this.glyph = glyph;
74
+ this.fileName = this.value?.FileName;
75
+ this.recordType = this.parameters?.MediaType$Caption || 'audio';
76
+ }
77
+ onDelete() {
78
+ super.onDelete();
79
+ this.onClearRecord();
80
+ }
81
+ onClearRecord() {
82
+ this.abortVideoRecording();
83
+ this.abortAudioRecording();
84
+ this.fileBlob = null;
85
+ this.valueUrl = null;
86
+ this._cdr.detectChanges();
87
+ }
88
+ onToggleRecord() {
89
+ if (this.recordType === 'audio') {
90
+ if (this.isRecording) {
91
+ this.stopAudioRecording();
92
+ }
93
+ else {
94
+ this.startAudioRecording();
95
+ }
96
+ }
97
+ else if (this.recordType === 'video') {
98
+ this.video.hidden = false;
99
+ if (this.isRecording) {
100
+ this.stopVideoRecording();
101
+ }
102
+ else {
103
+ this.startVideoRecording();
104
+ }
105
+ }
106
+ else if (this.recordType === 'photo') {
107
+ }
108
+ }
109
+ onTakePhoto() {
110
+ if (this.fileInput?.files?.length) {
111
+ const file = this.fileInput.files.item(0);
112
+ if (file) {
113
+ this.fileName = file.name;
114
+ this._uploadFile([file]).subscribe();
115
+ }
116
+ }
117
+ }
118
+ onUpload() {
119
+ const videoFile = new File([this.fileBlob], this.fileName);
120
+ this._uploadFile([videoFile]).subscribe();
121
+ }
122
+ startVideoRecording() {
123
+ if (!this.isRecording) {
124
+ this.video.controls = false;
125
+ this.isRecording = true;
126
+ this._videoRecoder
127
+ .startRecording(this.videoConf)
128
+ .then((stream) => {
129
+ // this.video.src = window.URL.createObjectURL(stream);
130
+ this.video.srcObject = stream;
131
+ this.video.play();
132
+ })
133
+ .catch(function (err) {
134
+ console.log(err.name + ': ' + err.message);
135
+ });
136
+ }
137
+ }
138
+ abortVideoRecording() {
139
+ if (this.isRecording && this.recordType === 'video') {
140
+ this.isRecording = false;
141
+ this._videoRecoder.abortRecording();
142
+ }
143
+ if (this.video) {
144
+ const video = this.video;
145
+ video.controls = false;
146
+ video.hidden = true;
147
+ }
148
+ }
149
+ stopVideoRecording() {
150
+ if (this.isRecording && this.recordType === 'video') {
151
+ this._videoRecoder.stopRecording();
152
+ const video = this.video;
153
+ video.srcObject = this.valueUrl;
154
+ video.controls = true;
155
+ this.isRecording = false;
156
+ }
157
+ }
158
+ clearVideoRecordedData() {
159
+ this.valueUrl = null;
160
+ const video = this.video;
161
+ video.srcObject = null;
162
+ video.controls = false;
163
+ this._cdr.detectChanges();
164
+ }
165
+ downloadVideoRecordedData() {
166
+ this._downloadFile(this.fileBlob, 'video/mp4', this.fileName);
167
+ }
168
+ startAudioRecording() {
169
+ if (!this.isRecording) {
170
+ this.isRecording = true;
171
+ this._audioRecorder.startRecording();
172
+ }
173
+ }
174
+ abortAudioRecording() {
175
+ if (this.isRecording && this.recordType === 'audio') {
176
+ this.isRecording = false;
177
+ this._audioRecorder.abortRecording();
178
+ }
179
+ }
180
+ stopAudioRecording() {
181
+ if (this.isRecording && this.recordType === 'audio') {
182
+ this._audioRecorder.stopRecording();
183
+ this.isRecording = false;
184
+ }
185
+ }
186
+ clearAudioRecordedData() {
187
+ this.valueUrl = null;
188
+ }
189
+ downloadAudioRecordedData() {
190
+ this._downloadFile(this.fileBlob, 'audio/mp3', this.fileName);
191
+ }
192
+ ngOnDestroy() {
193
+ this.abortAudioRecording();
194
+ }
195
+ _downloadFile(data, type, filename) {
196
+ const blob = new Blob([data], { type });
197
+ const url = window.URL.createObjectURL(blob);
198
+ // this.video.srcObject = stream;
199
+ // const url = data;
200
+ const anchor = document.createElement('a');
201
+ anchor.download = filename;
202
+ anchor.href = url;
203
+ document.body.appendChild(anchor);
204
+ anchor.click();
205
+ document.body.removeChild(anchor);
206
+ }
207
+ _downloadFileIdCompleted(response) {
208
+ super._downloadFileIdCompleted(response);
209
+ if (this.valueUrl) {
210
+ if (this.recordType === 'video') {
211
+ this.video.controls = true;
212
+ }
213
+ }
214
+ }
215
+ _refresh(_) {
216
+ if (BarsaApi.Ext.isEmpty(this.value)) {
217
+ return;
218
+ }
219
+ const fileId = this.value.Id;
220
+ this.DownloadFileId(fileId, true, '', null, false);
221
+ }
222
+ }
223
+ MediaFileUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
224
+ MediaFileUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MediaFileUploaderComponent, selector: "bdc-media-file-uploader", providers: [AudioRecordingService, VideoRecordingService, UploadService], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true }, { propertyName: "photoElement", first: true, predicate: ["photoElement"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\r\n <fd-card-content class=\"file-content\">\r\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\r\n <div class=\"icon\">\r\n <i\r\n style=\"left: 45%; position: absolute\"\r\n fd-nested-list-icon\r\n [glyph]=\"glyph\"\r\n *ngIf=\"!value && !valueUrl && !isRecording\"\r\n ></i>\r\n </div>\r\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\r\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\r\n <i\r\n style=\"left: 45%; position: absolute\"\r\n fd-nested-list-icon\r\n [glyph]=\"glyph\"\r\n *ngIf=\"!value && !valueUrl && !isRecording\"\r\n ></i>\r\n </video>\r\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\r\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\r\n </audio>\r\n <input\r\n #photoElement\r\n *ngIf=\"recordType === 'photo'\"\r\n type=\"file\"\r\n accept=\"image/*\"\r\n id=\"file-input\"\r\n capture=\"environment\"\r\n (change)=\"onTakePhoto()\"\r\n />\r\n </div>\r\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\r\n <div>\r\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\r\n </div>\r\n <div>{{ fileName }}</div>\r\n </div>\r\n <div class=\"progress\" *ngIf=\"uploadingState$ | async as uploadingState\">\r\n <div>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState?.progress\"\r\n ></fd-progress-indicator>\r\n </div>\r\n </div>\r\n <div class=\"btn-wrapper\">\r\n <button\r\n class=\"btn-record\"\r\n *ngIf=\"!value && !valueUrl\"\r\n fd-button\r\n [glyph]=\"isRecording ? 'stop' : 'record'\"\r\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\r\n (click)=\"onToggleRecord()\"\r\n ></button>\r\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\r\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\r\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\r\n </div>\r\n <div *ngIf=\"value\" class=\"btn-toolbar\">\r\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\r\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\r\n </div>\r\n </div>\r\n </fd-card-content>\r\n</fd-card>\r\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i3.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i4.NestedListIconDirective, selector: "[fdNestedDirectivesIcon], [fd-nested-list-icon]", inputs: ["class", "glyph", "role"] }, { kind: "component", type: i5.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MediaFileUploaderComponent, decorators: [{
226
+ type: Component,
227
+ args: [{ selector: 'bdc-media-file-uploader', changeDetection: ChangeDetectionStrategy.OnPush, providers: [AudioRecordingService, VideoRecordingService, UploadService], template: "<fd-card class=\"upload\" [ngClass]=\"recordType\">\r\n <fd-card-content class=\"file-content\">\r\n <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\r\n <div class=\"icon\">\r\n <i\r\n style=\"left: 45%; position: absolute\"\r\n fd-nested-list-icon\r\n [glyph]=\"glyph\"\r\n *ngIf=\"!value && !valueUrl && !isRecording\"\r\n ></i>\r\n </div>\r\n <video #videoElement *ngIf=\"recordType === 'video'\" [class.video-novalue]=\"!valueUrl\">\r\n <source *ngIf=\"!isRecording && valueUrl\" [src]=\"valueUrl\" />\r\n <i\r\n style=\"left: 45%; position: absolute\"\r\n fd-nested-list-icon\r\n [glyph]=\"glyph\"\r\n *ngIf=\"!value && !valueUrl && !isRecording\"\r\n ></i>\r\n </video>\r\n <audio *ngIf=\"!isRecording && valueUrl && recordType === 'audio'\" controls>\r\n <source [src]=\"valueUrl\" type=\"audio/mp3\" />\r\n </audio>\r\n <input\r\n #photoElement\r\n *ngIf=\"recordType === 'photo'\"\r\n type=\"file\"\r\n accept=\"image/*\"\r\n id=\"file-input\"\r\n capture=\"environment\"\r\n (change)=\"onTakePhoto()\"\r\n />\r\n </div>\r\n <div *ngIf=\"isRecording || valueUrl\" class=\"media-info\">\r\n <div>\r\n {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\r\n </div>\r\n <div>{{ fileName }}</div>\r\n </div>\r\n <div class=\"progress\" *ngIf=\"uploadingState$ | async as uploadingState\">\r\n <div>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState?.progress\"\r\n ></fd-progress-indicator>\r\n </div>\r\n </div>\r\n <div class=\"btn-wrapper\">\r\n <button\r\n class=\"btn-record\"\r\n *ngIf=\"!value && !valueUrl\"\r\n fd-button\r\n [glyph]=\"isRecording ? 'stop' : 'record'\"\r\n [fdType]=\"isRecording ? 'attention' : 'ghost'\"\r\n (click)=\"onToggleRecord()\"\r\n ></button>\r\n <div *ngIf=\"!value && valueUrl\" class=\"btn-toolbar\">\r\n <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\r\n <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\r\n </div>\r\n <div *ngIf=\"value\" class=\"btn-toolbar\">\r\n <button *ngIf=\"value\" fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\r\n <button *ngIf=\"value\" fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\r\n </div>\r\n </div>\r\n </fd-card-content>\r\n</fd-card>\r\n", styles: [":host .upload{display:flex;justify-content:center;align-items:center;flex-direction:column;max-width:380px;position:relative}:host .upload .file-content{width:100%}:host .upload i:before{color:#0a6ed1!important;font-size:2rem}fd-card.audio{min-height:120px;max-height:120px}fd-card.video{min-height:340px;max-height:340px}.icon{display:flex;align-items:center;justify-content:center;position:absolute;top:45%;left:45%}.video-novalue{border:1px dashed var(--sapObjectHeader_BorderColor);min-height:240px}audio,video{width:100%}.progress{position:absolute;width:100%;height:100%;background-color:#e4e4e4c7;z-index:4;display:flex;justify-content:center;align-items:center;top:0;left:0}.progress div{flex:.5}.file-content{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.media-wrapper{flex-grow:1}.btn-wrapper{align-self:center}.btn-record{flex-shrink:1}.btn-toolbar{flex-grow:1;display:flex;column-gap:1rem}.media-info{flex-shrink:1;display:flex;width:100%;justify-content:space-between}\n"] }]
228
+ }], propDecorators: { videoElement: [{
229
+ type: ViewChild,
230
+ args: ['videoElement']
231
+ }], photoElement: [{
232
+ type: ViewChild,
233
+ args: ['photoElement']
234
+ }], dialogContainer: [{
235
+ type: ViewChild,
236
+ args: ['container', { read: TemplateRef }]
237
+ }] } });
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9tZWRpYS1maWxlLXVwbG9hZGVyL21lZGlhLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvbWVkaWEtZmlsZS11cGxvYWRlci9tZWRpYS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFTcEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVBwRTs7UUFhSSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTXBCLGNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFdkUsZUFBVSxHQUFHLE9BQU8sQ0FBQztLQXlOeEI7SUF2TkcsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUM1QyxD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eUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxDQUFDOzhCQUc3QyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUV6QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLCBCYXJzYUFwaSwgVXBsb2FkU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdiYXJzYS1zYXAtdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1tZWRpYS1maWxlLXVwbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtZmlsZS11cGxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0F1ZGlvUmVjb3JkaW5nU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlLCBVcGxvYWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCBleHRlbmRzIFVpUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCd2aWRlb0VsZW1lbnQnKSB2aWRlb0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdwaG90b0VsZW1lbnQnKSBwaG90b0VsZW1lbnQ6IGFueTtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgZGlzcGxheUNvbnRyb2xzID0gdHJ1ZTtcbiAgICBpc1JlY29yZGluZyA9IGZhbHNlO1xuICAgIHJlY29yZGVkVGltZTtcbiAgICBmaWxlQmxvYjtcbiAgICBmaWxlTmFtZTtcbiAgICBhdWRpb1N0cmVhbTtcbiAgICB2aWRlb1N0cmVhbTogTWVkaWFTdHJlYW07XG4gICAgYXVkaW9Db25mID0geyBhdWRpbzogdHJ1ZSB9O1xuICAgIHZpZGVvQ29uZiA9IHsgdmlkZW86IHsgZmFjaW5nTW9kZTogJ3VzZXInLCB3aWR0aDogMzIwIH0sIGF1ZGlvOiB0cnVlIH07XG4gICAgZ2x5cGg6IHN0cmluZztcbiAgICByZWNvcmRUeXBlID0gJ2F1ZGlvJztcblxuICAgIGdldCB2aWRlbygpOiBIVE1MTWVkaWFFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlkZW9FbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICBnZXQgZmlsZUlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5waG90b0VsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIucmVjb3JkaW5nRmFpbGVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZFRpbWUoKS5zdWJzY3JpYmUoKHRpbWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVjb3JkZWRUaW1lID0gdGltZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRTdHJlYW0oKS5zdWJzY3JpYmUoKHN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWRlb1N0cmVhbSA9IHN0cmVhbTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvUmVjb2Rlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChkYXRhLnVybCk7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLnJlY29yZGluZ0ZhaWxlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmdldFJlY29yZGVkVGltZSgpLnN1YnNjcmliZSgodGltZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWNvcmRlZFRpbWUgPSB0aW1lO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5nZXRSZWNvcmRlZEJsb2IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUJsb2IgPSBkYXRhLmJsb2I7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGF0YS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVVcmwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChVUkwuY3JlYXRlT2JqZWN0VVJMKGRhdGEuYmxvYikpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBnbHlwaCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVjb3JkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtYXVkaW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICAgICAgICAgIGdseXBoID0gJ2F0dGFjaG1lbnQtdmlkZW8nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBnbHlwaCA9ICdhdHRhY2htZW50LXBob3RvJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdseXBoID0gZ2x5cGg7XG4gICAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLnZhbHVlPy5GaWxlTmFtZTtcbiAgICAgICAgdGhpcy5yZWNvcmRUeXBlID0gdGhpcy5wYXJhbWV0ZXJzPy5NZWRpYVR5cGUkQ2FwdGlvbiB8fCAnYXVkaW8nO1xuICAgIH1cblxuICAgIG9uRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vbkRlbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXJSZWNvcmQoKTtcbiAgICB9XG4gICAgb25DbGVhclJlY29yZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYm9ydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgIHRoaXMuYWJvcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICB0aGlzLmZpbGVCbG9iID0gbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZVVybCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIG9uVG9nZ2xlUmVjb3JkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1JlY29yZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEF1ZGlvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdWRpb1JlY29yZGluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy52aWRlby5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVmlkZW9SZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFZpZGVvUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZWNvcmRUeXBlID09PSAncGhvdG8nKSB7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWtlUGhvdG8oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dD8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZUlucHV0LmZpbGVzLml0ZW0oMCk7XG4gICAgICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShbZmlsZV0pLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVXBsb2FkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWRlb0ZpbGU6IEZpbGUgPSBuZXcgRmlsZShbdGhpcy5maWxlQmxvYl0sIHRoaXMuZmlsZU5hbWUpO1xuICAgICAgICB0aGlzLl91cGxvYWRGaWxlKFt2aWRlb0ZpbGVdKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgc3RhcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZGVvUmVjb2RlclxuICAgICAgICAgICAgICAgIC5zdGFydFJlY29yZGluZyh0aGlzLnZpZGVvQ29uZilcbiAgICAgICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMudmlkZW8uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlkZW8ucGxheSgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLm5hbWUgKyAnOiAnICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRWaWRlb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWRlb1JlY29kZXIuYWJvcnRSZWNvcmRpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52aWRlbykge1xuICAgICAgICAgICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uY29udHJvbHMgPSBmYWxzZTtcbiAgICAgICAgICAgIHZpZGVvLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wVmlkZW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgdGhpcy5fdmlkZW9SZWNvZGVyLnN0b3BSZWNvcmRpbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZGVvOiBhbnkgPSB0aGlzLnZpZGVvO1xuICAgICAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gdGhpcy52YWx1ZVVybDtcbiAgICAgICAgICAgIHZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyVmlkZW9SZWNvcmRlZERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVVcmwgPSBudWxsO1xuICAgICAgICBjb25zdCB2aWRlbyA9IHRoaXMudmlkZW87XG4gICAgICAgIHZpZGVvLnNyY09iamVjdCA9IG51bGw7XG4gICAgICAgIHZpZGVvLmNvbnRyb2xzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRWaWRlb1JlY29yZGVkRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlKHRoaXMuZmlsZUJsb2IsICd2aWRlby9tcDQnLCB0aGlzLmZpbGVOYW1lKTtcbiAgICB9XG5cbiAgICBzdGFydEF1ZGlvUmVjb3JkaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNSZWNvcmRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdGFydFJlY29yZGluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJvcnRBdWRpb1JlY29yZGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmcgJiYgdGhpcy5yZWNvcmRUeXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9hdWRpb1JlY29yZGVyLmFib3J0UmVjb3JkaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wQXVkaW9SZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMucmVjb3JkVHlwZSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgICAgdGhpcy5fYXVkaW9SZWNvcmRlci5zdG9wUmVjb3JkaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlVXJsID0gbnVsbDtcbiAgICB9XG5cbiAgICBkb3dubG9hZEF1ZGlvUmVjb3JkZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUodGhpcy5maWxlQmxvYiwgJ2F1ZGlvL21wMycsIHRoaXMuZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFib3J0QXVkaW9SZWNvcmRpbmcoKTtcbiAgICB9XG5cbiAgICBfZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgLy8gdGhpcy52aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgIC8vIGNvbnN0IHVybCA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYW5jaG9yLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGFuY2hvci5ocmVmID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFuY2hvcik7XG4gICAgICAgIGFuY2hvci5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG93bmxvYWRGaWxlSWRDb21wbGV0ZWQocmVzcG9uc2UpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX2Rvd25sb2FkRmlsZUlkQ29tcGxldGVkKHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVVcmwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZFR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvLmNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlZnJlc2goXz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKEJhcnNhQXBpLkV4dC5pc0VtcHR5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZUlkID0gdGhpcy52YWx1ZS5JZDtcbiAgICAgICAgdGhpcy5Eb3dubG9hZEZpbGVJZChmaWxlSWQsIHRydWUsICcnLCBudWxsLCBmYWxzZSk7XG4gICAgfVxufVxuIiwiPGZkLWNhcmQgY2xhc3M9XCJ1cGxvYWRcIiBbbmdDbGFzc109XCJyZWNvcmRUeXBlXCI+XHJcbiAgICA8ZmQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmlsZS1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBbY2xhc3Mubm8tcmVjb3JkaW5nXT1cIiFpc1JlY29yZGluZyAmJiB2YWx1ZVVybFwiIFtuZ0NsYXNzXT1cInJlY29yZFR5cGVcIiBjbGFzcz1cIm1lZGlhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJsZWZ0OiA0NSU7IHBvc2l0aW9uOiBhYnNvbHV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtbmVzdGVkLWxpc3QtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmFsdWUgJiYgIXZhbHVlVXJsICYmICFpc1JlY29yZGluZ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHZpZGVvICN2aWRlb0VsZW1lbnQgKm5nSWY9XCJyZWNvcmRUeXBlID09PSAndmlkZW8nXCIgW2NsYXNzLnZpZGVvLW5vdmFsdWVdPVwiIXZhbHVlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICA8c291cmNlICpuZ0lmPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsXCIgW3NyY109XCJ2YWx1ZVVybFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogNDUlOyBwb3NpdGlvbjogYWJzb2x1dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkLW5lc3RlZC1saXN0LWljb25cclxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlICYmICF2YWx1ZVVybCAmJiAhaXNSZWNvcmRpbmdcIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgPGF1ZGlvICpuZ0lmPVwiIWlzUmVjb3JkaW5nICYmIHZhbHVlVXJsICYmIHJlY29yZFR5cGUgPT09ICdhdWRpbydcIiBjb250cm9scz5cclxuICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJ2YWx1ZVVybFwiIHR5cGU9XCJhdWRpby9tcDNcIiAvPlxyXG4gICAgICAgICAgICA8L2F1ZGlvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICNwaG90b0VsZW1lbnRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicmVjb3JkVHlwZSA9PT0gJ3Bob3RvJ1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZmlsZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBjYXB0dXJlPVwiZW52aXJvbm1lbnRcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRha2VQaG90bygpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNSZWNvcmRpbmcgfHwgdmFsdWVVcmxcIiBjbGFzcz1cIm1lZGlhLWluZm9cIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIHt7ICFpc1JlY29yZGluZyA/ICcnIDogKCdSZWNvcmRpbmcnIHwgYmJiVHJhbnNsYXRlKSB9fSA8c3Ryb25nPnt7IHJlY29yZGVkVGltZSB9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj57eyBmaWxlTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwidXBsb2FkaW5nU3RhdGUkIHwgYXN5bmMgYXMgdXBsb2FkaW5nU3RhdGVcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxmZC1wcm9ncmVzcy1pbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZT1cImluZm9ybWF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVOb3ddPVwidXBsb2FkaW5nU3RhdGU/LnByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLXByb2dyZXNzLWluZGljYXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLXJlY29yZFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZSAmJiAhdmFsdWVVcmxcIlxyXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaXNSZWNvcmRpbmcgPyAnc3RvcCcgOiAncmVjb3JkJ1wiXHJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cImlzUmVjb3JkaW5nID8gJ2F0dGVudGlvbicgOiAnZ2hvc3QnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVJlY29yZCgpXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZhbHVlICYmIHZhbHVlVXJsXCIgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2dseXBoXT1cIidkZWxldGUnXCIgZmRUeXBlPVwibmVnYXRpdmVcIiAoY2xpY2spPVwib25DbGVhclJlY29yZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBbbGFiZWxdPVwiJ1VwbG9hZCcgfCBiYmJUcmFuc2xhdGVcIiBbZ2x5cGhdPVwiJ3VwbG9hZCdcIiAoY2xpY2spPVwib25VcGxvYWQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlXCIgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInZhbHVlXCIgZmQtYnV0dG9uIFtnbHlwaF09XCInZGVsZXRlJ1wiIGZkVHlwZT1cIm5lZ2F0aXZlXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ2YWx1ZVwiIGZkLWJ1dHRvbiBbZ2x5cGhdPVwiJ2Rvd25sb2FkJ1wiIGZkVHlwZT1cInN0YW5kYXJkXCIgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZmQtY2FyZC1jb250ZW50PlxyXG48L2ZkLWNhcmQ+XHJcbiJdfQ==