ets-fe-ng-sdk 17.0.172 → 17.0.174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/Services/base.service.mjs +23 -1
- package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +90 -0
- package/esm2022/lib/Shared/components/table-input/table-input.component.mjs +28 -10
- package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.component.mjs +37 -0
- package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.service.mjs +22 -0
- package/esm2022/lib/Shared/pipes/utility.pipe.mjs +4 -3
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/ets-fe-ng-sdk.mjs +181 -12
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/base.service.d.ts +5 -0
- package/lib/Services/utility.service.d.ts +1 -1
- package/lib/Shared/components/file-upload/file-upload.component.d.ts +30 -0
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/page-template/page-template.component.d.ts +1 -1
- package/lib/Shared/components/table-input/table-input.component.d.ts +4 -2
- package/lib/Shared/components/text-area-modal/text-area-modal.component.d.ts +27 -0
- package/lib/Shared/components/text-area-modal/text-area-modal.service.d.ts +10 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -19,6 +19,28 @@ export class BaseService {
|
|
|
19
19
|
delete(path = '', query) {
|
|
20
20
|
return query ? this.apiS.deleteWithBody(this.formatRoute(this.baseURL + path), query) : this.apiS.delete(this.baseURL + path);
|
|
21
21
|
}
|
|
22
|
+
deleteWithBody(path, body) {
|
|
23
|
+
return this.apiS.deleteWithBody(this.formatRoute(this.baseURL + path || ''), body);
|
|
24
|
+
}
|
|
25
|
+
postFile(path, body) {
|
|
26
|
+
const formData = new FormData();
|
|
27
|
+
for (const key in body) {
|
|
28
|
+
if (Object.prototype.hasOwnProperty.call(body, key)) {
|
|
29
|
+
const element = body[key];
|
|
30
|
+
if (element instanceof File)
|
|
31
|
+
formData.append(key, element, element.name);
|
|
32
|
+
else
|
|
33
|
+
formData.append(key, element);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return this.apiS.postFile(this.formatRoute(this.baseURL + path || ''), formData);
|
|
37
|
+
}
|
|
38
|
+
postFileFD(path, body) {
|
|
39
|
+
return this.apiS.postFile(this.formatRoute(this.baseURL + path || ''), body);
|
|
40
|
+
}
|
|
41
|
+
putFileFD(path, body) {
|
|
42
|
+
return this.apiS.putFile(this.formatRoute(this.baseURL + path || ''), body);
|
|
43
|
+
}
|
|
22
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
45
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BaseService, providedIn: 'root' }); }
|
|
24
46
|
}
|
|
@@ -28,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
28
50
|
providedIn: 'root',
|
|
29
51
|
}]
|
|
30
52
|
}], ctorParameters: () => [] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NlcnZpY2VzL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sV0FBVztJQUd0QjtRQUZVLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQXNDdkIsZ0JBQVcsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQXJDbkYsQ0FBQztJQUVOLElBQUksQ0FBSSxJQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVTLEdBQUcsQ0FBSSxJQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVTLEdBQUcsQ0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQVc7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVTLE1BQU0sQ0FBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQVc7UUFDeEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBQ1MsY0FBYyxDQUFJLElBQWEsRUFBRSxJQUFVO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ1MsUUFBUSxDQUFJLElBQVksRUFBRSxJQUFvQjtRQUN0RCxNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLE9BQU8sWUFBWSxJQUFJO29CQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7O29CQUNwRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNwQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDUyxVQUFVLENBQUksSUFBWSxFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDUyxTQUFTLENBQUksSUFBWSxFQUFFLElBQWM7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OEdBdkNVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJT2JqZWN0TGl0ZXJhbCB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgYXBpUyA9IGluamVjdChBcGlTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGJhc2VVUkwgPSBgYDtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHByb3RlY3RlZCBwb3N0PFQ+KGRhdGE/OiBhbnksIHBhdGggPSAnJykge1xuICAgIHJldHVybiB0aGlzLmFwaVMucG9zdDxUPih0aGlzLmZvcm1hdFJvdXRlKHRoaXMuYmFzZVVSTCArIHBhdGgpLCBkYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwdXQ8VD4oZGF0YT86IGFueSwgcGF0aCA9ICcnKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpUy5wdXQ8VD4odGhpcy5mb3JtYXRSb3V0ZSh0aGlzLmJhc2VVUkwgKyBwYXRoKSwgZGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0PFQ+KHBhdGggPSAnJywgcXVlcnk/OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTLmdldDxUPih0aGlzLmZvcm1hdFJvdXRlKHRoaXMuYmFzZVVSTCArIHBhdGgpLCBxdWVyeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVsZXRlPFQ+KHBhdGggPSAnJywgcXVlcnk/OiBhbnkpIHtcbiAgICByZXR1cm4gcXVlcnkgPyB0aGlzLmFwaVMuZGVsZXRlV2l0aEJvZHk8VD4odGhpcy5mb3JtYXRSb3V0ZSh0aGlzLmJhc2VVUkwgKyBwYXRoKSwgcXVlcnkpIDogdGhpcy5hcGlTLmRlbGV0ZTxUPih0aGlzLmJhc2VVUkwgKyBwYXRoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZGVsZXRlV2l0aEJvZHk8VD4ocGF0aD86IHN0cmluZywgYm9keT86IGFueSkge1xuICAgIHJldHVybiB0aGlzLmFwaVMuZGVsZXRlV2l0aEJvZHkodGhpcy5mb3JtYXRSb3V0ZSh0aGlzLmJhc2VVUkwgKyBwYXRoIHx8ICcnKSwgYm9keSk7XG4gIH0gXG4gIHByb3RlY3RlZCBwb3N0RmlsZTxUPihwYXRoOiBzdHJpbmcsIGJvZHk6IElPYmplY3RMaXRlcmFsKSB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYm9keSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChib2R5LCBrZXkpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBib2R5W2tleV07XG4gICAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRmlsZSkgZm9ybURhdGEuYXBwZW5kKGtleSwgZWxlbWVudCwgZWxlbWVudC5uYW1lKTtcbiAgICAgICAgZWxzZSBmb3JtRGF0YS5hcHBlbmQoa2V5LCBlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBpUy5wb3N0RmlsZTxUPih0aGlzLmZvcm1hdFJvdXRlKHRoaXMuYmFzZVVSTCArIHBhdGggfHwgJycpLCBmb3JtRGF0YSk7XG4gIH1cbiAgcHJvdGVjdGVkIHBvc3RGaWxlRkQ8VD4ocGF0aDogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLmFwaVMucG9zdEZpbGU8VD4odGhpcy5mb3JtYXRSb3V0ZSh0aGlzLmJhc2VVUkwgKyBwYXRoIHx8ICcnKSwgYm9keSk7XG4gIH1cbiAgcHJvdGVjdGVkIHB1dEZpbGVGRDxUPihwYXRoOiBzdHJpbmcsIGJvZHk6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpUy5wdXRGaWxlPFQ+KHRoaXMuZm9ybWF0Um91dGUodGhpcy5iYXNlVVJMICsgcGF0aCB8fCAnJyksIGJvZHkpO1xuICB9XG4gIGZvcm1hdFJvdXRlID0gKHJvdXRlOiBzdHJpbmcpID0+IChyb3V0ZS5lbmRzV2l0aCgnLycpID8gcm91dGUuc2xpY2UoMCwgcm91dGUubGVuZ3RoIC0gMSkgOiByb3V0ZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject, input } from '@angular/core';
|
|
2
|
+
import { NgIf, NgClass, NgFor } from '@angular/common';
|
|
3
|
+
import { BtnComponent } from '../btn/btn.component';
|
|
4
|
+
import { UtilityService } from '../../../Services/utility.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FileUploadComponent {
|
|
7
|
+
set _accept(v) {
|
|
8
|
+
switch (v) {
|
|
9
|
+
case 'image':
|
|
10
|
+
this.accept = '.png,.jpg,.docx,.pdf';
|
|
11
|
+
break;
|
|
12
|
+
default:
|
|
13
|
+
this.accept = v;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
constructor() {
|
|
18
|
+
this.class = input();
|
|
19
|
+
this.mini = input(true);
|
|
20
|
+
this.listFiles = input(true);
|
|
21
|
+
this.fileChange = new EventEmitter();
|
|
22
|
+
this.filesChange = new EventEmitter();
|
|
23
|
+
this.uS = inject(UtilityService);
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() { }
|
|
26
|
+
get isSingle() {
|
|
27
|
+
return !this.multiple;
|
|
28
|
+
}
|
|
29
|
+
acceptFiles(...files) {
|
|
30
|
+
this.files = files;
|
|
31
|
+
this.file = files ? files[0] : null;
|
|
32
|
+
}
|
|
33
|
+
emitFiles() {
|
|
34
|
+
if (this.multiple)
|
|
35
|
+
this.filesChange.emit(this.files);
|
|
36
|
+
else
|
|
37
|
+
this.fileChange.emit(this.file);
|
|
38
|
+
}
|
|
39
|
+
onUpload(event) {
|
|
40
|
+
const files = Array.from(event.target.files);
|
|
41
|
+
this.acceptFiles(...files);
|
|
42
|
+
this.emitFiles();
|
|
43
|
+
}
|
|
44
|
+
removeFile(index) {
|
|
45
|
+
this.files.splice(index, 1);
|
|
46
|
+
this.file = this.files ? this.files[0] : null;
|
|
47
|
+
this.fileChange.emit(this.file);
|
|
48
|
+
this.filesChange.emit(this.files);
|
|
49
|
+
}
|
|
50
|
+
openDialog() {
|
|
51
|
+
const inp = document.createElement('input');
|
|
52
|
+
inp.type = 'file';
|
|
53
|
+
inp.accept = this.accept;
|
|
54
|
+
inp.multiple = this.multiple;
|
|
55
|
+
inp.onchange = (e) => {
|
|
56
|
+
this.onUpload(e);
|
|
57
|
+
inp.remove();
|
|
58
|
+
};
|
|
59
|
+
// document.body.appendChild(inp);
|
|
60
|
+
inp.click();
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: FileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { help: { classPropertyName: "help", publicName: "help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, useDocumentModal: { classPropertyName: "useDocumentModal", publicName: "useDocumentModal", isSignal: false, isRequired: false, transformFunction: null }, listFiles: { classPropertyName: "listFiles", publicName: "listFiles", isSignal: true, isRequired: false, transformFunction: null }, _accept: { classPropertyName: "_accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: false, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { fileChange: "fileChange", filesChange: "filesChange" }, ngImport: i0, template: "\n@if (listFiles()) {\n<div [ngClass]=\"{meta:mini()}\" class=\"{{class()}} form-label mb-2 hide-scroll\">\n @for (item of files; track item;) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{item?.name}}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index);\"></span>\n </div>\n </div>\n}\n</div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn icon=\"upload\" (mclick)=\"openDialog()\" [type]=\"file?'primary':'secondary'\"\n [disabled]=\"disabled\" [help]=\"help\" [text]=\"label\">\n\n</app-btn>", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }] }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'app-file-upload', standalone: true, imports: [NgIf, NgClass, NgFor, BtnComponent], template: "\n@if (listFiles()) {\n<div [ngClass]=\"{meta:mini()}\" class=\"{{class()}} form-label mb-2 hide-scroll\">\n @for (item of files; track item;) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{item?.name}}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index);\"></span>\n </div>\n </div>\n}\n</div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn icon=\"upload\" (mclick)=\"openDialog()\" [type]=\"file?'primary':'secondary'\"\n [disabled]=\"disabled\" [help]=\"help\" [text]=\"label\">\n\n</app-btn>", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"] }]
|
|
68
|
+
}], ctorParameters: () => [], propDecorators: { help: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], label: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], disabled: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], multiple: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], useDocumentModal: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], _accept: [{
|
|
79
|
+
type: Input,
|
|
80
|
+
args: ['accept']
|
|
81
|
+
}], file: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], fileChange: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], files: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], filesChange: [{
|
|
88
|
+
type: Output
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHN0gsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFTbkUsTUFBTSxPQUFPLG1CQUFtQjtJQVU5QixJQUFxQixPQUFPLENBQUMsQ0FBUztRQUNwQyxRQUFRLENBQUMsRUFBRTtZQUNULEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLHNCQUFzQixDQUFDO2dCQUNyQyxNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU07U0FDVDtJQUNILENBQUM7SUFTRDtRQTFCQSxVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFHeEIsU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQixjQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBZWQsZUFBVSxHQUFHLElBQUks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c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSURvY01ldGFkYXRhLCBJRmlsZV9NZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ0ZvciwgQnRuQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGhlbHA6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgY2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgbWluaSA9IGlucHV0KHRydWUpO1xuICBASW5wdXQoKSB1c2VEb2N1bWVudE1vZGFsOiBib29sZWFuO1xuICBsaXN0RmlsZXMgPSBpbnB1dCh0cnVlKTtcbiAgYWNjZXB0OiBzdHJpbmc7XG4gIEBJbnB1dCgnYWNjZXB0Jykgc2V0IF9hY2NlcHQodjogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIHRoaXMuYWNjZXB0ID0gJy5wbmcsLmpwZywuZG9jeCwucGRmJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuYWNjZXB0ID0gdjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vIEBWaWV3Q2hpbGQoJ3VwbG9hZElucHV0JykgdXBsb2FkSW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBJbnB1dCgpIGZpbGU6IEZpbGU7XG4gIEBPdXRwdXQoKSBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xuICBASW5wdXQoKSBmaWxlczogRmlsZVtdO1xuICBAT3V0cHV0KCkgZmlsZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcblxuICBwdWJsaWMgdVMgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0IGlzU2luZ2xlKCkge1xuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZTtcbiAgfVxuICBwcml2YXRlIGFjY2VwdEZpbGVzKC4uLmZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XG4gICAgdGhpcy5maWxlID0gZmlsZXMgPyBmaWxlc1swXSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBlbWl0RmlsZXMoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHRoaXMuZmlsZXNDaGFuZ2UuZW1pdCh0aGlzLmZpbGVzKTtcbiAgICBlbHNlIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMuZmlsZSk7XG4gIH1cblxuICBvblVwbG9hZChldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tPEZpbGU+KGV2ZW50LnRhcmdldC5maWxlcyk7XG4gICAgdGhpcy5hY2NlcHRGaWxlcyguLi5maWxlcyk7XG4gICAgdGhpcy5lbWl0RmlsZXMoKTtcbiAgfVxuXG4gIHJlbW92ZUZpbGUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmZpbGUgPSB0aGlzLmZpbGVzID8gdGhpcy5maWxlc1swXSA6IG51bGw7XG5cbiAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLmZpbGUpO1xuICAgIHRoaXMuZmlsZXNDaGFuZ2UuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuICBvcGVuRGlhbG9nKCkge1xuICAgIGNvbnN0IGlucCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgaW5wLnR5cGUgPSAnZmlsZSc7XG4gICAgaW5wLmFjY2VwdCA9IHRoaXMuYWNjZXB0O1xuICAgIGlucC5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgaW5wLm9uY2hhbmdlID0gKGUpID0+IHtcbiAgICAgIHRoaXMub25VcGxvYWQoZSk7XG4gICAgICBpbnAucmVtb3ZlKCk7XG4gICAgfTtcbiAgICAvLyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucCk7XG4gICAgaW5wLmNsaWNrKCk7XG4gIH1cbn1cbiIsIlxuQGlmIChsaXN0RmlsZXMoKSkge1xuPGRpdiBbbmdDbGFzc109XCJ7bWV0YTptaW5pKCl9XCIgY2xhc3M9XCJ7e2NsYXNzKCl9fSBmb3JtLWxhYmVsIG1iLTIgaGlkZS1zY3JvbGxcIj5cbiAgQGZvciAoaXRlbSBvZiBmaWxlczsgdHJhY2sgaXRlbTspIHtcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1zdGFydCBtYi0xXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGUtc2Nyb2xsIGZpbGUtbmFtZVwiPlxuICAgICAgICB7e2l0ZW0/Lm5hbWV9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHRleHQtZW5kXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHBvaW50ZXIgcC0xIGZhIGZhLWNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZUZpbGUoJGluZGV4KTtcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuPC9kaXY+XG59XG48IS0tIDxpbnB1dCB0eXBlPVwiZmlsZVwiICBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgYWNjZXB0PVwie3thY2NlcHR9fVwiIChjaGFuZ2UpPVwib25VcGxvYWQoJGV2ZW50KVwiICN1cGxvYWRJbnB1dCBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIj4gLS0+XG48YXBwLWJ0biBpY29uPVwidXBsb2FkXCIgKG1jbGljayk9XCJvcGVuRGlhbG9nKClcIiBbdHlwZV09XCJmaWxlPydwcmltYXJ5Jzonc2Vjb25kYXJ5J1wiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtoZWxwXT1cImhlbHBcIiBbdGV4dF09XCJsYWJlbFwiPlxuXG48L2FwcC1idG4+Il19
|
|
@@ -26,8 +26,6 @@ import * as i0 from "@angular/core";
|
|
|
26
26
|
export class TableInputComponent extends FormGeneratorComponent {
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments);
|
|
29
|
-
// @Input() pageType
|
|
30
|
-
this.formArray = input();
|
|
31
29
|
this.filterContainerClass = input();
|
|
32
30
|
this.border = input(true);
|
|
33
31
|
this.isShow = input();
|
|
@@ -40,15 +38,22 @@ export class TableInputComponent extends FormGeneratorComponent {
|
|
|
40
38
|
this.usePaginator = signal(true);
|
|
41
39
|
this.childrenFormSchemaMap = {};
|
|
42
40
|
this.filterFormValueSignal = toSignal(this.filterForm.valueChanges);
|
|
41
|
+
this.formArrayLengthSignal = signal(undefined);
|
|
43
42
|
this.filteredFormArray = computed(() => {
|
|
44
|
-
|
|
43
|
+
this.formArrayLengthSignal();
|
|
44
|
+
const formArray = this.formArray, filterFormValue = this.filterFormValueSignal();
|
|
45
45
|
const formGroups = formArray?.controls?.map((c, index) => ({ index, form: c }));
|
|
46
46
|
const filterObject = this.filterFormArrayGroupPipe.queryMapper(filterFormValue);
|
|
47
|
-
return
|
|
47
|
+
return filterObject
|
|
48
|
+
? formGroups.filter(({ form }) => this.filterFormArrayGroupPipe.filterFunc(filterObject)(form))
|
|
49
|
+
: formGroups;
|
|
48
50
|
});
|
|
49
51
|
this.paginatedAndFilteredFormArray = computed(() => {
|
|
50
52
|
const formArray = this.filteredFormArray(), pageState = this.pageState();
|
|
51
|
-
|
|
53
|
+
// debugger;
|
|
54
|
+
return this.usePaginator()
|
|
55
|
+
? this.paginatorPipe.transform(formArray, pageState?.pageSize || this.pageSize(), pageState?.pageIndex || 0)
|
|
56
|
+
: formArray;
|
|
52
57
|
});
|
|
53
58
|
this.filteredFormArrayLength = computed(() => this.filteredFormArray().length);
|
|
54
59
|
this.utilityService = inject(UtilityService);
|
|
@@ -75,6 +80,14 @@ export class TableInputComponent extends FormGeneratorComponent {
|
|
|
75
80
|
console.log(this.singleFormStructure);
|
|
76
81
|
};
|
|
77
82
|
}
|
|
83
|
+
// @Input() pageType
|
|
84
|
+
set _formArray(v) {
|
|
85
|
+
this.formArray = v;
|
|
86
|
+
if (v)
|
|
87
|
+
v.valueChanges.subscribe((r) => {
|
|
88
|
+
this.formArrayLengthSignal.set(v?.length);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
78
91
|
set _pageSize(v) {
|
|
79
92
|
this.pageSize.set(v);
|
|
80
93
|
}
|
|
@@ -156,10 +169,12 @@ export class TableInputComponent extends FormGeneratorComponent {
|
|
|
156
169
|
formSchemaStr: scheme.children.map((x) => x.field),
|
|
157
170
|
};
|
|
158
171
|
}
|
|
159
|
-
scheme.isRequired =
|
|
172
|
+
scheme.isRequired =
|
|
173
|
+
scheme.isRequired ||
|
|
174
|
+
this.singleFormStructure?.controls[scheme.field]?.hasValidator(Validators.required);
|
|
160
175
|
}
|
|
161
176
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TableInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: TableInputComponent, isStandalone: true, selector: "table-input", inputs: {
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: TableInputComponent, isStandalone: true, selector: "table-input", inputs: { _formArray: { classPropertyName: "_formArray", publicName: "formArray", isSignal: false, isRequired: false, transformFunction: null }, filterContainerClass: { classPropertyName: "filterContainerClass", publicName: "filterContainerClass", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, isShow: { classPropertyName: "isShow", publicName: "isShow", isSignal: true, isRequired: false, transformFunction: null }, _pageSize: { classPropertyName: "_pageSize", publicName: "pageSize", isSignal: false, isRequired: false, transformFunction: null }, actionBtns: { classPropertyName: "actionBtns", publicName: "actionBtns", isSignal: true, isRequired: false, transformFunction: null }, _formSchema: { classPropertyName: "_formSchema", publicName: "formSchema", isSignal: false, isRequired: true, transformFunction: null }, singleFormStructure: { classPropertyName: "singleFormStructure", publicName: "singleFormStructure", isSignal: false, isRequired: true, transformFunction: null }, deleteRowFunc: { classPropertyName: "deleteRowFunc", publicName: "deleteRowFunc", isSignal: false, isRequired: false, transformFunction: null }, addRowFunc: { classPropertyName: "addRowFunc", publicName: "addRowFunc", isSignal: false, isRequired: false, transformFunction: null }, _usePaginator: { classPropertyName: "_usePaginator", publicName: "usePaginator", isSignal: false, isRequired: false, transformFunction: null }, tableClass: { classPropertyName: "tableClass", publicName: "tableClass", isSignal: true, isRequired: false, transformFunction: null } }, providers: [FilterFormArrayGroupPipe, PaginatorPipe], viewQueries: [{ propertyName: "paginatorComponent", first: true, predicate: PaginatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"table-input\">\n @if (filterForms()?.length) {\n <div class=\"mb-3 {{ filterContainerClass() }}\">\n <div class=\"d-flex\">\n <app-btn\n text=\"{{ filterSection.hidden ? 'Show Filter' : 'Hide Filter' }}\"\n [icon]=\"filterSection.hidden ? 'search' : 'close'\"\n (mclick)=\"filterSection.hidden = !filterSection.hidden\" />\n </div>\n <div class=\"border p-3 mt-3 rounded-10\" #filterSection [hidden]=\"true\">\n <form-generator [form]=\"filterForm\" [formSchema]=\"filterForms()\" [gridLGStyle]=\"3\" [showSubmitBtn]=\"false\" (mchange)=\"resetPaginator()\" />\n <div class=\"d-flex justify-content-end\">\n <app-btn type=\"danger-outline\" text=\"Clear\" (mclick)=\"filterForm.reset()\" />\n </div>\n </div>\n </div>\n }\n\n <div class=\"bg-white\" [ngClass]=\"{ 'border rounded-10': border() }\">\n <div class=\" \">\n <table class=\" {{ tableClass() }} \" [ngClass]=\"{ 'is-show-form': isShow() }\">\n <thead (click)=\"utilityService.logForm(filteredFormArray())\">\n <tr class=\"text-center\">\n @for (item of formSchema(); track item.label) {\n <th class=\"{{ item.cls }}\">\n {{ item.label | appTranslate | async }}\n {{ item.isRequired ? '*' : '' }}\n </th>\n }\n @if (!isShow()) {\n <th></th>\n <th></th>\n @for (actionBtn of actionBtns(); track actionBtn) {\n <th></th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (subForm of paginatedAndFilteredFormArray(); track subForm; let i = $index) {\n <tr\n table-input-row\n (onAddRowFunc)=\"addRowClicked(subForm.index)\"\n [isShow]=\"isShow()\"\n [form]=\"subForm.form\"\n [actionBtns]=\"actionBtns()\"\n [formSchema]=\"formSchema()\"\n [childrenFormSchemaMap]=\"childrenFormSchemaMap\"\n (onDeleteRowFunc)=\"\n deleteRowClicked(subForm.index, subForm.form, {\n btn: $event?.btn\n })\n \"\n (onActionButtonClick)=\"handleActionButtonClick(subForm.index, subForm.form, $event)\"></tr>\n } @empty {\n <tr>\n <td class=\"text-center\" [colSpan]=\"formSchema()?.length\">\n {{ 'There are no items' | appTranslate | async }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"\" [hidden]=\"!usePaginator() || !filteredFormArrayLength() || filteredFormArrayLength() < pageSize()\">\n <paginator\n #paginatorTag\n [arrayLength]=\"filteredFormArrayLength()\"\n (pageChanged)=\"pageChanged($event)\"\n [pageSize]=\"pageSize()\"\n [resetIndexFunc]=\"filterForm.valueChanges\" />\n </div>\n </div>\n</div>\n", styles: ["tr{vertical-align:top}:host ::ng-deep .text-center input{text-align:center}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "component", type: FormGeneratorComponent, selector: "form-generator", inputs: ["keyField", "submitFunc", "submitBtnText", "submitBtnTemplate", "submitSuccessText", "showSubmitBtn", "gridStyle", "gridMDStyle", "gridLGStyle", "gridXXLStyle", "formGridClass", "useLoader", "loading", "form", "formSchema", "isShow"], outputs: ["onSubmit", "mchange", "submissionResponse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PaginatorComponent, selector: "paginator", inputs: ["pageSize", "pageIndex", "arrayLength", "resetIndexFunc", "pageSizeOptions"], outputs: ["pageChanged"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: TableInputRowComponent, selector: "tr[table-input-row]", inputs: ["isShow", "hideAdd", "actionBtns", "childrenFormSchemaMap"], outputs: ["onDeleteRowFunc", "onAddRowFunc", "onActionButtonClick"] }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }] }); }
|
|
163
178
|
}
|
|
164
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TableInputComponent, decorators: [{
|
|
165
180
|
type: Component,
|
|
@@ -195,8 +210,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
195
210
|
TranslatePipe,
|
|
196
211
|
FilterFormArrayGroupPipe,
|
|
197
212
|
ValidationMessageComponent,
|
|
198
|
-
], providers: [FilterFormArrayGroupPipe, PaginatorPipe], template: "<div class=\"table-input\">\n @if (filterForms()?.length) {\n <div class=\"mb-3 {{ filterContainerClass() }}\">\n <div class=\"d-flex\">\n <app-btn\n text=\"{{ filterSection.hidden ? 'Show Filter' : 'Hide Filter' }}\"\n [icon]=\"filterSection.hidden ? 'search' : 'close'\"\n (mclick)=\"filterSection.hidden = !filterSection.hidden\" />\n </div>\n <div class=\"border p-3 mt-3 rounded-10\" #filterSection [hidden]=\"true\">\n <form-generator [form]=\"filterForm\" [formSchema]=\"filterForms()\" [gridLGStyle]=\"3\" [showSubmitBtn]=\"false\" (mchange)=\"resetPaginator()\" />\n <div class=\"d-flex justify-content-end\">\n <app-btn type=\"danger-outline\" text=\"Clear\" (mclick)=\"filterForm.reset()\" />\n </div>\n </div>\n </div>\n }\n\n <div class=\"bg-white\" [ngClass]=\"{ 'border rounded-10': border() }\">\n <div class=\" \">\n <table class=\" {{ tableClass() }} \" [ngClass]=\"{ 'is-show-form': isShow() }\">\n <thead (click)=\"utilityService.logForm(filteredFormArray())\">\n <tr class=\"text-center\">\n @for (item of formSchema(); track item.label) {\n <th class=\"{{ item.cls }}\">\n {{ item.label | appTranslate | async }}\n {{ item.isRequired ? '*' : '' }}\n </th>\n }\n @if (!isShow()) {\n <th></th>\n <th></th>\n @for (actionBtn of actionBtns(); track actionBtn) {\n <th></th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (subForm of paginatedAndFilteredFormArray(); track subForm; let i = $index) {\n <tr\n table-input-row\n (onAddRowFunc)=\"addRowClicked(subForm.index)\"\n [isShow]=\"isShow()\"\n [form]=\"subForm.form\"\n [actionBtns]=\"actionBtns()\"\n [formSchema]=\"formSchema()\"\n [childrenFormSchemaMap]=\"childrenFormSchemaMap\"\n (onDeleteRowFunc)=\"\n deleteRowClicked(subForm.index, subForm.form, {\n btn: $event?.btn\n })\n \"\n (onActionButtonClick)=\"handleActionButtonClick(subForm.index, subForm.form, $event)\"></tr>\n } @empty {\n <tr>\n <td class=\"text-center\" [colSpan]=\"formSchema?.length\">\n {{ 'There are no items' | appTranslate | async }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"\" [hidden]=\"!usePaginator() || !filteredFormArrayLength() || filteredFormArrayLength() < pageSize()\">\n <paginator\n #paginatorTag\n [arrayLength]=\"filteredFormArrayLength()\"\n (pageChanged)=\"pageChanged($event)\"\n [pageSize]=\"pageSize()\"\n [resetIndexFunc]=\"filterForm.valueChanges\" />\n </div>\n </div>\n</div>\n", styles: ["tr{vertical-align:top}:host ::ng-deep .text-center input{text-align:center}\n"] }]
|
|
199
|
-
}], propDecorators: {
|
|
213
|
+
], providers: [FilterFormArrayGroupPipe, PaginatorPipe], template: "<div class=\"table-input\">\n @if (filterForms()?.length) {\n <div class=\"mb-3 {{ filterContainerClass() }}\">\n <div class=\"d-flex\">\n <app-btn\n text=\"{{ filterSection.hidden ? 'Show Filter' : 'Hide Filter' }}\"\n [icon]=\"filterSection.hidden ? 'search' : 'close'\"\n (mclick)=\"filterSection.hidden = !filterSection.hidden\" />\n </div>\n <div class=\"border p-3 mt-3 rounded-10\" #filterSection [hidden]=\"true\">\n <form-generator [form]=\"filterForm\" [formSchema]=\"filterForms()\" [gridLGStyle]=\"3\" [showSubmitBtn]=\"false\" (mchange)=\"resetPaginator()\" />\n <div class=\"d-flex justify-content-end\">\n <app-btn type=\"danger-outline\" text=\"Clear\" (mclick)=\"filterForm.reset()\" />\n </div>\n </div>\n </div>\n }\n\n <div class=\"bg-white\" [ngClass]=\"{ 'border rounded-10': border() }\">\n <div class=\" \">\n <table class=\" {{ tableClass() }} \" [ngClass]=\"{ 'is-show-form': isShow() }\">\n <thead (click)=\"utilityService.logForm(filteredFormArray())\">\n <tr class=\"text-center\">\n @for (item of formSchema(); track item.label) {\n <th class=\"{{ item.cls }}\">\n {{ item.label | appTranslate | async }}\n {{ item.isRequired ? '*' : '' }}\n </th>\n }\n @if (!isShow()) {\n <th></th>\n <th></th>\n @for (actionBtn of actionBtns(); track actionBtn) {\n <th></th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (subForm of paginatedAndFilteredFormArray(); track subForm; let i = $index) {\n <tr\n table-input-row\n (onAddRowFunc)=\"addRowClicked(subForm.index)\"\n [isShow]=\"isShow()\"\n [form]=\"subForm.form\"\n [actionBtns]=\"actionBtns()\"\n [formSchema]=\"formSchema()\"\n [childrenFormSchemaMap]=\"childrenFormSchemaMap\"\n (onDeleteRowFunc)=\"\n deleteRowClicked(subForm.index, subForm.form, {\n btn: $event?.btn\n })\n \"\n (onActionButtonClick)=\"handleActionButtonClick(subForm.index, subForm.form, $event)\"></tr>\n } @empty {\n <tr>\n <td class=\"text-center\" [colSpan]=\"formSchema()?.length\">\n {{ 'There are no items' | appTranslate | async }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"\" [hidden]=\"!usePaginator() || !filteredFormArrayLength() || filteredFormArrayLength() < pageSize()\">\n <paginator\n #paginatorTag\n [arrayLength]=\"filteredFormArrayLength()\"\n (pageChanged)=\"pageChanged($event)\"\n [pageSize]=\"pageSize()\"\n [resetIndexFunc]=\"filterForm.valueChanges\" />\n </div>\n </div>\n</div>\n", styles: ["tr{vertical-align:top}:host ::ng-deep .text-center input{text-align:center}\n"] }]
|
|
214
|
+
}], propDecorators: { _formArray: [{
|
|
215
|
+
type: Input,
|
|
216
|
+
args: ['formArray']
|
|
217
|
+
}], _pageSize: [{
|
|
200
218
|
type: Input,
|
|
201
219
|
args: ['pageSize']
|
|
202
220
|
}], _formSchema: [{
|
|
@@ -216,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
216
234
|
type: ViewChild,
|
|
217
235
|
args: [PaginatorComponent]
|
|
218
236
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLWlucHV0L3RhYmxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1pbnB1dC90YWJsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBOEIsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUs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LEtBQUs7dUJBQUMsVUFBVTtnQkFNNEMsV0FBVztzQkFBdkUsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFLOUMsbUJBQW1CO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLaEIsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNxQixhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGNBQWM7Z0JBdUJVLGtCQUFrQjtzQkFBaEQsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUZvcm1TY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgRmlsdGVyRm9ybUFycmF5R3JvdXBQaXBlLCBGb3JtVmFsdWVQaXBlLCBGdW5jdGlvbkNhbGxlcjIsIEhhc0Zvcm1WYWx1ZVBpcGUsIFRvQW55UGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5cbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0QmFzaWNDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFzeW5jUGlwZSwgSnNvblBpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBUYWJsZUlucHV0Um93Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1pbnB1dC1yb3cvdGFibGUtaW5wdXQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUJ0biB9IGZyb20gJy4uL2J0bi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFBhZ2luYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9wYWdpbmF0b3IucGlwZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBUYWJsZSBJbnB1dCBDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgRmlsdGVyRm9ybUFycmF5R3JvdXBQaXBlLFxuICAgIEZvcm1HZW5lcmF0b3JDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRm9ybVZhbHVlUGlwZSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgSGFzRm9ybVZhbHVlUGlwZSxcbiAgICBJbnB1dEJhc2ljQ29tcG9uZW50LFxuICAgIEpzb25QaXBlLFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgTmdGb3IsXG4gICAgTmdJZixcbiAgICBOZ1N3aXRjaCxcbiAgICBOZ1N3aXRjaENhc2UsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIFBhZ2luYXRvckNvbXBvbmVudCxcbiAgICBQYWdpbmF0b3JQaXBlLFxuICAgIFBob25lTnVtYmVyQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGFibGVJbnB1dFJvd0NvbXBvbmVudCxcbiAgICBUb0FueVBpcGUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBGaWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0ZpbHRlckZvcm1BcnJheUdyb3VwUGlwZSwgUGFnaW5hdG9yUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSW5wdXRDb21wb25lbnQ8XG4gICAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICAgIH0gPSBhbnksXG4gID5cbiAgZXh0ZW5kcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXA+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIC8vIEBJbnB1dCgpIHBhZ2VUeXBlXG4gIGZvcm1BcnJheSA9IGlucHV0PEZvcm1BcnJheTxGb3JtR3JvdXA8VEZvcm1Hcm91cD4+PigpO1xuICBmaWx0ZXJDb250YWluZXJDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgYm9yZGVyID0gaW5wdXQodHJ1ZSk7XG4gIGlzU2hvdyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgncGFnZVNpemUnKSBzZXQgX3BhZ2VTaXplKHY6IG51bWJlcikge1xuICAgIHRoaXMucGFnZVNpemUuc2V0KHYpO1xuICB9XG4gIHBhZ2VTaXplID0gc2lnbmFsPG51bWJlcj4oMTApO1xuICBwYWdlU3RhdGUgPSBzaWduYWw8eyBwYWdlSW5kZXg6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9PihudWxsKTtcbiAgYWN0aW9uQnRucyA9IGlucHV0PElUYWJsZUlucHV0QnRuW10+KCk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm1TY2hlbWEnIH0pIG92ZXJyaWRlIHNldCBfZm9ybVNjaGVtYSh2OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgdGhpcy5wcmVGb3JtYXRGb3JtU2NoZW1hKHYpO1xuICAgIHN1cGVyLl9mb3JtU2NoZW1hID0gdjtcbiAgfVxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBzaW5nbGVGb3JtU3RydWN0dXJlOiBGb3JtR3JvdXA8VEZvcm1Hcm91cD47XG4gIC8qKlxuICAgKiBMZWF2ZSBlbXB0eSBpZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGVsZXRlIGJ1dHRvbiB0byBzaG93XG4gICAqL1xuICBASW5wdXQoKSBkZWxldGVSb3dGdW5jOiAoaW5kZXg6IG51bWJlciwgZGF0YT86IEZvcm1Hcm91cDxURm9ybUdyb3VwPlsndmFsdWUnXSwgY29uZmlnPzogeyBidG46IEJ0bkNvbXBvbmVudCB9KSA9PiBhbnk7XG4gIC8qKlxuICAgKiBMZWF2ZSBlbXB0eSBpZiB5b3UgZG9uJ3Qgd2FudCB0aGUgYWRkIGJ1dHRvbiB0byBzaG93XG4gICAqL1xuICBASW5wdXQoKSBhZGRSb3dGdW5jOiAoaW5kZXg6IG51bWJlciwgZGF0YT86IEZvcm1Hcm91cDxURm9ybUdyb3VwPlsndmFsdWUnXSkgPT4gYW55O1xuICBASW5wdXQoJ3VzZVBhZ2luYXRvcicpIHNldCBfdXNlUGFnaW5hdG9yKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy51c2VQYWdpbmF0b3Iuc2V0KHRydWUpO1xuICAgICAgdGhpcy5wYWdlU2l6ZS51cGRhdGUoKHBhZ2VTaXplKSA9PiBwYWdlU2l6ZSB8fCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlUGFnaW5hdG9yLnNldChmYWxzZSk7XG4gICAgICB0aGlzLnBhZ2VTaXplID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlQ2xhc3MgPSBpbnB1dDwndGFibGUgdGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1yZXNwb25zaXZlIHRhYmxlLWJvcmRlcmxlc3MnPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwcm90ZWN0ZWQgZmlsdGVyRm9ybXMgPSBzaWduYWw8SUZvcm1TY2hlbWFbXT4oW10pO1xuICBwcm90ZWN0ZWQgdXNlUGFnaW5hdG9yID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuICBwcm90ZWN0ZWQgY2hpbGRyZW5Gb3JtU2NoZW1hTWFwOiB7XG4gICAgW2sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiB7XG4gICAgICBmb3JtU2NoZW1hOiBJRm9ybVNjaGVtYVtdO1xuICAgICAgZm9ybVNjaGVtYVN0cjogc3RyaW5nW107XG4gICAgfTtcbiAgfSA9IHt9O1xuICByZWZyZXNoZXI6IG51bWJlcjtcbiAgZm9ybUFycmF5UGFnaW5hdGlvblN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGQoUGFnaW5hdG9yQ29tcG9uZW50KSBwYWdpbmF0b3JDb21wb25lbnQ6IFBhZ2luYXRvckNvbXBvbmVudDtcblxuICBmaWx0ZXJGb3JtVmFsdWVTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmZpbHRlckZvcm0udmFsdWVDaGFuZ2VzKTtcblxuICBmaWx0ZXJlZEZvcm1BcnJheSA9IGNvbXB1dGVkPHsgZm9ybTogRm9ybUdyb3VwPFRGb3JtR3JvdXA+OyBpbmRleDogbnVtYmVyIH1bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybUFycmF5KCksXG4gICAgICBmaWx0ZXJGb3JtVmFsdWUgPSB0aGlzLmZpbHRlckZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBjb25zdCBmb3JtR3JvdXBzID0gZm9ybUFycmF5Py5jb250cm9scz8ubWFwKChjLCBpbmRleCkgPT4gKHsgaW5kZXgsIGZvcm06IGMgfSkpO1xuICAgIGNvbnN0IGZpbHRlck9iamVjdCA9IHRoaXMuZmlsdGVyRm9ybUFycmF5R3JvdXBQaXBlLnF1ZXJ5TWFwcGVyKGZpbHRlckZvcm1WYWx1ZSk7XG4gICAgcmV0dXJuIGZvcm1Hcm91cHMuZmlsdGVyKCh7IGZvcm0gfSkgPT4gdGhpcy5maWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUuZmlsdGVyRnVuYyhmaWx0ZXJPYmplY3QpKGZvcm0pKTtcbiAgfSk7XG4gIHBhZ2luYXRlZEFuZEZpbHRlcmVkRm9ybUFycmF5ID0gY29tcHV0ZWQ8eyBmb3JtOiBGb3JtR3JvdXA8VEZvcm1Hcm91cD47IGluZGV4OiBudW1iZXIgfVtdPigoKSA9PiB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5maWx0ZXJlZEZvcm1BcnJheSgpLFxuICAgICAgcGFnZVN0YXRlID0gdGhpcy5wYWdlU3RhdGUoKTtcbiAgICByZXR1cm4gdGhpcy51c2VQYWdpbmF0b3IoKSA/IHRoaXMucGFnaW5hdG9yUGlwZS50cmFuc2Zvcm0oZm9ybUFycmF5LCBwYWdlU3RhdGUucGFnZVNpemUsIHBhZ2VTdGF0ZS5wYWdlSW5kZXgpIDogZm9ybUFycmF5O1xuICB9KTtcblxuICBmaWx0ZXJlZEZvcm1BcnJheUxlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmlsdGVyZWRGb3JtQXJyYXkoKS5sZW5ndGgpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSB1dGlsaXR5U2VydmljZSA9IGluamVjdChVdGlsaXR5U2VydmljZSk7XG4gIHB1YmxpYyBmaWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUgPSBpbmplY3QoRmlsdGVyRm9ybUFycmF5R3JvdXBQaXBlKTtcbiAgcHVibGljIHBhZ2luYXRvclBpcGUgPSBpbmplY3QoUGFnaW5hdG9yUGlwZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXNlUGFnaW5hdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fdXNlUGFnaW5hdG9yID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoZXIgPSBNYXRoLnJhbmRvbSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xuICAgIHRoaXMuZm9ybUFycmF5UGFnaW5hdGlvblN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICByZXR1cm4gc3VwZXIub25EZXN0cm95KCk7XG4gIH1cblxuICBwYWdlQ2hhbmdlZCgkZXZlbnQ6IHsgcGFnZUluZGV4OiBudW1iZXI7IHBhZ2VTaXplOiBudW1iZXIgfSkge1xuICAgIHRoaXMucGFnZVN0YXRlLnNldCgkZXZlbnQpO1xuICB9XG5cbiAgcmVzZXRQYWdpbmF0b3IoKSB7XG4gICAgdGhpcy5wYWdpbmF0b3JDb21wb25lbnQ/LnJlc2V0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlRm9ybWF0Rm9ybVNjaGVtYSA9IChpdGVtczogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXSkgPT4ge1xuICAgIGl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgIGlmICh4Lm9uQ2hhbmdlRnVuYykgeC50cmlnZ2VyT25DaGFuZ2VPbkluaXQgPSB0cnVlO1xuICAgICAgZWxzZSBpZiAoeC50eXBlID09ICdidXR0b24nKSB0aGlzLnByZUZvcm1hdEZvcm1TY2hlbWEoeC5jaGlsZHJlbik7XG4gICAgfSk7XG4gIH07XG5cbiAgb3ZlcnJpZGUgaW5pdChzY2hlbWE6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckZvcm1zLnNldChbXSk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5maWx0ZXJGb3JtLmNvbnRyb2xzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuZmlsdGVyRm9ybS5jb250cm9scywga2V5KSkge1xuICAgICAgICB0aGlzLmZpbHRlckZvcm0ucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIGlmIChzY2hlbWEpXG4gICAgICBmb3IgKGNvbnN0IHNjaGVtZSBvZiBzY2hlbWEpIHtcbiAgICAgICAgLy8gc2NoZW1lLmZvcm0gPSB0aGlzLmZvcm0gfHwgc2NoZW1lLmZvcm07XG4gICAgICAgIHRoaXMuaGFuZGxlRm9ybVNjaGVtZShzY2hlbWUpO1xuICAgICAgfVxuICAgIHRoaXMuX3NldEZvcm1TY2hlbWFzKHNjaGVtYSk7XG4gIH1cblxuICBoYW5kbGVBY3Rpb25CdXR0b25DbGljayhpbmRleDogbnVtYmVyLCBmb3JtOiBGb3JtR3JvdXA8VEZvcm1Hcm91cD4sIGU6IHsgYnRuPzogQnRuQ29tcG9uZW50OyBhY3Rpb25CdXR0b246IElUYWJsZUlucHV0QnRuIH0pIHtcbiAgICBlLmFjdGlvbkJ1dHRvbi5hY3Rpb24oeyBpbmRleCwgZm9ybSwgYnRuOiBlLmJ0biB9KTtcbiAgICAvLyB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGRlbGV0ZVJvd0NsaWNrZWQgPSAoaW5kZXg6IG51bWJlciwgcm93Rm9ybTogRm9ybUdyb3VwPFRGb3JtR3JvdXA+LCBjb25maWc/OiB7IGJ0bjogQnRuQ29tcG9uZW50IH0pID0+IHtcbiAgICB0aGlzLmRlbGV0ZVJvd0Z1bmMoaW5kZXgsIHJvd0Zvcm0/LmdldFJhd1ZhbHVlKCksIGNvbmZpZyk7XG4gICAgLy8gdGhpcy5yZWZyZXNoKCk7XG4gIH07XG5cbiAgYWRkUm93Q2xpY2tlZCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5hZGRSb3dGdW5jKGluZGV4ICsgMSwgdGhpcy5maWx0ZXJGb3JtVmFsdWVTaWduYWwoKSk7XG4gICAgLy8gdGhpcy5yZWZyZXNoKCk7XG4gICAgLy8gdGhpcy5maWx0ZXJGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfTtcblxuICBjaGVja1JlcXVpcmVkRmllbGRzID0gKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2luZ2xlRm9ybVN0cnVjdHVyZSk7XG4gIH07XG5cbiAgb3ZlcnJpZGUgaGFuZGxlRm9ybVNjaGVtZShzY2hlbWU6IElGb3JtU2NoZW1hKSB7XG4gICAgc2NoZW1lLmlkID0gdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKTtcbiAgICBpZiAoc2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCA9PSBudWxsICYmICghc2NoZW1lLnZhbHVlRmllbGQgfHwgIXNjaGVtZS5sYWJlbEZpZWxkKSkgc2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCA9IHRydWU7XG5cbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYykge1xuICAgICAgc2NoZW1lLm9wdGlvbnNJbml0RnVuYy5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgICAvLyB0aGlzLm9wdGlvbnNNYXBbc2NoZW1lLmZpZWxkXSA9IHI7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHNjaGVtZS5pc1NlYXJjaEZpZWxkKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm1zLnVwZGF0ZSgoZmlsdGVyRm9ybXMpID0+IGZpbHRlckZvcm1zLmNvbmNhdChbc2NoZW1lXSkpO1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woc2NoZW1lLmZpZWxkPy50b1N0cmluZygpLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgfSBlbHNlIGlmIChzY2hlbWUudHlwZSA9PSAnYnV0dG9uJykge1xuICAgICAgaWYgKHNjaGVtZS5jaGlsZHJlbj8ubGVuZ3RoKVxuICAgICAgICB0aGlzLmNoaWxkcmVuRm9ybVNjaGVtYU1hcFtzY2hlbWUuZmllbGQgYXMgc3RyaW5nXSA9IHtcbiAgICAgICAgICBmb3JtU2NoZW1hOiBzY2hlbWUuY2hpbGRyZW4sXG4gICAgICAgICAgZm9ybVNjaGVtYVN0cjogc2NoZW1lLmNoaWxkcmVuLm1hcCgoeCkgPT4geC5maWVsZCBhcyBzdHJpbmcpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBzY2hlbWUuaXNSZXF1aXJlZCA9IHNjaGVtZS5pc1JlcXVpcmVkIHx8ICg8Rm9ybUdyb3VwPnRoaXMuc2luZ2xlRm9ybVN0cnVjdHVyZT8uY29udHJvbHNbc2NoZW1lLmZpZWxkXSk/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUlucHV0QnRuIGV4dGVuZHMgSUJ0biB7XG4gIGFjdGlvbj86IChhcmc/OiB7IGluZGV4OiBudW1iZXI7IGZvcm06IEZvcm1Hcm91cDsgYnRuOiBCdG5Db21wb25lbnQgfSkgPT4gdm9pZDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZS1pbnB1dFwiPlxuICBAaWYgKGZpbHRlckZvcm1zKCk/Lmxlbmd0aCkge1xuICAgIDxkaXYgY2xhc3M9XCJtYi0zIHt7IGZpbHRlckNvbnRhaW5lckNsYXNzKCkgfX1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgPGFwcC1idG5cbiAgICAgICAgICB0ZXh0PVwie3sgZmlsdGVyU2VjdGlvbi5oaWRkZW4gPyAnU2hvdyBGaWx0ZXInIDogJ0hpZGUgRmlsdGVyJyB9fVwiXG4gICAgICAgICAgW2ljb25dPVwiZmlsdGVyU2VjdGlvbi5oaWRkZW4gPyAnc2VhcmNoJyA6ICdjbG9zZSdcIlxuICAgICAgICAgIChtY2xpY2spPVwiZmlsdGVyU2VjdGlvbi5oaWRkZW4gPSAhZmlsdGVyU2VjdGlvbi5oaWRkZW5cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHAtMyBtdC0zIHJvdW5kZWQtMTBcIiAjZmlsdGVyU2VjdGlvbiBbaGlkZGVuXT1cInRydWVcIj5cbiAgICAgICAgPGZvcm0tZ2VuZXJhdG9yIFtmb3JtXT1cImZpbHRlckZvcm1cIiBbZm9ybVNjaGVtYV09XCJmaWx0ZXJGb3JtcygpXCIgW2dyaWRMR1N0eWxlXT1cIjNcIiBbc2hvd1N1Ym1pdEJ0bl09XCJmYWxzZVwiIChtY2hhbmdlKT1cInJlc2V0UGFnaW5hdG9yKClcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICA8YXBwLWJ0biB0eXBlPVwiZGFuZ2VyLW91dGxpbmVcIiB0ZXh0PVwiQ2xlYXJcIiAobWNsaWNrKT1cImZpbHRlckZvcm0ucmVzZXQoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiYmctd2hpdGVcIiBbbmdDbGFzc109XCJ7ICdib3JkZXIgcm91bmRlZC0xMCc6IGJvcmRlcigpIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiIFwiPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiIHt7IHRhYmxlQ2xhc3MoKSB9fSBcIiBbbmdDbGFzc109XCJ7ICdpcy1zaG93LWZvcm0nOiBpc1Nob3coKSB9XCI+XG4gICAgICAgIDx0aGVhZCAoY2xpY2spPVwidXRpbGl0eVNlcnZpY2UubG9nRm9ybShmaWx0ZXJlZEZvcm1BcnJheSgpKVwiPlxuICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZvcm1TY2hlbWEoKTsgdHJhY2sgaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ7eyBpdGVtLmNscyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXNSZXF1aXJlZCA/ICcqJyA6ICcnIH19XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc1Nob3coKSkge1xuICAgICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICAgIEBmb3IgKGFjdGlvbkJ0biBvZiBhY3Rpb25CdG5zKCk7IHRyYWNrIGFjdGlvbkJ0bikge1xuICAgICAgICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIEBmb3IgKHN1YkZvcm0gb2YgcGFnaW5hdGVkQW5kRmlsdGVyZWRGb3JtQXJyYXkoKTsgdHJhY2sgc3ViRm9ybTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICB0YWJsZS1pbnB1dC1yb3dcbiAgICAgICAgICAgICAgKG9uQWRkUm93RnVuYyk9XCJhZGRSb3dDbGlja2VkKHN1YkZvcm0uaW5kZXgpXCJcbiAgICAgICAgICAgICAgW2lzU2hvd109XCJpc1Nob3coKVwiXG4gICAgICAgICAgICAgIFtmb3JtXT1cInN1YkZvcm0uZm9ybVwiXG4gICAgICAgICAgICAgIFthY3Rpb25CdG5zXT1cImFjdGlvbkJ0bnMoKVwiXG4gICAgICAgICAgICAgIFtmb3JtU2NoZW1hXT1cImZvcm1TY2hlbWEoKVwiXG4gICAgICAgICAgICAgIFtjaGlsZHJlbkZvcm1TY2hlbWFNYXBdPVwiY2hpbGRyZW5Gb3JtU2NoZW1hTWFwXCJcbiAgICAgICAgICAgICAgKG9uRGVsZXRlUm93RnVuYyk9XCJcbiAgICAgICAgICAgICAgICBkZWxldGVSb3dDbGlja2VkKHN1YkZvcm0uaW5kZXgsIHN1YkZvcm0uZm9ybSwge1xuICAgICAgICAgICAgICAgICAgYnRuOiAkZXZlbnQ/LmJ0blxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChvbkFjdGlvbkJ1dHRvbkNsaWNrKT1cImhhbmRsZUFjdGlvbkJ1dHRvbkNsaWNrKHN1YkZvcm0uaW5kZXgsIHN1YkZvcm0uZm9ybSwgJGV2ZW50KVwiPjwvdHI+XG4gICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtjb2xTcGFuXT1cImZvcm1TY2hlbWE/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIHt7ICdUaGVyZSBhcmUgbm8gaXRlbXMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJcIiBbaGlkZGVuXT1cIiF1c2VQYWdpbmF0b3IoKSB8fCAhZmlsdGVyZWRGb3JtQXJyYXlMZW5ndGgoKSB8fCBmaWx0ZXJlZEZvcm1BcnJheUxlbmd0aCgpIDwgcGFnZVNpemUoKVwiPlxuICAgICAgPHBhZ2luYXRvclxuICAgICAgICAjcGFnaW5hdG9yVGFnXG4gICAgICAgIFthcnJheUxlbmd0aF09XCJmaWx0ZXJlZEZvcm1BcnJheUxlbmd0aCgpXCJcbiAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cInBhZ2VDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemUoKVwiXG4gICAgICAgIFtyZXNldEluZGV4RnVuY109XCJmaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlc1wiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLWlucHV0L3RhYmxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1pbnB1dC90YWJsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBOEIsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUs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Q1gsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3FCQUMzQixhQUdVLENBQUMsd0JBQXdCLEVBQUUsYUFBYSxDQUFDOzhCQVk1QixVQUFVO3NCQUFqQyxLQUFLO3VCQUFDLFdBQVc7Z0JBVUssU0FBUztzQkFBL0IsS0FBSzt1QkFBQyxVQUFVO2dCQU00QyxXQUFXO3NCQUF2RSxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUs5QyxtQkFBbUI7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUtoQixhQUFhO3NCQUFyQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ3FCLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsY0FBYztnQkF1QlUsa0JBQWtCO3NCQUFoRCxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUsIEZvcm1WYWx1ZVBpcGUsIEZ1bmN0aW9uQ2FsbGVyMiwgSGFzRm9ybVZhbHVlUGlwZSwgVG9BbnlQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcblxuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L3ZhbGlkYXRpb24tbWVzc2FnZS92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBKc29uUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFRhYmxlSW5wdXRSb3dDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWlucHV0LXJvdy90YWJsZS1pbnB1dC1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJQnRuIH0gZnJvbSAnLi4vYnRuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgUGFnaW5hdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3BhZ2luYXRvci5waXBlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIFRhYmxlIElucHV0IENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJsZS1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBGaWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUsXG4gICAgRm9ybUdlbmVyYXRvckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGb3JtVmFsdWVQaXBlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBIYXNGb3JtVmFsdWVQaXBlLFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgSnNvblBpcGUsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBOZ0ZvcixcbiAgICBOZ0lmLFxuICAgIE5nU3dpdGNoLFxuICAgIE5nU3dpdGNoQ2FzZSxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgUGFnaW5hdG9yQ29tcG9uZW50LFxuICAgIFBhZ2luYXRvclBpcGUsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUYWJsZUlucHV0Um93Q29tcG9uZW50LFxuICAgIFRvQW55UGlwZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEZpbHRlckZvcm1BcnJheUdyb3VwUGlwZSxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRmlsdGVyRm9ybUFycmF5R3JvdXBQaXBlLCBQYWdpbmF0b3JQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVJbnB1dENvbXBvbmVudDxcbiAgICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gICAgfSA9IGFueSxcbiAgPlxuICBleHRlbmRzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgZm9ybUFycmF5OiBGb3JtQXJyYXk8Rm9ybUdyb3VwPFRGb3JtR3JvdXA+PjtcbiAgLy8gQElucHV0KCkgcGFnZVR5cGVcbiAgQElucHV0KCdmb3JtQXJyYXknKSBzZXQgX2Zvcm1BcnJheSh2OiBGb3JtQXJyYXk8Rm9ybUdyb3VwPFRGb3JtR3JvdXA+Pikge1xuICAgIHRoaXMuZm9ybUFycmF5ID0gdjtcbiAgICBpZiAodilcbiAgICAgIHYudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgICB0aGlzLmZvcm1BcnJheUxlbmd0aFNpZ25hbC5zZXQodj8ubGVuZ3RoKTtcbiAgICAgIH0pO1xuICB9XG4gIGZpbHRlckNvbnRhaW5lckNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICBib3JkZXIgPSBpbnB1dCh0cnVlKTtcbiAgaXNTaG93ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgQElucHV0KCdwYWdlU2l6ZScpIHNldCBfcGFnZVNpemUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlU2l6ZS5zZXQodik7XG4gIH1cbiAgcGFnZVNpemUgPSBzaWduYWw8bnVtYmVyPigxMCk7XG4gIHBhZ2VTdGF0ZSA9IHNpZ25hbDx7IHBhZ2VJbmRleDogbnVtYmVyOyBwYWdlU2l6ZTogbnVtYmVyIH0+KG51bGwpO1xuICBhY3Rpb25CdG5zID0gaW5wdXQ8SVRhYmxlSW5wdXRCdG5bXT4oKTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUsIGFsaWFzOiAnZm9ybVNjaGVtYScgfSkgb3ZlcnJpZGUgc2V0IF9mb3JtU2NoZW1hKHY6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICB0aGlzLnByZUZvcm1hdEZvcm1TY2hlbWEodik7XG4gICAgc3VwZXIuX2Zvcm1TY2hlbWEgPSB2O1xuICB9XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNpbmdsZUZvcm1TdHJ1Y3R1cmU6IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgLyoqXG4gICAqIExlYXZlIGVtcHR5IGlmIHlvdSBkb24ndCB3YW50IHRoZSBkZWxldGUgYnV0dG9uIHRvIHNob3dcbiAgICovXG4gIEBJbnB1dCgpIGRlbGV0ZVJvd0Z1bmM6IChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGRhdGE/OiBGb3JtR3JvdXA8VEZvcm1Hcm91cD5bJ3ZhbHVlJ10sXG4gICAgY29uZmlnPzogeyBidG46IEJ0bkNvbXBvbmVudCB9LFxuICApID0+IGFueTtcbiAgLyoqXG4gICAqIExlYXZlIGVtcHR5IGlmIHlvdSBkb24ndCB3YW50IHRoZSBhZGQgYnV0dG9uIHRvIHNob3dcbiAgICovXG4gIEBJbnB1dCgpIGFkZFJvd0Z1bmM6IChpbmRleDogbnVtYmVyLCBkYXRhPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+Wyd2YWx1ZSddKSA9PiBhbnk7XG4gIEBJbnB1dCgndXNlUGFnaW5hdG9yJykgc2V0IF91c2VQYWdpbmF0b3IodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLnVzZVBhZ2luYXRvci5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnBhZ2VTaXplLnVwZGF0ZSgocGFnZVNpemUpID0+IHBhZ2VTaXplIHx8IDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51c2VQYWdpbmF0b3Iuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMucGFnZVNpemUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgdGFibGVDbGFzcyA9IGlucHV0PCd0YWJsZSB0YWJsZS1yZXNwb25zaXZlIHRhYmxlLXJlc3BvbnNpdmUgdGFibGUtYm9yZGVybGVzcyc+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIHByb3RlY3RlZCBmaWx0ZXJGb3JtcyA9IHNpZ25hbDxJRm9ybVNjaGVtYVtdPihbXSk7XG4gIHByb3RlY3RlZCB1c2VQYWdpbmF0b3IgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByb3RlY3RlZCBjaGlsZHJlbkZvcm1TY2hlbWFNYXA6IHtcbiAgICBbayBpbiBrZXlvZiBURm9ybUdyb3VwXT86IHtcbiAgICAgIGZvcm1TY2hlbWE6IElGb3JtU2NoZW1hW107XG4gICAgICBmb3JtU2NoZW1hU3RyOiBzdHJpbmdbXTtcbiAgICB9O1xuICB9ID0ge307XG4gIHJlZnJlc2hlcjogbnVtYmVyO1xuICBmb3JtQXJyYXlQYWdpbmF0aW9uU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZChQYWdpbmF0b3JDb21wb25lbnQpIHBhZ2luYXRvckNvbXBvbmVudDogUGFnaW5hdG9yQ29tcG9uZW50O1xuXG4gIGZpbHRlckZvcm1WYWx1ZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMpO1xuICBmb3JtQXJyYXlMZW5ndGhTaWduYWwgPSBzaWduYWw8bnVtYmVyPih1bmRlZmluZWQpO1xuXG4gIGZpbHRlcmVkRm9ybUFycmF5ID0gY29tcHV0ZWQ8eyBmb3JtOiBGb3JtR3JvdXA8VEZvcm1Hcm91cD47IGluZGV4OiBudW1iZXIgfVtdPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtQXJyYXlMZW5ndGhTaWduYWwoKTtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm1BcnJheSxcbiAgICAgIGZpbHRlckZvcm1WYWx1ZSA9IHRoaXMuZmlsdGVyRm9ybVZhbHVlU2lnbmFsKCk7XG4gICAgY29uc3QgZm9ybUdyb3VwcyA9IGZvcm1BcnJheT8uY29udHJvbHM/Lm1hcCgoYywgaW5kZXgpID0+ICh7IGluZGV4LCBmb3JtOiBjIH0pKTtcbiAgICBjb25zdCBmaWx0ZXJPYmplY3QgPSB0aGlzLmZpbHRlckZvcm1BcnJheUdyb3VwUGlwZS5xdWVyeU1hcHBlcihmaWx0ZXJGb3JtVmFsdWUpO1xuICAgIHJldHVybiBmaWx0ZXJPYmplY3RcbiAgICAgID8gZm9ybUdyb3Vwcy5maWx0ZXIoKHsgZm9ybSB9KSA9PiB0aGlzLmZpbHRlckZvcm1BcnJheUdyb3VwUGlwZS5maWx0ZXJGdW5jKGZpbHRlck9iamVjdCkoZm9ybSkpXG4gICAgICA6IGZvcm1Hcm91cHM7XG4gIH0pO1xuICBwYWdpbmF0ZWRBbmRGaWx0ZXJlZEZvcm1BcnJheSA9IGNvbXB1dGVkPHsgZm9ybTogRm9ybUdyb3VwPFRGb3JtR3JvdXA+OyBpbmRleDogbnVtYmVyIH1bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZmlsdGVyZWRGb3JtQXJyYXkoKSxcbiAgICAgIHBhZ2VTdGF0ZSA9IHRoaXMucGFnZVN0YXRlKCk7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgcmV0dXJuIHRoaXMudXNlUGFnaW5hdG9yKClcbiAgICAgID8gdGhpcy5wYWdpbmF0b3JQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICBmb3JtQXJyYXksXG4gICAgICAgICAgcGFnZVN0YXRlPy5wYWdlU2l6ZSB8fCB0aGlzLnBhZ2VTaXplKCksXG4gICAgICAgICAgcGFnZVN0YXRlPy5wYWdlSW5kZXggfHwgMCxcbiAgICAgICAgKVxuICAgICAgOiBmb3JtQXJyYXk7XG4gIH0pO1xuXG4gIGZpbHRlcmVkRm9ybUFycmF5TGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5maWx0ZXJlZEZvcm1BcnJheSgpLmxlbmd0aCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHV0aWxpdHlTZXJ2aWNlID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcbiAgcHVibGljIGZpbHRlckZvcm1BcnJheUdyb3VwUGlwZSA9IGluamVjdChGaWx0ZXJGb3JtQXJyYXlHcm91cFBpcGUpO1xuICBwdWJsaWMgcGFnaW5hdG9yUGlwZSA9IGluamVjdChQYWdpbmF0b3JQaXBlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VQYWdpbmF0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl91c2VQYWdpbmF0b3IgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlZnJlc2hlciA9IE1hdGgucmFuZG9tKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtQXJyYXlQYWdpbmF0aW9uU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHJldHVybiBzdXBlci5vbkRlc3Ryb3koKTtcbiAgfVxuXG4gIHBhZ2VDaGFuZ2VkKCRldmVudDogeyBwYWdlSW5kZXg6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9KSB7XG4gICAgdGhpcy5wYWdlU3RhdGUuc2V0KCRldmVudCk7XG4gIH1cblxuICByZXNldFBhZ2luYXRvcigpIHtcbiAgICB0aGlzLnBhZ2luYXRvckNvbXBvbmVudD8ucmVzZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmVGb3JtYXRGb3JtU2NoZW1hID0gKGl0ZW1zOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSA9PiB7XG4gICAgaXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgaWYgKHgub25DaGFuZ2VGdW5jKSB4LnRyaWdnZXJPbkNoYW5nZU9uSW5pdCA9IHRydWU7XG4gICAgICBlbHNlIGlmICh4LnR5cGUgPT0gJ2J1dHRvbicpIHRoaXMucHJlRm9ybWF0Rm9ybVNjaGVtYSh4LmNoaWxkcmVuKTtcbiAgICB9KTtcbiAgfTtcblxuICBvdmVycmlkZSBpbml0KHNjaGVtYTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXSk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybXMuc2V0KFtdKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmZpbHRlckZvcm0uY29udHJvbHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5maWx0ZXJGb3JtLmNvbnRyb2xzLCBrZXkpKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGRlYnVnZ2VyO1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgaWYgKHNjaGVtYSlcbiAgICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIHNjaGVtYSkge1xuICAgICAgICAvLyBzY2hlbWUuZm9ybSA9IHRoaXMuZm9ybSB8fCBzY2hlbWUuZm9ybTtcbiAgICAgICAgdGhpcy5oYW5kbGVGb3JtU2NoZW1lKHNjaGVtZSk7XG4gICAgICB9XG4gICAgdGhpcy5fc2V0Rm9ybVNjaGVtYXMoc2NoZW1hKTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbkJ1dHRvbkNsaWNrKFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZm9ybTogRm9ybUdyb3VwPFRGb3JtR3JvdXA+LFxuICAgIGU6IHsgYnRuPzogQnRuQ29tcG9uZW50OyBhY3Rpb25CdXR0b246IElUYWJsZUlucHV0QnRuIH0sXG4gICkge1xuICAgIGUuYWN0aW9uQnV0dG9uLmFjdGlvbih7IGluZGV4LCBmb3JtLCBidG46IGUuYnRuIH0pO1xuICAgIC8vIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgZGVsZXRlUm93Q2xpY2tlZCA9IChpbmRleDogbnVtYmVyLCByb3dGb3JtOiBGb3JtR3JvdXA8VEZvcm1Hcm91cD4sIGNvbmZpZz86IHsgYnRuOiBCdG5Db21wb25lbnQgfSkgPT4ge1xuICAgIHRoaXMuZGVsZXRlUm93RnVuYyhpbmRleCwgcm93Rm9ybT8uZ2V0UmF3VmFsdWUoKSwgY29uZmlnKTtcbiAgICAvLyB0aGlzLnJlZnJlc2goKTtcbiAgfTtcblxuICBhZGRSb3dDbGlja2VkID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmFkZFJvd0Z1bmMoaW5kZXggKyAxLCB0aGlzLmZpbHRlckZvcm1WYWx1ZVNpZ25hbCgpKTtcbiAgICAvLyB0aGlzLnJlZnJlc2goKTtcbiAgICAvLyB0aGlzLmZpbHRlckZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9O1xuXG4gIGNoZWNrUmVxdWlyZWRGaWVsZHMgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2codGhpcy5zaW5nbGVGb3JtU3RydWN0dXJlKTtcbiAgfTtcblxuICBvdmVycmlkZSBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSUZvcm1TY2hlbWEpIHtcbiAgICBzY2hlbWUuaWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpO1xuICAgIGlmIChzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkID09IG51bGwgJiYgKCFzY2hlbWUudmFsdWVGaWVsZCB8fCAhc2NoZW1lLmxhYmVsRmllbGQpKVxuICAgICAgc2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZCA9IHRydWU7XG5cbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYykge1xuICAgICAgc2NoZW1lLm9wdGlvbnNJbml0RnVuYy5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgICAvLyB0aGlzLm9wdGlvbnNNYXBbc2NoZW1lLmZpZWxkXSA9IHI7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHNjaGVtZS5pc1NlYXJjaEZpZWxkKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm1zLnVwZGF0ZSgoZmlsdGVyRm9ybXMpID0+IGZpbHRlckZvcm1zLmNvbmNhdChbc2NoZW1lXSkpO1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woc2NoZW1lLmZpZWxkPy50b1N0cmluZygpLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgfSBlbHNlIGlmIChzY2hlbWUudHlwZSA9PSAnYnV0dG9uJykge1xuICAgICAgaWYgKHNjaGVtZS5jaGlsZHJlbj8ubGVuZ3RoKVxuICAgICAgICB0aGlzLmNoaWxkcmVuRm9ybVNjaGVtYU1hcFtzY2hlbWUuZmllbGQgYXMgc3RyaW5nXSA9IHtcbiAgICAgICAgICBmb3JtU2NoZW1hOiBzY2hlbWUuY2hpbGRyZW4sXG4gICAgICAgICAgZm9ybVNjaGVtYVN0cjogc2NoZW1lLmNoaWxkcmVuLm1hcCgoeCkgPT4geC5maWVsZCBhcyBzdHJpbmcpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBzY2hlbWUuaXNSZXF1aXJlZCA9XG4gICAgICBzY2hlbWUuaXNSZXF1aXJlZCB8fFxuICAgICAgKDxGb3JtR3JvdXA+dGhpcy5zaW5nbGVGb3JtU3RydWN0dXJlPy5jb250cm9sc1tzY2hlbWUuZmllbGRdKT8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSW5wdXRCdG4gZXh0ZW5kcyBJQnRuIHtcbiAgYWN0aW9uPzogKGFyZz86IHsgaW5kZXg6IG51bWJlcjsgZm9ybTogRm9ybUdyb3VwOyBidG46IEJ0bkNvbXBvbmVudCB9KSA9PiB2b2lkO1xufVxuIiwiPGRpdiBjbGFzcz1cInRhYmxlLWlucHV0XCI+XG4gIEBpZiAoZmlsdGVyRm9ybXMoKT8ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMge3sgZmlsdGVyQ29udGFpbmVyQ2xhc3MoKSB9fVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgIHRleHQ9XCJ7eyBmaWx0ZXJTZWN0aW9uLmhpZGRlbiA/ICdTaG93IEZpbHRlcicgOiAnSGlkZSBGaWx0ZXInIH19XCJcbiAgICAgICAgICBbaWNvbl09XCJmaWx0ZXJTZWN0aW9uLmhpZGRlbiA/ICdzZWFyY2gnIDogJ2Nsb3NlJ1wiXG4gICAgICAgICAgKG1jbGljayk9XCJmaWx0ZXJTZWN0aW9uLmhpZGRlbiA9ICFmaWx0ZXJTZWN0aW9uLmhpZGRlblwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcC0zIG10LTMgcm91bmRlZC0xMFwiICNmaWx0ZXJTZWN0aW9uIFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgICAgICA8Zm9ybS1nZW5lcmF0b3IgW2Zvcm1dPVwiZmlsdGVyRm9ybVwiIFtmb3JtU2NoZW1hXT1cImZpbHRlckZvcm1zKClcIiBbZ3JpZExHU3R5bGVdPVwiM1wiIFtzaG93U3VibWl0QnRuXT1cImZhbHNlXCIgKG1jaGFuZ2UpPVwicmVzZXRQYWdpbmF0b3IoKVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxuICAgICAgICAgIDxhcHAtYnRuIHR5cGU9XCJkYW5nZXItb3V0bGluZVwiIHRleHQ9XCJDbGVhclwiIChtY2xpY2spPVwiZmlsdGVyRm9ybS5yZXNldCgpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJiZy13aGl0ZVwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlciByb3VuZGVkLTEwJzogYm9yZGVyKCkgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCIgXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCIge3sgdGFibGVDbGFzcygpIH19IFwiIFtuZ0NsYXNzXT1cInsgJ2lzLXNob3ctZm9ybSc6IGlzU2hvdygpIH1cIj5cbiAgICAgICAgPHRoZWFkIChjbGljayk9XCJ1dGlsaXR5U2VydmljZS5sb2dGb3JtKGZpbHRlcmVkRm9ybUFycmF5KCkpXCI+XG4gICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZm9ybVNjaGVtYSgpOyB0cmFjayBpdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cInt7IGl0ZW0uY2xzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAge3sgaXRlbS5pc1JlcXVpcmVkID8gJyonIDogJycgfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzU2hvdygpKSB7XG4gICAgICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uQnRuIG9mIGFjdGlvbkJ0bnMoKTsgdHJhY2sgYWN0aW9uQnRuKSB7XG4gICAgICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgQGZvciAoc3ViRm9ybSBvZiBwYWdpbmF0ZWRBbmRGaWx0ZXJlZEZvcm1BcnJheSgpOyB0cmFjayBzdWJGb3JtOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgIHRhYmxlLWlucHV0LXJvd1xuICAgICAgICAgICAgICAob25BZGRSb3dGdW5jKT1cImFkZFJvd0NsaWNrZWQoc3ViRm9ybS5pbmRleClcIlxuICAgICAgICAgICAgICBbaXNTaG93XT1cImlzU2hvdygpXCJcbiAgICAgICAgICAgICAgW2Zvcm1dPVwic3ViRm9ybS5mb3JtXCJcbiAgICAgICAgICAgICAgW2FjdGlvbkJ0bnNdPVwiYWN0aW9uQnRucygpXCJcbiAgICAgICAgICAgICAgW2Zvcm1TY2hlbWFdPVwiZm9ybVNjaGVtYSgpXCJcbiAgICAgICAgICAgICAgW2NoaWxkcmVuRm9ybVNjaGVtYU1hcF09XCJjaGlsZHJlbkZvcm1TY2hlbWFNYXBcIlxuICAgICAgICAgICAgICAob25EZWxldGVSb3dGdW5jKT1cIlxuICAgICAgICAgICAgICAgIGRlbGV0ZVJvd0NsaWNrZWQoc3ViRm9ybS5pbmRleCwgc3ViRm9ybS5mb3JtLCB7XG4gICAgICAgICAgICAgICAgICBidG46ICRldmVudD8uYnRuXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKG9uQWN0aW9uQnV0dG9uQ2xpY2spPVwiaGFuZGxlQWN0aW9uQnV0dG9uQ2xpY2soc3ViRm9ybS5pbmRleCwgc3ViRm9ybS5mb3JtLCAkZXZlbnQpXCI+PC90cj5cbiAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCIgW2NvbFNwYW5dPVwiZm9ybVNjaGVtYSgpPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICB7eyAnVGhlcmUgYXJlIG5vIGl0ZW1zJyB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiXCIgW2hpZGRlbl09XCIhdXNlUGFnaW5hdG9yKCkgfHwgIWZpbHRlcmVkRm9ybUFycmF5TGVuZ3RoKCkgfHwgZmlsdGVyZWRGb3JtQXJyYXlMZW5ndGgoKSA8IHBhZ2VTaXplKClcIj5cbiAgICAgIDxwYWdpbmF0b3JcbiAgICAgICAgI3BhZ2luYXRvclRhZ1xuICAgICAgICBbYXJyYXlMZW5ndGhdPVwiZmlsdGVyZWRGb3JtQXJyYXlMZW5ndGgoKVwiXG4gICAgICAgIChwYWdlQ2hhbmdlZCk9XCJwYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplKClcIlxuICAgICAgICBbcmVzZXRJbmRleEZ1bmNdPVwiZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXNcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA as MAT_DIALOG_DATA, } from '@angular/material/dialog';
|
|
3
|
+
import { clone } from 'lodash-es';
|
|
4
|
+
import { TranslatePipe } from '../../../Shared/pipes/translate.pipe';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { ModalHeaderComponent } from "../../../Shared/components/modal-header/modal-header.component";
|
|
8
|
+
import { BtnComponent } from '../btn/btn.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
export class TextAreaModalComponent {
|
|
14
|
+
constructor(dialogRef, data) {
|
|
15
|
+
this.dialogRef = dialogRef;
|
|
16
|
+
this.data = data;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this._data = clone(this.data);
|
|
20
|
+
}
|
|
21
|
+
close() {
|
|
22
|
+
this.dialogRef.close(this.data);
|
|
23
|
+
}
|
|
24
|
+
save() {
|
|
25
|
+
this.dialogRef.close(this._data);
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TextAreaModalComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: TextAreaModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<modal-header [header]=\"_data?.label\" [dialogRef]=\"dialogRef\" [onCloseValue]=\"data\" />\n<div class=\"mt-4\">\n @if (!data.isShow) {\n <textarea class=\"control-bg-gray p-1\" [(ngModel)]=\"_data.value\"></textarea>\n }\n @if (data.isShow) {\n <div class=\" \" [innerHTML]=\"_data.value\"></div>\n }\n</div>\n<div class=\"row row-cols-auto justify-content-between align-items-center mt-4\">\n <div class=\"\">\n @if (data.showLength) {\n <span>{{ 'Characters: ' + (_data.value?.length || 0) | appTranslate | async }}</span>\n }\n </div>\n <div class=\"d-flex justify-content-end\">\n @if (!data.isShow) {\n <app-btn text=\"Save\" (mclick)=\"save()\" type=\"secondary\" icon=\"save\"></app-btn>\n }\n </div>\n</div>\n", styles: ["textarea{height:calc(80vh - 150px);width:100%}\n"], dependencies: [{ kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }, { kind: "component", type: ModalHeaderComponent, selector: "modal-header", inputs: ["dialogRef", "header", "onCloseValue"] }] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TextAreaModalComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ standalone: true, imports: [BtnComponent, FormsModule, CommonModule, TranslatePipe, ModalHeaderComponent], template: "<modal-header [header]=\"_data?.label\" [dialogRef]=\"dialogRef\" [onCloseValue]=\"data\" />\n<div class=\"mt-4\">\n @if (!data.isShow) {\n <textarea class=\"control-bg-gray p-1\" [(ngModel)]=\"_data.value\"></textarea>\n }\n @if (data.isShow) {\n <div class=\" \" [innerHTML]=\"_data.value\"></div>\n }\n</div>\n<div class=\"row row-cols-auto justify-content-between align-items-center mt-4\">\n <div class=\"\">\n @if (data.showLength) {\n <span>{{ 'Characters: ' + (_data.value?.length || 0) | appTranslate | async }}</span>\n }\n </div>\n <div class=\"d-flex justify-content-end\">\n @if (!data.isShow) {\n <app-btn text=\"Save\" (mclick)=\"save()\" type=\"secondary\" icon=\"save\"></app-btn>\n }\n </div>\n</div>\n", styles: ["textarea{height:calc(80vh - 150px);width:100%}\n"] }]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
34
|
+
type: Inject,
|
|
35
|
+
args: [MAT_DIALOG_DATA]
|
|
36
|
+
}] }] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWFyZWEtbW9kYWwvdGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWFyZWEtbW9kYWwvdGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFFTCxlQUFlLElBQUksZUFBZSxHQUNuQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVFwRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQ1MsU0FBK0MsRUFFL0MsSUFLTjtRQVBNLGNBQVMsR0FBVCxTQUFTLENBQXNDO1FBRS9DLFNBQUksR0FBSixJQUFJLENBS1Y7SUFDQSxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQXJCVSxzQkFBc0IsOENBSXZCLGVBQWU7a0dBSmQsc0JBQXNCLHdFQ2xCbkMsc3ZCQXFCQSwwR0RMYyxZQUFZLDRiQUFFLFdBQVcsOG1CQUFFLFlBQVksK0VBQUUsYUFBYSxxREFBRSxvQkFBb0I7OzJGQUU3RSxzQkFBc0I7a0JBTmxDLFNBQVM7aUNBR00sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixDQUFDOzswQkFNdEYsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWF0RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZixcbiAgTUFUX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9kYWxIZWFkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uL2J0bi9idG4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHQtYXJlYS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQnRuQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVQaXBlLCBNb2RhbEhlYWRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIF9kYXRhOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRleHRBcmVhTW9kYWxDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhOiB7XG4gICAgICBzaG93TGVuZ3RoOiBib29sZWFuO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICBpc1Nob3c6IGJvb2xlYW47XG4gICAgfVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YSA9IGNsb25lKHRoaXMuZGF0YSk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhKTtcbiAgfVxuICBzYXZlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuX2RhdGEpO1xuICB9XG59XG4iLCI8bW9kYWwtaGVhZGVyIFtoZWFkZXJdPVwiX2RhdGE/LmxhYmVsXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dSZWZcIiBbb25DbG9zZVZhbHVlXT1cImRhdGFcIiAvPlxuPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgQGlmICghZGF0YS5pc1Nob3cpIHtcbiAgICA8dGV4dGFyZWEgY2xhc3M9XCJjb250cm9sLWJnLWdyYXkgcC0xXCIgWyhuZ01vZGVsKV09XCJfZGF0YS52YWx1ZVwiPjwvdGV4dGFyZWE+XG4gIH1cbiAgQGlmIChkYXRhLmlzU2hvdykge1xuICAgIDxkaXYgY2xhc3M9XCIgXCIgW2lubmVySFRNTF09XCJfZGF0YS52YWx1ZVwiPjwvZGl2PlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtYXV0byBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgQGlmIChkYXRhLnNob3dMZW5ndGgpIHtcbiAgICAgIDxzcGFuPnt7ICdDaGFyYWN0ZXJzOiAnICsgKF9kYXRhLnZhbHVlPy5sZW5ndGggfHwgMCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICBAaWYgKCFkYXRhLmlzU2hvdykge1xuICAgICAgPGFwcC1idG4gdGV4dD1cIlNhdmVcIiAobWNsaWNrKT1cInNhdmUoKVwiIHR5cGU9XCJzZWNvbmRhcnlcIiBpY29uPVwic2F2ZVwiPjwvYXBwLWJ0bj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TextAreaModalComponent } from './text-area-modal.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
export class TextAreaModalService {
|
|
6
|
+
constructor(dialog) {
|
|
7
|
+
this.dialog = dialog;
|
|
8
|
+
this.openTextAreaModal = (label, value, isShow, showLength) => {
|
|
9
|
+
return this.dialog.open(TextAreaModalComponent, {
|
|
10
|
+
data: { label, value, isShow, showLength },
|
|
11
|
+
height: '80vh',
|
|
12
|
+
width: '90%',
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TextAreaModalService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TextAreaModalService }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TextAreaModalService, decorators: [{
|
|
20
|
+
type: Injectable
|
|
21
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1hcmVhLW1vZGFsL3RleHQtYXJlYS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUdyRSxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW1CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDcEMsc0JBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLE1BQWUsRUFBRSxVQUFtQixFQUFFLEVBQUU7WUFDekYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDOUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFO2dCQUMxQyxNQUFNLEVBQUUsTUFBTTtnQkFDZCxLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQVBxQyxDQUFDOzhHQUQ3QixvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVGV4dEFyZWFNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYU1vZGFsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge31cbiAgb3BlblRleHRBcmVhTW9kYWwgPSAobGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgaXNTaG93OiBib29sZWFuLCBzaG93TGVuZ3RoOiBib29sZWFuKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oVGV4dEFyZWFNb2RhbENvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBsYWJlbCwgdmFsdWUsIGlzU2hvdywgc2hvd0xlbmd0aCB9LFxuICAgICAgaGVpZ2h0OiAnODB2aCcsXG4gICAgICB3aWR0aDogJzkwJScsXG4gICAgfSk7XG4gIH07XG59XG4iXX0=
|