ngx-histaff-alpha 2.3.4 → 2.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/app/app-pipes/map-attachment-to-server.pipe.mjs +25 -0
  2. package/esm2022/lib/app/app-pipes/uploaded-filename-cutoff.pipe.mjs +22 -0
  3. package/esm2022/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.mjs +59 -24
  4. package/esm2022/lib/app/libraries/core-control/core-control/core-control.component.mjs +1 -1
  5. package/esm2022/lib/app/libraries/core-seen-by/core-seen-by.component.mjs +32 -0
  6. package/esm2022/lib/app/libraries/core-table/EnumCoreTablePipeType.mjs +2 -1
  7. package/esm2022/lib/app/libraries/core-table/core-table.component.mjs +4 -2
  8. package/esm2022/lib/app/libraries/pipes/table-cell.pipe.mjs +9 -1
  9. package/esm2022/lib/app/services/app-config.service.mjs +2 -1
  10. package/esm2022/lib/app/services/app-initialization.service.mjs +4 -3
  11. package/esm2022/lib/app/services/uploaded-file.service.mjs +24 -0
  12. package/esm2022/public-api.mjs +5 -1
  13. package/fesm2022/ngx-histaff-alpha.mjs +159 -25
  14. package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
  15. package/lib/app/app-pipes/map-attachment-to-server.pipe.d.ts +10 -0
  16. package/lib/app/app-pipes/uploaded-filename-cutoff.pipe.d.ts +7 -0
  17. package/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.d.ts +15 -5
  18. package/lib/app/libraries/core-seen-by/core-seen-by.component.d.ts +14 -0
  19. package/lib/app/libraries/core-table/EnumCoreTablePipeType.d.ts +2 -1
  20. package/lib/app/services/app-config.service.d.ts +1 -0
  21. package/lib/app/services/uploaded-file.service.d.ts +7 -0
  22. package/package.json +1 -1
  23. package/public-api.d.ts +4 -0
