ca-components 1.3.2 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-input/ca-input.component.mjs +3 -3
- package/esm2022/lib/components/ca-input/config/ca-input.config.mjs +1 -1
- package/esm2022/lib/components/ca-input/pipes/input-error.pipe.mjs +7 -1
- package/esm2022/lib/components/ca-input/pipes/label-class.pipe.mjs +5 -3
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
- package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +14 -5
- package/esm2022/lib/components/ca-logo-change/ca-logo-change.component.mjs +1 -1
- package/esm2022/lib/components/ca-todo/components/ca-todo-card.component.mjs +1 -1
- package/esm2022/lib/components/ca-todo/models/todo-config.model.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/ca-upload-files.component.mjs +66 -53
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.mjs +68 -51
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-dropzone-action.enum.mjs +8 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-dropzone-type.enum.mjs +8 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-upload-page.enum.mjs +28 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/index.mjs +5 -4
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/template-type.enum.mjs +9 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.mjs +8 -9
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/drop-background-event.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/dropzone-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/dropzone-option-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/dropzone-settings.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/file-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/file-event.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/index.mjs +7 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-icons.constants.mjs +19 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-limit.constants.mjs +41 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/index.mjs +5 -5
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/lottie-animation.constants.mjs +9 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/mime-type.constants.mjs +29 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +167 -132
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/enums/document-action.enum.mjs +10 -10
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/enums/index.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/interfaces/delete-action.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/interfaces/file-action-event.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/interfaces/index.mjs +3 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/pipes/index.mjs +2 -1
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/pipes/mime-type-to-extension.pipe.mjs +19 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/pipes/ng-class.pipe.mjs +4 -3
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/utils/config/index.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/utils/config/upload-file-input.config.mjs +10 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/utils/svg-routes/upload-file.routes.mjs +2 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.mjs +15 -15
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/carousel-action.enum.mjs +6 -6
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/file-carousel-size.enum.mjs +10 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/index.mjs +2 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/interfaces/files-carousel.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/interfaces/index.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/utils/constants/files-by-size.constant.mjs +9 -9
- package/esm2022/lib/components/ca-upload-files/enums/file-action.enum.mjs +7 -0
- package/esm2022/lib/components/ca-upload-files/enums/file-size.enum.mjs +9 -9
- package/esm2022/lib/components/ca-upload-files/enums/file-type.enum.mjs +8 -0
- package/esm2022/lib/components/ca-upload-files/enums/index.mjs +4 -2
- package/esm2022/lib/components/ca-upload-files/enums/review-state.enum.mjs +6 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/document-review-input-event.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/file-option-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/index.mjs +6 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/review-file-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/slider.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/interfaces/upload-files-config.interface.mjs +2 -0
- package/esm2022/lib/components/ca-upload-files/pipes/index.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/pipes/map-file.pipe.mjs +3 -3
- package/esm2022/lib/components/ca-upload-files/pipes/upload-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/services/upload-file.service.mjs +1 -1
- package/esm2022/public-api.mjs +4 -2
- package/fesm2022/ca-components.mjs +642 -489
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-input/config/ca-input.config.d.ts +1 -0
- package/lib/components/ca-input-dropdown/ca-input-dropdown.component.d.ts +3 -1
- package/lib/components/ca-logo-change/ca-logo-change.component.d.ts +2 -2
- package/lib/components/ca-todo/components/ca-todo-card.component.d.ts +5 -5
- package/lib/components/ca-todo/models/todo-config.model.d.ts +1 -1
- package/lib/components/ca-upload-files/ca-upload-files.component.d.ts +12 -12
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.d.ts +10 -11
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/{file-action.enum.d.ts → file-dropzone-action.enum.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/{file-type.enum.d.ts → file-dropzone-type.enum.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/{pages.enum.d.ts → file-upload-page.enum.d.ts} +4 -2
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/index.d.ts +4 -3
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/template-type.enum.d.ts +7 -0
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.d.ts +4 -4
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/{models/drop-background-event.model.d.ts → interfaces/drop-background-event.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/dropzone-config.interface.d.ts +10 -0
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/{models/dropzone-option-config.model.d.ts → interfaces/dropzone-option-config.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/{models/dropzone-config.model.d.ts → interfaces/dropzone-settings.interface.d.ts} +3 -3
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/{models/file-config.model.d.ts → interfaces/file-config.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/file-event.interface.d.ts +8 -0
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/interfaces/index.d.ts +6 -0
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-icons.constants.d.ts +7 -0
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/{file-limit.constant.d.ts → file-limit.constants.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/index.d.ts +4 -4
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/{lottie-constant.d.ts → lottie-animation.constants.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/mime-type.constants.d.ts +5 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.d.ts +33 -27
- package/lib/components/ca-upload-files/components/ca-upload-file/enums/document-action.enum.d.ts +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-file/{models/delete-action.model.d.ts → interfaces/delete-action.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-file/interfaces/file-action-event.interface.d.ts +5 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/interfaces/index.d.ts +2 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/pipes/index.d.ts +1 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/pipes/mime-type-to-extension.pipe.d.ts +7 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/utils/config/index.d.ts +1 -0
- package/lib/components/ca-upload-files/components/ca-upload-file/utils/config/upload-file-input.config.d.ts +4 -0
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.d.ts +6 -6
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/carousel-action.enum.d.ts +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/{carousel-size.enum.d.ts → file-carousel-size.enum.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/index.d.ts +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/{models/carousel-config.model.d.ts → interfaces/files-carousel.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/interfaces/index.d.ts +1 -0
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/utils/constants/files-by-size.constant.d.ts +1 -1
- package/lib/components/ca-upload-files/enums/file-action.enum.d.ts +5 -0
- package/lib/components/ca-upload-files/enums/file-size.enum.d.ts +1 -1
- package/lib/components/ca-upload-files/enums/{file-types.enum.d.ts → file-type.enum.d.ts} +1 -1
- package/lib/components/ca-upload-files/enums/index.d.ts +3 -1
- package/lib/components/ca-upload-files/enums/review-state.enum.d.ts +4 -0
- package/lib/components/ca-upload-files/interfaces/document-review-input-event.interface.d.ts +5 -0
- package/lib/components/ca-upload-files/{models/file-option-config.model.d.ts → interfaces/file-option-config.interface.d.ts} +3 -3
- package/lib/components/ca-upload-files/interfaces/index.d.ts +5 -0
- package/lib/components/ca-upload-files/{models/review-file-config.model.d.ts → interfaces/review-file-config.interface.d.ts} +3 -2
- package/lib/components/ca-upload-files/{models/slider.model.d.ts → interfaces/slider.interface.d.ts} +1 -1
- package/lib/components/ca-upload-files/interfaces/upload-files-config.interface.d.ts +26 -0
- package/lib/components/ca-upload-files/pipes/map-file.pipe.d.ts +3 -3
- package/lib/components/ca-upload-files/services/upload-file.service.d.ts +3 -3
- package/package.json +1 -1
- package/public-api.d.ts +3 -1
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/config/dropzone-config.type.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/config/index.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-action.enum.mjs +0 -8
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/file-type.enum.mjs +0 -8
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/enums/pages.enum.mjs +0 -26
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/drop-background-event.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/dropzone-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/dropzone-option-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-event.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/index.mjs +0 -7
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/upload-file-templates.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-icons.constant.mjs +0 -19
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-limit.constant.mjs +0 -28
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/lottie-constant.mjs +0 -9
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/supported-extension.constant.mjs +0 -11
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/index.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/models/delete-action.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/models/file-action.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/models/index.mjs +0 -3
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/enums/carousel-size.enum.mjs +0 -10
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/models/carousel-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/models/index.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/enums/file-types.enum.mjs +0 -8
- package/esm2022/lib/components/ca-upload-files/models/document-review.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/models/file-option-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/models/index.mjs +0 -6
- package/esm2022/lib/components/ca-upload-files/models/review-file-config.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/models/slider.model.mjs +0 -2
- package/esm2022/lib/components/ca-upload-files/models/upload-files-config.model.mjs +0 -2
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/config/dropzone-config.type.d.ts +0 -8
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/config/index.d.ts +0 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-event.model.d.ts +0 -8
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/models/index.d.ts +0 -6
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/models/upload-file-templates.model.d.ts +0 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/file-icons.constant.d.ts +0 -7
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/constants/supported-extension.constant.d.ts +0 -4
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/utils/index.d.ts +0 -1
- package/lib/components/ca-upload-files/components/ca-upload-file/models/file-action.model.d.ts +0 -5
- package/lib/components/ca-upload-files/components/ca-upload-file/models/index.d.ts +0 -2
- package/lib/components/ca-upload-files/components/ca-upload-files-carousel/models/index.d.ts +0 -1
- package/lib/components/ca-upload-files/models/document-review.model.d.ts +0 -5
- package/lib/components/ca-upload-files/models/index.d.ts +0 -5
- package/lib/components/ca-upload-files/models/upload-files-config.model.d.ts +0 -27
|
@@ -9,8 +9,8 @@ import { CaUploadDropzoneComponent } from './components/ca-upload-dropzone/ca-up
|
|
|
9
9
|
import { CaUploadFileComponent } from './components/ca-upload-file/ca-upload-file.component';
|
|
10
10
|
import { CaUploadFilesCarouselComponent } from './components/ca-upload-files-carousel/ca-upload-files-carousel.component';
|
|
11
11
|
//Enums
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { eFileAction, eFileSize, eFileType } from './enums';
|
|
13
|
+
import { eDocumentAction } from './components/ca-upload-file/enums';
|
|
14
14
|
//Pipe
|
|
15
15
|
import { MapFilePipe, UploadClassPipe } from './pipes';
|
|
16
16
|
//Component
|
|
@@ -22,7 +22,7 @@ import * as i3 from "@angular/common";
|
|
|
22
22
|
export class CaUploadFilesComponent {
|
|
23
23
|
set uploadFilesConfig(value) {
|
|
24
24
|
this._config = { ...value };
|
|
25
|
-
if (this._config.fileOptionsConfig?.type ===
|
|
25
|
+
if (this._config.fileOptionsConfig?.type === eFileType.DETAILS)
|
|
26
26
|
this.modalCarousel?.slideToFile(0);
|
|
27
27
|
}
|
|
28
28
|
get config() {
|
|
@@ -48,89 +48,94 @@ export class CaUploadFilesComponent {
|
|
|
48
48
|
ngAfterViewInit() {
|
|
49
49
|
this.subscribeToUploadedFiles();
|
|
50
50
|
}
|
|
51
|
-
ngOnDestroy() {
|
|
52
|
-
this.destroy$.next();
|
|
53
|
-
this.destroy$.complete();
|
|
54
|
-
}
|
|
55
51
|
/**
|
|
56
52
|
*
|
|
57
53
|
* @param data - returned data from file action (one or multiple)
|
|
58
54
|
*/
|
|
59
55
|
onFileAction(data) {
|
|
60
|
-
const { files, onlyOneTagFile, size } = this._config;
|
|
61
56
|
switch (data.action) {
|
|
62
|
-
case
|
|
57
|
+
case eDocumentAction.TAG:
|
|
63
58
|
this.onFileEvent.emit({
|
|
64
|
-
files: !onlyOneTagFile
|
|
59
|
+
files: !this._config.onlyOneTagFile
|
|
60
|
+
? this._config.files
|
|
61
|
+
: data.file,
|
|
65
62
|
action: data.action,
|
|
66
63
|
});
|
|
67
64
|
break;
|
|
68
|
-
case
|
|
65
|
+
case eDocumentAction.DELETE:
|
|
69
66
|
let isLastDeleted = false;
|
|
70
|
-
files.forEach((item, index) => {
|
|
67
|
+
this._config.files.forEach((item, index) => {
|
|
71
68
|
if (item.fileName === data.file.fileName &&
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
[
|
|
70
|
+
this._config.files.length - 1,
|
|
71
|
+
this._config.files.length - 2,
|
|
72
|
+
].includes(index)) {
|
|
74
73
|
isLastDeleted = true;
|
|
75
74
|
}
|
|
76
75
|
});
|
|
77
|
-
this._config.files = files.filter((item) => item.fileName !== data.file.fileName);
|
|
76
|
+
this._config.files = this._config.files.filter((item) => item.fileName !== data.file.fileName);
|
|
78
77
|
this.onFileEvent.emit({
|
|
79
|
-
files: files,
|
|
78
|
+
files: this._config.files,
|
|
80
79
|
action: data.action,
|
|
81
80
|
deleteId: data.file['fileId'] || undefined,
|
|
82
81
|
});
|
|
83
|
-
this.currentSlide = files.length - 1;
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
this.currentSlide = this._config.files.length - 1;
|
|
83
|
+
const sizeLimits = {
|
|
84
|
+
[eFileSize.SMALL]: 0,
|
|
85
|
+
[eFileSize.MEDIUM]: 0,
|
|
86
|
+
[eFileSize.LARGE]: 0,
|
|
87
|
+
[eFileSize.MODAL_LARGE]: 4,
|
|
88
|
+
[eFileSize.MODAL_MEDIUM]: 3,
|
|
89
|
+
};
|
|
90
|
+
if (this._config.files.length < sizeLimits[this._config.size]) {
|
|
86
91
|
this.modalCarousel.currentSlide = 0;
|
|
87
92
|
this.modalCarousel.translateXMultipleSlides = 0;
|
|
88
93
|
this.modalCarousel.multipleCurrentSlide = 0;
|
|
89
94
|
}
|
|
90
|
-
if (!files.length) {
|
|
95
|
+
if (!this._config.files.length) {
|
|
91
96
|
this.currentSlide = 0;
|
|
92
97
|
}
|
|
93
98
|
if (isLastDeleted && this.modalCarousel) {
|
|
94
99
|
const carouselSize = this.modalCarousel.carouselConfig
|
|
95
100
|
.customClass;
|
|
96
|
-
const slideTo = carouselSize ===
|
|
101
|
+
const slideTo = carouselSize === eFileSize.LARGE
|
|
97
102
|
? 3
|
|
98
|
-
: carouselSize ===
|
|
103
|
+
: carouselSize === eFileSize.MEDIUM
|
|
99
104
|
? 2
|
|
100
105
|
: 1;
|
|
101
|
-
const allowSlide = (carouselSize ===
|
|
102
|
-
files.length > 2) ||
|
|
103
|
-
(carouselSize ===
|
|
104
|
-
files.length > 1) ||
|
|
105
|
-
(carouselSize ===
|
|
106
|
-
files.length > 0);
|
|
106
|
+
const allowSlide = (carouselSize === eFileSize.LARGE &&
|
|
107
|
+
this._config.files.length > 2) ||
|
|
108
|
+
(carouselSize === eFileSize.MEDIUM &&
|
|
109
|
+
this._config.files.length > 1) ||
|
|
110
|
+
(carouselSize === eFileSize.SMALL &&
|
|
111
|
+
this._config.files.length > 0);
|
|
107
112
|
if (allowSlide) {
|
|
108
|
-
this.modalCarousel.slideToFile(files.length - slideTo);
|
|
113
|
+
this.modalCarousel.slideToFile(this._config.files.length - slideTo);
|
|
109
114
|
}
|
|
110
115
|
}
|
|
111
116
|
break;
|
|
112
|
-
case
|
|
117
|
+
case eDocumentAction.MARK_INCORRECT:
|
|
113
118
|
let incorrectIndx = 0;
|
|
114
|
-
files.forEach((item, index) => {
|
|
119
|
+
this._config.files.forEach((item, index) => {
|
|
115
120
|
if (item.fileName === data.file.fileName) {
|
|
116
121
|
incorrectIndx = index;
|
|
117
122
|
}
|
|
118
123
|
});
|
|
119
124
|
this.onFileEvent.emit({
|
|
120
|
-
files: files,
|
|
125
|
+
files: this._config.files,
|
|
121
126
|
action: data.action,
|
|
122
127
|
index: incorrectIndx,
|
|
123
128
|
});
|
|
124
129
|
break;
|
|
125
|
-
case
|
|
130
|
+
case eDocumentAction.MARK_CORRECT:
|
|
126
131
|
let correctIndx = 0;
|
|
127
|
-
files.forEach((item, index) => {
|
|
132
|
+
this._config.files.forEach((item, index) => {
|
|
128
133
|
if (item.fileName === data.file.fileName) {
|
|
129
134
|
correctIndx = index;
|
|
130
135
|
}
|
|
131
136
|
});
|
|
132
137
|
this.onFileEvent.emit({
|
|
133
|
-
files: files,
|
|
138
|
+
files: this._config.files,
|
|
134
139
|
action: data.action,
|
|
135
140
|
index: correctIndx,
|
|
136
141
|
});
|
|
@@ -140,7 +145,7 @@ export class CaUploadFilesComponent {
|
|
|
140
145
|
}
|
|
141
146
|
}
|
|
142
147
|
onUploadFiles(data) {
|
|
143
|
-
if (data.action ===
|
|
148
|
+
if (data.action === eFileAction.ADD &&
|
|
144
149
|
this._config.hasCrop &&
|
|
145
150
|
this._config.files.length) {
|
|
146
151
|
const uploadedFiles = [...data.files];
|
|
@@ -156,13 +161,14 @@ export class CaUploadFilesComponent {
|
|
|
156
161
|
console.warn(`File ${newFile.fileName} to replace not found`);
|
|
157
162
|
}
|
|
158
163
|
});
|
|
159
|
-
this.onFileEvent.emit({ files: [], action:
|
|
164
|
+
this.onFileEvent.emit({ files: [], action: eFileAction.ADD });
|
|
160
165
|
}
|
|
161
|
-
if (data.action ===
|
|
166
|
+
if (data.action === eFileAction.ADD) {
|
|
162
167
|
const uploadedFiles = [...data.files];
|
|
163
168
|
const uniqueFiles = uploadedFiles.filter((file) => !this._config.files.some((existingFile) => existingFile.fileName === file.fileName));
|
|
164
|
-
|
|
165
|
-
|
|
169
|
+
this._config.files = [
|
|
170
|
+
...new Set([...this._config.files, ...uniqueFiles]),
|
|
171
|
+
];
|
|
166
172
|
uniqueFiles.forEach((file) => {
|
|
167
173
|
this.fileAdded.emit(file.realFile);
|
|
168
174
|
});
|
|
@@ -171,29 +177,29 @@ export class CaUploadFilesComponent {
|
|
|
171
177
|
else
|
|
172
178
|
this.onFileEvent.emit({
|
|
173
179
|
files: this._config.files,
|
|
174
|
-
action:
|
|
180
|
+
action: eFileAction.ADD,
|
|
175
181
|
});
|
|
176
182
|
// carousel
|
|
177
183
|
if (this.modalCarousel) {
|
|
178
184
|
const carouselSize = this.modalCarousel.carouselConfig
|
|
179
185
|
.customClass;
|
|
180
|
-
const slideTo = carouselSize ===
|
|
186
|
+
const slideTo = carouselSize === eFileSize.LARGE
|
|
181
187
|
? 3
|
|
182
|
-
: carouselSize ===
|
|
188
|
+
: carouselSize === eFileSize.MEDIUM
|
|
183
189
|
? 2
|
|
184
190
|
: 1;
|
|
185
|
-
const allowSlide = (carouselSize ===
|
|
191
|
+
const allowSlide = (carouselSize === eFileSize.LARGE &&
|
|
186
192
|
this._config.files.length > 2) ||
|
|
187
|
-
(carouselSize ===
|
|
193
|
+
(carouselSize === eFileSize.MEDIUM &&
|
|
188
194
|
this._config.files.length > 1) ||
|
|
189
|
-
(carouselSize ===
|
|
195
|
+
(carouselSize === eFileSize.SMALL &&
|
|
190
196
|
this._config.files.length > 0);
|
|
191
197
|
if (allowSlide) {
|
|
192
198
|
this.modalCarousel.slideToFile(this._config.files.length - slideTo);
|
|
193
199
|
}
|
|
194
200
|
}
|
|
195
201
|
}
|
|
196
|
-
else if (data.action ===
|
|
202
|
+
else if (data.action === eFileAction.REPLACE) {
|
|
197
203
|
const uploadedFiles = [...data.files];
|
|
198
204
|
if (this._config.hasCrop)
|
|
199
205
|
this.isDropzoneShown = true;
|
|
@@ -209,9 +215,12 @@ export class CaUploadFilesComponent {
|
|
|
209
215
|
console.warn(`File ${newFile.fileName} to replace not found`);
|
|
210
216
|
}
|
|
211
217
|
});
|
|
212
|
-
this.onFileEvent.emit({
|
|
218
|
+
this.onFileEvent.emit({
|
|
219
|
+
files: this._config.files,
|
|
220
|
+
action: eFileAction.ADD,
|
|
221
|
+
});
|
|
213
222
|
}
|
|
214
|
-
else if (data.action ===
|
|
223
|
+
else if (data.action === eFileAction.DELETE) {
|
|
215
224
|
if (this._config.hasCrop)
|
|
216
225
|
this.isDropzoneShown = true;
|
|
217
226
|
this._config.files.splice(0, this._config.files.length);
|
|
@@ -271,14 +280,18 @@ export class CaUploadFilesComponent {
|
|
|
271
280
|
}
|
|
272
281
|
});
|
|
273
282
|
}
|
|
283
|
+
ngOnDestroy() {
|
|
284
|
+
this.destroy$.next();
|
|
285
|
+
this.destroy$.complete();
|
|
286
|
+
}
|
|
274
287
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaUploadFilesComponent, deps: [{ token: i1.CaUploadFileService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
275
288
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaUploadFilesComponent, isStandalone: true, selector: "app-ca-upload-files", inputs: { uploadFilesConfig: "uploadFilesConfig" }, outputs: { documentReviewInputEvent: "documentReviewInputEvent", onFileEvent: "onFileEvent", closeDropzone: "closeDropzone", fileAdded: "fileAdded" }, providers: [
|
|
276
289
|
provideLottieOptions({
|
|
277
290
|
player: () => import('lottie-web'),
|
|
278
291
|
}),
|
|
279
|
-
], viewQueries: [{ propertyName: "modalCarousel", first: true, predicate: CaUploadFilesCarouselComponent, descendants: true }, { propertyName: "uploadedFiles", predicate: CaUploadFileComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"ta-upload d-flex align-items-center {{\n config.fileOptionsConfig.customClassName\n }}\"\n [ngClass]=\"\n config.files?.length\n | uploadClass\n : config.carouselConfig.size\n : config.review.isReview\n : config.slider.dontUseSlider\n \"\n>\n <!-- Carousel Files -->\n @if (\n config.files?.length && !config.slider.dontUseSlider && !config.hasCrop\n ) {\n <app-ca-upload-files-carousel\n [config]=\"carouselFileConfig\"\n (activeSlide)=\"currentSlide = $event\"\n [slideWidth]=\"config.slideWidth\"\n (hoverArrowEmit)=\"hoverArrow($event)\"\n >\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n #uploadedFiles\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileHover)=\"fileHover($event)\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </app-ca-upload-files-carousel>\n }\n\n @if (config.slider.dontUseSlider && !config.hasCrop) {\n <div class=\"documents_holder\">\n <app-ca-upload-dropzone\n [config]=\"config.dropzoneConf\"\n (onFileEvent)=\"onUploadFiles($event)\"\n (closeDropzone)=\"dropZoneClose()\"\n ></app-ca-upload-dropzone>\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Image Crop Template -->\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (config.hasCrop && config.files.length) {\n @for (file of config.files; track $index) {\n <app-ca-logo-change\n [hasBlobUrl]=\"config.hasBlobUrl\"\n [imageToCrop]=\"file?.url\"\n [isRoundCropper]=\"config.isRoundCrop\"\n [isDropzoneShown]=\"isDropzoneShown\"\n [initialCropperPosition]=\"config.initialCropperPosition\"\n [containWithinAspectRatio]=\"config.containWithinAspectRatio\"\n [aspectRatio]=\"config.aspectRatio\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n (sendImageData)=\"onUploadFiles($event)\"\n ></app-ca-logo-change>\n }\n }\n </div>\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"config.hasCrop && config.files.length && isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (isDropzoneShown) {\n <app-ca-upload-dropzone\n [config]=\"config.dropzoneConf\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n [isDropzoneShownInCrop]=\"\n config.hasCrop && !!config.files.length && isDropzoneShown\n \"\n (onFileEvent)=\"onUploadFiles($event)\"\n ></app-ca-upload-dropzone>\n }\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.cursor-pointer{cursor:pointer}.ta-card-body{overflow:visible!important}.split-crop-holder.split{width:50%}.split-crop-holder.hidden-drop{display:none}.ta-upload{gap:8px}.ta-upload .ta-upload-dropzone{height:186px;width:calc(100% - 10px);margin:0 6px}.ta-upload .documents_holder{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;transition:all .3s ease-in-out}.ta-upload .documents_holder .ta-upload-carousel-container{transition:all .3s ease-in-out}.ta-upload.documents{display:block!important}.ta-upload.documents .ta-upload-dropzone{height:332px;width:100%;margin:0}.ta-upload-small{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:8px;transition:all .3s ease-in-out}.ta-upload-medium-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-medium-files{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-twofiles{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-threefiles{grid-template-columns:524px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-review-mode{padding:8px 6px 6px 0;grid-template-columns:1fr;align-items:center;justify-content:center}.ta-upload.driver-details-pdf{grid-template-columns:1fr;grid-template-rows:312px}.ta-upload.company-documents{grid-template-columns:1fr;grid-template-rows:332px}.ta-upload.driver-card-pdf{grid-template-columns:1fr;grid-template-rows:416px}.ta-upload.company-details-pdf{grid-template-columns:1fr;grid-template-rows:378px}.ta-upload.landscape-details-view{grid-template-columns:1fr;grid-template-rows:200px}.ta-upload.todo-details,.ta-upload.table-details{grid-template-columns:100% 1fr;grid-template-rows:200px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "ngmodule", type: NgbPopoverModule }, { kind: "component", type:
|
|
292
|
+
], viewQueries: [{ propertyName: "modalCarousel", first: true, predicate: CaUploadFilesCarouselComponent, descendants: true }, { propertyName: "uploadedFiles", predicate: CaUploadFileComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"ta-upload d-flex align-items-center {{\n config.fileOptionsConfig.customClassName\n }}\"\n [ngClass]=\"\n config.files?.length\n | uploadClass\n : config.carouselConfig.size\n : config.review.isReview\n : config.slider.dontUseSlider\n \"\n>\n <!-- Carousel Files -->\n @if (\n config.files?.length && !config.slider.dontUseSlider && !config.hasCrop\n ) {\n <app-ca-upload-files-carousel\n [config]=\"carouselFileConfig\"\n (activeSlide)=\"currentSlide = $event\"\n [slideWidth]=\"config.slideWidth\"\n (hoverArrowEmit)=\"hoverArrow($event)\"\n >\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n #uploadedFiles\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileHover)=\"fileHover($event)\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </app-ca-upload-files-carousel>\n }\n\n @if (config.slider.dontUseSlider && !config.hasCrop) {\n <div class=\"documents_holder\">\n <app-ca-upload-dropzone\n [dropZoneConfig]=\"config.dropZoneConfig\"\n [files]=\"config.files\"\n (onFileEvent)=\"onUploadFiles($event)\"\n (closeDropzone)=\"dropZoneClose()\"\n ></app-ca-upload-dropzone>\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Image Crop Template -->\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (config.hasCrop && config.files.length) {\n @for (file of config.files; track $index) {\n <app-ca-logo-change\n [hasBlobUrl]=\"config.hasBlobUrl\"\n [imageToCrop]=\"file?.url\"\n [isRoundCropper]=\"config.isRoundCrop\"\n [isDropzoneShown]=\"isDropzoneShown\"\n [initialCropperPosition]=\"config.initialCropperPosition\"\n [containWithinAspectRatio]=\"config.containWithinAspectRatio\"\n [aspectRatio]=\"config.aspectRatio\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n (sendImageData)=\"onUploadFiles($event)\"\n ></app-ca-logo-change>\n }\n }\n </div>\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"config.hasCrop && config.files.length && isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (isDropzoneShown) {\n <app-ca-upload-dropzone\n [dropZoneConfig]=\"config.dropZoneConfig\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n [isDropzoneShownInCrop]=\"\n config.hasCrop && !!config.files.length && isDropzoneShown\n \"\n [files]=\"config.files\"\n (onFileEvent)=\"onUploadFiles($event)\"\n ></app-ca-upload-dropzone>\n }\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.cursor-pointer{cursor:pointer}.ta-card-body{overflow:visible!important}.split-crop-holder.split{width:50%}.split-crop-holder.hidden-drop{display:none}.ta-upload{gap:8px}.ta-upload .ta-upload-dropzone{height:186px;width:calc(100% - 10px);margin:0 6px}.ta-upload .documents_holder{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;transition:all .3s ease-in-out}.ta-upload .documents_holder .ta-upload-carousel-container{transition:all .3s ease-in-out}.ta-upload.documents{display:block!important}.ta-upload.documents .ta-upload-dropzone{height:332px;width:100%;margin:0}.ta-upload-small{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:8px;transition:all .3s ease-in-out}.ta-upload-medium-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-medium-files{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-twofiles{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-threefiles{grid-template-columns:524px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-review-mode{padding:8px 6px 6px 0;grid-template-columns:1fr;align-items:center;justify-content:center}.ta-upload.driver-details-pdf{grid-template-columns:1fr;grid-template-rows:312px}.ta-upload.company-documents{grid-template-columns:1fr;grid-template-rows:332px}.ta-upload.driver-card-pdf{grid-template-columns:1fr;grid-template-rows:416px}.ta-upload.company-details-pdf{grid-template-columns:1fr;grid-template-rows:378px}.ta-upload.landscape-details-view{grid-template-columns:1fr;grid-template-rows:200px}.ta-upload.todo-details,.ta-upload.table-details{grid-template-columns:100% 1fr;grid-template-rows:200px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "ngmodule", type: NgbPopoverModule }, { kind: "component", type:
|
|
280
293
|
//Component
|
|
281
|
-
CaUploadDropzoneComponent, selector: "app-ca-upload-dropzone", inputs: ["
|
|
294
|
+
CaUploadDropzoneComponent, selector: "app-ca-upload-dropzone", inputs: ["dropZoneConfig", "isDropzoneShownInCrop", "customWidth", "files"], outputs: ["onFileEvent", "onDropBackground", "closeDropzone"] }, { kind: "component", type: CaUploadFileComponent, selector: "app-ca-upload-file", inputs: ["config", "reviewFileConfig"], outputs: ["fileAction", "deleteAction", "documentReviewInputEvent", "landscapeCheck", "fileHover"] }, { kind: "component", type: CaUploadFilesCarouselComponent, selector: "app-ca-upload-files-carousel", inputs: ["slideWidth", "config"], outputs: ["activeSlide", "hoverArrowEmit"] }, { kind: "component", type: CaLogoChangeComponent, selector: "app-ca-logo-change", inputs: ["customClass", "imageToCrop", "isRoundCropper", "imageChangedEvent", "isDropzoneShown", "hasBlobUrl", "initialCropperPosition", "containWithinAspectRatio", "aspectRatio", "customWidth"], outputs: ["sendImageData"] }, { kind: "pipe", type:
|
|
282
295
|
//Pipe
|
|
283
296
|
UploadClassPipe, name: "uploadClass" }, { kind: "pipe", type: MapFilePipe, name: "mapFile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
284
297
|
}
|
|
@@ -300,7 +313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
300
313
|
provideLottieOptions({
|
|
301
314
|
player: () => import('lottie-web'),
|
|
302
315
|
}),
|
|
303
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ta-upload d-flex align-items-center {{\n config.fileOptionsConfig.customClassName\n }}\"\n [ngClass]=\"\n config.files?.length\n | uploadClass\n : config.carouselConfig.size\n : config.review.isReview\n : config.slider.dontUseSlider\n \"\n>\n <!-- Carousel Files -->\n @if (\n config.files?.length && !config.slider.dontUseSlider && !config.hasCrop\n ) {\n <app-ca-upload-files-carousel\n [config]=\"carouselFileConfig\"\n (activeSlide)=\"currentSlide = $event\"\n [slideWidth]=\"config.slideWidth\"\n (hoverArrowEmit)=\"hoverArrow($event)\"\n >\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n #uploadedFiles\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileHover)=\"fileHover($event)\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </app-ca-upload-files-carousel>\n }\n\n @if (config.slider.dontUseSlider && !config.hasCrop) {\n <div class=\"documents_holder\">\n <app-ca-upload-dropzone\n [config]=\"config.dropzoneConf\"\n (onFileEvent)=\"onUploadFiles($event)\"\n (closeDropzone)=\"dropZoneClose()\"\n ></app-ca-upload-dropzone>\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Image Crop Template -->\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (config.hasCrop && config.files.length) {\n @for (file of config.files; track $index) {\n <app-ca-logo-change\n [hasBlobUrl]=\"config.hasBlobUrl\"\n [imageToCrop]=\"file?.url\"\n [isRoundCropper]=\"config.isRoundCrop\"\n [isDropzoneShown]=\"isDropzoneShown\"\n [initialCropperPosition]=\"config.initialCropperPosition\"\n [containWithinAspectRatio]=\"config.containWithinAspectRatio\"\n [aspectRatio]=\"config.aspectRatio\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n (sendImageData)=\"onUploadFiles($event)\"\n ></app-ca-logo-change>\n }\n }\n </div>\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"config.hasCrop && config.files.length && isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (isDropzoneShown) {\n <app-ca-upload-dropzone\n [config]=\"config.dropzoneConf\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n [isDropzoneShownInCrop]=\"\n config.hasCrop && !!config.files.length && isDropzoneShown\n \"\n (onFileEvent)=\"onUploadFiles($event)\"\n ></app-ca-upload-dropzone>\n }\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.cursor-pointer{cursor:pointer}.ta-card-body{overflow:visible!important}.split-crop-holder.split{width:50%}.split-crop-holder.hidden-drop{display:none}.ta-upload{gap:8px}.ta-upload .ta-upload-dropzone{height:186px;width:calc(100% - 10px);margin:0 6px}.ta-upload .documents_holder{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;transition:all .3s ease-in-out}.ta-upload .documents_holder .ta-upload-carousel-container{transition:all .3s ease-in-out}.ta-upload.documents{display:block!important}.ta-upload.documents .ta-upload-dropzone{height:332px;width:100%;margin:0}.ta-upload-small{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:8px;transition:all .3s ease-in-out}.ta-upload-medium-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-medium-files{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-twofiles{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-threefiles{grid-template-columns:524px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-review-mode{padding:8px 6px 6px 0;grid-template-columns:1fr;align-items:center;justify-content:center}.ta-upload.driver-details-pdf{grid-template-columns:1fr;grid-template-rows:312px}.ta-upload.company-documents{grid-template-columns:1fr;grid-template-rows:332px}.ta-upload.driver-card-pdf{grid-template-columns:1fr;grid-template-rows:416px}.ta-upload.company-details-pdf{grid-template-columns:1fr;grid-template-rows:378px}.ta-upload.landscape-details-view{grid-template-columns:1fr;grid-template-rows:200px}.ta-upload.todo-details,.ta-upload.table-details{grid-template-columns:100% 1fr;grid-template-rows:200px}\n"] }]
|
|
316
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ta-upload d-flex align-items-center {{\n config.fileOptionsConfig.customClassName\n }}\"\n [ngClass]=\"\n config.files?.length\n | uploadClass\n : config.carouselConfig.size\n : config.review.isReview\n : config.slider.dontUseSlider\n \"\n>\n <!-- Carousel Files -->\n @if (\n config.files?.length && !config.slider.dontUseSlider && !config.hasCrop\n ) {\n <app-ca-upload-files-carousel\n [config]=\"carouselFileConfig\"\n (activeSlide)=\"currentSlide = $event\"\n [slideWidth]=\"config.slideWidth\"\n (hoverArrowEmit)=\"hoverArrow($event)\"\n >\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n #uploadedFiles\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileHover)=\"fileHover($event)\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </app-ca-upload-files-carousel>\n }\n\n @if (config.slider.dontUseSlider && !config.hasCrop) {\n <div class=\"documents_holder\">\n <app-ca-upload-dropzone\n [dropZoneConfig]=\"config.dropZoneConfig\"\n [files]=\"config.files\"\n (onFileEvent)=\"onUploadFiles($event)\"\n (closeDropzone)=\"dropZoneClose()\"\n ></app-ca-upload-dropzone>\n @for (file of config.files; track $index) {\n <div class=\"ta-upload-carousel-container\">\n <div>\n <app-ca-upload-file\n [config]=\"config.fileOptionsConfig | mapFile: file\"\n [reviewFileConfig]=\"reviewFileConfig\"\n (fileAction)=\"onFileAction($event)\"\n (landscapeCheck)=\"onLandscapeCheck($event)\"\n (documentReviewInputEvent)=\"\n documentReviewInputEventMethod($event)\n \"\n ></app-ca-upload-file>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Image Crop Template -->\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (config.hasCrop && config.files.length) {\n @for (file of config.files; track $index) {\n <app-ca-logo-change\n [hasBlobUrl]=\"config.hasBlobUrl\"\n [imageToCrop]=\"file?.url\"\n [isRoundCropper]=\"config.isRoundCrop\"\n [isDropzoneShown]=\"isDropzoneShown\"\n [initialCropperPosition]=\"config.initialCropperPosition\"\n [containWithinAspectRatio]=\"config.containWithinAspectRatio\"\n [aspectRatio]=\"config.aspectRatio\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n (sendImageData)=\"onUploadFiles($event)\"\n ></app-ca-logo-change>\n }\n }\n </div>\n\n <div\n class=\"split-crop-holder\"\n [class.split]=\"config.hasCrop && config.files.length && isDropzoneShown\"\n [ngClass]=\"{ 'hidden-drop': !config.isVisibleCropAndDrop }\"\n >\n @if (isDropzoneShown) {\n <app-ca-upload-dropzone\n [dropZoneConfig]=\"config.dropZoneConfig\"\n [customWidth]=\"config.dropzoneCustomWidth\"\n [isDropzoneShownInCrop]=\"\n config.hasCrop && !!config.files.length && isDropzoneShown\n \"\n [files]=\"config.files\"\n (onFileEvent)=\"onUploadFiles($event)\"\n ></app-ca-upload-dropzone>\n }\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.cursor-pointer{cursor:pointer}.ta-card-body{overflow:visible!important}.split-crop-holder.split{width:50%}.split-crop-holder.hidden-drop{display:none}.ta-upload{gap:8px}.ta-upload .ta-upload-dropzone{height:186px;width:calc(100% - 10px);margin:0 6px}.ta-upload .documents_holder{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;transition:all .3s ease-in-out}.ta-upload .documents_holder .ta-upload-carousel-container{transition:all .3s ease-in-out}.ta-upload.documents{display:block!important}.ta-upload.documents .ta-upload-dropzone{height:332px;width:100%;margin:0}.ta-upload-small{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:8px;transition:all .3s ease-in-out}.ta-upload-medium-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-medium-files{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-file{grid-template-columns:164px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-twofiles{grid-template-columns:344px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-large-threefiles{grid-template-columns:524px 1fr;grid-template-rows:194px;-moz-column-gap:6px;column-gap:6px;transition:all .3s ease-in-out}.ta-upload-review-mode{padding:8px 6px 6px 0;grid-template-columns:1fr;align-items:center;justify-content:center}.ta-upload.driver-details-pdf{grid-template-columns:1fr;grid-template-rows:312px}.ta-upload.company-documents{grid-template-columns:1fr;grid-template-rows:332px}.ta-upload.driver-card-pdf{grid-template-columns:1fr;grid-template-rows:416px}.ta-upload.company-details-pdf{grid-template-columns:1fr;grid-template-rows:378px}.ta-upload.landscape-details-view{grid-template-columns:1fr;grid-template-rows:200px}.ta-upload.todo-details,.ta-upload.table-details{grid-template-columns:100% 1fr;grid-template-rows:200px}\n"] }]
|
|
304
317
|
}], ctorParameters: () => [{ type: i1.CaUploadFileService }, { type: i2.HttpClient }], propDecorators: { modalCarousel: [{
|
|
305
318
|
type: ViewChild,
|
|
306
319
|
args: [CaUploadFilesCarouselComponent]
|
|
@@ -318,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
318
331
|
}], fileAdded: [{
|
|
319
332
|
type: Output
|
|
320
333
|
}] } });
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdXBsb2FkLWZpbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy9jYS11cGxvYWQtZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdXBsb2FkLWZpbGVzL2NhLXVwbG9hZC1maWxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsWUFBWTtBQUNaLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBVzFILE9BQU87QUFDUCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFL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S0FBSztnQkFNSSx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBwcm92aWRlTG90dGllT3B0aW9ucyB9IGZyb20gJ25neC1sb3R0aWUnO1xuaW1wb3J0IHsgTmdiUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuLy9Db21wb25lbnRzXG5pbXBvcnQgeyBDYVVwbG9hZERyb3B6b25lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVwbG9hZC1kcm9wem9uZS9jYS11cGxvYWQtZHJvcHpvbmUuY29tcG9uZW50JztcbmltcG9ydCB7IENhVXBsb2FkRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS11cGxvYWQtZmlsZS9jYS11cGxvYWQtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FVcGxvYWRGaWxlc0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy1jYXJvdXNlbC9jYS11cGxvYWQtZmlsZXMtY2Fyb3VzZWwuY29tcG9uZW50JztcblxuLy9Nb2RlbHNcbmltcG9ydCB7XG4gICAgRG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50LFxuICAgIElVcGxvYWRGaWxlc0NvbmZpZyxcbiAgICBSZXZpZXdGaWxlQ29uZmlnLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlQ29uZmlnLCBGaWxlRXZlbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdXBsb2FkLWRyb3B6b25lL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlc0Nhcm91c2VsQ29uZmlnIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy1jYXJvdXNlbC9tb2RlbHMnO1xuXG4vL0VudW1zXG5pbXBvcnQgeyBGaWxlc1NpemVFbnVtLCBGaWxlVHlwZXNFbnVtIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBEb2N1bWVudEFjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9jYS11cGxvYWQtZmlsZS9lbnVtcyc7XG5cbi8vU2VydmljZXNcbmltcG9ydCB7IENhVXBsb2FkRmlsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuLy9QaXBlXG5pbXBvcnQgeyBNYXBGaWxlUGlwZSwgVXBsb2FkQ2xhc3NQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vQ29tcG9uZW50XG5pbXBvcnQgeyBDYUxvZ29DaGFuZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jYS1sb2dvLWNoYW5nZS9jYS1sb2dvLWNoYW5nZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXBwLWNhLXVwbG9hZC1maWxlcycsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ2JQb3BvdmVyTW9kdWxlLFxuICAgICAgICAvL0NvbXBvbmVudFxuICAgICAgICBDYVVwbG9hZERyb3B6b25lQ29tcG9uZW50LFxuICAgICAgICBDYVVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgICAgIENhVXBsb2FkRmlsZXNDYXJvdXNlbENvbXBvbmVudCxcbiAgICAgICAgQ2FMb2dvQ2hhbmdlQ29tcG9uZW50LFxuICAgICAgICAvL1BpcGVcbiAgICAgICAgVXBsb2FkQ2xhc3NQaXBlLFxuICAgICAgICBNYXBGaWxlUGlwZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlTG90dGllT3B0aW9ucyh7XG4gICAgICAgICAgICBwbGF5ZXI6ICgpID0+IGltcG9ydCgnbG90dGllLXdlYicpLFxuICAgICAgICB9KSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS11cGxvYWQtZmlsZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLXVwbG9hZC1maWxlcy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYVVwbG9hZEZpbGVzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChDYVVwbG9hZEZpbGVzQ2Fyb3VzZWxDb21wb25lbnQpXG4gICAgcHVibGljIG1vZGFsQ2Fyb3VzZWwhOiBDYVVwbG9hZEZpbGVzQ2Fyb3VzZWxDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkcmVuKENhVXBsb2FkRmlsZUNvbXBvbmVudClcbiAgICB1cGxvYWRlZEZpbGVzITogUXVlcnlMaXN0PENhVXBsb2FkRmlsZUNvbXBvbmVudD47XG5cbiAgICBASW5wdXQoKSBzZXQgdXBsb2FkRmlsZXNDb25maWcodmFsdWU6IElVcGxvYWRGaWxlc0NvbmZpZykge1xuICAgICAgICB0aGlzLl9jb25maWcgPSB7IC4uLnZhbHVlIH07XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5maWxlT3B0aW9uc0NvbmZpZz8udHlwZSA9PT0gRmlsZVR5cGVzRW51bS5ERVRBSUxTKVxuICAgICAgICAgICAgdGhpcy5tb2RhbENhcm91c2VsPy5zbGlkZVRvRmlsZSgwKTtcbiAgICB9XG4gICAgQE91dHB1dCgpIGRvY3VtZW50UmV2aWV3SW5wdXRFdmVudCA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBvbkZpbGVFdmVudDogRXZlbnRFbWl0dGVyPEZpbGVFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZpbGVFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgY2xvc2VEcm9wem9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XG5cbiAgICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xuXG4gICAgcHVibGljIGN1cnJlbnRTbGlkZTogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgaXNEcm9wem9uZVNob3duOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX2NvbmZpZyE6IElVcGxvYWRGaWxlc0NvbmZpZztcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgY29uZmlnKCk6IElVcGxvYWRGaWxlc0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjYXJvdXNlbEZpbGVDb25maWcoKTogRmlsZXNDYXJvdXNlbENvbmZpZyB7XG4gICAgICAgIHJldHVybiB7IC4uLnRoaXMuX2NvbmZpZy5jYXJvdXNlbENvbmZpZyB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmV2aWV3RmlsZUNvbmZpZygpOiBSZXZpZXdGaWxlQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5yZXZpZXc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdXBsb2FkRmlsZVNlcnZpY2U6IENhVXBsb2FkRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1VwbG9hZGVkRmlsZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhIC0gcmV0dXJuZWQgZGF0YSBmcm9tIGZpbGUgYWN0aW9uIChvbmUgb3IgbXVsdGlwbGUpXG4gICAgICovXG5cbiAgICBwdWJsaWMgb25GaWxlQWN0aW9uKGRhdGE6IHsgZmlsZTogRmlsZUNvbmZpZzsgYWN0aW9uOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbGVzLCBvbmx5T25lVGFnRmlsZSwgc2l6ZSB9ID0gdGhpcy5fY29uZmlnO1xuICAgICAgICBzd2l0Y2ggKGRhdGEuYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIERvY3VtZW50QWN0aW9uLlRBRzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRmlsZUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBmaWxlczogIW9ubHlPbmVUYWdGaWxlID8gZmlsZXMgOiBkYXRhLmZpbGUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZGF0YS5hY3Rpb24sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnRBY3Rpb24uREVMRVRFOlxuICAgICAgICAgICAgICAgIGxldCBpc0xhc3REZWxldGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZmlsZXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5maWxlTmFtZSA9PT0gZGF0YS5maWxlLmZpbGVOYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5kZXggPT09IGZpbGVzLmxlbmd0aCAtIDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9PT0gZmlsZXMubGVuZ3RoIC0gMilcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3REZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzID0gZmlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5maWxlTmFtZSAhPT0gZGF0YS5maWxlLmZpbGVOYW1lXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiBmaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkYXRhLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlSWQ6IGRhdGEuZmlsZVsnZmlsZUlkJ10gfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSBmaWxlcy5sZW5ndGggLSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAoc2l6ZSA9PT0gRmlsZXNTaXplRW51bS5NT0RBTF9MQVJHRSAmJiBmaWxlcy5sZW5ndGggPCA0KSB8fFxuICAgICAgICAgICAgICAgICAgICAoc2l6ZSA9PT0gRmlsZXNTaXplRW51bS5NT0RBTF9NRURJVU0gJiYgZmlsZXMubGVuZ3RoIDwgMylcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbENhcm91c2VsLmN1cnJlbnRTbGlkZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbC50cmFuc2xhdGVYTXVsdGlwbGVTbGlkZXMgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsQ2Fyb3VzZWwubXVsdGlwbGVDdXJyZW50U2xpZGUgPSAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNMYXN0RGVsZXRlZCAmJiB0aGlzLm1vZGFsQ2Fyb3VzZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxTaXplID0gdGhpcy5tb2RhbENhcm91c2VsLmNhcm91c2VsQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3VzdG9tQ2xhc3MgYXMgRmlsZXNTaXplRW51bTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2xpZGVUbyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXJvdXNlbFNpemUgPT09IEZpbGVzU2l6ZUVudW0uTEFSR0VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNhcm91c2VsU2l6ZSA9PT0gRmlsZXNTaXplRW51bS5NRURJVU1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFsbG93U2xpZGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNhcm91c2VsU2l6ZSA9PT0gRmlsZXNTaXplRW51bS5MQVJHRSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLmxlbmd0aCA+IDIpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBGaWxlc1NpemVFbnVtLk1FRElVTSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLmxlbmd0aCA+IDEpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBGaWxlc1NpemVFbnVtLlNNQUxMICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93U2xpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbC5zbGlkZVRvRmlsZShmaWxlcy5sZW5ndGggLSBzbGlkZVRvKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudEFjdGlvbi5NQVJLX0lOQ09SUkVDVDpcbiAgICAgICAgICAgICAgICBsZXQgaW5jb3JyZWN0SW5keDogbnVtYmVyID0gMDtcbiAgICAgICAgICAgICAgICBmaWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5maWxlTmFtZSA9PT0gZGF0YS5maWxlLmZpbGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNvcnJlY3RJbmR4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiBmaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkYXRhLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluY29ycmVjdEluZHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnRBY3Rpb24uTUFSS19DT1JSRUNUOlxuICAgICAgICAgICAgICAgIGxldCBjb3JyZWN0SW5keDogbnVtYmVyID0gMDtcbiAgICAgICAgICAgICAgICBmaWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5maWxlTmFtZSA9PT0gZGF0YS5maWxlLmZpbGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0SW5keCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9uRmlsZUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBmaWxlczogZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZGF0YS5hY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb3JyZWN0SW5keCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblVwbG9hZEZpbGVzKGRhdGE6IHsgZmlsZXM6IEZpbGVDb25maWdbXTsgYWN0aW9uOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhLmFjdGlvbiA9PT0gJ2FkZCcgJiZcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5oYXNDcm9wICYmXG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IFsuLi5kYXRhLmZpbGVzXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb25maWcuaGFzQ3JvcCkgdGhpcy5pc0Ryb3B6b25lU2hvd24gPSB0cnVlO1xuXG4gICAgICAgICAgICB1cGxvYWRlZEZpbGVzLmZvckVhY2goKG5ld0ZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ0ZpbGVJbmRleCA9IHRoaXMuX2NvbmZpZy5maWxlcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0ZpbGUpID0+IGV4aXN0aW5nRmlsZS51cmxcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nRmlsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXNbZXhpc3RpbmdGaWxlSW5kZXhdID0gbmV3RmlsZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlQWRkZWQuZW1pdChuZXdGaWxlLnVybCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYEZpbGUgJHtuZXdGaWxlLmZpbGVOYW1lfSB0byByZXBsYWNlIG5vdCBmb3VuZGBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5vbkZpbGVFdmVudC5lbWl0KHsgZmlsZXM6IFtdLCBhY3Rpb246ICdhZGQnIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGEuYWN0aW9uID09PSAnYWRkJykge1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlcyA9IFsuLi5kYXRhLmZpbGVzXTtcblxuICAgICAgICAgICAgY29uc3QgdW5pcXVlRmlsZXMgPSB1cGxvYWRlZEZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZmlsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2NvbmZpZy5maWxlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGV4aXN0aW5nRmlsZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0ZpbGUuZmlsZU5hbWUgPT09IGZpbGUuZmlsZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxldCB7IGZpbGVzIH0gPSB0aGlzLl9jb25maWc7XG4gICAgICAgICAgICBmaWxlcyA9IFsuLi5uZXcgU2V0KFsuLi50aGlzLl9jb25maWcuZmlsZXMsIC4uLnVuaXF1ZUZpbGVzXSldO1xuXG4gICAgICAgICAgICB1bmlxdWVGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlQWRkZWQuZW1pdChmaWxlLnJlYWxGaWxlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fY29uZmlnLmhhc0Nyb3ApIHRoaXMuaXNEcm9wem9uZVNob3duID0gZmFsc2U7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhpcy5vbkZpbGVFdmVudC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuX2NvbmZpZy5maWxlcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnYWRkJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gIGNhcm91c2VsXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RhbENhcm91c2VsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxTaXplID0gdGhpcy5tb2RhbENhcm91c2VsLmNhcm91c2VsQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgIC5jdXN0b21DbGFzcyBhcyBGaWxlc1NpemVFbnVtO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2xpZGVUbyA9XG4gICAgICAgICAgICAgICAgICAgIGNhcm91c2VsU2l6ZSA9PT0gRmlsZXNTaXplRW51bS5MQVJHRVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNhcm91c2VsU2l6ZSA9PT0gRmlsZXNTaXplRW51bS5NRURJVU1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogMTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGFsbG93U2xpZGUgPVxuICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBGaWxlc1NpemVFbnVtLkxBUkdFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoID4gMikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGNhcm91c2VsU2l6ZSA9PT0gRmlsZXNTaXplRW51bS5NRURJVU0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGggPiAxKSB8fFxuICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBGaWxlc1NpemVFbnVtLlNNQUxMICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWxsb3dTbGlkZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsQ2Fyb3VzZWwuc2xpZGVUb0ZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoIC0gc2xpZGVUb1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLmFjdGlvbiA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gWy4uLmRhdGEuZmlsZXNdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fY29uZmlnLmhhc0Nyb3ApIHRoaXMuaXNEcm9wem9uZVNob3duID0gdHJ1ZTtcblxuICAgICAgICAgICAgdXBsb2FkZWRGaWxlcy5mb3JFYWNoKChuZXdGaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdGaWxlSW5kZXggPSB0aGlzLl9jb25maWcuZmlsZXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAoZXhpc3RpbmdGaWxlKSA9PiBleGlzdGluZ0ZpbGUudXJsXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0ZpbGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgZXhpc3RpbmcgZmlsZSBhdCB0aGUgZm91bmQgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzW2V4aXN0aW5nRmlsZUluZGV4XSA9IG5ld0ZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRW1pdCB0aGUgbmV3IGZpbGUgdGhhdCByZXBsYWNlZCB0aGUgb2xkIG9uZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVBZGRlZC5lbWl0KG5ld0ZpbGUudXJsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke25ld0ZpbGUuZmlsZU5hbWV9IHRvIHJlcGxhY2Ugbm90IGZvdW5kYFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm9uRmlsZUV2ZW50LmVtaXQoeyBmaWxlczogdGhpcy5fY29uZmlnLmZpbGVzLCBhY3Rpb246ICdhZGQnIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGEuYWN0aW9uID09PSAnZGVsZXRlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5oYXNDcm9wKSB0aGlzLmlzRHJvcHpvbmVTaG93biA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMuc3BsaWNlKDAsIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBkb2N1bWVudFJldmlld0lucHV0RXZlbnRNZXRob2QoZGF0YToge1xuICAgICAgICBmaWxlOiBGaWxlQ29uZmlnO1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRvY3VtZW50UmV2aWV3SW5wdXRFdmVudC5lbWl0KHtcbiAgICAgICAgICAgIGZpbGU6IGRhdGEuZmlsZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGRhdGEubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRvd25sb2FkRmlsZShmaWxlVXJsOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odHRwLmdldChmaWxlVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnN1YnNjcmliZShcbiAgICAgICAgICAgIChmaWxlQmxvYjogQmxvYikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlQmxvYik7XG4gICAgICAgICAgICAgICAgYW5jaG9yRWxlbWVudC5ocmVmID0gb2JqZWN0VXJsO1xuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnQuZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgICAgICAgICAgICBhbmNob3JFbGVtZW50LmNsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG9iamVjdFVybCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGRvd25sb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkb3dubG9hZGluZyBmaWxlOicsIGRvd25sb2FkRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxhbmRzY2FwZUNoZWNrKGxhbmRzY2FwZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAobGFuZHNjYXBlKVxuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnLmN1c3RvbUNsYXNzTmFtZSA9XG4gICAgICAgICAgICAgICAgJ2xhbmRzY2FwZS1kZXRhaWxzLXZpZXcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBkcm9wWm9uZUNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcHpvbmUuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWxlSG92ZXIoZmlsZTogRmlsZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnLmN1c3RvbUNsYXNzTmFtZSA9PT0gJ21vZGFscycpIHtcbiAgICAgICAgICAgIGxldCBjaGVja0J5SWQgPSBmaWxlPy5yZWFsRmlsZSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKGNoZWNrQnlJZCAmJiBmaWxlPy5maWxlSWQgPT09IGl0ZW0uZmlsZUlkKSB8fFxuICAgICAgICAgICAgICAgICAgICAoIWNoZWNrQnlJZCAmJiBmaWxlLnJlYWxGaWxlPy5uYW1lID09PSBpdGVtLnJlYWxGaWxlPy5uYW1lKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXNbJ19yZXN1bHRzJ11baW5kZXhdLnVwZGF0ZUhvdmVyKHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlc1snX3Jlc3VsdHMnXVtpbmRleF0udXBkYXRlSG92ZXIoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhvdmVyQXJyb3cobW9kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzWydfcmVzdWx0cyddW2luZGV4XS5ob3ZlckFycm93KG1vZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlVG9VcGxvYWRlZEZpbGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZEZpbGVTZXJ2aWNlLnVwbG9hZGVkRmlsZXMkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiB7IGZpbGVzOiBGaWxlQ29uZmlnW107IGFjdGlvbjogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkRmlsZXMoZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidGEtdXBsb2FkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIge3tcbiAgICAgICAgY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnLmN1c3RvbUNsYXNzTmFtZVxuICAgIH19XCJcbiAgICBbbmdDbGFzc109XCJcbiAgICAgICAgY29uZmlnLmZpbGVzPy5sZW5ndGhcbiAgICAgICAgICAgIHwgdXBsb2FkQ2xhc3NcbiAgICAgICAgICAgICAgICA6IGNvbmZpZy5jYXJvdXNlbENvbmZpZy5zaXplXG4gICAgICAgICAgICAgICAgOiBjb25maWcucmV2aWV3LmlzUmV2aWV3XG4gICAgICAgICAgICAgICAgOiBjb25maWcuc2xpZGVyLmRvbnRVc2VTbGlkZXJcbiAgICBcIlxuPlxuICAgIDwhLS0gQ2Fyb3VzZWwgRmlsZXMgLS0+XG4gICAgQGlmIChcbiAgICAgICAgY29uZmlnLmZpbGVzPy5sZW5ndGggJiYgIWNvbmZpZy5zbGlkZXIuZG9udFVzZVNsaWRlciAmJiAhY29uZmlnLmhhc0Nyb3BcbiAgICApIHtcbiAgICAgICAgPGFwcC1jYS11cGxvYWQtZmlsZXMtY2Fyb3VzZWxcbiAgICAgICAgICAgIFtjb25maWddPVwiY2Fyb3VzZWxGaWxlQ29uZmlnXCJcbiAgICAgICAgICAgIChhY3RpdmVTbGlkZSk9XCJjdXJyZW50U2xpZGUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgW3NsaWRlV2lkdGhdPVwiY29uZmlnLnNsaWRlV2lkdGhcIlxuICAgICAgICAgICAgKGhvdmVyQXJyb3dFbWl0KT1cImhvdmVyQXJyb3coJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGZpbGUgb2YgY29uZmlnLmZpbGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGEtdXBsb2FkLWNhcm91c2VsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS11cGxvYWQtZmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN1cGxvYWRlZEZpbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWcuZmlsZU9wdGlvbnNDb25maWcgfCBtYXBGaWxlOiBmaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmV2aWV3RmlsZUNvbmZpZ109XCJyZXZpZXdGaWxlQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZUhvdmVyKT1cImZpbGVIb3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZUFjdGlvbik9XCJvbkZpbGVBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbmRzY2FwZUNoZWNrKT1cIm9uTGFuZHNjYXBlQ2hlY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50UmV2aWV3SW5wdXRFdmVudCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50TWV0aG9kKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLXVwbG9hZC1maWxlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9hcHAtY2EtdXBsb2FkLWZpbGVzLWNhcm91c2VsPlxuICAgIH1cblxuICAgIEBpZiAoY29uZmlnLnNsaWRlci5kb250VXNlU2xpZGVyICYmICFjb25maWcuaGFzQ3JvcCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRzX2hvbGRlclwiPlxuICAgICAgICAgICAgPGFwcC1jYS11cGxvYWQtZHJvcHpvbmVcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZy5kcm9wem9uZUNvbmZcIlxuICAgICAgICAgICAgICAgIChvbkZpbGVFdmVudCk9XCJvblVwbG9hZEZpbGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbG9zZURyb3B6b25lKT1cImRyb3Bab25lQ2xvc2UoKVwiXG4gICAgICAgICAgICA+PC9hcHAtY2EtdXBsb2FkLWRyb3B6b25lPlxuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBjb25maWcuZmlsZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YS11cGxvYWQtY2Fyb3VzZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLXVwbG9hZC1maWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWcuZmlsZU9wdGlvbnNDb25maWcgfCBtYXBGaWxlOiBmaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmV2aWV3RmlsZUNvbmZpZ109XCJyZXZpZXdGaWxlQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZUFjdGlvbik9XCJvbkZpbGVBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbmRzY2FwZUNoZWNrKT1cIm9uTGFuZHNjYXBlQ2hlY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50UmV2aWV3SW5wdXRFdmVudCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50TWV0aG9kKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLXVwbG9hZC1maWxlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBJbWFnZSBDcm9wIFRlbXBsYXRlIC0tPlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwbGl0LWNyb3AtaG9sZGVyXCJcbiAgICAgICAgW2NsYXNzLnNwbGl0XT1cImlzRHJvcHpvbmVTaG93blwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hpZGRlbi1kcm9wJzogIWNvbmZpZy5pc1Zpc2libGVDcm9wQW5kRHJvcCB9XCJcbiAgICA+XG4gICAgICAgIEBpZiAoY29uZmlnLmhhc0Nyb3AgJiYgY29uZmlnLmZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBjb25maWcuZmlsZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxhcHAtY2EtbG9nby1jaGFuZ2VcbiAgICAgICAgICAgICAgICAgICAgW2hhc0Jsb2JVcmxdPVwiY29uZmlnLmhhc0Jsb2JVcmxcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VUb0Nyb3BdPVwiZmlsZT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUm91bmRDcm9wcGVyXT1cImNvbmZpZy5pc1JvdW5kQ3JvcFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Ryb3B6b25lU2hvd25dPVwiaXNEcm9wem9uZVNob3duXCJcbiAgICAgICAgICAgICAgICAgICAgW2luaXRpYWxDcm9wcGVyUG9zaXRpb25dPVwiY29uZmlnLmluaXRpYWxDcm9wcGVyUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbY29udGFpbldpdGhpbkFzcGVjdFJhdGlvXT1cImNvbmZpZy5jb250YWluV2l0aGluQXNwZWN0UmF0aW9cIlxuICAgICAgICAgICAgICAgICAgICBbYXNwZWN0UmF0aW9dPVwiY29uZmlnLmFzcGVjdFJhdGlvXCJcbiAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVdpZHRoXT1cImNvbmZpZy5kcm9wem9uZUN1c3RvbVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbmRJbWFnZURhdGEpPVwib25VcGxvYWRGaWxlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY2EtbG9nby1jaGFuZ2U+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzcGxpdC1jcm9wLWhvbGRlclwiXG4gICAgICAgIFtjbGFzcy5zcGxpdF09XCJjb25maWcuaGFzQ3JvcCAmJiBjb25maWcuZmlsZXMubGVuZ3RoICYmIGlzRHJvcHpvbmVTaG93blwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hpZGRlbi1kcm9wJzogIWNvbmZpZy5pc1Zpc2libGVDcm9wQW5kRHJvcCB9XCJcbiAgICA+XG4gICAgICAgIEBpZiAoaXNEcm9wem9uZVNob3duKSB7XG4gICAgICAgICAgICA8YXBwLWNhLXVwbG9hZC1kcm9wem9uZVxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnLmRyb3B6b25lQ29uZlwiXG4gICAgICAgICAgICAgICAgW2N1c3RvbVdpZHRoXT1cImNvbmZpZy5kcm9wem9uZUN1c3RvbVdpZHRoXCJcbiAgICAgICAgICAgICAgICBbaXNEcm9wem9uZVNob3duSW5Dcm9wXT1cIlxuICAgICAgICAgICAgICAgICAgICBjb25maWcuaGFzQ3JvcCAmJiAhIWNvbmZpZy5maWxlcy5sZW5ndGggJiYgaXNEcm9wem9uZVNob3duXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAob25GaWxlRXZlbnQpPVwib25VcGxvYWRGaWxlcygkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2FwcC1jYS11cGxvYWQtZHJvcHpvbmU+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdXBsb2FkLWZpbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy9jYS11cGxvYWQtZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdXBsb2FkLWZpbGVzL2NhLXVwbG9hZC1maWxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsWUFBWTtBQUNaLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBYzFILE9BQU87QUFDUCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFt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Q3BCLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCx5QkFBeUIsK01BQ3pCLHFCQUFxQiwyTUFDckIsOEJBQThCLHVKQUM5QixxQkFBcUI7Z0JBQ3JCLE1BQU07Z0JBQ04sZUFBZSwrQ0FDZixXQUFXOzs0RkFXTixzQkFBc0I7a0JBekJsQyxTQUFTO2lDQUNNLElBQUksWUFDTixxQkFBcUIsV0FDdEI7d0JBQ0wsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCx5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLE1BQU07d0JBQ04sZUFBZTt3QkFDZixXQUFXO3FCQUNkLGFBQ1U7d0JBQ1Asb0JBQW9CLENBQUM7NEJBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO3lCQUNyQyxDQUFDO3FCQUNMLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2lIQUl4QyxhQUFhO3NCQURuQixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJekMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLHFCQUFxQjtnQkFHdEIsaUJBQWlCO3NCQUE3QixLQUFLO2dCQU9JLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcbmltcG9ydCB7IHByb3ZpZGVMb3R0aWVPcHRpb25zIH0gZnJvbSAnbmd4LWxvdHRpZSc7XG5pbXBvcnQgeyBOZ2JQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vL0NvbXBvbmVudHNcbmltcG9ydCB7IENhVXBsb2FkRHJvcHpvbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdXBsb2FkLWRyb3B6b25lL2NhLXVwbG9hZC1kcm9wem9uZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FVcGxvYWRGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlL2NhLXVwbG9hZC1maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVVwbG9hZEZpbGVzQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdXBsb2FkLWZpbGVzLWNhcm91c2VsL2NhLXVwbG9hZC1maWxlcy1jYXJvdXNlbC5jb21wb25lbnQnO1xuXG4vL0ludGVyZmFjZXNcbmltcG9ydCB7XG4gICAgSURvY3VtZW50UmV2aWV3SW5wdXRFdmVudCxcbiAgICBJUmV2aWV3RmlsZUNvbmZpZyxcbiAgICBJVXBsb2FkRmlsZXNDb25maWcsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICAgIElGaWxlQ29uZmlnLFxuICAgIElGaWxlRXZlbnQsXG59IGZyb20gJy4vY29tcG9uZW50cy9jYS11cGxvYWQtZHJvcHpvbmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJRmlsZXNDYXJvdXNlbENvbmZpZyB9IGZyb20gJy4vY29tcG9uZW50cy9jYS11cGxvYWQtZmlsZXMtY2Fyb3VzZWwvaW50ZXJmYWNlcyc7XG5cbi8vRW51bXNcbmltcG9ydCB7IGVGaWxlQWN0aW9uLCBlRmlsZVNpemUsIGVGaWxlVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgZURvY3VtZW50QWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlL2VudW1zJztcblxuLy9TZXJ2aWNlc1xuaW1wb3J0IHsgQ2FVcGxvYWRGaWxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG4vL1BpcGVcbmltcG9ydCB7IE1hcEZpbGVQaXBlLCBVcGxvYWRDbGFzc1BpcGUgfSBmcm9tICcuL3BpcGVzJztcblxuLy9Db21wb25lbnRcbmltcG9ydCB7IENhTG9nb0NoYW5nZUNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWxvZ28tY2hhbmdlL2NhLWxvZ28tY2hhbmdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtdXBsb2FkLWZpbGVzJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIE5nYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIC8vQ29tcG9uZW50XG4gICAgICAgIENhVXBsb2FkRHJvcHpvbmVDb21wb25lbnQsXG4gICAgICAgIENhVXBsb2FkRmlsZUNvbXBvbmVudCxcbiAgICAgICAgQ2FVcGxvYWRGaWxlc0Nhcm91c2VsQ29tcG9uZW50LFxuICAgICAgICBDYUxvZ29DaGFuZ2VDb21wb25lbnQsXG4gICAgICAgIC8vUGlwZVxuICAgICAgICBVcGxvYWRDbGFzc1BpcGUsXG4gICAgICAgIE1hcEZpbGVQaXBlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVMb3R0aWVPcHRpb25zKHtcbiAgICAgICAgICAgIHBsYXllcjogKCkgPT4gaW1wb3J0KCdsb3R0aWUtd2ViJyksXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLXVwbG9hZC1maWxlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtdXBsb2FkLWZpbGVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhVXBsb2FkRmlsZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKENhVXBsb2FkRmlsZXNDYXJvdXNlbENvbXBvbmVudClcbiAgICBwdWJsaWMgbW9kYWxDYXJvdXNlbCE6IENhVXBsb2FkRmlsZXNDYXJvdXNlbENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oQ2FVcGxvYWRGaWxlQ29tcG9uZW50KVxuICAgIHVwbG9hZGVkRmlsZXMhOiBRdWVyeUxpc3Q8Q2FVcGxvYWRGaWxlQ29tcG9uZW50PjtcblxuICAgIEBJbnB1dCgpIHNldCB1cGxvYWRGaWxlc0NvbmZpZyh2YWx1ZTogSVVwbG9hZEZpbGVzQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHsgLi4udmFsdWUgfTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnPy50eXBlID09PSBlRmlsZVR5cGUuREVUQUlMUylcbiAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbD8uc2xpZGVUb0ZpbGUoMCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGRvY3VtZW50UmV2aWV3SW5wdXRFdmVudCA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SURvY3VtZW50UmV2aWV3SW5wdXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgb25GaWxlRXZlbnQ6IEV2ZW50RW1pdHRlcjxJRmlsZUV2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SUZpbGVFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgY2xvc2VEcm9wem9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICAgIHB1YmxpYyBjdXJyZW50U2xpZGU6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGlzRHJvcHpvbmVTaG93bjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwcml2YXRlIF9jb25maWchOiBJVXBsb2FkRmlsZXNDb25maWc7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBJVXBsb2FkRmlsZXNDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2Fyb3VzZWxGaWxlQ29uZmlnKCk6IElGaWxlc0Nhcm91c2VsQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5fY29uZmlnLmNhcm91c2VsQ29uZmlnIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXZpZXdGaWxlQ29uZmlnKCk6IElSZXZpZXdGaWxlQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5yZXZpZXc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdXBsb2FkRmlsZVNlcnZpY2U6IENhVXBsb2FkRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1VwbG9hZGVkRmlsZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhIC0gcmV0dXJuZWQgZGF0YSBmcm9tIGZpbGUgYWN0aW9uIChvbmUgb3IgbXVsdGlwbGUpXG4gICAgICovXG5cbiAgICBwdWJsaWMgb25GaWxlQWN0aW9uKGRhdGE6IHsgZmlsZTogSUZpbGVDb25maWc7IGFjdGlvbjogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChkYXRhLmFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBlRG9jdW1lbnRBY3Rpb24uVEFHOlxuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiAhdGhpcy5fY29uZmlnLm9ubHlPbmVUYWdGaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX2NvbmZpZy5maWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBkYXRhLmZpbGUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZGF0YS5hY3Rpb24sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgZURvY3VtZW50QWN0aW9uLkRFTEVURTpcbiAgICAgICAgICAgICAgICBsZXQgaXNMYXN0RGVsZXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmZpbGVOYW1lID09PSBkYXRhLmZpbGUuZmlsZU5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoIC0gMixcbiAgICAgICAgICAgICAgICAgICAgICAgIF0uaW5jbHVkZXMoaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMYXN0RGVsZXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcyA9IHRoaXMuX2NvbmZpZy5maWxlcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmZpbGVOYW1lICE9PSBkYXRhLmZpbGUuZmlsZU5hbWVcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5vbkZpbGVFdmVudC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuX2NvbmZpZy5maWxlcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkYXRhLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlSWQ6IGRhdGEuZmlsZVsnZmlsZUlkJ10gfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2xpZGUgPSB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplTGltaXRzID0ge1xuICAgICAgICAgICAgICAgICAgICBbZUZpbGVTaXplLlNNQUxMXTogMCxcbiAgICAgICAgICAgICAgICAgICAgW2VGaWxlU2l6ZS5NRURJVU1dOiAwLFxuICAgICAgICAgICAgICAgICAgICBbZUZpbGVTaXplLkxBUkdFXTogMCxcbiAgICAgICAgICAgICAgICAgICAgW2VGaWxlU2l6ZS5NT0RBTF9MQVJHRV06IDQsXG4gICAgICAgICAgICAgICAgICAgIFtlRmlsZVNpemUuTU9EQUxfTUVESVVNXTogMyxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGggPCBzaXplTGltaXRzW3RoaXMuX2NvbmZpZy5zaXplXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsQ2Fyb3VzZWwuY3VycmVudFNsaWRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbENhcm91c2VsLnRyYW5zbGF0ZVhNdWx0aXBsZVNsaWRlcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbC5tdWx0aXBsZUN1cnJlbnRTbGlkZSA9IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNMYXN0RGVsZXRlZCAmJiB0aGlzLm1vZGFsQ2Fyb3VzZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxTaXplID0gdGhpcy5tb2RhbENhcm91c2VsLmNhcm91c2VsQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3VzdG9tQ2xhc3MgYXMgZUZpbGVTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzbGlkZVRvID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcm91c2VsU2l6ZSA9PT0gZUZpbGVTaXplLkxBUkdFXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJvdXNlbFNpemUgPT09IGVGaWxlU2l6ZS5NRURJVU1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFsbG93U2xpZGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNhcm91c2VsU2l6ZSA9PT0gZUZpbGVTaXplLkxBUkdFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzLmxlbmd0aCA+IDIpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBlRmlsZVNpemUuTUVESVVNICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzLmxlbmd0aCA+IDEpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBlRmlsZVNpemUuU01BTEwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93U2xpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbC5zbGlkZVRvRmlsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMubGVuZ3RoIC0gc2xpZGVUb1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBlRG9jdW1lbnRBY3Rpb24uTUFSS19JTkNPUlJFQ1Q6XG4gICAgICAgICAgICAgICAgbGV0IGluY29ycmVjdEluZHg6IG51bWJlciA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmZpbGVOYW1lID09PSBkYXRhLmZpbGUuZmlsZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY29ycmVjdEluZHggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5vbkZpbGVFdmVudC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuX2NvbmZpZy5maWxlcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkYXRhLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluY29ycmVjdEluZHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgZURvY3VtZW50QWN0aW9uLk1BUktfQ09SUkVDVDpcbiAgICAgICAgICAgICAgICBsZXQgY29ycmVjdEluZHg6IG51bWJlciA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmZpbGVOYW1lID09PSBkYXRhLmZpbGUuZmlsZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3RJbmR4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiB0aGlzLl9jb25maWcuZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZGF0YS5hY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb3JyZWN0SW5keCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblVwbG9hZEZpbGVzKGRhdGE6IHsgZmlsZXM6IElGaWxlQ29uZmlnW107IGFjdGlvbjogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGF0YS5hY3Rpb24gPT09IGVGaWxlQWN0aW9uLkFERCAmJlxuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmhhc0Nyb3AgJiZcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gWy4uLmRhdGEuZmlsZXNdO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5oYXNDcm9wKSB0aGlzLmlzRHJvcHpvbmVTaG93biA9IHRydWU7XG5cbiAgICAgICAgICAgIHVwbG9hZGVkRmlsZXMuZm9yRWFjaCgobmV3RmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nRmlsZUluZGV4ID0gdGhpcy5fY29uZmlnLmZpbGVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgKGV4aXN0aW5nRmlsZSkgPT4gZXhpc3RpbmdGaWxlLnVybFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdGaWxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlc1tleGlzdGluZ0ZpbGVJbmRleF0gPSBuZXdGaWxlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVBZGRlZC5lbWl0KG5ld0ZpbGUudXJsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke25ld0ZpbGUuZmlsZU5hbWV9IHRvIHJlcGxhY2Ugbm90IGZvdW5kYFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm9uRmlsZUV2ZW50LmVtaXQoeyBmaWxlczogW10sIGFjdGlvbjogZUZpbGVBY3Rpb24uQUREIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGEuYWN0aW9uID09PSBlRmlsZUFjdGlvbi5BREQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBbLi4uZGF0YS5maWxlc107XG5cbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUZpbGVzID0gdXBsb2FkZWRGaWxlcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGZpbGUpID0+XG4gICAgICAgICAgICAgICAgICAgICF0aGlzLl9jb25maWcuZmlsZXMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAgIChleGlzdGluZ0ZpbGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdGaWxlLmZpbGVOYW1lID09PSBmaWxlLmZpbGVOYW1lXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZXMgPSBbXG4gICAgICAgICAgICAgICAgLi4ubmV3IFNldChbLi4udGhpcy5fY29uZmlnLmZpbGVzLCAuLi51bmlxdWVGaWxlc10pLFxuICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgdW5pcXVlRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZmlsZS5yZWFsRmlsZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5oYXNDcm9wKSB0aGlzLmlzRHJvcHpvbmVTaG93biA9IGZhbHNlO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiB0aGlzLl9jb25maWcuZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZUZpbGVBY3Rpb24uQURELFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyAgY2Fyb3VzZWxcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGFsQ2Fyb3VzZWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYXJvdXNlbFNpemUgPSB0aGlzLm1vZGFsQ2Fyb3VzZWwuY2Fyb3VzZWxDb25maWdcbiAgICAgICAgICAgICAgICAgICAgLmN1c3RvbUNsYXNzIGFzIGVGaWxlU2l6ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNsaWRlVG8gPVxuICAgICAgICAgICAgICAgICAgICBjYXJvdXNlbFNpemUgPT09IGVGaWxlU2l6ZS5MQVJHRVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNhcm91c2VsU2l6ZSA9PT0gZUZpbGVTaXplLk1FRElVTVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWxsb3dTbGlkZSA9XG4gICAgICAgICAgICAgICAgICAgIChjYXJvdXNlbFNpemUgPT09IGVGaWxlU2l6ZS5MQVJHRSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzLmxlbmd0aCA+IDIpIHx8XG4gICAgICAgICAgICAgICAgICAgIChjYXJvdXNlbFNpemUgPT09IGVGaWxlU2l6ZS5NRURJVU0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGggPiAxKSB8fFxuICAgICAgICAgICAgICAgICAgICAoY2Fyb3VzZWxTaXplID09PSBlRmlsZVNpemUuU01BTEwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGggPiAwKTtcblxuICAgICAgICAgICAgICAgIGlmIChhbGxvd1NsaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxDYXJvdXNlbC5zbGlkZVRvRmlsZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5sZW5ndGggLSBzbGlkZVRvXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGRhdGEuYWN0aW9uID09PSBlRmlsZUFjdGlvbi5SRVBMQUNFKSB7XG4gICAgICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gWy4uLmRhdGEuZmlsZXNdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fY29uZmlnLmhhc0Nyb3ApIHRoaXMuaXNEcm9wem9uZVNob3duID0gdHJ1ZTtcblxuICAgICAgICAgICAgdXBsb2FkZWRGaWxlcy5mb3JFYWNoKChuZXdGaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdGaWxlSW5kZXggPSB0aGlzLl9jb25maWcuZmlsZXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAoZXhpc3RpbmdGaWxlKSA9PiBleGlzdGluZ0ZpbGUudXJsXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0ZpbGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgZXhpc3RpbmcgZmlsZSBhdCB0aGUgZm91bmQgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLmZpbGVzW2V4aXN0aW5nRmlsZUluZGV4XSA9IG5ld0ZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRW1pdCB0aGUgbmV3IGZpbGUgdGhhdCByZXBsYWNlZCB0aGUgb2xkIG9uZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVBZGRlZC5lbWl0KG5ld0ZpbGUudXJsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke25ld0ZpbGUuZmlsZU5hbWV9IHRvIHJlcGxhY2Ugbm90IGZvdW5kYFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm9uRmlsZUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgICAgIGZpbGVzOiB0aGlzLl9jb25maWcuZmlsZXMsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiBlRmlsZUFjdGlvbi5BREQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLmFjdGlvbiA9PT0gZUZpbGVBY3Rpb24uREVMRVRFKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY29uZmlnLmhhc0Nyb3ApIHRoaXMuaXNEcm9wem9uZVNob3duID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5zcGxpY2UoMCwgdGhpcy5fY29uZmlnLmZpbGVzLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50TWV0aG9kKGRhdGE6IHtcbiAgICAgICAgZmlsZTogSUZpbGVDb25maWc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgZmlsZTogZGF0YS5maWxlLFxuICAgICAgICAgICAgbWVzc2FnZTogZGF0YS5tZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlKGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmh0dHAuZ2V0KGZpbGVVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGZpbGVCbG9iOiBCbG9iKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVCbG9iKTtcbiAgICAgICAgICAgICAgICBhbmNob3JFbGVtZW50LmhyZWYgPSBvYmplY3RVcmw7XG4gICAgICAgICAgICAgICAgYW5jaG9yRWxlbWVudC5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZG93bmxvYWRFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGRvd25sb2FkaW5nIGZpbGU6JywgZG93bmxvYWRFcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTGFuZHNjYXBlQ2hlY2sobGFuZHNjYXBlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChsYW5kc2NhcGUpXG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZmlsZU9wdGlvbnNDb25maWcuY3VzdG9tQ2xhc3NOYW1lID1cbiAgICAgICAgICAgICAgICAnbGFuZHNjYXBlLWRldGFpbHMtdmlldyc7XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3Bab25lQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wem9uZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbGVIb3ZlcihmaWxlOiBJRmlsZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnLmN1c3RvbUNsYXNzTmFtZSA9PT0gJ21vZGFscycpIHtcbiAgICAgICAgICAgIGxldCBjaGVja0J5SWQgPSBmaWxlPy5yZWFsRmlsZSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKGNoZWNrQnlJZCAmJiBmaWxlPy5maWxlSWQgPT09IGl0ZW0uZmlsZUlkKSB8fFxuICAgICAgICAgICAgICAgICAgICAoIWNoZWNrQnlJZCAmJiBmaWxlLnJlYWxGaWxlPy5uYW1lID09PSBpdGVtLnJlYWxGaWxlPy5uYW1lKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXNbJ19yZXN1bHRzJ11baW5kZXhdLnVwZGF0ZUhvdmVyKHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlc1snX3Jlc3VsdHMnXVtpbmRleF0udXBkYXRlSG92ZXIoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhvdmVyQXJyb3cobW9kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbmZpZy5maWxlcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzWydfcmVzdWx0cyddW2luZGV4XS5ob3ZlckFycm93KG1vZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlVG9VcGxvYWRlZEZpbGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZEZpbGVTZXJ2aWNlLnVwbG9hZGVkRmlsZXMkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiB7IGZpbGVzOiBJRmlsZUNvbmZpZ1tdOyBhY3Rpb246IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZEZpbGVzKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInRhLXVwbG9hZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHt7XG4gICAgICAgIGNvbmZpZy5maWxlT3B0aW9uc0NvbmZpZy5jdXN0b21DbGFzc05hbWVcbiAgICB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbmZpZy5maWxlcz8ubGVuZ3RoXG4gICAgICAgICAgICB8IHVwbG9hZENsYXNzXG4gICAgICAgICAgICAgICAgOiBjb25maWcuY2Fyb3VzZWxDb25maWcuc2l6ZVxuICAgICAgICAgICAgICAgIDogY29uZmlnLnJldmlldy5pc1Jldmlld1xuICAgICAgICAgICAgICAgIDogY29uZmlnLnNsaWRlci5kb250VXNlU2xpZGVyXG4gICAgXCJcbj5cbiAgICA8IS0tIENhcm91c2VsIEZpbGVzIC0tPlxuICAgIEBpZiAoXG4gICAgICAgIGNvbmZpZy5maWxlcz8ubGVuZ3RoICYmICFjb25maWcuc2xpZGVyLmRvbnRVc2VTbGlkZXIgJiYgIWNvbmZpZy5oYXNDcm9wXG4gICAgKSB7XG4gICAgICAgIDxhcHAtY2EtdXBsb2FkLWZpbGVzLWNhcm91c2VsXG4gICAgICAgICAgICBbY29uZmlnXT1cImNhcm91c2VsRmlsZUNvbmZpZ1wiXG4gICAgICAgICAgICAoYWN0aXZlU2xpZGUpPVwiY3VycmVudFNsaWRlID0gJGV2ZW50XCJcbiAgICAgICAgICAgIFtzbGlkZVdpZHRoXT1cImNvbmZpZy5zbGlkZVdpZHRoXCJcbiAgICAgICAgICAgIChob3ZlckFycm93RW1pdCk9XCJob3ZlckFycm93KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChmaWxlIG9mIGNvbmZpZy5maWxlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhLXVwbG9hZC1jYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY2EtdXBsb2FkLWZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdXBsb2FkZWRGaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnLmZpbGVPcHRpb25zQ29uZmlnIHwgbWFwRmlsZTogZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jldmlld0ZpbGVDb25maWddPVwicmV2aWV3RmlsZUNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGVIb3Zlcik9XCJmaWxlSG92ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGVBY3Rpb24pPVwib25GaWxlQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW5kc2NhcGVDaGVjayk9XCJvbkxhbmRzY2FwZUNoZWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudFJldmlld0lucHV0RXZlbnQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50UmV2aWV3SW5wdXRFdmVudE1ldGhvZCgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS11cGxvYWQtZmlsZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXBwLWNhLXVwbG9hZC1maWxlcy1jYXJvdXNlbD5cbiAgICB9XG5cbiAgICBAaWYgKGNvbmZpZy5zbGlkZXIuZG9udFVzZVNsaWRlciAmJiAhY29uZmlnLmhhc0Nyb3ApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50c19ob2xkZXJcIj5cbiAgICAgICAgICAgIDxhcHAtY2EtdXBsb2FkLWRyb3B6b25lXG4gICAgICAgICAgICAgICAgW2Ryb3Bab25lQ29uZmlnXT1cImNvbmZpZy5kcm9wWm9uZUNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImNvbmZpZy5maWxlc1wiXG4gICAgICAgICAgICAgICAgKG9uRmlsZUV2ZW50KT1cIm9uVXBsb2FkRmlsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsb3NlRHJvcHpvbmUpPVwiZHJvcFpvbmVDbG9zZSgpXCJcbiAgICAgICAgICAgID48L2FwcC1jYS11cGxvYWQtZHJvcHpvbmU+XG4gICAgICAgICAgICBAZm9yIChmaWxlIG9mIGNvbmZpZy5maWxlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhLXVwbG9hZC1jYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY2EtdXBsb2FkLWZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZy5maWxlT3B0aW9uc0NvbmZpZyB8IG1hcEZpbGU6IGZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXZpZXdGaWxlQ29uZmlnXT1cInJldmlld0ZpbGVDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlQWN0aW9uKT1cIm9uRmlsZUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFuZHNjYXBlQ2hlY2spPVwib25MYW5kc2NhcGVDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnRSZXZpZXdJbnB1dEV2ZW50KT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFJldmlld0lucHV0RXZlbnRNZXRob2QoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9hcHAtY2EtdXBsb2FkLWZpbGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8IS0tIEltYWdlIENyb3AgVGVtcGxhdGUgLS0+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3BsaXQtY3JvcC1ob2xkZXJcIlxuICAgICAgICBbY2xhc3Muc3BsaXRdPVwiaXNEcm9wem9uZVNob3duXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaGlkZGVuLWRyb3AnOiAhY29uZmlnLmlzVmlzaWJsZUNyb3BBbmREcm9wIH1cIlxuICAgID5cbiAgICAgICAgQGlmIChjb25maWcuaGFzQ3JvcCAmJiBjb25maWcuZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBAZm9yIChmaWxlIG9mIGNvbmZpZy5maWxlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1sb2dvLWNoYW5nZVxuICAgICAgICAgICAgICAgICAgICBbaGFzQmxvYlVybF09XCJjb25maWcuaGFzQmxvYlVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZVRvQ3JvcF09XCJmaWxlPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICBbaXNSb3VuZENyb3BwZXJdPVwiY29uZmlnLmlzUm91bmRDcm9wXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRHJvcHpvbmVTaG93bl09XCJpc0Ryb3B6b25lU2hvd25cIlxuICAgICAgICAgICAgICAgICAgICBbaW5pdGlhbENyb3BwZXJQb3NpdGlvbl09XCJjb25maWcuaW5pdGlhbENyb3BwZXJQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjb250YWluV2l0aGluQXNwZWN0UmF0aW9dPVwiY29uZmlnLmNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpb1wiXG4gICAgICAgICAgICAgICAgICAgIFthc3BlY3RSYXRpb109XCJjb25maWcuYXNwZWN0UmF0aW9cIlxuICAgICAgICAgICAgICAgICAgICBbY3VzdG9tV2lkdGhdPVwiY29uZmlnLmRyb3B6b25lQ3VzdG9tV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAoc2VuZEltYWdlRGF0YSk9XCJvblVwbG9hZEZpbGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2FwcC1jYS1sb2dvLWNoYW5nZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwbGl0LWNyb3AtaG9sZGVyXCJcbiAgICAgICAgW2NsYXNzLnNwbGl0XT1cImNvbmZpZy5oYXNDcm9wICYmIGNvbmZpZy5maWxlcy5sZW5ndGggJiYgaXNEcm9wem9uZVNob3duXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaGlkZGVuLWRyb3AnOiAhY29uZmlnLmlzVmlzaWJsZUNyb3BBbmREcm9wIH1cIlxuICAgID5cbiAgICAgICAgQGlmIChpc0Ryb3B6b25lU2hvd24pIHtcbiAgICAgICAgICAgIDxhcHAtY2EtdXBsb2FkLWRyb3B6b25lXG4gICAgICAgICAgICAgICAgW2Ryb3Bab25lQ29uZmlnXT1cImNvbmZpZy5kcm9wWm9uZUNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgW2N1c3RvbVdpZHRoXT1cImNvbmZpZy5kcm9wem9uZUN1c3RvbVdpZHRoXCJcbiAgICAgICAgICAgICAgICBbaXNEcm9wem9uZVNob3duSW5Dcm9wXT1cIlxuICAgICAgICAgICAgICAgICAgICBjb25maWcuaGFzQ3JvcCAmJiAhIWNvbmZpZy5maWxlcy5sZW5ndGggJiYgaXNEcm9wem9uZVNob3duXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbZmlsZXNdPVwiY29uZmlnLmZpbGVzXCJcbiAgICAgICAgICAgICAgICAob25GaWxlRXZlbnQpPVwib25VcGxvYWRGaWxlcygkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2FwcC1jYS11cGxvYWQtZHJvcHpvbmU+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|