nuxeo-development-framework 3.7.4 → 3.7.6-dms-mep
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/bundles/nuxeo-development-framework.umd.js +542 -178
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +56 -15
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +8 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +103 -27
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +1 -1
- package/esm2015/lib/components/select/select.module.js +6 -4
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +10 -10
- package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +207 -0
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +14 -7
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
- package/esm2015/lib/shared-services/file-manager.service.js +26 -3
- package/esm2015/lib/shared-services/global-admin.service.js +1 -1
- package/esm2015/lib/shared-services/mainfolder.service.js +10 -10
- package/esm2015/public-api.js +2 -1
- package/fesm2015/nuxeo-development-framework.js +438 -93
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts +11 -2
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +2 -1
- package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +19 -36
- package/lib/components/select/select.module.d.ts +1 -1
- package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +1 -1
- package/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.d.ts +80 -0
- package/lib/components/vocabulary/vocabulary.module.d.ts +6 -4
- package/lib/shared-services/file-manager.service.d.ts +10 -8
- package/lib/shared-services/mainfolder.service.d.ts +3 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -296,7 +296,7 @@ export class ScanModalComponent {
|
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
ScanModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ScanModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.UploadManagmentService }, { token: i3.DialogMangmentService }, { token: i4.FileManagerService }, { token: i5.CustomToastrService }, { token: i6.FormBuilder }, { token: i7.DynamicFormService }, { token: i8.DateHelperService }, { token: i9.AdapterService }, { token: i10.TranslationService }, { token: i11.NuxeoService }, { token: i12.UserService }, { token: i13.AppConfigService }, { token: 'environment' }, { token: i14.DocumentScanService }], target: i0.ɵɵFactoryTarget.Component });
|
|
299
|
-
ScanModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ScanModalComponent, selector: "app-scan-modal", ngImport: i0, template: "<div class=\"scanner-modal-body relative h-full\">\r\n <!-- -->\r\n <!-- tabs -->\r\n <div\r\n class=\"scanner-tabs d-flex justify-around items-center border-b-2 border-gray-200 mb-5 text-gray-900 text-lg\"\r\n >\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('scan')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'scan' }\"\r\n >\r\n {{\"CREATE.SCAN\" | translate}}\r\n </div>\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('form')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'form' }\"\r\n >\r\n {{\"CREATE.DETAILS\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"tabs-body-wrapper\">\r\n <!-- uploader indicator loading -->\r\n <div\r\n class=\"upload-loader mx-2\"\r\n *ngIf=\"uploadMangmentService.uploadedFilesStatus.uploadInProgress\"\r\n >\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n\r\n <!-- scanner -->\r\n <div class=\"\" [ngClass]=\"{ 'd-none': activeTab === 'form' }\">\r\n <app-document-scan\r\n [hideUploadButton]=\"true\"\r\n [useStoredFile]=\"true\"\r\n ></app-document-scan>\r\n </div>\r\n\r\n <!-- forms and properties -->\r\n <div\r\n class=\"forms-section\"\r\n [ngClass]=\"{ 'd-none': activeTab === 'scan' }\"\r\n >\r\n <div class=\"w-2/3\">\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.FILE_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-base text-gray-900\">\r\n {{ isArabic ? fileType.arabicText : fileType.englishText }}\r\n </div>\r\n </div>\r\n <div class=\"file-fields mt-3\" SetRtl>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.TITLE\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"title\"\r\n placeholder=\" {{ 'CREATE.TITLE' | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DESCRIPTION\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"description\"\r\n placeholder=\" {{\r\n 'CREATE.DESCRIPTION' | translate\r\n }}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields\">\r\n \r\n <app-dynamic-fields-renderer [form]=\"fileForm\" [agencyNameFilter]=\"agencyNameFilter\" [countryNameFilter]=\"countryNameFilter\"></app-dynamic-fields-renderer>\r\n\r\n <!-- <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"subject\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_SUBJECT' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"documentNumber\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_NUMBER' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <cts-dynamic-form-hijri-dateitem\r\n formControlName=\"gdocumentDate\"\r\n label=\"CREATE.DOCUMENT_DATE\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.SCRECY_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_SecrecyLevel'\"\r\n formControlName=\"secrecyLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.IMPORTANCE_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_Importance'\"\r\n formControlName=\"importanceLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <app-dynamic-form-department\r\n formControlName=\"departmentCode\"\r\n [placeholder]=\"'please select department'\"\r\n [pp_departmentNestedTree]=\"\r\n 'PP_OS_Departments'\r\n \"\r\n [pp_departmentTree]=\"'PP_OS_Departments'\"\r\n [customPrefix]=\"'osdept'\"\r\n [customParentProperty]=\"\r\n 'osdepartment_parentDepartmentCode'\r\n \"\r\n [useCustomAddEditAction]=\"true\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyCategoryCode\"\r\n [vocbularyId]=\"'VOC_AgencyCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyName\"\r\n [vocbularyId]=\"'VOC_Agency'\"\r\n [filter]=\"agencyNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryCategoryCode\"\r\n [vocbularyId]=\"'VOC_CountryCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryName\"\r\n [vocbularyId]=\"'VOC_Country'\"\r\n [filter]=\"countryNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"remarks\"\r\n placeholder=\" {{\r\n 'CREATE.REMARKS' | translate\r\n }}\"\r\n />\r\n </div> -->\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n </form>\r\n <!-- *ngIf=\"\" -->\r\n <div\r\n class=\"dynamic-part -mx-4\"\r\n *ngIf=\"selectedFile.dynamicForm && showRenderer\"\r\n >\r\n <app-dynamic-form\r\n [form]=\"selectedFile.dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"w-full d-flex justify-between scanner-actions-wrapper absolute bottom-0\"\r\n >\r\n <div class=\"flex\">\r\n <button class=\"cancelation-button\" (click)=\"closeDialog()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button mx-2\" (click)=\"minimizDialog()\">\r\n {{ \"BUTTONS.MINIMIZED\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <!-- <button\r\n *ngIf=\"creationFailed\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n (click)=\"createDocument()\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.TRY_AGAIN\" | translate }}\r\n </button> -->\r\n <button\r\n (click)=\"createDocument()\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ uploadMangmentService.scanCreationFailed ? (\"BUTTONS.TRY_AGAIN\" | translate) : (\"BUTTONS.CREATE\" | translate) }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".forms-section{display:flex;justify-content:center}.tabs-body-wrapper{height:calc(100% - 125px);overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: i15.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i16.ScanComponent, selector: "app-document-scan", inputs: ["useStoredFile", "hideUploadButton"], outputs: ["file"] }, { type: i17.DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["form", "agencyNameFilter", "countryNameFilter", "mode", "fields"] }, { type: i18.DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i19.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i19.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.SetRtlDirective, selector: "[SetRtl]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i21.TranslatePipe } });
|
|
299
|
+
ScanModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ScanModalComponent, selector: "app-scan-modal", ngImport: i0, template: "<div class=\"scanner-modal-body relative h-full\">\r\n <!-- -->\r\n <!-- tabs -->\r\n <div\r\n class=\"scanner-tabs d-flex justify-around items-center border-b-2 border-gray-200 mb-5 text-gray-900 text-lg\"\r\n >\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('scan')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'scan' }\"\r\n >\r\n {{\"CREATE.SCAN\" | translate}}\r\n </div>\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('form')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'form' }\"\r\n >\r\n {{\"CREATE.DETAILS\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"tabs-body-wrapper\">\r\n <!-- uploader indicator loading -->\r\n <div\r\n class=\"upload-loader mx-2\"\r\n *ngIf=\"uploadMangmentService.uploadedFilesStatus.uploadInProgress\"\r\n >\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n\r\n <!-- scanner -->\r\n <div class=\"\" [ngClass]=\"{ 'd-none': activeTab === 'form' }\">\r\n <app-document-scan\r\n [hideUploadButton]=\"true\"\r\n [useStoredFile]=\"true\"\r\n ></app-document-scan>\r\n </div>\r\n\r\n <!-- forms and properties -->\r\n <div\r\n class=\"forms-section\"\r\n [ngClass]=\"{ 'd-none': activeTab === 'scan' }\"\r\n >\r\n <div class=\"w-2/3\">\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.FILE_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-base text-gray-900\">\r\n {{ isArabic ? fileType.arabicText : fileType.englishText }}\r\n </div>\r\n </div>\r\n <div class=\"file-fields mt-3\" SetRtl>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.TITLE\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"title\"\r\n placeholder=\" {{ 'CREATE.TITLE' | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DESCRIPTION\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"description\"\r\n placeholder=\" {{\r\n 'CREATE.DESCRIPTION' | translate\r\n }}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields\">\r\n \r\n <app-dynamic-fields-renderer [form]=\"fileForm\" [agencyNameFilter]=\"agencyNameFilter\" [countryNameFilter]=\"countryNameFilter\"></app-dynamic-fields-renderer>\r\n\r\n <!-- <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"subject\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_SUBJECT' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"documentNumber\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_NUMBER' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <cts-dynamic-form-hijri-dateitem\r\n formControlName=\"gdocumentDate\"\r\n label=\"CREATE.DOCUMENT_DATE\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.SCRECY_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_SecrecyLevel'\"\r\n formControlName=\"secrecyLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.IMPORTANCE_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_Importance'\"\r\n formControlName=\"importanceLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <app-dynamic-form-department\r\n formControlName=\"departmentCode\"\r\n [placeholder]=\"'please select department'\"\r\n [pp_departmentNestedTree]=\"\r\n 'PP_OS_Departments'\r\n \"\r\n [pp_departmentTree]=\"'PP_OS_Departments'\"\r\n [customPrefix]=\"'osdept'\"\r\n [customParentProperty]=\"\r\n 'osdepartment_parentDepartmentCode'\r\n \"\r\n [useCustomAddEditAction]=\"true\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyCategoryCode\"\r\n [vocbularyId]=\"'VOC_AgencyCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyName\"\r\n [vocbularyId]=\"'VOC_Agency'\"\r\n [filter]=\"agencyNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryCategoryCode\"\r\n [vocbularyId]=\"'VOC_CountryCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryName\"\r\n [vocbularyId]=\"'VOC_Country'\"\r\n [filter]=\"countryNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"remarks\"\r\n placeholder=\" {{\r\n 'CREATE.REMARKS' | translate\r\n }}\"\r\n />\r\n </div> -->\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n </form>\r\n <!-- *ngIf=\"\" -->\r\n <div\r\n class=\"dynamic-part -mx-4\"\r\n *ngIf=\"selectedFile.dynamicForm && showRenderer\"\r\n >\r\n <app-dynamic-form\r\n [form]=\"selectedFile.dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"w-full d-flex justify-between scanner-actions-wrapper absolute bottom-0\"\r\n >\r\n <div class=\"flex\">\r\n <button class=\"cancelation-button\" (click)=\"closeDialog()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button mx-2\" (click)=\"minimizDialog()\">\r\n {{ \"BUTTONS.MINIMIZED\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <!-- <button\r\n *ngIf=\"creationFailed\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n (click)=\"createDocument()\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.TRY_AGAIN\" | translate }}\r\n </button> -->\r\n <button\r\n (click)=\"createDocument()\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ uploadMangmentService.scanCreationFailed ? (\"BUTTONS.TRY_AGAIN\" | translate) : (\"BUTTONS.CREATE\" | translate) }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".forms-section{display:flex;justify-content:center}.tabs-body-wrapper{height:calc(100% - 125px);overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: i15.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i16.ScanComponent, selector: "app-document-scan", inputs: ["useStoredFile", "hideUploadButton"], outputs: ["file"] }, { type: i17.DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["pdfOrWordFile", "form", "agencyNameFilter", "countryNameFilter", "mode", "fields"] }, { type: i18.DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i19.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i19.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.SetRtlDirective, selector: "[SetRtl]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i21.TranslatePipe } });
|
|
300
300
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ScanModalComponent, decorators: [{
|
|
301
301
|
type: Component,
|
|
302
302
|
args: [{
|
package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js
CHANGED
|
@@ -345,7 +345,7 @@ export class UpdateModalComponent {
|
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
UpdateModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: UpdateModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: 'environment' }, { token: i1.MatDialogRef }, { token: i2.FileManagerService }, { token: i3.CustomToastrService }, { token: i4.FormBuilder }, { token: i5.AppConfigService }, { token: i6.DynamicFormService }, { token: i7.AdapterService }, { token: i8.TranslationService }, { token: i9.DateHelperService }, { token: i10.DocumentsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
348
|
-
UpdateModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: UpdateModalComponent, selector: "app-update-modal", host: { listeners: { "document:keyup.enter": "KeyUpEvent($event)" } }, ngImport: i0, template: "<div class=\"create-folder-modal d-flex justify-center w-full relative h-full\">\r\n <div class=\"folder-wrapper\" SetRtl>\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.TYPE_ONLY\" | translate }}\r\n <span class=\"text-red-500\">*</span>\r\n </div>\r\n <div *ngIf=\"!isDirectory\">{{ translatedDocumentType ? (isArabic ? (translatedDocumentType.arabicName) : (translatedDocumentType.englishTitle)) : type}}</div>\r\n <div *ngIf=\"isDirectory\">{{ type === 'DmsFolder' ? (isArabic ? '\u0645\u062C\u0644\u062F' : 'Folder') : type}}</div>\r\n\r\n </div>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style \"\r\n [ngClass]=\"{'border-red-500' : fileForm.value.title === '..'}\"\r\n required\r\n formControlName=\"title\" \r\n placeholder=\" {{ 'CREATE.TITLE' | translate}}\"\r\n />\r\n <div class=\"text-red-500 text-base\" *ngIf=\"fileForm.value.title === '..'\">\r\n {{ \"FOLDERS.INVALID_TITLE_ONLY\" | translate }}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style \"\r\n formControlName=\"description\" \r\n placeholder=\" {{ 'CREATE.DESCRIPTION' | translate}}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields && !isDirectory\">\r\n <app-dynamic-fields-renderer \r\n [mode]=\"'edit'\"\r\n [fields]=\"fields\" \r\n [form]=\"fileForm\" \r\n [agencyNameFilter]=\"agencyNameFilter\" \r\n [countryNameFilter]=\"countryNameFilter\"\r\n >\r\n </app-dynamic-fields-renderer>\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n\r\n\r\n </form>\r\n <div class=\"dynamic-part -mx-4\" *ngIf=\"dynamicForm && showRenderer\">\r\n <app-dynamic-form\r\n [form]=\"dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"\r\n w-full\r\n d-flex\r\n justify-between\r\n absolute\r\n bottom-0\r\n \"\r\n >\r\n <div class=\"flex\">\r\n <button\r\n class=\"cancelation-button\"\r\n (click)=\"closeDialog()\"\r\n >\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <button\r\n (click)=\"UpdateDocument()\"\r\n [disabled]=\"\r\n (dynamicData['data'] && !dynamicData.valid) ||\r\n fileForm.invalid ||\r\n fileForm.value.title === '..'\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n (dynamicData['data'] && !dynamicData.valid) ||\r\n fileForm.invalid ||\r\n fileForm.value.title === '..'\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.UPDATE\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".folder-wrapper{height:calc(100% - 50px);overflow-y:auto;overflow-x:hidden;padding:0 10px;width:100%}\n"], components: [{ type: i11.DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["form", "agencyNameFilter", "countryNameFilter", "mode", "fields"] }, { type: i12.DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i13.SetRtlDirective, selector: "[SetRtl]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i15.TranslatePipe } });
|
|
348
|
+
UpdateModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: UpdateModalComponent, selector: "app-update-modal", host: { listeners: { "document:keyup.enter": "KeyUpEvent($event)" } }, ngImport: i0, template: "<div class=\"create-folder-modal d-flex justify-center w-full relative h-full\">\r\n <div class=\"folder-wrapper\" SetRtl>\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.TYPE_ONLY\" | translate }}\r\n <span class=\"text-red-500\">*</span>\r\n </div>\r\n <div *ngIf=\"!isDirectory\">{{ translatedDocumentType ? (isArabic ? (translatedDocumentType.arabicName) : (translatedDocumentType.englishTitle)) : type}}</div>\r\n <div *ngIf=\"isDirectory\">{{ type === 'DmsFolder' ? (isArabic ? '\u0645\u062C\u0644\u062F' : 'Folder') : type}}</div>\r\n\r\n </div>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style \"\r\n [ngClass]=\"{'border-red-500' : fileForm.value.title === '..'}\"\r\n required\r\n formControlName=\"title\" \r\n placeholder=\" {{ 'CREATE.TITLE' | translate}}\"\r\n />\r\n <div class=\"text-red-500 text-base\" *ngIf=\"fileForm.value.title === '..'\">\r\n {{ \"FOLDERS.INVALID_TITLE_ONLY\" | translate }}\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style \"\r\n formControlName=\"description\" \r\n placeholder=\" {{ 'CREATE.DESCRIPTION' | translate}}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields && !isDirectory\">\r\n <app-dynamic-fields-renderer \r\n [mode]=\"'edit'\"\r\n [fields]=\"fields\" \r\n [form]=\"fileForm\" \r\n [agencyNameFilter]=\"agencyNameFilter\" \r\n [countryNameFilter]=\"countryNameFilter\"\r\n >\r\n </app-dynamic-fields-renderer>\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n\r\n\r\n </form>\r\n <div class=\"dynamic-part -mx-4\" *ngIf=\"dynamicForm && showRenderer\">\r\n <app-dynamic-form\r\n [form]=\"dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"\r\n w-full\r\n d-flex\r\n justify-between\r\n absolute\r\n bottom-0\r\n \"\r\n >\r\n <div class=\"flex\">\r\n <button\r\n class=\"cancelation-button\"\r\n (click)=\"closeDialog()\"\r\n >\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <button\r\n (click)=\"UpdateDocument()\"\r\n [disabled]=\"\r\n (dynamicData['data'] && !dynamicData.valid) ||\r\n fileForm.invalid ||\r\n fileForm.value.title === '..'\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n (dynamicData['data'] && !dynamicData.valid) ||\r\n fileForm.invalid ||\r\n fileForm.value.title === '..'\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.UPDATE\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".folder-wrapper{height:calc(100% - 50px);overflow-y:auto;overflow-x:hidden;padding:0 10px;width:100%}\n"], components: [{ type: i11.DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["pdfOrWordFile", "form", "agencyNameFilter", "countryNameFilter", "mode", "fields"] }, { type: i12.DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i13.SetRtlDirective, selector: "[SetRtl]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i14.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i15.TranslatePipe } });
|
|
349
349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: UpdateModalComponent, decorators: [{
|
|
350
350
|
type: Component,
|
|
351
351
|
args: [{
|
|
@@ -12,13 +12,14 @@ SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
|
|
|
12
12
|
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SelectModule, declarations: [SelectComponent], imports: [CommonModule,
|
|
13
13
|
NgSelectModule,
|
|
14
14
|
FormsModule,
|
|
15
|
-
TranslateModule], exports: [SelectComponent
|
|
15
|
+
TranslateModule], exports: [SelectComponent,
|
|
16
|
+
NgSelectModule] });
|
|
16
17
|
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SelectModule, imports: [[
|
|
17
18
|
CommonModule,
|
|
18
19
|
NgSelectModule,
|
|
19
20
|
FormsModule,
|
|
20
21
|
TranslateModule
|
|
21
|
-
]] });
|
|
22
|
+
], NgSelectModule] });
|
|
22
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SelectModule, decorators: [{
|
|
23
24
|
type: NgModule,
|
|
24
25
|
args: [{
|
|
@@ -30,8 +31,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
30
31
|
TranslateModule
|
|
31
32
|
],
|
|
32
33
|
exports: [
|
|
33
|
-
SelectComponent
|
|
34
|
+
SelectComponent,
|
|
35
|
+
NgSelectModule
|
|
34
36
|
]
|
|
35
37
|
}]
|
|
36
38
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUd0RCxjQUFjO0FBY2QsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkFaUixlQUFlLGFBRTVCLFlBQVk7UUFDWixjQUFjO1FBQ2QsV0FBVztRQUNYLGVBQWUsYUFHZixlQUFlO1FBQ2YsY0FBYzswR0FHTCxZQUFZLFlBWGQ7WUFDUCxZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7WUFDWCxlQUFlO1NBQ2hCLEVBR0MsY0FBYzsyRkFHTCxZQUFZO2tCQWJ4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1NlbGVjdENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgTmdTZWxlY3RNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2R1bGUge31cclxuIl19
|
|
@@ -11,17 +11,17 @@ export class VocabularyApiService {
|
|
|
11
11
|
this.environment = environment;
|
|
12
12
|
this.vocabular = {};
|
|
13
13
|
}
|
|
14
|
-
getVocabularyList(listName) {
|
|
14
|
+
getVocabularyList(listName, displayObsoleteEntries = true, params = {}, filter = null) {
|
|
15
|
+
let _params = Object.assign({ directoryName: listName, dbl10n: false, localize: true, lang: this.translate.currentLang, searchTerm: '' }, params);
|
|
16
|
+
if (displayObsoleteEntries) {
|
|
17
|
+
params['displayObsoleteEntries'] = true;
|
|
18
|
+
}
|
|
19
|
+
if (filter) {
|
|
20
|
+
params['filters'] = filter;
|
|
21
|
+
}
|
|
15
22
|
return from(this.nuxeoService.nuxeoClient
|
|
16
23
|
.operation('Directory.SuggestEntries', {})
|
|
17
|
-
.params(
|
|
18
|
-
directoryName: listName,
|
|
19
|
-
dbl10n: false,
|
|
20
|
-
localize: true,
|
|
21
|
-
lang: this.translate.currentLang,
|
|
22
|
-
displayObsoleteEntries: true,
|
|
23
|
-
searchTerm: '',
|
|
24
|
-
})
|
|
24
|
+
.params(_params)
|
|
25
25
|
.execute());
|
|
26
26
|
}
|
|
27
27
|
vocabularyOperations(opName, body) {
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
47
47
|
type: Inject,
|
|
48
48
|
args: ['environment']
|
|
49
49
|
}] }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWJ1bGFyeS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS9zZXJ2aWNlcy92b2NhYnVsYXJ5LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxJQUFJLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1qRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsWUFBMEIsRUFDMUIsU0FBMkIsRUFBaUMsV0FBVztRQUR2RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUhqRixjQUFTLEdBQUcsRUFBRSxDQUFDO0lBSVosQ0FBQztJQUVKLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUNuRixJQUFJLE9BQU8sbUJBQ1QsYUFBYSxFQUFFLFFBQVEsRUFDdkIsTUFBTSxFQUFFLEtBQUssRUFDYixRQUFRLEVBQUUsSUFBSSxFQUNkLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFDaEMsVUFBVSxFQUFFLEVBQUUsSUFDWCxNQUFNLENBQ1YsQ0FBQTtRQUNELElBQUcsc0JBQXNCLEVBQUU7WUFDekIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3pDO1FBQ0QsSUFBRyxNQUFNLEVBQUU7WUFDVCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFBO1NBQzNCO1FBQ0QsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQzFCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUM7YUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLE9BQU8sRUFBRSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBYyxFQUFFLElBQUk7UUFDdkMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDakIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtTQUNyRSxDQUFDO2FBQ0QsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzdCLE9BQU8sRUFBRSxDQUNiLENBQUMsSUFBSSxDQUNKLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7aUhBNUNVLG9CQUFvQiw4RUFJZ0IsYUFBYTtxSEFKakQsb0JBQW9CLGNBRm5CLE1BQU07MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS3lDLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgb3BUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9vcC10eXBlLmludGVyZmFjZSc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWb2NhYnVsYXJ5QXBpU2VydmljZSB7XHJcbiAgdm9jYWJ1bGFyID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG4gICkge31cclxuXHJcbiAgZ2V0Vm9jYWJ1bGFyeUxpc3QobGlzdE5hbWUsIGRpc3BsYXlPYnNvbGV0ZUVudHJpZXMgPSB0cnVlLCBwYXJhbXMgPSB7fSwgZmlsdGVyID0gbnVsbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgX3BhcmFtcyA9IHtcclxuICAgICAgZGlyZWN0b3J5TmFtZTogbGlzdE5hbWUsXHJcbiAgICAgIGRibDEwbjogZmFsc2UsXHJcbiAgICAgIGxvY2FsaXplOiB0cnVlLFxyXG4gICAgICBsYW5nOiB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyxcclxuICAgICAgc2VhcmNoVGVybTogJycsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfVxyXG4gICAgaWYoZGlzcGxheU9ic29sZXRlRW50cmllcykge1xyXG4gICAgICBwYXJhbXNbJ2Rpc3BsYXlPYnNvbGV0ZUVudHJpZXMnXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZihmaWx0ZXIpIHtcclxuICAgICAgcGFyYW1zWydmaWx0ZXJzJ10gPSBmaWx0ZXJcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0RpcmVjdG9yeS5TdWdnZXN0RW50cmllcycsIHt9KVxyXG4gICAgICAgIC5wYXJhbXMoX3BhcmFtcylcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdm9jYWJ1bGFyeU9wZXJhdGlvbnMob3BOYW1lOiBvcFR5cGUsIGJvZHkpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24ob3BOYW1lLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jb250ZXh0KHsgdm9jYWJ1bGFyeTogYm9keSB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Optional, Output, Self, ViewChild } from '@angular/core';
|
|
2
|
+
import { NgSelectComponent } from '@ng-select/ng-select';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
|
7
|
+
import * as i2 from "../../../Core/services/translation/translation.service";
|
|
8
|
+
import * as i3 from "../services/vocabulary-api.service";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
import * as i5 from "@ng-select/ng-select";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
export class TranslatedVocabularySelectComponent {
|
|
13
|
+
constructor(translate, translationService, vocabularyApiServ, control) {
|
|
14
|
+
this.translate = translate;
|
|
15
|
+
this.translationService = translationService;
|
|
16
|
+
this.vocabularyApiServ = vocabularyApiServ;
|
|
17
|
+
this.control = control;
|
|
18
|
+
/** can select multiple */
|
|
19
|
+
this.multiple = false;
|
|
20
|
+
/** is searchable */
|
|
21
|
+
this.searchable = false;
|
|
22
|
+
/** should close on select */
|
|
23
|
+
this.closeOnSelect = true;
|
|
24
|
+
/** should hide selected items */
|
|
25
|
+
this.hideSelectedItems = false;
|
|
26
|
+
/** is disabled */
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
/** should show clear action */
|
|
29
|
+
this.clear = true;
|
|
30
|
+
/** flage to indicate if call api without filter or wait untile there is filter and then call api*/
|
|
31
|
+
this.useFilter = true;
|
|
32
|
+
/** Should show loading indicator */
|
|
33
|
+
this.loading = false;
|
|
34
|
+
this.mapingResponse = false;
|
|
35
|
+
this.params = {};
|
|
36
|
+
/** event emitted with selected items */
|
|
37
|
+
this.onSelectItems = new EventEmitter();
|
|
38
|
+
this.selection = [];
|
|
39
|
+
this.data = [];
|
|
40
|
+
this.buffer = [];
|
|
41
|
+
this.bufferSize = 50;
|
|
42
|
+
this.numberOfItemsFromEndBeforeFetchingMore = 10;
|
|
43
|
+
this._unsubscribeAll = new Subject();
|
|
44
|
+
this.isArabic = false;
|
|
45
|
+
this.propagateChange = () => { };
|
|
46
|
+
this.validateFn = () => { };
|
|
47
|
+
this.onTouched = () => {
|
|
48
|
+
/*Empty*/
|
|
49
|
+
};
|
|
50
|
+
if (this.control) {
|
|
51
|
+
this.control.valueAccessor = this;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
get invalid() {
|
|
55
|
+
return this.control ? this.control.invalid : false;
|
|
56
|
+
}
|
|
57
|
+
get showError() {
|
|
58
|
+
if (!this.control) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const { dirty, touched } = this.control;
|
|
62
|
+
return this.invalid ? dirty || touched : false;
|
|
63
|
+
}
|
|
64
|
+
ngOnInit() {
|
|
65
|
+
this.translationService.isArabic
|
|
66
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
67
|
+
.subscribe((res) => {
|
|
68
|
+
this.isArabic = res;
|
|
69
|
+
this.bindLabel = this.isArabic
|
|
70
|
+
? this.arbBindLabel
|
|
71
|
+
: this.engBindLabel;
|
|
72
|
+
});
|
|
73
|
+
if (!this.useFilter) {
|
|
74
|
+
this.getlistOfVocabulary();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
getlistOfVocabulary() {
|
|
78
|
+
this.loading = true;
|
|
79
|
+
if (this.vocbularyId) {
|
|
80
|
+
this.vocabularyApiServ
|
|
81
|
+
.getVocabularyList(this.vocbularyId, false, this.params, this.filter)
|
|
82
|
+
.subscribe((res) => {
|
|
83
|
+
if (this.mapingResponse) {
|
|
84
|
+
res.forEach((element) => {
|
|
85
|
+
this.data.push({
|
|
86
|
+
label_ar: element.displayLabel,
|
|
87
|
+
label_en: element.displayLabel,
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.data = res;
|
|
93
|
+
}
|
|
94
|
+
this.buffer = (this.data || []).slice(0, this.bufferSize);
|
|
95
|
+
this.loading = false;
|
|
96
|
+
}, err => {
|
|
97
|
+
this.loading = false;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
ngOnChanges(changes) {
|
|
102
|
+
if (this.useFilter && changes.filter && changes.filter.currentValue) {
|
|
103
|
+
this.getlistOfVocabulary();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
emitSelection(event) {
|
|
107
|
+
this.propagateChange(this.selection);
|
|
108
|
+
this.onSelectItems.emit(event);
|
|
109
|
+
}
|
|
110
|
+
onScrollToEnd() {
|
|
111
|
+
this.fetchMore();
|
|
112
|
+
}
|
|
113
|
+
fetchMore() {
|
|
114
|
+
this.loading = true;
|
|
115
|
+
const len = this.buffer.length;
|
|
116
|
+
const more = this.data.slice(len, this.bufferSize + len);
|
|
117
|
+
this.buffer = this.data.concat(more);
|
|
118
|
+
this.loading = false;
|
|
119
|
+
}
|
|
120
|
+
writeValue(value) {
|
|
121
|
+
if (value) {
|
|
122
|
+
this.selection = value;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
//added to allow reseting ui when resetting form
|
|
126
|
+
this.selection = [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
registerOnChange(fn) {
|
|
130
|
+
this.propagateChange = fn;
|
|
131
|
+
}
|
|
132
|
+
registerOnTouched(fn) {
|
|
133
|
+
this.onTouched = fn;
|
|
134
|
+
}
|
|
135
|
+
validate(c) {
|
|
136
|
+
return this.validateFn(c);
|
|
137
|
+
}
|
|
138
|
+
isRequired() {
|
|
139
|
+
if (!this.control || !this.control.control.validator) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
const validator = this.control.control.validator({});
|
|
143
|
+
return validator && validator.required;
|
|
144
|
+
}
|
|
145
|
+
hasErrors() {
|
|
146
|
+
return this.showError;
|
|
147
|
+
}
|
|
148
|
+
reset() {
|
|
149
|
+
this.ngSelectComponent.handleClearClick();
|
|
150
|
+
}
|
|
151
|
+
ngOnDestroy() {
|
|
152
|
+
this._unsubscribeAll.next();
|
|
153
|
+
this._unsubscribeAll.complete();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
TranslatedVocabularySelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TranslatedVocabularySelectComponent, deps: [{ token: i1.TranslateService }, { token: i2.TranslationService }, { token: i3.VocabularyApiService }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
157
|
+
TranslatedVocabularySelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: { label: "label", bindValue: "bindValue", arbBindLabel: "arbBindLabel", engBindLabel: "engBindLabel", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", closeOnSelect: "closeOnSelect", hideSelectedItems: "hideSelectedItems", disabled: "disabled", clear: "clear", filter: "filter", useFilter: "useFilter", vocbularyId: "vocbularyId", mapingResponse: "mapingResponse", params: "params" }, outputs: { onSelectItems: "onSelectItems" }, viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"translated-vocbulary-wrapper\" [ngClass]=\"{'rtl-translated-vocbulary-wrapper' : isArabic === true}\">\r\n <div class=\"vocabulary-title text-base font-bold text-accent-900 mb-0\">\r\n {{label | translate}}\r\n <span *ngIf=\"isRequired()\" class=\"required-flage\">*</span>\r\n </div>\r\n <ng-select\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [clearable]=\"clear\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [hideSelected]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (scrollToEnd)=\"onScrollToEnd()\"\r\n (change)=\"emitSelection($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"selection\"\r\n >\r\n <ng-option *ngFor=\"let option of buffer\" [value]=\"option[bindValue]\">{{isArabic ? option[bindLabel] : option[bindLabel]}}</ng-option>\r\n </ng-select>\r\n</div>\r\n", styles: [".translated-vocbulary-wrapper .vocabulary-title .required-flage{color:#ef4444}.rtl-translated-vocbulary-wrapper{direction:rtl}\n"], components: [{ type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i5.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TranslatedVocabularySelectComponent, decorators: [{
|
|
159
|
+
type: Component,
|
|
160
|
+
args: [{
|
|
161
|
+
selector: 'app-translated-vocabulary-select',
|
|
162
|
+
templateUrl: './translated-vocabulary-select.component.html',
|
|
163
|
+
styleUrls: ['./translated-vocabulary-select.component.scss'],
|
|
164
|
+
}]
|
|
165
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.TranslationService }, { type: i3.VocabularyApiService }, { type: i4.NgControl, decorators: [{
|
|
166
|
+
type: Self
|
|
167
|
+
}, {
|
|
168
|
+
type: Optional
|
|
169
|
+
}] }]; }, propDecorators: { ngSelectComponent: [{
|
|
170
|
+
type: ViewChild,
|
|
171
|
+
args: [NgSelectComponent]
|
|
172
|
+
}], label: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], bindValue: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], arbBindLabel: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], engBindLabel: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], placeholder: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], multiple: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], searchable: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], closeOnSelect: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], hideSelectedItems: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], disabled: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], clear: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], filter: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], useFilter: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], vocbularyId: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], mapingResponse: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], params: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], onSelectItems: [{
|
|
205
|
+
type: Output
|
|
206
|
+
}] } });
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvdHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdC90cmFuc2xhdGVkLXZvY2FidWxhcnktc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS90cmFuc2xhdGVkLXZvY2FidWxhcnktc2VsZWN0L3RyYW5zbGF0ZWQtdm9jYWJ1bGFyeS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QixRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBVzNDLE1BQU0sT0FBTyxtQ0FBbUM7SUF3RTVDLFlBQ1csU0FBMkIsRUFDMUIsa0JBQXNDLEVBQ3RDLGlCQUF1QyxFQUNwQixPQUFrQjtRQUh0QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTVEakQsMEJBQTBCO1FBQ2pCLGFBQVEsR0FB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QUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztnSUF4TFEsbUNBQW1DO29IQUFuQyxtQ0FBbUMsNGtCQUdqQyxpQkFBaUIscUVDbkJoQyxnbUNBdUJBOzJGRFBhLG1DQUFtQztrQkFML0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxXQUFXLEVBQUUsK0NBQStDO29CQUM1RCxTQUFTLEVBQUUsQ0FBQywrQ0FBK0MsQ0FBQztpQkFDL0Q7OzBCQTZFUSxJQUFJOzswQkFBSSxRQUFROzRDQXpFUyxpQkFBaUI7c0JBQTlDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVuQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVm9jYWJ1bGFyeUFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92b2NhYnVsYXJ5LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90cmFuc2xhdGVkLXZvY2FidWxhcnktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVkVm9jYWJ1bGFyeVNlbGVjdENvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gICAgQFZpZXdDaGlsZChOZ1NlbGVjdENvbXBvbmVudCkgbmdTZWxlY3RDb21wb25lbnQ6IE5nU2VsZWN0Q29tcG9uZW50O1xyXG4gICAgLyoqIEZpZWxkIExhYmVsICovXHJcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gICAgLyoqIFByb3BlcnR5IG5hbWUgdG8gYmluZCB2YWx1ZSB0byAqL1xyXG4gICAgQElucHV0KCkgYmluZFZhbHVlO1xyXG4gICAgLyoqIFByb3BlcnR5IG5hbWUgdG8gYmluZCBsYWJlbCB0byAqL1xyXG4gICAgQElucHV0KCkgYXJiQmluZExhYmVsO1xyXG4gICAgLyoqIFByb3BlcnR5IG5hbWUgdG8gYmluZCBsYWJlbCB0byAqL1xyXG4gICAgQElucHV0KCkgZW5nQmluZExhYmVsO1xyXG4gICAgLyoqIEl0ZW1zIGFycmF5ICovXHJcbiAgICAvLyBASW5wdXQoKSBkYXRhO1xyXG4gICAgLyoqIFBsYWNlaG9sZGVyIHN0cmluZyAqL1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgICAvKiogY2FuIHNlbGVjdCBtdWx0aXBsZSAqL1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAgIC8qKiBpcyBzZWFyY2hhYmxlICovXHJcbiAgICBASW5wdXQoKSBzZWFyY2hhYmxlID0gZmFsc2U7XHJcbiAgICAvKiogc2hvdWxkIGNsb3NlIG9uIHNlbGVjdCAqL1xyXG4gICAgQElucHV0KCkgY2xvc2VPblNlbGVjdCA9IHRydWU7XHJcbiAgICAvKiogc2hvdWxkIGhpZGUgc2VsZWN0ZWQgaXRlbXMgKi9cclxuICAgIEBJbnB1dCgpIGhpZGVTZWxlY3RlZEl0ZW1zID0gZmFsc2U7XHJcbiAgICAvKiogaXMgZGlzYWJsZWQgKi9cclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAvKiogc2hvdWxkIHNob3cgY2xlYXIgYWN0aW9uICovXHJcbiAgICBASW5wdXQoKSBjbGVhciA9IHRydWU7XHJcbiAgICAvKiogZmlsdGVyIHRvIGJlIHNlbnQgZnJvbSBvdXQgc2lkZSB0byBzZW5kIGl0IGluIGFwaSB0byBmaWx0ZXIgdGhlIHZvY2FidWxhcnkgaXRlbXMgKi9cclxuICAgIEBJbnB1dCgpIGZpbHRlcjtcclxuICAgIC8qKiBmbGFnZSB0byBpbmRpY2F0ZSBpZiBjYWxsIGFwaSB3aXRob3V0IGZpbHRlciBvciB3YWl0IHVudGlsZSB0aGVyZSBpcyBmaWx0ZXIgYW5kIHRoZW4gY2FsbCBhcGkqL1xyXG4gICAgQElucHV0KCkgdXNlRmlsdGVyID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogaXMgdm9jYWJ1bGFyeSBzZWxlY3QgKi9cclxuICAgIC8vIEBJbnB1dCgpIHZvYyA9IGZhbHNlO1xyXG4gICAgLyoqIHZvY2FidWxhcnkgaWQgZm9yIHRyYW5zbGF0aW9uIChmb3Igdm9jYWJ1bGFyeSBzZWxlY3Qgb25seSkgKi9cclxuICAgIEBJbnB1dCgpIHZvY2J1bGFyeUlkOiBzdHJpbmc7XHJcbiAgICAvKiogU2hvdWxkIHNob3cgbG9hZGluZyBpbmRpY2F0b3IgKi9cclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG1hcGluZ1Jlc3BvbnNlID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcGFyYW1zID0ge307XHJcbiAgICAvKiogZXZlbnQgZW1pdHRlZCB3aXRoIHNlbGVjdGVkIGl0ZW1zICovXHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3RJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBiaW5kTGFiZWw7XHJcbiAgICBzZWxlY3Rpb24gPSBbXTtcclxuICAgIGRhdGEgPSBbXTtcclxuICAgIGJ1ZmZlciA9IFtdO1xyXG4gICAgYnVmZmVyU2l6ZSA9IDUwO1xyXG4gICAgbnVtYmVyT2ZJdGVtc0Zyb21FbmRCZWZvcmVGZXRjaGluZ01vcmUgPSAxMDtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gICAgcHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcclxuICAgIHZhbGlkYXRlRm46IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICAgIHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuICAgICAgICAvKkVtcHR5Ki9cclxuICAgIH07XHJcbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdm9jYWJ1bGFyeUFwaVNlcnY6IFZvY2FidWxhcnlBcGlTZXJ2aWNlLFxyXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRyb2w6IE5nQ29udHJvbFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0FyYWJpYyA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMuYmluZExhYmVsID0gdGhpcy5pc0FyYWJpY1xyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5hcmJCaW5kTGFiZWxcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZW5nQmluZExhYmVsO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIXRoaXMudXNlRmlsdGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0bGlzdE9mVm9jYWJ1bGFyeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRsaXN0T2ZWb2NhYnVsYXJ5KCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudm9jYnVsYXJ5SWQpIHtcclxuICAgICAgICAgICAgdGhpcy52b2NhYnVsYXJ5QXBpU2VydlxyXG4gICAgICAgICAgICAgICAgLmdldFZvY2FidWxhcnlMaXN0KHRoaXMudm9jYnVsYXJ5SWQsIGZhbHNlLCB0aGlzLnBhcmFtcywgdGhpcy5maWx0ZXIpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXBpbmdSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX2FyOiBlbGVtZW50LmRpc3BsYXlMYWJlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF9lbjogZWxlbWVudC5kaXNwbGF5TGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlciA9ICh0aGlzLmRhdGEgfHwgW10pLnNsaWNlKDAsIHRoaXMuYnVmZmVyU2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy51c2VGaWx0ZXIgJiYgY2hhbmdlcy5maWx0ZXIgJiYgY2hhbmdlcy5maWx0ZXIuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0bGlzdE9mVm9jYWJ1bGFyeSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbWl0U2VsZWN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3RJdGVtcy5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFRvRW5kKCkge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hNb3JlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmZXRjaE1vcmUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBsZW4gPSB0aGlzLmJ1ZmZlci5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbW9yZSA9IHRoaXMuZGF0YS5zbGljZShsZW4sIHRoaXMuYnVmZmVyU2l6ZSArIGxlbik7XHJcbiAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLmRhdGEuY29uY2F0KG1vcmUpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvL2FkZGVkIHRvIGFsbG93IHJlc2V0aW5nIHVpIHdoZW4gcmVzZXR0aW5nIGZvcm1cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbikge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzUmVxdWlyZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuICAgIH1cclxuXHJcbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG4gICAgfVxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5uZ1NlbGVjdENvbXBvbmVudC5oYW5kbGVDbGVhckNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgICAvLyBvblNlYXJjaCA9ICAodGVybTogc3RyaW5nLCBpdGVtOiBhbnkpID0+IHtcclxuICAgIC8vICAgbGV0IGtleSA9ICcnO1xyXG4gICAgLy8gICB0aGlzLnZvYyA/IGtleSA9ICBcInZvY2FidWxhcnkuXCIgKyB0aGlzLnZvY0lkICsgXCIuXCIgKyBpdGVtLmlkIDoga2V5ID0gaXRlbS5sYWJlbDtcclxuICAgIC8vICAgbGV0IHZhbHVlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXkpO1xyXG4gICAgLy8gICAgIGlmKHZhbHVlKXtcclxuICAgIC8vICAgICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pO1xyXG4gICAgLy8gICAgIH1lbHNle1xyXG4gICAgLy8gICAgICAgcmV0dXJuIGl0ZW0ubGFiZWwuaW5jbHVkZXModGVybSk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidHJhbnNsYXRlZC12b2NidWxhcnktd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsncnRsLXRyYW5zbGF0ZWQtdm9jYnVsYXJ5LXdyYXBwZXInIDogaXNBcmFiaWMgPT09IHRydWV9XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZvY2FidWxhcnktdGl0bGUgdGV4dC1iYXNlIGZvbnQtYm9sZCB0ZXh0LWFjY2VudC05MDAgbWItMFwiPlxyXG4gICAgICAgICAgICB7e2xhYmVsIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInJlcXVpcmVkLWZsYWdlXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcclxuICAgICAgICAgICAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgICAgICAgICBbY2xlYXJhYmxlXT1cImNsZWFyXCJcclxuICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXHJcbiAgICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImNsb3NlT25TZWxlY3RcIlxyXG4gICAgICAgICAgICBbaGlkZVNlbGVjdGVkXT1cImhpZGVTZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgIChzY3JvbGxUb0VuZCk9XCJvblNjcm9sbFRvRW5kKClcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cImVtaXRTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGJ1ZmZlclwiIFt2YWx1ZV09XCJvcHRpb25bYmluZFZhbHVlXVwiPnt7aXNBcmFiaWMgPyBvcHRpb25bYmluZExhYmVsXSA6IG9wdGlvbltiaW5kTGFiZWxdfX08L25nLW9wdGlvbj5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -3,32 +3,39 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { VocabularyComponent } from './vocabulary/vocabulary.component';
|
|
4
4
|
import { SelectModule } from '../select/select.module';
|
|
5
5
|
import { DynamicFormModule } from '../dynamic-form/dynamic-form.module';
|
|
6
|
+
import { TranslatedVocabularySelectComponent } from './translated-vocabulary-select/translated-vocabulary-select.component';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
// import { CoreModule } from '../../core/core.module';
|
|
8
10
|
/** @ignore */
|
|
9
11
|
export class VocabularyModule {
|
|
10
12
|
}
|
|
11
13
|
VocabularyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: VocabularyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
-
VocabularyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: VocabularyModule, declarations: [VocabularyComponent], imports: [CommonModule,
|
|
14
|
+
VocabularyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: VocabularyModule, declarations: [VocabularyComponent, TranslatedVocabularySelectComponent], imports: [CommonModule,
|
|
13
15
|
SelectModule,
|
|
14
|
-
DynamicFormModule
|
|
16
|
+
DynamicFormModule,
|
|
17
|
+
FormsModule], exports: [VocabularyComponent,
|
|
18
|
+
TranslatedVocabularySelectComponent] });
|
|
15
19
|
VocabularyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: VocabularyModule, imports: [[
|
|
16
20
|
CommonModule,
|
|
17
21
|
SelectModule,
|
|
18
|
-
DynamicFormModule
|
|
22
|
+
DynamicFormModule,
|
|
23
|
+
FormsModule,
|
|
19
24
|
]] });
|
|
20
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: VocabularyModule, decorators: [{
|
|
21
26
|
type: NgModule,
|
|
22
27
|
args: [{
|
|
23
|
-
declarations: [VocabularyComponent],
|
|
28
|
+
declarations: [VocabularyComponent, TranslatedVocabularySelectComponent],
|
|
24
29
|
imports: [
|
|
25
30
|
CommonModule,
|
|
26
31
|
SelectModule,
|
|
27
|
-
DynamicFormModule
|
|
32
|
+
DynamicFormModule,
|
|
33
|
+
FormsModule,
|
|
28
34
|
],
|
|
29
35
|
exports: [
|
|
30
|
-
VocabularyComponent
|
|
36
|
+
VocabularyComponent,
|
|
37
|
+
TranslatedVocabularySelectComponent
|
|
31
38
|
]
|
|
32
39
|
}]
|
|
33
40
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWJ1bGFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvdm9jYWJ1bGFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFDN0MsdURBQXVEO0FBRXZELGNBQWM7QUFlZCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBYlosbUJBQW1CLEVBQUMsbUNBQW1DLGFBRXBFLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLFdBQVcsYUFJWCxtQkFBbUI7UUFDbkIsbUNBQW1DOzhHQUcxQixnQkFBZ0IsWUFabEI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixXQUFXO1NBRVo7MkZBTVUsZ0JBQWdCO2tCQWQ1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFDLG1DQUFtQyxDQUFDO29CQUN2RSxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsV0FBVztxQkFFWjtvQkFDRCxPQUFPLEVBQUc7d0JBQ1IsbUJBQW1CO3dCQUNuQixtQ0FBbUM7cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVm9jYWJ1bGFyeUNvbXBvbmVudCB9IGZyb20gJy4vdm9jYWJ1bGFyeS92b2NhYnVsYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJy4uL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICcuLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZWRWb2NhYnVsYXJ5U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi90cmFuc2xhdGVkLXZvY2FidWxhcnktc2VsZWN0L3RyYW5zbGF0ZWQtdm9jYWJ1bGFyeS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvcmUubW9kdWxlJztcclxuXHJcbi8qKiBAaWdub3JlICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVm9jYWJ1bGFyeUNvbXBvbmVudCxUcmFuc2xhdGVkVm9jYWJ1bGFyeVNlbGVjdENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU2VsZWN0TW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFxyXG4gIF0sXHJcbiAgZXhwb3J0cyA6IFtcclxuICAgIFZvY2FidWxhcnlDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVkVm9jYWJ1bGFyeVNlbGVjdENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZvY2FidWxhcnlNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
58
58
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1.NuxeoService }]; }, propDecorators: { appHasRole: [{
|
|
59
59
|
type: Input
|
|
60
60
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhhcy1yb2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2RpcmVjdGl2ZS9hcHAtaGFzLXJvbGUvYXBwLWhhcy1yb2xlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFLTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLL0IsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUNVLGdCQUFrQyxFQUNsQyxXQUE2QixFQUM3QixZQUEwQjtRQUYxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVBwQyxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV0QixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBTWQsQ0FBQztJQUVMLFFBQVE7O1FBQ04sSUFBSSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUYsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUM1QixnREFBZ0Q7b0JBQ2hELDREQUE0RDtvQkFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7d0JBQ25CLGlEQUFpRDt3QkFDakQsb0NBQW9DO3dCQUNwQyxzREFBc0Q7d0JBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO3dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUM1RDtpQkFDRjtxQkFBTTtvQkFDTCxzQ0FBc0M7b0JBQ3RDLCtDQUErQztvQkFDL0MsdUNBQXVDO29CQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixpREFBaUQ7Z0JBQ2pELG9DQUFvQztnQkFDcEMsc0RBQXNEO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7Z0hBL0NVLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzRKQUdVLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBIYXNSb2xlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEhhc1JvbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgLyoqIHRoZSByb2xlIHRoZSB1c2VyIG11c3QgaGF2ZSAqL1xyXG4gIEBJbnB1dCgpIGFwcEhhc1JvbGU7XHJcblxyXG4gIHN0b3AkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgaXNWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFwcEhhc1JvbGU/LnJvbGUpIHtcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UuaXNVc2VySW5Sb2xlKHRoaXMuYXBwSGFzUm9sZS5yb2xlLCB0aGlzLmFwcEhhc1JvbGUuY29kZSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhIHx8ICF0aGlzLmFwcEhhc1JvbGUpIHtcclxuICAgICAgICAgIC8vIElmIGl0IGlzIGFscmVhZHkgdmlzaWJsZSAod2hpY2ggY2FuIGhhcHBlbiBpZlxyXG4gICAgICAgICAgLy8gaGlzIHJvbGVzIGNoYW5nZWQpIHdlIGRvIG5vdCBuZWVkIHRvIGFkZCBpdCBhIHNlY29uZCB0aW1lXHJcbiAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIC8vIFdlIHVwZGF0ZSB0aGUgYGlzVmlzaWJsZWAgcHJvcGVydHkgYW5kIGFkZCB0aGVcclxuICAgICAgICAgICAgLy8gdGVtcGxhdGVSZWYgdG8gdGhlIHZpZXcgdXNpbmcgdGhlXHJcbiAgICAgICAgICAgIC8vICdjcmVhdGVFbWJlZGRlZFZpZXcnIG1ldGhvZCBvZiB0aGUgdmlld0NvbnRhaW5lclJlZlxyXG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdGhlIHJvbGUsXHJcbiAgICAgICAgICAvLyB3ZSB1cGRhdGUgdGhlIGBpc1Zpc2libGVgIHByb3BlcnR5IGFuZCBjbGVhclxyXG4gICAgICAgICAgLy8gdGhlIGNvbnRlbnRzIG9mIHRoZSB2aWV3Q29udGFpbmVyUmVmXHJcbiAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgICAvLyBXZSB1cGRhdGUgdGhlIGBpc1Zpc2libGVgIHByb3BlcnR5IGFuZCBhZGQgdGhlXHJcbiAgICAgICAgLy8gdGVtcGxhdGVSZWYgdG8gdGhlIHZpZXcgdXNpbmcgdGhlXHJcbiAgICAgICAgLy8gJ2NyZWF0ZUVtYmVkZGVkVmlldycgbWV0aG9kIG9mIHRoZSB2aWV3Q29udGFpbmVyUmVmXHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoKXtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuIl19
|