@@ -0,0 +1,25 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/app-config.service";
4
+ export class MapAttachmentToServerPipe {
5
+ constructor(appConfigService) {
6
+ this.appConfigService = appConfigService;
7
+ }
8
+ transform(value) {
9
+ if (!value)
10
+ return value;
11
+ let result = '';
12
+ result = `${this.appConfigService.BASE_URL}/${this.appConfigService.STATIC_FOLDER}/${this.appConfigService.ATTACHMENT_FOLDER}/${value}`;
13
+ return result;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: MapAttachmentToServerPipe, deps: [{ token: i1.AppConfigService }], target: i0.ɵɵFactoryTarget.Pipe }); }
16
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: MapAttachmentToServerPipe, isStandalone: true, name: "mapAttachmentToServer" }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: MapAttachmentToServerPipe, decorators: [{
19
+ type: Pipe,
20
+ args: [{
21
+ name: 'mapAttachmentToServer',
22
+ standalone: true
23
+ }]
24
+ }], ctorParameters: () => [{ type: i1.AppConfigService }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWF0dGFjaG1lbnQtdG8tc2VydmVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9hcHAtcGlwZXMvbWFwLWF0dGFjaG1lbnQtdG8tc2VydmVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU9wRCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUksQ0FBQztJQUUzRCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQU0sQ0FBQztRQUMxQixJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN4SSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQVRVLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ21hcEF0dGFjaG1lbnRUb1NlcnZlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwQXR0YWNobWVudFRvU2VydmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UpIHsgfVxyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHZhbHVlITtcclxuICAgIGxldCByZXN1bHQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcmVzdWx0ID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMfS8ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TVEFUSUNfRk9MREVSfS8ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5BVFRBQ0hNRU5UX0ZPTERFUn0vJHt2YWx1ZX1gO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UploadedFilenameCutoffPipe {
4
+ transform(value, ...args) {
5
+ if (!!value && typeof (value) === 'string' && value.length > 52) {
6
+ return value.substring(52);
7
+ }
8
+ else {
9
+ return '';
10
+ }
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UploadedFilenameCutoffPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: UploadedFilenameCutoffPipe, isStandalone: true, name: "uploadedFilenameCutoff" }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UploadedFilenameCutoffPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'uploadedFilenameCutoff',
19
+ standalone: true
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZWQtZmlsZW5hbWUtY3V0b2ZmLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9hcHAtcGlwZXMvdXBsb2FkZWQtZmlsZW5hbWUtY3V0b2ZmLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTywwQkFBMEI7SUFFckMsU0FBUyxDQUFDLEtBQXlCLEVBQUUsR0FBRyxJQUFlO1FBQ3JELElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQzlELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7OEdBUlUsMEJBQTBCOzRHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSnRDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHdCQUF3QjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd1cGxvYWRlZEZpbGVuYW1lQ3V0b2ZmJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRlZEZpbGVuYW1lQ3V0b2ZmUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgLi4uYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcclxuICAgIGlmICghIXZhbHVlICYmIHR5cGVvZih2YWx1ZSkgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDUyKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZS5zdWJzdHJpbmcoNTIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, Input, ViewChild, isDevMode } from '@angular/core';
1
+ import { Component, Input, ViewChild, isDevMode, forwardRef } from '@angular/core';
2
2
  import { CoreFormControlBaseComponent } from '../../core-form-control-base/core-form-control-base.component';
3
3
  import { FormsModule, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
4
  import { alertOptions, noneAutoClosedAlertOptions } from '../../../constants/alertOptions';
@@ -7,28 +7,36 @@ import { EnumTranslateKey } from "alpha-global-constants";
7
7
  import { blob_to_base64_script } from '../../../../assets/js/blob2base64_wk';
8
8
  import { TooltipDirective } from '../../tooltip/tooltip.directive';
9
9
  import { CommonModule } from '@angular/common';
10
- //declare let coreFileUtils: any;
11
10
  import { coreFileUtils } from '../../../../assets/js/coreFileUtils';
11
+ import { UploadedFilenameCutoffPipe } from '../../../app-pipes/uploaded-filename-cutoff.pipe';
12
+ import { MapAttachmentToServerPipe } from '../../../app-pipes/map-attachment-to-server.pipe';
13
+ import { ImageErrorResolverDirective } from '../../../directives/image-error-resolver.directive';
12
14
  import * as i0 from "@angular/core";
13
15
  import * as i1 from "../../alert/alert.service";
14
16
  import * as i2 from "../../../services/multi-language.service";
15
17
  import * as i3 from "../../../services/app-config.service";
16
- import * as i4 from "@angular/common";
17
- import * as i5 from "@angular/forms";
18
+ import * as i4 from "../../../services/uploaded-file.service";
19
+ import * as i5 from "@angular/common";
20
+ import * as i6 from "@angular/forms";
18
21
  export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
19
22
  writeValue(obj) {
20
23
  this.valueToShow = obj?.serverFileName;
21
24
  }
22
- constructor(injector, alertService, mls, appConfigService) {
25
+ constructor(injector, alertService, mls, appConfigService, uploadedFileService, renderer) {
23
26
  super();
24
27
  this.injector = injector;
25
28
  this.alertService = alertService;
26
29
  this.mls = mls;
27
30
  this.appConfigService = appConfigService;
31
+ this.uploadedFileService = uploadedFileService;
32
+ this.renderer = renderer;
33
+ this.dropdownHeight = 0;
34
+ this.dropdownPadding = 0;
28
35
  }
29
36
  ngOnChanges(changes) {
30
37
  if (changes['valueToShow']) {
31
38
  this.valueToShow = changes['valueToShow']?.currentValue;
39
+ this.previewable = this.uploadedFileService.canPreviewAsImage(this.valueToShow);
32
40
  }
33
41
  }
34
42
  ngOnInit() {
@@ -39,22 +47,43 @@ export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
39
47
  `, noneAutoClosedAlertOptions);
40
48
  }
41
49
  }
50
+ ngAfterViewInit() {
51
+ setTimeout(() => {
52
+ this.listenerFn = this.renderer.listen('window', 'click', (e) => {
53
+ if (this.container && !!!this.container.nativeElement.contains(e.target)) {
54
+ this.dropdownHeight = 0;
55
+ this.dropdownPadding = 0;
56
+ }
57
+ });
58
+ });
59
+ }
42
60
  onClickUpload() {
43
61
  if (this.disabled || this.readonly)
44
62
  return;
63
+ this.dropdownHeight = 0;
64
+ this.dropdownPadding = 0;
45
65
  this.rawInput.nativeElement.dispatchEvent(new MouseEvent('click'));
46
66
  }
47
67
  onClickDownload() {
48
- var uri = this.appConfigService.BASE_URL + '/' + this.appConfigService.STATIC_FOLDER + '/attachments/' + this.valueToShow;
49
- fetch(uri)
50
- .then(response => response.blob())
51
- .then(blob => {
52
- const link = document.createElement("a");
53
- link.href = URL.createObjectURL(blob);
54
- link.download = this.valueToShow.substring(52);
55
- link.click();
56
- })
57
- .catch(console.error);
68
+ if (this.uploadedFileService.canPreviewAsImage(this.valueToShow)) {
69
+ this.dropdownHeight = this.dropdownHeight === 0 ? 200 : 0;
70
+ this.dropdownPadding = this.dropdownPadding === 0 ? 15 : 0;
71
+ }
72
+ else {
73
+ var uri = this.appConfigService.BASE_URL + '/' + this.appConfigService.STATIC_FOLDER + '/attachments/' + this.valueToShow;
74
+ fetch(uri)
75
+ .then(response => response.blob())
76
+ .then(blob => {
77
+ const link = document.createElement("a");
78
+ link.href = URL.createObjectURL(blob);
79
+ link.download = this.valueToShow.substring(52);
80
+ link.click();
81
+ })
82
+ .catch(console.error);
83
+ }
84
+ }
85
+ isPreviewable() {
86
+ return this.previewable;
58
87
  }
59
88
  handleInputChange(e) {
60
89
  if (!!e.target.files.length) {
@@ -108,14 +137,14 @@ export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
108
137
  }
109
138
  }
110
139
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, deps: [{ token: i0.Injector }, { token: i1.AlertService }, { token: i2.MultiLanguageService }, { token: i3.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreAttachmentComponent, isStandalone: true, selector: "core-attachment", inputs: { readonly: "readonly", assignTo: "assignTo", valueToShow: "valueToShow" }, providers: [
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, deps: [{ token: i0.Injector }, { token: i1.AlertService }, { token: i2.MultiLanguageService }, { token: i3.AppConfigService }, { token: i4.UploadedFileService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreAttachmentComponent, isStandalone: true, selector: "core-attachment", inputs: { assignTo: "assignTo", readonly: "readonly", valueToShow: "valueToShow" }, providers: [
113
142
  {
114
143
  provide: NG_VALUE_ACCESSOR,
115
144
  multi: true,
116
- useExisting: CoreAttachmentComponent
145
+ useExisting: forwardRef(() => CoreAttachmentComponent),
117
146
  }
118
- ], viewQueries: [{ propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"valueToShow\" readonly [class.form-control-disabled]=\"disabled\"\r\n [appTooltip]=\"(!!valueToShow && touched) ? 'This file will be uploaded and its path will be assigned to current record' : ''\">\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\" *ngIf=\"!!valueToShow && !!!touched\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container #rawInput{display:none}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }] }); }
147
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" [(ngModel)]=\"valueToShow\" readonly [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\">{{ valueToShow |\r\n uploadedFilenameCutoff}}</div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 60px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transform:translate(30px)}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: UploadedFilenameCutoffPipe, name: "uploadedFilenameCutoff" }, { kind: "pipe", type: MapAttachmentToServerPipe, name: "mapAttachmentToServer" }] }); }
119
148
  }
120
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, decorators: [{
121
150
  type: Component,
@@ -123,21 +152,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
123
152
  CommonModule,
124
153
  FormsModule,
125
154
  TooltipDirective,
155
+ UploadedFilenameCutoffPipe,
156
+ MapAttachmentToServerPipe,
157
+ ImageErrorResolverDirective
126
158
  ], providers: [
127
159
  {
128
160
  provide: NG_VALUE_ACCESSOR,
129
161
  multi: true,
130
- useExisting: CoreAttachmentComponent
162
+ useExisting: forwardRef(() => CoreAttachmentComponent),
131
163
  }
132
- ], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <input class=\"form-control\" type=\"text\" [(ngModel)]=\"valueToShow\" readonly [class.form-control-disabled]=\"disabled\"\r\n [appTooltip]=\"(!!valueToShow && touched) ? 'This file will be uploaded and its path will be assigned to current record' : ''\">\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\" *ngIf=\"!!valueToShow && !!!touched\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container #rawInput{display:none}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"] }]
133
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AlertService }, { type: i2.MultiLanguageService }, { type: i3.AppConfigService }], propDecorators: { readonly: [{
164
+ ], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" [(ngModel)]=\"valueToShow\" readonly [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\">{{ valueToShow |\r\n uploadedFilenameCutoff}}</div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 60px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transform:translate(30px)}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"] }]
165
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AlertService }, { type: i2.MultiLanguageService }, { type: i3.AppConfigService }, { type: i4.UploadedFileService }, { type: i0.Renderer2 }], propDecorators: { assignTo: [{
134
166
  type: Input
135
- }], assignTo: [{
167
+ }], readonly: [{
136
168
  type: Input
137
169
  }], valueToShow: [{
138
170
  type: Input
171
+ }], container: [{
172
+ type: ViewChild,
173
+ args: ['container']
139
174
  }], rawInput: [{
140
175
  type: ViewChild,
141
176
  args: ['rawInput']
142
177
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFvQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FB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ekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBYWlCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IGF0dGFjaG1lbnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2F0dGFjaG1lbnRPcHRpb25zJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGJsb2JfdG9fYmFzZTY0X3NjcmlwdCB9IGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9qcy9ibG9iMmJhc2U2NF93ayc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8vZGVjbGFyZSBsZXQgY29yZUZpbGVVdGlsczogYW55O1xyXG5pbXBvcnQgeyBjb3JlRmlsZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2pzL2NvcmVGaWxlVXRpbHMnO1xyXG4vL2NvbnN0IHsgYmxvYlRvQmFzZTY0IH0gPSBjb3JlRmlsZVV0aWxzOyBcclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUF0dGFjaG1lbnQge1xyXG4gIGFzc2lnblRvOiBzdHJpbmc7XHJcbiAgc2VydmVyRmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZU5hbWU6IHN0cmluZztcclxuICBjbGllbnRGaWxlVHlwZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVEYXRhOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1hdHRhY2htZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlQXR0YWNobWVudENvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVBdHRhY2htZW50Q29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFzc2lnblRvITogc3RyaW5nOyAvLyBSZXF1aXJlZFxyXG4gIEBJbnB1dCgpIHZhbHVlVG9TaG93ITogc3RyaW5nO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlQXR0YWNobWVudCB8IG51bGw7XHJcbiAgb3ZlcnJpZGUgb25DaGFuZ2UhOiAoXzogSUNvcmVBdHRhY2htZW50IHwgbnVsbCkgPT4gdm9pZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElDb3JlQXR0YWNobWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBvYmo/LnNlcnZlckZpbGVOYW1lIVxyXG4gIH1cclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICB3b3JrZXIhOiBXb3JrZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jhd0lucHV0JykgcmF3SW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddKXtcclxuICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IGNoYW5nZXNbJ3ZhbHVlVG9TaG93J10/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCksIDIwMCk7XHJcbiAgICBcclxuICAgIGlmICghISF0aGlzLmFzc2lnblRvICYmICEhIXRoaXMucmVhZG9ubHkgJiYgaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICBDb3JlQXR0YWNobWVudENvbXBvbmVudCByZXF1aXJlZCBpbnB1dCAnYXNzaWduVG8nXHJcbiAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja1VwbG9hZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMucmF3SW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgIHZhciB1cmkgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkwgKyAnLycgKyB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU1RBVElDX0ZPTERFUiArICcvYXR0YWNobWVudHMvJyArIHRoaXMudmFsdWVUb1Nob3dcclxuICAgIGZldGNoKHVyaSlcclxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYmxvYigpKVxyXG4gICAgICAudGhlbihibG9iID0+IHtcclxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy52YWx1ZVRvU2hvdy5zdWJzdHJpbmcoNTIpO1xyXG4gICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZTogYW55KSB7XHJcblxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBhdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGAke3RoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9BVFRBQ0hNRU5UX01BWElNVU1fQVRUQUNITUVOVF9GSUxFX1NJWkVfRVJST1IpfSAoJHthdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZX0gYnl0ZXMpYCwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmlsZVwiLCBmaWxlKVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlTmFtZSA9IGZpbGUubmFtZVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlVHlwZSA9IGZpbGUudHlwZVxyXG4gICAgICBsZXQgY2xpZW50RmlsZURhdGEgPSBcIlwiXHJcblxyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTtcclxuICAgICAgaWYgKHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JfdG9fYmFzZTY0X3NjcmlwdClcclxuICAgICAgICB0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndvcmtlciBtZXNzYWdlXCIsIGUpXHJcbiAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IGUuZGF0YVxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5pbmRleE9mKCdiYXNlNjQsJyk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICAgIGFzc2lnblRvOiB0aGlzLmFzc2lnblRvLFxyXG4gICAgICAgICAgICBzZXJ2ZXJGaWxlTmFtZTogdGhpcy52YWx1ZT8uc2VydmVyRmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlVHlwZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjbGllbnRGaWxlTmFtZTtcclxuICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoYmxvYik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29yZUZpbGVVdGlscy5wcm90b3R5cGUuYmxvYlRvQmFzZTY0KGJsb2IpLnRoZW4oKGNsaWVudEZpbGVEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtYXR0YWNobWVudC1jb250YWluZXJcIj5cclxuICAgIDxpbnB1dCBpZD1cInJhd0lucHV0XCIgI3Jhd0lucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmFsdWVUb1Nob3dcIiByZWFkb25seSBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbYXBwVG9vbHRpcF09XCIoISF2YWx1ZVRvU2hvdyAmJiB0b3VjaGVkKSA/ICdUaGlzIGZpbGUgd2lsbCBiZSB1cGxvYWRlZCBhbmQgaXRzIHBhdGggd2lsbCBiZSBhc3NpZ25lZCB0byBjdXJyZW50IHJlY29yZCcgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGlja1VwbG9hZCgpXCIgW2NsYXNzLm9wYWNpdHkwXT1cInJlYWRvbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItdXBsb2FkXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtaWNvbi13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xpY2tEb3dubG9hZCgpXCIgKm5nSWY9XCIhIXZhbHVlVG9TaG93ICYmICEhIXRvdWNoZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1kb3dubG9hZFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQW1DLEtBQUssRUFBb0MsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxPQUFP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QUM7YUFDdkQ7U0FDRixxUUMvQ0gsdXFDQXlCTSwyL0RET0YsWUFBWSxtSEFDWixXQUFXLCtWQUNYLGdCQUFnQixzR0FDaEIsMEJBQTBCLDBEQUMxQix5QkFBeUI7OzJGQWFoQix1QkFBdUI7a0JBckJuQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3FCQUM1QixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3lCQUN2RDtxQkFDRjtvT0FHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNZLFFBQVE7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQWVDLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGlzRGV2TW9kZSwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucywgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgYXR0YWNobWVudE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXR0YWNobWVudE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYmxvYl90b19iYXNlNjRfc2NyaXB0IH0gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2pzL2Jsb2IyYmFzZTY0X3drJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgY29yZUZpbGVVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9qcy9jb3JlRmlsZVV0aWxzJztcclxuXHJcbmltcG9ydCB7IFVwbG9hZGVkRmlsZW5hbWVDdXRvZmZQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3VwbG9hZGVkLWZpbGVuYW1lLWN1dG9mZi5waXBlJztcclxuaW1wb3J0IHsgVXBsb2FkZWRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VwbG9hZGVkLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hcEF0dGFjaG1lbnRUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF0dGFjaG1lbnQtdG8tc2VydmVyLnBpcGUnO1xyXG5pbXBvcnQgeyBJbWFnZUVycm9yUmVzb2x2ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2ltYWdlLWVycm9yLXJlc29sdmVyLmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb3JlQXR0YWNobWVudCB7XHJcbiAgYXNzaWduVG86IHN0cmluZztcclxuICBzZXJ2ZXJGaWxlTmFtZT86IHN0cmluZztcclxuICBjbGllbnRGaWxlTmFtZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVUeXBlOiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZURhdGE6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWF0dGFjaG1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgVXBsb2FkZWRGaWxlbmFtZUN1dG9mZlBpcGUsXHJcbiAgICBNYXBBdHRhY2htZW50VG9TZXJ2ZXJQaXBlLFxyXG4gICAgSW1hZ2VFcnJvclJlc29sdmVyRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3JlQXR0YWNobWVudENvbXBvbmVudCksXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUF0dGFjaG1lbnRDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGFzc2lnblRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHJlYWRvbmx5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSB2YWx1ZVRvU2hvdyE6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgcHJldmlld2FibGUhOiBib29sZWFuO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlQXR0YWNobWVudCB8IG51bGw7XHJcbiAgb3ZlcnJpZGUgb25DaGFuZ2UhOiAoXzogSUNvcmVBdHRhY2htZW50IHwgbnVsbCkgPT4gdm9pZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElDb3JlQXR0YWNobWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBvYmo/LnNlcnZlckZpbGVOYW1lIVxyXG4gIH1cclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICB3b3JrZXIhOiBXb3JrZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jhd0lucHV0JykgcmF3SW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuXHJcbiAgZHJvcGRvd25IZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgZHJvcGRvd25QYWRkaW5nOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgdXBsb2FkZWRGaWxlU2VydmljZTogVXBsb2FkZWRGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddKSB7XHJcbiAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddPy5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMucHJldmlld2FibGUgPSB0aGlzLnVwbG9hZGVkRmlsZVNlcnZpY2UuY2FuUHJldmlld0FzSW1hZ2UodGhpcy52YWx1ZVRvU2hvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpLCAyMDApO1xyXG5cclxuICAgIGlmICghISF0aGlzLmFzc2lnblRvICYmICEhIXRoaXMucmVhZG9ubHkgJiYgaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICBDb3JlQXR0YWNobWVudENvbXBvbmVudCByZXF1aXJlZCBpbnB1dCAnYXNzaWduVG8nXHJcbiAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgISEhdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcclxuICAgICAgICAgIHRoaXMuZHJvcGRvd25IZWlnaHQgPSAwO1xyXG4gICAgICAgICAgdGhpcy5kcm9wZG93blBhZGRpbmcgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DbGlja1VwbG9hZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMuZHJvcGRvd25IZWlnaHQgPSAwO1xyXG4gICAgdGhpcy5kcm9wZG93blBhZGRpbmcgPSAwO1xyXG4gICAgdGhpcy5yYXdJbnB1dC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoJ2NsaWNrJykpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0Rvd25sb2FkKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLnVwbG9hZGVkRmlsZVNlcnZpY2UuY2FuUHJldmlld0FzSW1hZ2UodGhpcy52YWx1ZVRvU2hvdykpIHtcclxuXHJcbiAgICAgIHRoaXMuZHJvcGRvd25IZWlnaHQgPSB0aGlzLmRyb3Bkb3duSGVpZ2h0ID09PSAwID8gMjAwIDogMDtcclxuICAgICAgdGhpcy5kcm9wZG93blBhZGRpbmcgPSB0aGlzLmRyb3Bkb3duUGFkZGluZyA9PT0gMCA/IDE1IDogMDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgdXJpID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMICsgJy8nICsgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgKyAnL2F0dGFjaG1lbnRzLycgKyB0aGlzLnZhbHVlVG9TaG93XHJcbiAgICAgIGZldGNoKHVyaSlcclxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5ibG9iKCkpXHJcbiAgICAgICAgLnRoZW4oYmxvYiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgICBsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgICAgbGluay5kb3dubG9hZCA9IHRoaXMudmFsdWVUb1Nob3cuc3Vic3RyaW5nKDUyKTtcclxuICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChjb25zb2xlLmVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBpc1ByZXZpZXdhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJldmlld2FibGVcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Q2hhbmdlKGU6IGFueSkge1xyXG5cclxuICAgIGlmICghIWUudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBmaWxlID0gZS50YXJnZXQuZmlsZXNbMF07XHJcblxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gYXR0YWNobWVudE9wdGlvbnMubWF4RmlsZVNpemUpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgJHt0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQVRUQUNITUVOVF9NQVhJTVVNX0FUVEFDSE1FTlRfRklMRV9TSVpFX0VSUk9SKX0gKCR7YXR0YWNobWVudE9wdGlvbnMubWF4RmlsZVNpemV9IGJ5dGVzKWAsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcImZpbGVcIiwgZmlsZSlcclxuICAgICAgY29uc3QgY2xpZW50RmlsZU5hbWUgPSBmaWxlLm5hbWVcclxuICAgICAgY29uc3QgY2xpZW50RmlsZVR5cGUgPSBmaWxlLnR5cGVcclxuICAgICAgbGV0IGNsaWVudEZpbGVEYXRhID0gXCJcIlxyXG5cclxuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlXSk7XHJcbiAgICAgIGlmICh0eXBlb2YgV29ya2VyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHRoaXMud29ya2VyID0gbmV3IFdvcmtlcihibG9iX3RvX2Jhc2U2NF9zY3JpcHQpXHJcbiAgICAgICAgdGhpcy53b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZSA9PiB7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ3b3JrZXIgbWVzc2FnZVwiLCBlKVxyXG4gICAgICAgICAgY2xpZW50RmlsZURhdGEgPSBlLmRhdGFcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKGJsb2IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvcmVGaWxlVXRpbHMucHJvdG90eXBlLmJsb2JUb0Jhc2U2NChibG9iKS50aGVuKChjbGllbnRGaWxlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLmluZGV4T2YoJ2Jhc2U2NCwnKTtcclxuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuc3Vic3RyaW5nKGluZGV4ICsgNyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgICAgICAgYXNzaWduVG86IHRoaXMuYXNzaWduVG8sXHJcbiAgICAgICAgICAgIHNlcnZlckZpbGVOYW1lOiB0aGlzLnZhbHVlPy5zZXJ2ZXJGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVUeXBlLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IGNsaWVudEZpbGVOYW1lO1xyXG4gICAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWF0dGFjaG1lbnQtY29udGFpbmVyXCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJyYXdJbnB1dFwiICNyYXdJbnB1dCB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVRvU2hvd1wiIHJlYWRvbmx5IFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10by1zaG93XCIgW2FwcFRvb2x0aXBdPVwidmFsdWVUb1Nob3cgfCB1cGxvYWRlZEZpbGVuYW1lQ3V0b2ZmXCI+e3sgdmFsdWVUb1Nob3cgfFxyXG4gICAgICAgICAgICB1cGxvYWRlZEZpbGVuYW1lQ3V0b2ZmfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGlja1VwbG9hZCgpXCIgW2NsYXNzLm9wYWNpdHkwXT1cInJlYWRvbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItdXBsb2FkXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCEhdmFsdWVUb1Nob3cgJiYgISEhdG91Y2hlZCkge1xyXG4gICAgPGRpdiBjbGFzcz1cImRvd25sb2FkLWljb24td3JhcHBlclwiIChjbGljayk9XCJvbkNsaWNrRG93bmxvYWQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWRvd25sb2FkXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGRyb3Bkb3duSGVpZ2h0ICsgJ3B4JywgcGFkZGluZzogZHJvcGRvd25QYWRkaW5nICsgJ3B4JyB9XCI+XHJcbiAgICAgICAgQGlmIChwcmV2aWV3YWJsZSkge1xyXG4gICAgICAgIDxpbWcgW3NyY109XCJ2YWx1ZVRvU2hvdyB8IG1hcEF0dGFjaG1lbnRUb1NlcnZlclwiIGltYWdlRXJyb3JSZXNvbHZlciAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
@@ -114,7 +114,7 @@ export class CoreControlComponent extends BaseComponent {
114
114
  this.control.click$?.next(e);
115
115
  }
116
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreControlComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ '&nbsp;' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "itemHeight"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "options"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "click$", "getByIdObject$", "paramMode", "multiMode", "objectList$", "shownSeekerColumns", "excludeExistingList", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore"], outputs: ["onDoubleClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["readonly", "assignTo", "valueToShow"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "rangeLimit", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign"], outputs: ["onLeftFocus"] }] }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\"></i>\r\n }\r\n\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"TEXTBOX\") {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly!\" useValueAsDate>\r\n \r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n \r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n >\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [rangeLimit]=\"control.rangeLimit!\"></core-date-picker>\r\n }\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-dropdown>\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\"></core-month-selector>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ '&nbsp;' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "itemHeight"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "options"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "click$", "getByIdObject$", "paramMode", "multiMode", "objectList$", "shownSeekerColumns", "excludeExistingList", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore"], outputs: ["onDoubleClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "rangeLimit", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign"], outputs: ["onLeftFocus"] }] }); }
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreControlComponent, decorators: [{
120
120
  type: Component,
@@ -0,0 +1,32 @@
1
+ import { Component } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { CoreFormControlBaseComponent } from '../core-form-control-base/core-form-control-base.component';
4
+ import { NgStyle } from '@angular/common';
5
+ import { MapAvatarToServerPipe } from '../../app-pipes/map-avatar-to-server.pipe';
6
+ import { ImageErrorResolverDirective } from '../../directives/image-error-resolver.directive';
7
+ import * as i0 from "@angular/core";
8
+ export class CoreSeenByComponent extends CoreFormControlBaseComponent {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreSeenByComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreSeenByComponent, isStandalone: true, selector: "core-seen-by", providers: [
11
+ {
12
+ provide: NG_VALUE_ACCESSOR,
13
+ multi: true,
14
+ useExisting: CoreSeenByComponent
15
+ }
16
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"core-seen-by-container\">\n @if (value) {\n @for (item of value; track $index) {\n <div class=\"avatar-wrapper\" [ngStyle]=\"{\n zIndex: $index,\n left: (36 + 2) * $index + 'px'\n }\">\n <img [src]=\"item.avatar | mapAvatarToServer\" appImageErrorResolver>\n </div>\n }\n }\n</div>", styles: [".core-seen-by-container{display:block;position:relative;max-width:100%;overflow-x:auto;height:36px}.core-seen-by-container>.avatar-wrapper{display:block;position:absolute;width:36px;height:36px;border-radius:50%;top:0;cursor:pointer}.core-seen-by-container>.avatar-wrapper>img{width:36px;height:36px;border-radius:50%;transform:none!important}.core-seen-by-container>.avatar-wrapper>img :hover{transform:none!important}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: MapAvatarToServerPipe, name: "mapAvatarToServer" }, { kind: "directive", type: ImageErrorResolverDirective, selector: "[appImageErrorResolver]" }] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreSeenByComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'core-seen-by', standalone: true, imports: [
21
+ NgStyle,
22
+ MapAvatarToServerPipe,
23
+ ImageErrorResolverDirective
24
+ ], providers: [
25
+ {
26
+ provide: NG_VALUE_ACCESSOR,
27
+ multi: true,
28
+ useExisting: CoreSeenByComponent
29
+ }
30
+ ], template: "<div class=\"core-seen-by-container\">\n @if (value) {\n @for (item of value; track $index) {\n <div class=\"avatar-wrapper\" [ngStyle]=\"{\n zIndex: $index,\n left: (36 + 2) * $index + 'px'\n }\">\n <img [src]=\"item.avatar | mapAvatarToServer\" appImageErrorResolver>\n </div>\n }\n }\n</div>", styles: [".core-seen-by-container{display:block;position:relative;max-width:100%;overflow-x:auto;height:36px}.core-seen-by-container>.avatar-wrapper{display:block;position:absolute;width:36px;height:36px;border-radius:50%;top:0;cursor:pointer}.core-seen-by-container>.avatar-wrapper>img{width:36px;height:36px;border-radius:50%;transform:none!important}.core-seen-by-container>.avatar-wrapper>img :hover{transform:none!important}\n"] }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWVuLWJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNlZW4tYnkvY29yZS1zZWVuLWJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNlZW4tYnkvY29yZS1zZWVuLWJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQTRCOUYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDRCQUE0Qjs4R0FBeEQsbUJBQW1CO2tHQUFuQixtQkFBbUIsMkRBUm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztTQUNGLGlEQy9CSCxrVkFXTSwrZERRRixPQUFPLHNFQUNQLHFCQUFxQiwwREFDckIsMkJBQTJCOzsyRkFZbEIsbUJBQW1CO2tCQWxCL0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AscUJBQXFCO3dCQUNyQiwyQkFBMkI7cUJBQzVCLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxxQkFBcUI7eUJBQ2pDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlIH0gZnJvbSAnLi4vLi4vYXBwLXBpcGVzL21hcC1hdmF0YXItdG8tc2VydmVyLnBpcGUnO1xuaW1wb3J0IHsgSW1hZ2VFcnJvclJlc29sdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9pbWFnZS1lcnJvci1yZXNvbHZlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb3JlU2VlbkJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgdXNlckZ1bGxuYW1lPzogc3RyaW5nO1xuICBhdmF0YXI/OiBzdHJpbmc7XG4gIGxhc3RTZWVuT246IERhdGU7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcmUtc2Vlbi1ieScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1N0eWxlLFxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZSxcbiAgICBJbWFnZUVycm9yUmVzb2x2ZXJEaXJlY3RpdmVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtc2Vlbi1ieS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb3JlLXNlZW4tYnkuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVTZWVuQnlDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29yZVNlZW5CeUNvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgIHtcblxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlU2VlbkJ5W11cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvcmUtc2Vlbi1ieS1jb250YWluZXJcIj5cbiAgICBAaWYgKHZhbHVlKSB7XG4gICAgQGZvciAoaXRlbSBvZiB2YWx1ZTsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cImF2YXRhci13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xuICAgICAgICB6SW5kZXg6ICRpbmRleCxcbiAgICAgICAgbGVmdDogKDM2ICsgMikgKiAkaW5kZXggKyAncHgnXG4gICAgfVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5hdmF0YXIgfCBtYXBBdmF0YXJUb1NlcnZlclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gICAgfVxuPC9kaXY+Il19
@@ -16,5 +16,6 @@ export var EnumCoreTablePipeType;
16
16
  EnumCoreTablePipeType["LOWERCASE"] = "LOWERCASE";
17
17
  EnumCoreTablePipeType["UPPERCASE"] = "UPPERCASE";
18
18
  EnumCoreTablePipeType["NORMALIZE_HUMAN_NAME"] = "NORMALIZE_HUMAN_NAME";
19
+ EnumCoreTablePipeType["UPLOADED_FILENAME_CUT_OFF"] = "UPLOADED_FILENAME_CUT_OFF";
19
20
  })(EnumCoreTablePipeType || (EnumCoreTablePipeType = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bUNvcmVUYWJsZVBpcGVUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtdGFibGUvRW51bUNvcmVUYWJsZVBpcGVUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQWlCWDtBQWpCRCxXQUFZLHFCQUFxQjtJQUM3QixnREFBdUIsQ0FBQTtJQUN2QiwwREFBaUMsQ0FBQTtJQUNqQyxzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsZ0RBQXVCLENBQUE7SUFDdkIsZ0RBQXVCLENBQUE7SUFDdkIsZ0VBQXVDLENBQUE7SUFDdkMsMEVBQWlELENBQUE7SUFDakQsd0VBQStDLENBQUE7SUFDL0Msa0ZBQXlELENBQUE7SUFDekQsZ0RBQXVCLENBQUE7SUFDdkIsZ0RBQXVCLENBQUE7SUFDdkIsc0VBQTZDLENBQUE7QUFDakQsQ0FBQyxFQWpCVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBaUJoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1Db3JlVGFibGVQaXBlVHlwZSB7XHJcbiAgICBUUkFOU0xBVEUgPSAnVFJBTlNMQVRFJyxcclxuICAgIEJFQVVUSUZVTF9KU09OID0gJ0JFQVVUSUZVTF9KU09OJyxcclxuICAgIERBVEUgPSAnREFURScsXHJcbiAgICBOVU1CRVIgPSAnTlVNQkVSJyxcclxuICAgIERFQ0lNQUxfVE9fRklYXzIgPSAnREVDSU1BTF9UT19GSVhfMicsXHJcbiAgICBERUNJTUFMX1RPX0ZJWF8zID0gJ0RFQ0lNQUxfVE9fRklYXzMnLFxyXG4gICAgREVDSU1BTF9UT19GSVhfNSA9ICdERUNJTUFMX1RPX0ZJWF81JyxcclxuICAgIERBVEVfVElNRSA9ICdEQVRFX1RJTUUnLFxyXG4gICAgVElNRV9ISE1NID0gJ1RJTUVfSEhNTScsXHJcbiAgICBCT09MRUFOX1RPX1lFU19OTyA9ICdCT09MRUFOX1RPX1lFU19OTycsXHJcbiAgICBCT09MRUFOX1RPX0RPTkVfTk9UWUVUID0gJ0JPT0xFQU5fVE9fRE9ORV9OT1RZRVQnLFxyXG4gICAgQk9PTEVBTl9UT19UUlVFX0ZBTFNFID0gJ0JPT0xFQU5fVE9fVFJVRV9GQUxTRScsXHJcbiAgICBCT09MRUFOX1RPX0FDVElWRV9JTkFDVElWRSA9ICdCT09MRUFOX1RPX0FDVElWRV9JTkFDVElWRScsXHJcbiAgICBMT1dFUkNBU0UgPSAnTE9XRVJDQVNFJyxcclxuICAgIFVQUEVSQ0FTRSA9ICdVUFBFUkNBU0UnLFxyXG4gICAgTk9STUFMSVpFX0hVTUFOX05BTUUgPSAnTk9STUFMSVpFX0hVTUFOX05BTUUnLFxyXG59Il19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bUNvcmVUYWJsZVBpcGVUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtdGFibGUvRW51bUNvcmVUYWJsZVBpcGVUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQWtCWDtBQWxCRCxXQUFZLHFCQUFxQjtJQUM3QixnREFBdUIsQ0FBQTtJQUN2QiwwREFBaUMsQ0FBQTtJQUNqQyxzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsZ0RBQXVCLENBQUE7SUFDdkIsZ0RBQXVCLENBQUE7SUFDdkIsZ0VBQXVDLENBQUE7SUFDdkMsMEVBQWlELENBQUE7SUFDakQsd0VBQStDLENBQUE7SUFDL0Msa0ZBQXlELENBQUE7SUFDekQsZ0RBQXVCLENBQUE7SUFDdkIsZ0RBQXVCLENBQUE7SUFDdkIsc0VBQTZDLENBQUE7SUFDN0MsZ0ZBQXVELENBQUE7QUFDM0QsQ0FBQyxFQWxCVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBa0JoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1Db3JlVGFibGVQaXBlVHlwZSB7XHJcbiAgICBUUkFOU0xBVEUgPSAnVFJBTlNMQVRFJyxcclxuICAgIEJFQVVUSUZVTF9KU09OID0gJ0JFQVVUSUZVTF9KU09OJyxcclxuICAgIERBVEUgPSAnREFURScsXHJcbiAgICBOVU1CRVIgPSAnTlVNQkVSJyxcclxuICAgIERFQ0lNQUxfVE9fRklYXzIgPSAnREVDSU1BTF9UT19GSVhfMicsXHJcbiAgICBERUNJTUFMX1RPX0ZJWF8zID0gJ0RFQ0lNQUxfVE9fRklYXzMnLFxyXG4gICAgREVDSU1BTF9UT19GSVhfNSA9ICdERUNJTUFMX1RPX0ZJWF81JyxcclxuICAgIERBVEVfVElNRSA9ICdEQVRFX1RJTUUnLFxyXG4gICAgVElNRV9ISE1NID0gJ1RJTUVfSEhNTScsXHJcbiAgICBCT09MRUFOX1RPX1lFU19OTyA9ICdCT09MRUFOX1RPX1lFU19OTycsXHJcbiAgICBCT09MRUFOX1RPX0RPTkVfTk9UWUVUID0gJ0JPT0xFQU5fVE9fRE9ORV9OT1RZRVQnLFxyXG4gICAgQk9PTEVBTl9UT19UUlVFX0ZBTFNFID0gJ0JPT0xFQU5fVE9fVFJVRV9GQUxTRScsXHJcbiAgICBCT09MRUFOX1RPX0FDVElWRV9JTkFDVElWRSA9ICdCT09MRUFOX1RPX0FDVElWRV9JTkFDVElWRScsXHJcbiAgICBMT1dFUkNBU0UgPSAnTE9XRVJDQVNFJyxcclxuICAgIFVQUEVSQ0FTRSA9ICdVUFBFUkNBU0UnLFxyXG4gICAgTk9STUFMSVpFX0hVTUFOX05BTUUgPSAnTk9STUFMSVpFX0hVTUFOX05BTUUnLFxyXG4gICAgVVBMT0FERURfRklMRU5BTUVfQ1VUX09GRiA9ICdVUExPQURFRF9GSUxFTkFNRV9DVVRfT0ZGJyxcclxufSJdfQ==