bpm-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/esm2022/bpm-core.mjs +5 -0
- package/esm2022/lib/classes/form-validation.mjs +80 -0
- package/esm2022/lib/classes/index.mjs +2 -0
- package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +51 -0
- package/esm2022/lib/components/app-component-sections/comment-section/comment-section.component.mjs +66 -0
- package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +29 -0
- package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +32 -0
- package/esm2022/lib/components/app-component-sections/faqs/index.mjs +2 -0
- package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +236 -0
- package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +270 -0
- package/esm2022/lib/components/app-component-sections/index.mjs +9 -0
- package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +34 -0
- package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +45 -0
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +162 -0
- package/esm2022/lib/components/app-component-sections/status/status.component.mjs +38 -0
- package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +162 -0
- package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +39 -0
- package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +19 -0
- package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +30 -0
- package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +28 -0
- package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +72 -0
- package/esm2022/lib/components/shared-components/doc-uploader/docs-uploader.component.mjs +686 -0
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +77 -0
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +181 -0
- package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +198 -0
- package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +69 -0
- package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +201 -0
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-format.mjs +31 -0
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +244 -0
- package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +26 -0
- package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +31 -0
- package/esm2022/lib/components/shared-components/form-field/index.mjs +25 -0
- package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +72 -0
- package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +155 -0
- package/esm2022/lib/components/shared-components/form-field/input-autocomplete/index.mjs +3 -0
- package/esm2022/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.mjs +2 -0
- package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +157 -0
- package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +114 -0
- package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +111 -0
- package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +153 -0
- package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +176 -0
- package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +38 -0
- package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +32 -0
- package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +228 -0
- package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +191 -0
- package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +116 -0
- package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +39 -0
- package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +88 -0
- package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +75 -0
- package/esm2022/lib/components/shared-components/index.mjs +10 -0
- package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +31 -0
- package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +31 -0
- package/esm2022/lib/constants/constants.mjs +144 -0
- package/esm2022/lib/constants/index.mjs +2 -0
- package/esm2022/lib/environments/environment.local.mjs +27 -0
- package/esm2022/lib/functions/data-to-blob.mjs +12 -0
- package/esm2022/lib/functions/encode-password.mjs +14 -0
- package/esm2022/lib/functions/handel-error-response.mjs +12 -0
- package/esm2022/lib/functions/index.mjs +5 -0
- package/esm2022/lib/functions/is-valid-data.mjs +42 -0
- package/esm2022/lib/hooks/index.mjs +3 -0
- package/esm2022/lib/hooks/load-form.mjs +13 -0
- package/esm2022/lib/hooks/save-form.mjs +18 -0
- package/esm2022/lib/i18n/ar.mjs +183 -0
- package/esm2022/lib/i18n/en.mjs +187 -0
- package/esm2022/lib/i18n/index.mjs +3 -0
- package/esm2022/lib/interfaces/api-response.interface.mjs +2 -0
- package/esm2022/lib/interfaces/document-file.interface.mjs +2 -0
- package/esm2022/lib/interfaces/form-items.interface.mjs +2 -0
- package/esm2022/lib/interfaces/form.interface.mjs +150 -0
- package/esm2022/lib/interfaces/igate-user.interface.mjs +2 -0
- package/esm2022/lib/interfaces/index.mjs +8 -0
- package/esm2022/lib/interfaces/lov-list.interface.mjs +2 -0
- package/esm2022/lib/interfaces/lov.interface.mjs +2 -0
- package/esm2022/lib/interfaces/shared.interface.mjs +2 -0
- package/esm2022/lib/pipes/currency.pipe.mjs +66 -0
- package/esm2022/lib/pipes/format-as-password.pipe.mjs +19 -0
- package/esm2022/lib/pipes/index.mjs +3 -0
- package/esm2022/lib/services/feedBack.service.mjs +80 -0
- package/esm2022/lib/services/i18n.service.mjs +36 -0
- package/esm2022/lib/services/index.mjs +3 -0
- package/esm2022/lib/services/sidenav.service.mjs +69 -0
- package/esm2022/lib/validators/ar.directive.mjs +53 -0
- package/esm2022/lib/validators/currency.directive.mjs +74 -0
- package/esm2022/lib/validators/en.directive.mjs +50 -0
- package/esm2022/lib/validators/id.validator.mjs +66 -0
- package/esm2022/lib/validators/index.mjs +8 -0
- package/esm2022/lib/validators/string-to-boolean.pipe.mjs +16 -0
- package/esm2022/lib/validators/text.directive.mjs +50 -0
- package/esm2022/lib/validators/timer.pipe.mjs +19 -0
- package/esm2022/public-api.mjs +16 -0
- package/fesm2022/bpm-core.mjs +6005 -0
- package/fesm2022/bpm-core.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/classes/form-validation.d.ts +19 -0
- package/lib/classes/index.d.ts +1 -0
- package/lib/components/app-component-sections/activities/activities.component.d.ts +22 -0
- package/lib/components/app-component-sections/comment-section/comment-section.component.d.ts +19 -0
- package/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.d.ts +13 -0
- package/lib/components/app-component-sections/faqs/faqs.component.d.ts +17 -0
- package/lib/components/app-component-sections/faqs/index.d.ts +1 -0
- package/lib/components/app-component-sections/feedback-section/feedback-section.component.d.ts +38 -0
- package/lib/components/app-component-sections/form-section/form-section.component.d.ts +58 -0
- package/lib/components/app-component-sections/index.d.ts +8 -0
- package/lib/components/app-component-sections/main-request-details/main-request-details.component.d.ts +13 -0
- package/lib/components/app-component-sections/profile-section/profile-section.component.d.ts +17 -0
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +35 -0
- package/lib/components/app-component-sections/status/status.component.d.ts +23 -0
- package/lib/components/app-component-sections/workflow-section/workflow-section.component.d.ts +29 -0
- package/lib/components/shared-components/confirmation-popup/confirmation-popup.component.d.ts +25 -0
- package/lib/components/shared-components/delete-popup/delete-popup.component.d.ts +6 -0
- package/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +11 -0
- package/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.d.ts +11 -0
- package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +15 -0
- package/lib/components/shared-components/doc-uploader/docs-uploader.component.d.ts +144 -0
- package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +16 -0
- package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +30 -0
- package/lib/components/shared-components/form-field/base-component/base-component.component.d.ts +63 -0
- package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +18 -0
- package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +29 -0
- package/lib/components/shared-components/form-field/date-picker/date-format.d.ts +17 -0
- package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +41 -0
- package/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.d.ts +10 -0
- package/lib/components/shared-components/form-field/form-label/form-label.component.d.ts +12 -0
- package/lib/components/shared-components/form-field/index.d.ts +24 -0
- package/lib/components/shared-components/form-field/info-item/info-item.component.d.ts +23 -0
- package/lib/components/shared-components/form-field/input/input.component.d.ts +32 -0
- package/lib/components/shared-components/form-field/input-autocomplete/index.d.ts +1 -0
- package/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.d.ts +6 -0
- package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +31 -0
- package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +27 -0
- package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +27 -0
- package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +30 -0
- package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +45 -0
- package/lib/components/shared-components/form-field/radio/radio.component.d.ts +10 -0
- package/lib/components/shared-components/form-field/repeated-list/repeated-list.component.d.ts +9 -0
- package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +44 -0
- package/lib/components/shared-components/form-field/select/select.component.d.ts +36 -0
- package/lib/components/shared-components/form-field/table-list/table-list.component.d.ts +26 -0
- package/lib/components/shared-components/form-field/textarea/special-chars.directive.d.ts +10 -0
- package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +20 -0
- package/lib/components/shared-components/form-field/toggle-button/toggle-button.component.d.ts +20 -0
- package/lib/components/shared-components/index.d.ts +9 -0
- package/lib/components/shared-components/terms-conditions/terms-conditions.component.d.ts +12 -0
- package/lib/components/shared-components/title-section/title-section.component.d.ts +13 -0
- package/lib/constants/constants.d.ts +122 -0
- package/lib/constants/index.d.ts +1 -0
- package/lib/environments/environment.local.d.ts +26 -0
- package/lib/functions/data-to-blob.d.ts +1 -0
- package/lib/functions/encode-password.d.ts +1 -0
- package/lib/functions/handel-error-response.d.ts +4 -0
- package/lib/functions/index.d.ts +4 -0
- package/lib/functions/is-valid-data.d.ts +1 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/load-form.d.ts +10 -0
- package/lib/hooks/save-form.d.ts +15 -0
- package/lib/i18n/ar.d.ts +170 -0
- package/lib/i18n/en.d.ts +174 -0
- package/lib/i18n/index.d.ts +2 -0
- package/lib/interfaces/api-response.interface.d.ts +5 -0
- package/lib/interfaces/document-file.interface.d.ts +12 -0
- package/lib/interfaces/form-items.interface.d.ts +14 -0
- package/lib/interfaces/form.interface.d.ts +95 -0
- package/lib/interfaces/igate-user.interface.d.ts +16 -0
- package/lib/interfaces/index.d.ts +7 -0
- package/lib/interfaces/lov-list.interface.d.ts +10 -0
- package/lib/interfaces/lov.interface.d.ts +19 -0
- package/lib/interfaces/shared.interface.d.ts +21 -0
- package/lib/pipes/currency.pipe.d.ts +13 -0
- package/lib/pipes/format-as-password.pipe.d.ts +7 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/services/feedBack.service.d.ts +21 -0
- package/lib/services/i18n.service.d.ts +10 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/sidenav.service.d.ts +28 -0
- package/lib/validators/ar.directive.d.ts +11 -0
- package/lib/validators/currency.directive.d.ts +16 -0
- package/lib/validators/en.directive.d.ts +11 -0
- package/lib/validators/id.validator.d.ts +3 -0
- package/lib/validators/index.d.ts +7 -0
- package/lib/validators/string-to-boolean.pipe.d.ts +7 -0
- package/lib/validators/text.directive.d.ts +12 -0
- package/lib/validators/timer.pipe.d.ts +7 -0
- package/package.json +26 -0
- package/public-api.d.ts +13 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
+
import { TextareaComponent } from '../textarea/textarea.component';
|
|
3
|
+
import { BaseComponent } from '../base-component/base-component.component';
|
|
4
|
+
import { MatDialogActions, MatDialogContent } from "@angular/material/dialog";
|
|
5
|
+
import { DocsUploaderComponent } from "../../doc-uploader/docs-uploader.component";
|
|
6
|
+
import { NgIf } from "@angular/common";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class AttachmentSectionDataComponent extends BaseComponent {
|
|
9
|
+
popupData = {};
|
|
10
|
+
popupDataOrg = {};
|
|
11
|
+
uploading;
|
|
12
|
+
editMode;
|
|
13
|
+
hasColumnBreak;
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
/*if (this.coreStateMachineService?.attachmentListData) {
|
|
16
|
+
this.popupData = this.coreStateMachineService.attachmentListData
|
|
17
|
+
this.popupDataOrg = Object.assign({} , this.popupData) ///// ibrahim solve isse related to discard data whenn click close
|
|
18
|
+
this.editMode = true;
|
|
19
|
+
}
|
|
20
|
+
if(this.dialogData){
|
|
21
|
+
console.log(this.dialogData);
|
|
22
|
+
|
|
23
|
+
}*/
|
|
24
|
+
}
|
|
25
|
+
close() {
|
|
26
|
+
this.dialogRef.close(this.popupDataOrg);
|
|
27
|
+
}
|
|
28
|
+
handleEmitValue(data, fieldName) {
|
|
29
|
+
this.popupData[fieldName] = data;
|
|
30
|
+
}
|
|
31
|
+
handleAttachmentEmitValue(data) {
|
|
32
|
+
this.popupData = {
|
|
33
|
+
"fileContents": data?.fileContents,
|
|
34
|
+
"fileName": data?.fileName,
|
|
35
|
+
"mimeType": data?.mimeType,
|
|
36
|
+
"fileDescription": this.popupData?.fileDescription,
|
|
37
|
+
"attachmentcomment": this.popupData?.attachmentcomment,
|
|
38
|
+
"fileComments": this.popupData?.attachmentcomment,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
addAttachments() {
|
|
42
|
+
const data = {
|
|
43
|
+
"fileDescription": this.popupData?.fileDescription,
|
|
44
|
+
"attachmentcomment": this.popupData?.attachmentcomment,
|
|
45
|
+
"fileComments": this.popupData?.attachmentcomment,
|
|
46
|
+
"fileName": this.popupData?.fileName,
|
|
47
|
+
"mimeType": this.popupData?.mimeType,
|
|
48
|
+
"fileContents": this.popupData?.fileContents,
|
|
49
|
+
};
|
|
50
|
+
this.uploading = true;
|
|
51
|
+
/*this.coreStateMachineService.dispatch('getAttachments', data)
|
|
52
|
+
.then((Response: any) => {
|
|
53
|
+
this.uploading = false;
|
|
54
|
+
if (Response) {
|
|
55
|
+
this.coreStateMachineService.attachmentListData = null
|
|
56
|
+
const newObj = {
|
|
57
|
+
"fileDescription": this.popupData?.fileDescription,
|
|
58
|
+
"attachmentcomment": this.popupData?.attachmentcomment,
|
|
59
|
+
"fileComments": this.popupData?.attachmentcomment,
|
|
60
|
+
"fileName": this.popupData?.fileName,
|
|
61
|
+
"attachmentId": Response.attachment.attachmentId,
|
|
62
|
+
"mimeType": this.popupData?.mimeType
|
|
63
|
+
}
|
|
64
|
+
this.dialogRef.close(newObj);
|
|
65
|
+
}
|
|
66
|
+
});*/
|
|
67
|
+
}
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionDataComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionDataComponent, isStandalone: true, selector: "app-add-attachment-section", inputs: { hasColumnBreak: "hasColumnBreak" }, usesInheritance: true, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px }\n"], dependencies: [{ kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["label", "tooltip", "className", "preventSpecailChar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "label", "callApi", "tooltip", "attachments", "optional", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "downloadActionClicked"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionDataComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'app-add-attachment-section', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [TextareaComponent, MatDialogContent, DocsUploaderComponent, MatDialogActions, NgIf], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px }\n"] }]
|
|
74
|
+
}], propDecorators: { hasColumnBreak: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi9hZGQtYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBVXJDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxhQUFhO0lBQy9ELFNBQVMsR0FBUSxFQUFFLENBQUM7SUFDcEIsWUFBWSxHQUFRLEVBQUUsQ0FBQztJQUN2QixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFVO0lBQ1QsY0FBYyxDQUFVO0lBRWpDLFFBQVE7UUFDTjs7Ozs7Ozs7V0FRRztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUyxFQUFFLFNBQWlCO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUFTO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVk7WUFDbEMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUTtZQUMxQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWU7WUFDbEQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUI7WUFDdEQsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCO1NBQ2xELENBQUE7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sSUFBSSxHQUFHO1lBQ1gsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlO1lBQ2xELG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCO1lBQ3RELGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQjtZQUNqRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRO1lBQ3BDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVE7WUFDcEMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWTtTQUM3QyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEI7Ozs7Ozs7Ozs7Ozs7OztlQWVPO0lBQ1QsQ0FBQzt1R0FoRVUsOEJBQThCOzJGQUE5Qiw4QkFBOEIsMkpDZjNDLG0vRkFrREEsdU9EckNZLGlCQUFpQiwwSEFBRSxnQkFBZ0IseUdBQUUscUJBQXFCLGduQkFBRSxnQkFBZ0I7OzJGQUUzRSw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBRzFCLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLFdBQ3hCLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDOzhCQU9wRixjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0NvbnRlbnR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtEb2NzVXBsb2FkZXJDb21wb25lbnR9IGZyb20gXCIuLi8uLi9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtYXR0YWNobWVudC1zZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtUZXh0YXJlYUNvbXBvbmVudCwgTWF0RGlhbG9nQ29udGVudCwgRG9jc1VwbG9hZGVyQ29tcG9uZW50LCBNYXREaWFsb2dBY3Rpb25zLCBOZ0lmXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgcG9wdXBEYXRhOiBhbnkgPSB7fTtcclxuICBwb3B1cERhdGFPcmc6IGFueSA9IHt9O1xyXG4gIHVwbG9hZGluZzogYm9vbGVhbjtcclxuICBlZGl0TW9kZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYXNDb2x1bW5CcmVhazogYm9vbGVhbjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKmlmICh0aGlzLmNvcmVTdGF0ZU1hY2hpbmVTZXJ2aWNlPy5hdHRhY2htZW50TGlzdERhdGEpIHtcclxuICAgICAgdGhpcy5wb3B1cERhdGEgPSB0aGlzLmNvcmVTdGF0ZU1hY2hpbmVTZXJ2aWNlLmF0dGFjaG1lbnRMaXN0RGF0YVxyXG4gICAgICB0aGlzLnBvcHVwRGF0YU9yZyA9IE9iamVjdC5hc3NpZ24oe30gLCB0aGlzLnBvcHVwRGF0YSkgICAvLy8vLyBpYnJhaGltIHNvbHZlIGlzc2UgcmVsYXRlZCB0byBkaXNjYXJkIGRhdGEgd2hlbm4gY2xpY2sgY2xvc2VcclxuICAgICAgdGhpcy5lZGl0TW9kZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmRpYWxvZ0RhdGEpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmRpYWxvZ0RhdGEpO1xyXG5cclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucG9wdXBEYXRhT3JnKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVtaXRWYWx1ZShkYXRhOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnBvcHVwRGF0YVtmaWVsZE5hbWVdID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUF0dGFjaG1lbnRFbWl0VmFsdWUoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnBvcHVwRGF0YSA9IHtcclxuICAgICAgXCJmaWxlQ29udGVudHNcIjogZGF0YT8uZmlsZUNvbnRlbnRzLFxyXG4gICAgICBcImZpbGVOYW1lXCI6IGRhdGE/LmZpbGVOYW1lLFxyXG4gICAgICBcIm1pbWVUeXBlXCI6IGRhdGE/Lm1pbWVUeXBlLFxyXG4gICAgICBcImZpbGVEZXNjcmlwdGlvblwiOiB0aGlzLnBvcHVwRGF0YT8uZmlsZURlc2NyaXB0aW9uLFxyXG4gICAgICBcImF0dGFjaG1lbnRjb21tZW50XCI6IHRoaXMucG9wdXBEYXRhPy5hdHRhY2htZW50Y29tbWVudCxcclxuICAgICAgXCJmaWxlQ29tbWVudHNcIjogdGhpcy5wb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50LFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudHMoKSB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBcImZpbGVEZXNjcmlwdGlvblwiOiB0aGlzLnBvcHVwRGF0YT8uZmlsZURlc2NyaXB0aW9uLFxyXG4gICAgICBcImF0dGFjaG1lbnRjb21tZW50XCI6IHRoaXMucG9wdXBEYXRhPy5hdHRhY2htZW50Y29tbWVudCxcclxuICAgICAgXCJmaWxlQ29tbWVudHNcIjogdGhpcy5wb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50LFxyXG4gICAgICBcImZpbGVOYW1lXCI6IHRoaXMucG9wdXBEYXRhPy5maWxlTmFtZSxcclxuICAgICAgXCJtaW1lVHlwZVwiOiB0aGlzLnBvcHVwRGF0YT8ubWltZVR5cGUsXHJcbiAgICAgIFwiZmlsZUNvbnRlbnRzXCI6IHRoaXMucG9wdXBEYXRhPy5maWxlQ29udGVudHMsXHJcbiAgICB9XHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcbiAgICAvKnRoaXMuY29yZVN0YXRlTWFjaGluZVNlcnZpY2UuZGlzcGF0Y2goJ2dldEF0dGFjaG1lbnRzJywgZGF0YSlcclxuICAgICAgLnRoZW4oKFJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChSZXNwb25zZSkge1xyXG4gICAgICAgICAgdGhpcy5jb3JlU3RhdGVNYWNoaW5lU2VydmljZS5hdHRhY2htZW50TGlzdERhdGEgPSBudWxsXHJcbiAgICAgICAgICBjb25zdCBuZXdPYmogPSB7XHJcbiAgICAgICAgICAgIFwiZmlsZURlc2NyaXB0aW9uXCI6IHRoaXMucG9wdXBEYXRhPy5maWxlRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIFwiYXR0YWNobWVudGNvbW1lbnRcIjogdGhpcy5wb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50LFxyXG4gICAgICAgICAgICBcImZpbGVDb21tZW50c1wiOiB0aGlzLnBvcHVwRGF0YT8uYXR0YWNobWVudGNvbW1lbnQsXHJcbiAgICAgICAgICAgIFwiZmlsZU5hbWVcIjogdGhpcy5wb3B1cERhdGE/LmZpbGVOYW1lLFxyXG4gICAgICAgICAgICBcImF0dGFjaG1lbnRJZFwiOiBSZXNwb25zZS5hdHRhY2htZW50LmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgICAgXCJtaW1lVHlwZVwiOiB0aGlzLnBvcHVwRGF0YT8ubWltZVR5cGVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG5ld09iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTsqL1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmRcIiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gICAgPGgzIGNsYXNzPVwibWItMCBmb250LTE2IGZ3LW1lZGl1bVwiPnt7aTE4bi50cmFuc2xhdGUoJ2FkZEF0dGFjaG1lbnRzJyl9fTwvaDM+XHJcbiAgICA8ZHMtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgaWNvbj5cclxuICAgICAgPGRzLWljb24gaWNvbj1cImNsb3NlXCIgY2xhc3M9XCJmcy0yMCBmYy1ibGFja1wiPjwvZHMtaWNvbj5cclxuICAgIDwvZHMtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHgtbWQtNCBtdC0zXCI+XHJcbiAgICAgIDwhLS0gYWRkIFtjYWxsQXBpXT1cInRydWVcIiAgaW5wdXQgbW9iaWxlIGlzc3VlIG5vdCBhYmxlIHRvIGRvd25sb2FkIGl0IGJ5IGJhc2UgNjQgLS0+XHJcblxyXG4gICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtmaWVsZF09XCJwb3B1cERhdGFcIiBuYW1lPVwiZmlsZVwiIFthdHRhY2htZW50c109XCJkaWFsb2dEYXRhPy5hdHRhY2htZW50c1wiXHJcbiAgICAgICAgW2xhYmVsVGV4dFJlYWRNb2RlXT1cImkxOG4udHJhbnNsYXRlKCdBdHRhY2htZW50JylcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cImkxOG4udHJhbnNsYXRlKCdBdHRhY2htZW50JylcIlxyXG4gICAgICAgIFtoYXNDb2x1bW5CcmVha109XCJmYWxzZVwiIFtsYWJlbF09XCJpMThuLnRyYW5zbGF0ZSgnQXR0YWNobWVudCcpXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbbXVsdGlwbGVdPVwiZGlhbG9nRGF0YT8ubXVsdGlwbGVcIiBbYWxsb3dlZEV4dGVuc2lvbnNdPVwiZGlhbG9nRGF0YT8uZGF0YVwiXHJcbiAgICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seVwiIFtzaG93QWN0aW9uc109XCJmYWxzZVwiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVBdHRhY2htZW50RW1pdFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuXHJcbiAgICAgIDxhcHAtdGV4dGFyZWEgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZC1ibG9jayBtdC00XCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmZpbGVEZXNjcmlwdGlvblwiIG5hbWU9XCJmaWxlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgIFtsYWJlbFRleHRSZWFkTW9kZV09XCJpMThuLnRyYW5zbGF0ZSgnZGVzY3JpcHRpb24nKVwiIFtsYWJlbFRleHRXcml0ZU1vZGVdPVwiaTE4bi50cmFuc2xhdGUoJ2Rlc2NyaXB0aW9uJylcIlxyXG4gICAgICAgIFtoYXNDb2x1bW5CcmVha109XCJmYWxzZVwiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVFbWl0VmFsdWUoJGV2ZW50LCdmaWxlRGVzY3JpcHRpb24nKVwiXHJcbiAgICAgICAgW2xhYmVsXT1cImkxOG4udHJhbnNsYXRlKCdkZXNjcmlwdGlvbicpXCIgW3JlcXVpcmVkXT1cImRpYWxvZ0RhdGEuaXNSZXF1aXJlZFwiIFttaW5MZW5ndGhdPScxJyBbbWF4TGVuZ3RoXT0nNTAwJ1xyXG4gICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIiBbZXJyb3JNZXNzYWdlXT1cImkxOG4udHJhbnNsYXRlKCdsZW5naHRNaW4xTWF4NTAwJylcIj5cclxuICAgICAgPC9hcHAtdGV4dGFyZWE+XHJcblxyXG4gICAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtXCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50XCIgbmFtZT1cImF0dGFjaG1lbnRjb21tZW50XCJcclxuICAgICAgICBbbGFiZWxUZXh0UmVhZE1vZGVdPVwiaTE4bi50cmFuc2xhdGUoJ2NvbW1lbnRzJylcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cImkxOG4udHJhbnNsYXRlKCdjb21tZW50cycpXCJcclxuICAgICAgICBbaGFzQ29sdW1uQnJlYWtdPVwiZmFsc2VcIiAoZW1pdGVkVmFsdWUpPVwiaGFuZGxlRW1pdFZhbHVlKCRldmVudCwnYXR0YWNobWVudGNvbW1lbnQnKVwiIFtsYWJlbF09XCJpMThuLnRyYW5zbGF0ZSgnY29tbWVudHMnKVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCIgW21pbkxlbmd0aF09JzEnIFttYXhMZW5ndGhdPSc1MDAnIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIlxyXG4gICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiaTE4bi50cmFuc2xhdGUoJ2xlbmdodE1pbjFNYXg1MDAnKVwiPlxyXG4gICAgICA8L2FwcC10ZXh0YXJlYT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiZGVmYXVsdC1mb290ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtM1wiPlxyXG4gICAgPGRzLWJ1dHRvbiAgc2hhcGU9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiBbZGlzYWJsZWRdPVwiKHVwbG9hZGluZylcIiBjb2xvcj1cInJlZFwiPnt7aTE4bi50cmFuc2xhdGUoJ2NhbmNlbCcpfX1cclxuICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgPGRzLWJ1dHRvbiAoY2xpY2spPVwiYWRkQXR0YWNobWVudHMoKVwiIFtsb2FkaW5nXT1cInVwbG9hZGluZ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIoIShwb3B1cERhdGE/LmZpbGVDb250ZW50cyB8fCBwb3B1cERhdGE/LmF0dGFjaG1lbnRJZCApIHx8KCBkaWFsb2dEYXRhLmlzUmVxdWlyZWQgJiYgIXBvcHVwRGF0YT8uZmlsZURlc2NyaXB0aW9uICl8fCB1cGxvYWRpbmcpXCI+XHJcbiAgICAgIEBpZighZWRpdE1vZGUpe1xyXG4gICAgICA8c3Bhbj57e2kxOG4udHJhbnNsYXRlKCdhZGQnKX19PC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZihlZGl0TW9kZSl7XHJcbiAgICAgIDxzcGFuPnt7aTE4bi50cmFuc2xhdGUoJ2VkaXQnKX19PC9zcGFuPlxyXG4gICAgICB9XHJcblxyXG4gICAgPC9kcy1idXR0b24+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
/* eslint-disable @angular-eslint/component-selector */
|
|
4
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild } from '@angular/core';
|
|
5
|
+
import { BaseComponent } from '../base-component/base-component.component';
|
|
6
|
+
import { CdkDrag, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
|
7
|
+
import { SatPopoverModule } from '@ncstate/sat-popover';
|
|
8
|
+
import { MatTooltip } from "@angular/material/tooltip";
|
|
9
|
+
import { NgClass, NgForOf, NgIf, SlicePipe } from "@angular/common";
|
|
10
|
+
import { DocsUploaderComponent } from "../../doc-uploader/docs-uploader.component";
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@ncstate/sat-popover";
|
|
13
|
+
export class AttachmentSectionComponent extends BaseComponent {
|
|
14
|
+
className = 'info-section';
|
|
15
|
+
attachments = [];
|
|
16
|
+
label = '';
|
|
17
|
+
attachmentsMax = 1000;
|
|
18
|
+
isSortable = false;
|
|
19
|
+
downloadAll = false;
|
|
20
|
+
popupData = {};
|
|
21
|
+
isRequired = false;
|
|
22
|
+
placeholderElement;
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
// this.resetPropagator.subscribe(this, this.resetAttachmentData);
|
|
25
|
+
if (this.attachments) {
|
|
26
|
+
this.attachments.forEach(element => {
|
|
27
|
+
element.name = element.fileName;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
drop(event) {
|
|
32
|
+
moveItemInArray(this.attachments, event.previousIndex, event.currentIndex);
|
|
33
|
+
}
|
|
34
|
+
resetAttachmentData() {
|
|
35
|
+
if (!this.isReadOnly) {
|
|
36
|
+
this.attachments = [];
|
|
37
|
+
this.emitedValue.emit(this.attachments);
|
|
38
|
+
// if (this.multiple) {
|
|
39
|
+
// } else {
|
|
40
|
+
// const emptyObj = {
|
|
41
|
+
// mimeType: "",
|
|
42
|
+
// fileContents: "",
|
|
43
|
+
// fileName: "",
|
|
44
|
+
// }
|
|
45
|
+
// this.emitedValue.emit(emptyObj)
|
|
46
|
+
// this.emitedValue.emit(this.attachments)
|
|
47
|
+
// }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
handleEmitValue(data, fieldName) {
|
|
51
|
+
this.popupData[fieldName] = data;
|
|
52
|
+
}
|
|
53
|
+
addAttahment() {
|
|
54
|
+
/* this.coreStateMachineService.attachmentListData = null;
|
|
55
|
+
const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {
|
|
56
|
+
panelClass: ['main-popup', 'add-attachment-dialog'],
|
|
57
|
+
data: {
|
|
58
|
+
data: this.allowedExtensions,
|
|
59
|
+
isRequired: this.isRequired,
|
|
60
|
+
multiple: this.multiple,
|
|
61
|
+
attachments: this.attachments
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
dialogRef.afterClosed().subscribe((resultData) => {
|
|
65
|
+
if (resultData != 'close') {
|
|
66
|
+
if (resultData?.attachmentId) {
|
|
67
|
+
this.attachments.push(resultData);
|
|
68
|
+
this.emitedValue.emit(this.attachments);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});*/
|
|
72
|
+
}
|
|
73
|
+
deleteAttachments(index, item) {
|
|
74
|
+
// const dialogRef = this.dialog.open(DeleteDialogComponent, {
|
|
75
|
+
// panelClass: ['main-popup', 'add-attachment-dialog']
|
|
76
|
+
// });
|
|
77
|
+
// dialogRef.afterClosed().subscribe((resultData) => {
|
|
78
|
+
// if (resultData == 'yes') {
|
|
79
|
+
// this.deleteAttachment(index, item);
|
|
80
|
+
// }
|
|
81
|
+
// });
|
|
82
|
+
}
|
|
83
|
+
deleteAttachment(index, item) {
|
|
84
|
+
this.attachments = this.attachments.filter((row) => {
|
|
85
|
+
return row.attachmentId != item.attachmentId;
|
|
86
|
+
});
|
|
87
|
+
this.emitedValue.emit(this.attachments);
|
|
88
|
+
}
|
|
89
|
+
editRow(rowData, index) {
|
|
90
|
+
/* this.coreStateMachineService.attachmentListData = Object.assign(rowData);
|
|
91
|
+
const dialogRef = this.dialog.open(AttachmentSectionDataComponent, {
|
|
92
|
+
panelClass: ['main-popup', 'add-attachment-dialog'],
|
|
93
|
+
data: {
|
|
94
|
+
data: this.allowedExtensions,
|
|
95
|
+
isRequired: this.isRequired,
|
|
96
|
+
multiple: this.multiple,
|
|
97
|
+
attachments: this.attachments
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
dialogRef.afterClosed().subscribe((resultData) => {
|
|
101
|
+
if (resultData != 'close') {
|
|
102
|
+
if (resultData?.attachmentId) {
|
|
103
|
+
this.attachments[index] = resultData;
|
|
104
|
+
this.emitedValue.emit(this.attachments);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});*/
|
|
108
|
+
}
|
|
109
|
+
downloadAllAttachments(event) {
|
|
110
|
+
this.attachments.forEach((file) => {
|
|
111
|
+
this.downloadFile(event, file);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/*downloadFile(event, field) {
|
|
115
|
+
const placeholder = event.target.nextElementSibling;
|
|
116
|
+
this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {
|
|
117
|
+
const fileInformation = responseObject.body;
|
|
118
|
+
const fileBlob = this.dataURItoBlob(fileInformation.fileContents);
|
|
119
|
+
const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });
|
|
120
|
+
placeholder.href = URL.createObjectURL(file);
|
|
121
|
+
placeholder.download = file.name;
|
|
122
|
+
placeholder.click();
|
|
123
|
+
});
|
|
124
|
+
}*/
|
|
125
|
+
downloadFile(event, field) {
|
|
126
|
+
/* this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, field.attachmentId).then((responseObject) => {
|
|
127
|
+
const fileInformation = responseObject.body;
|
|
128
|
+
const fileBlob = this.dataURItoBlob(fileInformation.fileContents);
|
|
129
|
+
const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });
|
|
130
|
+
this.placeholderElement.nativeElement.href = URL.createObjectURL(file);
|
|
131
|
+
this.placeholderElement.nativeElement.download = file.name;
|
|
132
|
+
this.placeholderElement.nativeElement.click();
|
|
133
|
+
});*/
|
|
134
|
+
}
|
|
135
|
+
dataURItoBlob(dataURI) {
|
|
136
|
+
const byteString = atob(dataURI);
|
|
137
|
+
const arrayBuffer = new ArrayBuffer(byteString.length);
|
|
138
|
+
const int8Array = new Uint8Array(arrayBuffer);
|
|
139
|
+
for (let i = 0; i < byteString.length; i++) {
|
|
140
|
+
int8Array[i] = byteString.charCodeAt(i);
|
|
141
|
+
}
|
|
142
|
+
const blob = new Blob([arrayBuffer], { type: 'image/jpeg' });
|
|
143
|
+
return blob;
|
|
144
|
+
}
|
|
145
|
+
onmouseleave = onmouseleave;
|
|
146
|
+
isNaN = isNaN;
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionComponent, isStandalone: true, selector: "app-attachment-section", inputs: { className: "className", attachments: "attachments", label: "label", attachmentsMax: "attachmentsMax", isSortable: "isSortable", downloadAll: "downloadAll", isRequired: "isRequired" }, viewQueries: [{ propertyName: "placeholderElement", first: true, predicate: ["placeholder"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mt-2 p-0\">\r\n\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n </div>\r\n }\r\n \r\n @if(!isReadOnly){\r\n <div style=\"text-align-last: end\">\r\n @if(!required && !hideOption){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n {{ i18n.translate(\"Optional\") }}\r\n </span>\r\n }\r\n </div>\r\n } @if(!attachments?.length && !isReadOnly){\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\"\r\n >\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"\r\n />\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"\r\n />\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ i18n.translate(\"browse\") }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ i18n.translate(\"addMultiAttachments\") }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n <!-- <ds-message class=\"full\" *ngIf=\"!attachments?.length && !isReadOnly\" label=\"{{i18n.translate('NoAttachments')}}\"></ds-message>-->\r\n @if(attachments?.length){\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <table>\r\n <thead>\r\n <tr>\r\n @if(downloadAll){\r\n <th>\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"\r\n ></ds-icon>\r\n </ds-button>\r\n <a #placeholder></a>\r\n </th>\r\n }\r\n <th class=\"width30\">{{ i18n.translate(\"FileName\") }}</th>\r\n <th>{{ i18n.translate(\"FileDescription\") }}</th>\r\n <th>{{ i18n.translate(\"comment\") }}</th>\r\n @if(!isReadOnly){\r\n <th></th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let data of attachments; index as i\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"\r\n attachments?.length == 0 || (!isSortable && !isReadOnly)\r\n \"\r\n >\r\n @if(downloadAll){\r\n <td>{{ i + 1 }}</td>\r\n }\r\n <td>\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n class=\"white-attached\"\r\n [field]=\"data\"\r\n name=\"attachment\"\r\n [hasLabel]=\"false\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n >\r\n </app-file-uploader>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? fileDescriptionAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.fileDescription\"\r\n (click)=\"\r\n $event.stopPropagation(); fileDescriptionAnchor.popover.open()\r\n \"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"data?.fileDescription\"\r\n >\r\n {{ data?.fileDescription | slice : 0 : 10 }}....\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\"\r\n >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.fileDescription }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? commentsAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.attachmentcomment\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"data?.attachmentcomment\"\r\n #commentsAnchor=\"satPopoverAnchor\"\r\n >\r\n {{ data?.attachmentcomment | slice : 0 : 10 }}...\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\"\r\n >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.attachmentcomment }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n @if(!isReadOnly){\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, data)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-red\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(data, i)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n }\r\n\r\n @if(!isReadOnly && attachments?.length && attachments?.length < attachmentsMax){\r\n <div\r\n class=\"text-center full mt-3\"\r\n>\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100': attachments?.length }\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22\"></ds-icon>\r\n {{ i18n.translate(\"addAttachments\") }}\r\n </ds-button>\r\n</div>\r\n }\r\n \r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px;--popup-width: 100%}::ng-deep .view-note-popover{max-width:250px;max-height:300px;overflow:auto;--popover-bc: var(--black);color:var(--white);--popover-before-width: .6rem}::ng-deep .mat-tooltip{max-width:500px;background:#1d252d}:host ::ng-deep .table-responsive table{--th-bg: var(--white);--th-fc: var(--dark-gray)}:host ::ng-deep .white-attached ds-attachments::part(base){--file-bg: transparent}:host ::ng-deep .full-add-btn::part(base){--btn-min-width: 100%;--btn-bg-color: var(--light-gray);--btn-height: 70px;--btn-radius: 6px;border:1px dashed var(--dark-gray)}.file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.insideTableWidth{width:250px!important}.file-uploader-table{--uploader-height: 45PX;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 0 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;DISPLAY:FLEX;ALIGN-ITEMS:CENTER;JUSTIFY-CONTENT:CENTER}.file-uploader-table-dev{DISPLAY:FLEX;ALIGN-ITEMS:CENTER;GAP:1REM}.file-uploader-table-svg{width:70%}.insideTableStyle{width:272px}.files-list{--file-item-width: 300px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .uploaded-file-actions{margin-inline-start:20px}.files-list .file-item-container .uploaded-file-actions .button__wrapper{font-size:15px}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}.file-item-container-actions{display:flex;align-items:center}.file-item-container-actions .uploaded-file-actions{display:flex;align-items:center;gap:10px;margin-inline-start:25px}.file-item-container-actions .uploaded-file-actions .button__wrapper{font-size:15px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "label", "callApi", "tooltip", "attachments", "optional", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "downloadActionClicked"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionComponent, decorators: [{
|
|
151
|
+
type: Component,
|
|
152
|
+
args: [{ selector: 'app-attachment-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
153
|
+
SatPopoverModule,
|
|
154
|
+
MatTooltip,
|
|
155
|
+
NgIf,
|
|
156
|
+
NgClass,
|
|
157
|
+
CdkDropList,
|
|
158
|
+
DocsUploaderComponent,
|
|
159
|
+
CdkDrag,
|
|
160
|
+
SlicePipe,
|
|
161
|
+
NgForOf
|
|
162
|
+
], standalone: true, template: "<div class=\"mt-2 p-0\">\r\n\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n </div>\r\n }\r\n \r\n @if(!isReadOnly){\r\n <div style=\"text-align-last: end\">\r\n @if(!required && !hideOption){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n {{ i18n.translate(\"Optional\") }}\r\n </span>\r\n }\r\n </div>\r\n } @if(!attachments?.length && !isReadOnly){\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\"\r\n >\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"\r\n />\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"\r\n />\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ i18n.translate(\"browse\") }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ i18n.translate(\"addMultiAttachments\") }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n <!-- <ds-message class=\"full\" *ngIf=\"!attachments?.length && !isReadOnly\" label=\"{{i18n.translate('NoAttachments')}}\"></ds-message>-->\r\n @if(attachments?.length){\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <table>\r\n <thead>\r\n <tr>\r\n @if(downloadAll){\r\n <th>\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"\r\n ></ds-icon>\r\n </ds-button>\r\n <a #placeholder></a>\r\n </th>\r\n }\r\n <th class=\"width30\">{{ i18n.translate(\"FileName\") }}</th>\r\n <th>{{ i18n.translate(\"FileDescription\") }}</th>\r\n <th>{{ i18n.translate(\"comment\") }}</th>\r\n @if(!isReadOnly){\r\n <th></th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let data of attachments; index as i\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"\r\n attachments?.length == 0 || (!isSortable && !isReadOnly)\r\n \"\r\n >\r\n @if(downloadAll){\r\n <td>{{ i + 1 }}</td>\r\n }\r\n <td>\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n class=\"white-attached\"\r\n [field]=\"data\"\r\n name=\"attachment\"\r\n [hasLabel]=\"false\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n >\r\n </app-file-uploader>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? fileDescriptionAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.fileDescription\"\r\n (click)=\"\r\n $event.stopPropagation(); fileDescriptionAnchor.popover.open()\r\n \"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"data?.fileDescription\"\r\n >\r\n {{ data?.fileDescription | slice : 0 : 10 }}....\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\"\r\n >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.fileDescription }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n <td class=\"maxWidth px-2\">\r\n <!-- (mouseover)=\"isSortable ? commentsAnchor.popover.open():$event.stopPropagation();\"-->\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!data?.attachmentcomment\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"data?.attachmentcomment\"\r\n #commentsAnchor=\"satPopoverAnchor\"\r\n >\r\n {{ data?.attachmentcomment | slice : 0 : 10 }}...\r\n </a>\r\n <!-- {{ i18n.translate('View') }}-->\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\"\r\n >\r\n <div\r\n class=\"default-popover p-3 fs-14 text-break view-note-popover\"\r\n >\r\n <bdi class=\"fc-black\">\r\n {{ data?.attachmentcomment }}\r\n </bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n @if(!isReadOnly){\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, data)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-red\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(data, i)\"\r\n class=\"icon-btn-shadow\"\r\n >\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n }\r\n\r\n @if(!isReadOnly && attachments?.length && attachments?.length < attachmentsMax){\r\n <div\r\n class=\"text-center full mt-3\"\r\n>\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100': attachments?.length }\"\r\n (click)=\"addAttahment(); $event.stopPropagation()\"\r\n >\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22\"></ds-icon>\r\n {{ i18n.translate(\"addAttachments\") }}\r\n </ds-button>\r\n</div>\r\n }\r\n \r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px;--popup-width: 100%}::ng-deep .view-note-popover{max-width:250px;max-height:300px;overflow:auto;--popover-bc: var(--black);color:var(--white);--popover-before-width: .6rem}::ng-deep .mat-tooltip{max-width:500px;background:#1d252d}:host ::ng-deep .table-responsive table{--th-bg: var(--white);--th-fc: var(--dark-gray)}:host ::ng-deep .white-attached ds-attachments::part(base){--file-bg: transparent}:host ::ng-deep .full-add-btn::part(base){--btn-min-width: 100%;--btn-bg-color: var(--light-gray);--btn-height: 70px;--btn-radius: 6px;border:1px dashed var(--dark-gray)}.file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.insideTableWidth{width:250px!important}.file-uploader-table{--uploader-height: 45PX;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 0 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;DISPLAY:FLEX;ALIGN-ITEMS:CENTER;JUSTIFY-CONTENT:CENTER}.file-uploader-table-dev{DISPLAY:FLEX;ALIGN-ITEMS:CENTER;GAP:1REM}.file-uploader-table-svg{width:70%}.insideTableStyle{width:272px}.files-list{--file-item-width: 300px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .uploaded-file-actions{margin-inline-start:20px}.files-list .file-item-container .uploaded-file-actions .button__wrapper{font-size:15px}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}.file-item-container-actions{display:flex;align-items:center}.file-item-container-actions .uploaded-file-actions{display:flex;align-items:center;gap:10px;margin-inline-start:25px}.file-item-container-actions .uploaded-file-actions .button__wrapper{font-size:15px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"] }]
|
|
163
|
+
}], propDecorators: { className: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], attachments: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], label: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], attachmentsMax: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], isSortable: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], downloadAll: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], isRequired: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], placeholderElement: [{
|
|
178
|
+
type: ViewChild,
|
|
179
|
+
args: ['placeholder']
|
|
180
|
+
}] } });
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2F0dGFjaG1lbnQtc2VjdGlvbi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYXR0YWNobWVudC1zZWN0aW9uL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsdURBQXVEO0FBQ3ZELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxPQUFPLEVBQWUsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNENBQTRDLENBQUM7OztBQW9CakYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFDbEQsU0FBUyxHQUFHLGNBQWMsQ0FBQztJQUMzQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUNYLGtCQUFrQixDQUFhO0lBR3pELFFBQVE7UUFDTixrRUFBa0U7UUFDbEUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFHRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEMsdUJBQXVCO1lBRXZCLFdBQVc7WUFDWCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsTUFBTTtZQUNOLG9DQUFvQztZQUNwQyw0Q0FBNEM7WUFDNUMsSUFBSTtRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVMsRUFBRSxTQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWTtRQUNiOzs7Ozs7Ozs7Ozs7Ozs7OztnQkFpQlE7SUFDUCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDeEMsOERBQThEO1FBQzlELHdEQUF3RDtRQUN4RCxNQUFNO1FBQ04sc0RBQXNEO1FBQ3RELCtCQUErQjtRQUMvQiwwQ0FBMEM7UUFDMUMsTUFBTTtRQUNOLE1BQU07SUFDUixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RELE9BQU8sR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUs7UUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBaUJNO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBRUgsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLO1FBQzFCOzs7Ozs7O2NBT007SUFDUCxDQUFDO0lBRUMsYUFBYSxDQUFDLE9BQVk7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRWtCLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQzt1R0FySnRCLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDhaQy9CdkMsK3FUQW9PQSw0dUdEak5JLGdCQUFnQixtcUJBQ2hCLFVBQVUsaVJBRVYsT0FBTyxvRkFDUCxXQUFXLDhmQUNYLHFCQUFxQixnbkJBQ3JCLE9BQU8sbWNBQ1AsU0FBUyw4Q0FDVCxPQUFPOzsyRkFJRSwwQkFBMEI7a0JBbEJ0QyxTQUFTOytCQUNFLHdCQUF3QixXQUd6QixDQUFDLHNCQUFzQixDQUFDLFdBQ3hCO3dCQUNQLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxPQUFPO3FCQUNSLGNBQ1csSUFBSTs4QkFHUCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ29CLGtCQUFrQjtzQkFBM0MsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi9hZGQtYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Nka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5fSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFNhdFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmLCBTbGljZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtEb2NzVXBsb2FkZXJDb21wb25lbnR9IGZyb20gXCIuLi8uLi9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWF0dGFjaG1lbnQtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFNhdFBvcG92ZXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwLFxyXG4gICAgTmdJZixcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBDZGtEcm9wTGlzdCxcclxuICAgIERvY3NVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENka0RyYWcsXHJcbiAgICBTbGljZVBpcGUsXHJcbiAgICBOZ0Zvck9mXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50U2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICdpbmZvLXNlY3Rpb24nO1xyXG4gIEBJbnB1dCgpIGF0dGFjaG1lbnRzID0gW107XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBhdHRhY2htZW50c01heCA9IDEwMDA7XHJcbiAgQElucHV0KCkgaXNTb3J0YWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkQWxsID0gZmFsc2U7XHJcbiAgcG9wdXBEYXRhOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlckVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMucmVzZXRQcm9wYWdhdG9yLnN1YnNjcmliZSh0aGlzLCB0aGlzLnJlc2V0QXR0YWNobWVudERhdGEpO1xyXG4gICAgaWYgKHRoaXMuYXR0YWNobWVudHMpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQubmFtZSA9IGVsZW1lbnQuZmlsZU5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5hdHRhY2htZW50cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG5cclxuICByZXNldEF0dGFjaG1lbnREYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICAgIC8vIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcblxyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAvLyAgIGNvbnN0IGVtcHR5T2JqID0ge1xyXG4gICAgICAvLyAgICAgbWltZVR5cGU6IFwiXCIsXHJcbiAgICAgIC8vICAgICBmaWxlQ29udGVudHM6IFwiXCIsXHJcbiAgICAgIC8vICAgICBmaWxlTmFtZTogXCJcIixcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KGVtcHR5T2JqKVxyXG4gICAgICAvLyAgIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCh0aGlzLmF0dGFjaG1lbnRzKVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbWl0VmFsdWUoZGF0YTogYW55LCBmaWVsZE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wb3B1cERhdGFbZmllbGROYW1lXSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBhZGRBdHRhaG1lbnQoKTogdm9pZCB7XHJcbiAvKiAgIHRoaXMuY29yZVN0YXRlTWFjaGluZVNlcnZpY2UuYXR0YWNobWVudExpc3REYXRhID0gbnVsbDtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCcsICdhZGQtYXR0YWNobWVudC1kaWFsb2cnXSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGRhdGE6IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMsXHJcbiAgICAgICAgaXNSZXF1aXJlZDogdGhpcy5pc1JlcXVpcmVkLFxyXG4gICAgICAgIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxyXG4gICAgICAgIGF0dGFjaG1lbnRzOiB0aGlzLmF0dGFjaG1lbnRzXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhICE9ICdjbG9zZScpIHtcclxuICAgICAgICBpZiAocmVzdWx0RGF0YT8uYXR0YWNobWVudElkKSB7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLnB1c2gocmVzdWx0RGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTsqL1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXR0YWNobWVudHMoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICAvLyBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgLy8gICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ11cclxuICAgIC8vIH0pO1xyXG4gICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAvLyAgIGlmIChyZXN1bHREYXRhID09ICd5ZXMnKSB7XHJcbiAgICAvLyAgICAgdGhpcy5kZWxldGVBdHRhY2htZW50KGluZGV4LCBpdGVtKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gcm93LmF0dGFjaG1lbnRJZCAhPSBpdGVtLmF0dGFjaG1lbnRJZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gIH1cclxuXHJcbiAgZWRpdFJvdyhyb3dEYXRhLCBpbmRleCk6IHZvaWQge1xyXG4gICAvKiB0aGlzLmNvcmVTdGF0ZU1hY2hpbmVTZXJ2aWNlLmF0dGFjaG1lbnRMaXN0RGF0YSA9IE9iamVjdC5hc3NpZ24ocm93RGF0YSk7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEF0dGFjaG1lbnRTZWN0aW9uRGF0YUNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBkYXRhOiB0aGlzLmFsbG93ZWRFeHRlbnNpb25zLFxyXG4gICAgICAgIGlzUmVxdWlyZWQ6IHRoaXMuaXNSZXF1aXJlZCxcclxuICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgICBhdHRhY2htZW50czogdGhpcy5hdHRhY2htZW50c1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSAhPSAnY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdERhdGE/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50c1tpbmRleF0gPSByZXN1bHREYXRhO1xyXG4gICAgICAgICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIGRvd25sb2FkQWxsQXR0YWNobWVudHMoZXZlbnQpIHtcclxuICAgIHRoaXMuYXR0YWNobWVudHMuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICB0aGlzLmRvd25sb2FkRmlsZShldmVudCwgZmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qZG93bmxvYWRGaWxlKGV2ZW50LCBmaWVsZCkge1xyXG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBldmVudC50YXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nO1xyXG4gICAgdGhpcy5jb3JlU3RhdGVNYWNoaW5lU2VydmljZS5kaXNwYXRjaChDb25zdGFudHMuU1RBVEVfTUFDSElORV9BQ1RJT05fTE9BRF9GSUxFLCBmaWVsZC5hdHRhY2htZW50SWQpLnRoZW4oKHJlc3BvbnNlT2JqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVJbmZvcm1hdGlvbiA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgIGNvbnN0IGZpbGVCbG9iID0gdGhpcy5kYXRhVVJJdG9CbG9iKGZpbGVJbmZvcm1hdGlvbi5maWxlQ29udGVudHMpO1xyXG4gICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2ZpbGVCbG9iXSwgZmlsZUluZm9ybWF0aW9uLmZpbGVOYW1lLCB7IHR5cGU6IGZpbGVJbmZvcm1hdGlvbi5taW1lVHlwZSB9KTtcclxuICAgICAgcGxhY2Vob2xkZXIuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XHJcbiAgICAgIHBsYWNlaG9sZGVyLmRvd25sb2FkID0gZmlsZS5uYW1lO1xyXG4gICAgICBwbGFjZWhvbGRlci5jbGljaygpO1xyXG4gICAgfSk7XHJcbiAgfSovXHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpIHtcclxuIC8qIHRoaXMuY29yZVN0YXRlTWFjaGluZVNlcnZpY2UuZGlzcGF0Y2goQ29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX0xPQURfRklMRSwgZmllbGQuYXR0YWNobWVudElkKS50aGVuKChyZXNwb25zZU9iamVjdCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZUluZm9ybWF0aW9uID0gcmVzcG9uc2VPYmplY3QuYm9keTtcclxuICAgIGNvbnN0IGZpbGVCbG9iID0gdGhpcy5kYXRhVVJJdG9CbG9iKGZpbGVJbmZvcm1hdGlvbi5maWxlQ29udGVudHMpO1xyXG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtmaWxlQmxvYl0sIGZpbGVJbmZvcm1hdGlvbi5maWxlTmFtZSwgeyB0eXBlOiBmaWxlSW5mb3JtYXRpb24ubWltZVR5cGUgfSk7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQubmF0aXZlRWxlbWVudC5kb3dubG9hZCA9IGZpbGUubmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9KTsqL1xyXG59XHJcblxyXG4gIGRhdGFVUkl0b0Jsb2IoZGF0YVVSSTogYW55KSB7XHJcbiAgICBjb25zdCBieXRlU3RyaW5nID0gYXRvYihkYXRhVVJJKTtcclxuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcclxuICAgIGNvbnN0IGludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2FycmF5QnVmZmVyXSwgeyB0eXBlOiAnaW1hZ2UvanBlZycgfSk7XHJcbiAgICByZXR1cm4gYmxvYjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBvbm1vdXNlbGVhdmUgPSBvbm1vdXNlbGVhdmU7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTmFOID0gaXNOYU47XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm10LTIgcC0wXCI+XHJcblxyXG4gIEBpZihoYXNMYWJlbCl7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTFcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBcclxuICBAaWYoIWlzUmVhZE9ubHkpe1xyXG4gIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduLWxhc3Q6IGVuZFwiPlxyXG4gICAgQGlmKCFyZXF1aXJlZCAmJiAhaGlkZU9wdGlvbil7XHJcbiAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheVwiPlxyXG4gICAgICB7eyBpMThuLnRyYW5zbGF0ZShcIk9wdGlvbmFsXCIpIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfSBAaWYoIWF0dGFjaG1lbnRzPy5sZW5ndGggJiYgIWlzUmVhZE9ubHkpe1xyXG4gIDxzZWN0aW9uXHJcbiAgICBbbmdDbGFzc109XCJpbnNpZGVUYWJsZSA/ICdmaWxlLXVwbG9hZGVyLXRhYmxlJyA6ICdmaWxlLXVwbG9hZGVyJ1wiXHJcbiAgICBjbGFzcz1cIm1iLTJcIlxyXG4gICAgW2NsYXNzLmluc2lkZVRhYmxlU3R5bGVdPVwiaW5zaWRlVGFibGVcIlxyXG4gICAgKGNsaWNrKT1cImFkZEF0dGFobWVudCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1kZXYnIDogJydcIlxyXG4gICAgICBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbiBtYi0xXCI+XHJcbiAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1zdmcnIDogJydcIlxyXG4gICAgICAgICAgd2lkdGg9XCI0MVwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIzOFwiXHJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQxIDM4XCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICBmaWxsPVwiI0RFRTBFMlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0yOS4wMzAzIDI4LjI2MzJDMjkuMDYwNCAzMy40MDMxIDI0Ljg2NTcgMzcuNjE4NyAxOS42ODM4IDM3LjY1NDhDMTQuNTE2OSAzNy42OTA4IDEwLjI4NTIgMzMuNDk1MiAxMC4yNTIxIDI4LjMwNDJDMTAuMjIwMSAyMy4xNDAzIDE0LjQyOTcgMTguOTEyNiAxOS42MjI3IDE4Ljg5NDZDMjQuODAzNyAxOC44NzY2IDI4Ljk5OTMgMjMuMDU0MiAyOS4wMzAzIDI4LjI2MzJaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMjAuNTU3MyAyNS4yNjQ0QzIwLjQ2MjIgMjUuNDQ3NyAyMC41MDEyIDI1LjU5MzkgMjAuNTAxMiAyNS43MzRDMjAuNDk4MiAyOC4yMTU0IDIwLjUwMDIgMzAuNjk1NyAyMC40OTgyIDMzLjE3N0MyMC40OTgyIDMzLjgwOTkgMjAuMjMzOSAzNC4xNzA0IDE5Ljc0NjIgMzQuMjIzNEMxOS4yNjQ1IDM0LjI3NjUgMTguODggMzMuOTgzMSAxOC44MTY5IDMzLjUwMjVDMTguNzk1OSAzMy4zNDQzIDE4Ljc5NjkgMzMuMTgzIDE4Ljc5NjkgMzMuMDIzOEMxOC43OTU5IDMwLjU4MjYgMTguNzk2OSAyOC4xNDIzIDE4Ljc5NjkgMjUuNzAxQzE4Ljc5NjkgMjUuNTcyOCAxOC43OTY5IDI1LjQ0NDcgMTguNzk2OSAyNS4yMDAzQzE4LjE5NzEgMjUuODAzMSAxNy42Nzc0IDI2LjMyODggMTcuMTUyNyAyNi44NTA1QzE3LjAxMTUgMjYuOTkwNyAxNi44NjgzIDI3LjEzNDkgMTYuNzA2MSAyNy4yNDcxQzE2LjM1NjYgMjcuNDg2NCAxNS45MzQxIDI3LjQ0MTMgMTUuNjQ1NyAyNy4xNTRDMTUuMzY0MyAyNi44NzQ2IDE1LjMyMDMgMjYuNDQyIDE1LjU0ODYgMjYuMDkyNUMxNS42MjA3IDI1Ljk4MjQgMTUuNzEyOCAyNS44ODMyIDE1LjgwNjkgMjUuNzg5MUMxNi44NjEzIDI0LjczMDcgMTcuOTE2NyAyMy42NzMzIDE4Ljk3MzIgMjIuNjE3OUMxOS40MDE3IDIyLjE4OTMgMTkuODc4NCAyMi4xNzYzIDIwLjMwMzkgMjIuNTk4OEMyMS4zOTE0IDIzLjY4MDMgMjIuNDczOSAyNC43NjY3IDIzLjU1MzMgMjUuODU3MkMyMy45ODA5IDI2LjI4OTggMjQuMDEyOSAyNi44MDY1IDIzLjY1MzQgMjcuMTY3QzIzLjI5OSAyNy41MjE0IDIyLjc3NTMgMjcuNDg0NCAyMi4zNDM3IDI3LjA1NjhDMjEuNzQ5OSAyNi40NyAyMS4xNjYxIDI1Ljg3MzIgMjAuNTYwMyAyNS4yNjQ0SDIwLjU1NzNaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiNGOUY5RjlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmLTE0IGZjLWJsYWNrIGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmMtY29yYWwgZnctbWVkaXVtXCI+e3sgaTE4bi50cmFuc2xhdGUoXCJicm93c2VcIikgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtMTAgZmMtZGFyay1ncmF5XCI+XHJcbiAgICAgICAge3sgaTE4bi50cmFuc2xhdGUoXCJhZGRNdWx0aUF0dGFjaG1lbnRzXCIpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG4gIH1cclxuXHJcbiAgPCEtLSAgPGRzLW1lc3NhZ2UgY2xhc3M9XCJmdWxsXCIgKm5nSWY9XCIhYXR0YWNobWVudHM/Lmxlbmd0aCAmJiAhaXNSZWFkT25seVwiIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgnTm9BdHRhY2htZW50cycpfX1cIj48L2RzLW1lc3NhZ2U+LS0+XHJcbiBAaWYoYXR0YWNobWVudHM/Lmxlbmd0aCl7XHJcbiAgPGRpdlxyXG4gIGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBmdWxsXCJcclxuICBjZGtEcm9wTGlzdFxyXG4gIFtjZGtEcm9wTGlzdERhdGFdPVwiYXR0YWNobWVudHNcIlxyXG4gIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuPlxyXG4gIDx0YWJsZT5cclxuICAgIDx0aGVhZD5cclxuICAgICAgPHRyPlxyXG4gICAgIEBpZihkb3dubG9hZEFsbCl7XHJcbiAgICAgIDx0aD5cclxuICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgIGljb25cclxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGxBdHRhY2htZW50cygkZXZlbnQpXCJcclxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiXHJcbiAgICAgICAgICA+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgIDxhICNwbGFjZWhvbGRlcj48L2E+XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgfVxyXG4gICAgICAgIDx0aCBjbGFzcz1cIndpZHRoMzBcIj57eyBpMThuLnRyYW5zbGF0ZShcIkZpbGVOYW1lXCIpIH19PC90aD5cclxuICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoXCJGaWxlRGVzY3JpcHRpb25cIikgfX08L3RoPlxyXG4gICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZShcImNvbW1lbnRcIikgfX08L3RoPlxyXG4gICAgICAgIEBpZighaXNSZWFkT25seSl7XHJcbiAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICB9XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RoZWFkPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICA8dHJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBhdHRhY2htZW50czsgaW5kZXggYXMgaVwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICBhdHRhY2htZW50cz8ubGVuZ3RoID09IDAgfHwgKCFpc1NvcnRhYmxlICYmICFpc1JlYWRPbmx5KVxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgQGlmKGRvd25sb2FkQWxsKXtcclxuICAgICAgICA8dGQ+e3sgaSArIDEgfX08L3RkPlxyXG4gICAgICB9XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgIFthbGxvd2VkRXh0ZW5zaW9uc109XCJhbGxvd2VkRXh0ZW5zaW9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwid2hpdGUtYXR0YWNoZWRcIlxyXG4gICAgICAgICAgICBbZmllbGRdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgW2hhc0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbaXNSZWFkT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJtYXhXaWR0aCBweC0yXCI+XHJcbiAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJpc1NvcnRhYmxlID8gZmlsZURlc2NyaXB0aW9uQW5jaG9yLnBvcG92ZXIub3BlbigpOiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIi0tPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgW2hpZGRlbl09XCIhZGF0YT8uZmlsZURlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZmlsZURlc2NyaXB0aW9uQW5jaG9yLnBvcG92ZXIub3BlbigpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImZpbGVEZXNjcmlwdGlvblBvcG92ZXJcIlxyXG4gICAgICAgICAgICAjZmlsZURlc2NyaXB0aW9uQW5jaG9yPVwic2F0UG9wb3ZlckFuY2hvclwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImRhdGE/LmZpbGVEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRhdGE/LmZpbGVEZXNjcmlwdGlvbiB8IHNsaWNlIDogMCA6IDEwIH19Li4uLlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPCEtLSAgICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnVmlldycpIH19LS0+XHJcbiAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGVEZXNjcmlwdGlvblBvcG92ZXJcclxuICAgICAgICAgICAgW2FuY2hvcl09XCJmaWxlRGVzY3JpcHRpb25BbmNob3JcIlxyXG4gICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWZhdWx0LXBvcG92ZXIgcC0zIGZzLTE0IHRleHQtYnJlYWsgdmlldy1ub3RlLXBvcG92ZXJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGJkaSBjbGFzcz1cImZjLWJsYWNrXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRhPy5maWxlRGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgICAgICA8L2JkaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwibWF4V2lkdGggcHgtMlwiPlxyXG4gICAgICAgICAgPCEtLSAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaXNTb3J0YWJsZSA/IGNvbW1lbnRzQW5jaG9yLnBvcG92ZXIub3BlbigpOiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIi0tPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgW2hpZGRlbl09XCIhZGF0YT8uYXR0YWNobWVudGNvbW1lbnRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb21tZW50c0FuY2hvci5wb3BvdmVyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImNvbW1lbnRzUG9wb3ZlclwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImRhdGE/LmF0dGFjaG1lbnRjb21tZW50XCJcclxuICAgICAgICAgICAgI2NvbW1lbnRzQW5jaG9yPVwic2F0UG9wb3ZlckFuY2hvclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRhdGE/LmF0dGFjaG1lbnRjb21tZW50IHwgc2xpY2UgOiAwIDogMTAgfX0uLi5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwhLS0gICAgICAgICAge3sgaTE4bi50cmFuc2xhdGUoJ1ZpZXcnKSB9fS0tPlxyXG4gICAgICAgICAgPHNhdC1wb3BvdmVyXHJcbiAgICAgICAgICAgICNjb21tZW50c1BvcG92ZXJcclxuICAgICAgICAgICAgW2FuY2hvcl09XCJjb21tZW50c0FuY2hvclwiXHJcbiAgICAgICAgICAgIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgIGhvcml6b250YWxBbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTMgZnMtMTQgdGV4dC1icmVhayB2aWV3LW5vdGUtcG9wb3ZlclwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YmRpIGNsYXNzPVwiZmMtYmxhY2tcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGE/LmF0dGFjaG1lbnRjb21tZW50IH19XHJcbiAgICAgICAgICAgICAgPC9iZGk+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zYXQtcG9wb3Zlcj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgQGlmKCFpc1JlYWRPbmx5KXtcclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudHMoaSwgZGF0YSlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJ0cmFzaFwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcmVkXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFJvdyhkYXRhLCBpKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWJ0bi1zaGFkb3dcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInBlblwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICB9XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3Rib2R5PlxyXG4gIDwvdGFibGU+XHJcbjwvZGl2PlxyXG4gfVxyXG5cclxuIEBpZighaXNSZWFkT25seSAmJiBhdHRhY2htZW50cz8ubGVuZ3RoICYmIGF0dGFjaG1lbnRzPy5sZW5ndGggPCBhdHRhY2htZW50c01heCl7XHJcbiAgPGRpdlxyXG4gIGNsYXNzPVwidGV4dC1jZW50ZXIgZnVsbCBtdC0zXCJcclxuPlxyXG4gIDxkcy1idXR0b25cclxuICAgIHNoYXBlPVwie3sgYXR0YWNobWVudHM/Lmxlbmd0aCA/ICdvdXRsaW5lJyA6ICcnIH19XCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2Z1bGwtYWRkLWJ0biB3LTEwMCc6IGF0dGFjaG1lbnRzPy5sZW5ndGggfVwiXHJcbiAgICAoY2xpY2spPVwiYWRkQXR0YWhtZW50KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgPlxyXG4gICAgPGRzLWljb24gc2xvdD1cInByZWZpeFwiIGljb249XCJwbHVzXCIgY2xhc3M9XCJmcy0yMlwiPjwvZHMtaWNvbj5cclxuICAgIHt7IGkxOG4udHJhbnNsYXRlKFwiYWRkQXR0YWNobWVudHNcIikgfX1cclxuICA8L2RzLWJ1dHRvbj5cclxuPC9kaXY+XHJcbiB9XHJcbiBcclxuPC9kaXY+XHJcbiJdfQ==
|