fx-form-builder-wrapper 0.0.49 → 0.0.53
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/ng-package.json +9 -0
- package/package.json +16 -29
- package/src/lib/components/button/button.component.css +0 -0
- package/src/lib/components/button/button.component.html +1 -0
- package/src/lib/components/button/button.component.ts +24 -0
- package/src/lib/components/dynamic-table/dynamic-table.component.css +31 -0
- package/src/lib/components/dynamic-table/dynamic-table.component.html +69 -0
- package/src/lib/components/dynamic-table/dynamic-table.component.ts +258 -0
- package/src/lib/components/fx-form-component/fx-form-component.component.ts +86 -0
- package/src/lib/components/toggle/toggle.component.css +51 -0
- package/src/lib/components/toggle/toggle.component.html +12 -0
- package/src/lib/components/toggle/toggle.component.ts +33 -0
- package/src/lib/components/toggle-button/toggle-button.component.css +22 -0
- package/src/lib/components/toggle-button/toggle-button.component.html +10 -0
- package/src/lib/components/toggle-button/toggle-button.component.ts +40 -0
- package/src/lib/components/uploader/uploader.component.css +49 -0
- package/src/lib/components/uploader/uploader.component.html +23 -0
- package/src/lib/components/uploader/uploader.component.ts +59 -0
- package/src/lib/custom-controls/dispatch-to-clinic/dispatch-to-clinic.component.html +78 -0
- package/src/lib/custom-controls/dispatch-to-clinic/dispatch-to-clinic.component.ts +44 -0
- package/src/lib/form-builder.css +9 -0
- package/src/lib/fx-builder-wrapper.component.ts +68 -0
- package/src/lib/fx-builder-wrapper.service.ts +38 -0
- package/src/lib/panel/configuration-panel/configuration-panel.component.css +154 -0
- package/src/lib/panel/configuration-panel/configuration-panel.component.html +162 -0
- package/src/lib/panel/configuration-panel/configuration-panel.component.ts +120 -0
- package/src/lib/panel/settings-panel/settings-panel.component.css +30 -0
- package/src/lib/panel/settings-panel/settings-panel.component.html +28 -0
- package/src/lib/panel/settings-panel/settings-panel.component.ts +23 -0
- package/src/public-api.ts +8 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +13 -0
- package/tsconfig.spec.json +15 -0
- package/esm2022/fx-form-builder-wrapper.mjs +0 -5
- package/esm2022/lib/components/dynamic-table/dynamic-table.component.mjs +0 -235
- package/esm2022/lib/components/fx-form-component/fx-form-component.component.mjs +0 -103
- package/esm2022/lib/components/toggle/toggle.component.mjs +0 -33
- package/esm2022/lib/components/toggle-button/toggle-button.component.mjs +0 -38
- package/esm2022/lib/components/uploader/uploader.component.mjs +0 -58
- package/esm2022/lib/custom-controls/dispatch-to-clinic/dispatch-to-clinic.component.mjs +0 -42
- package/esm2022/lib/fx-builder-wrapper.component.mjs +0 -79
- package/esm2022/lib/fx-builder-wrapper.service.mjs +0 -44
- package/esm2022/lib/panel/configuration-panel/configuration-panel.component.mjs +0 -117
- package/esm2022/lib/panel/settings-panel/settings-panel.component.mjs +0 -24
- package/esm2022/public-api.mjs +0 -7
- package/fesm2022/fx-form-builder-wrapper.mjs +0 -718
- package/fesm2022/fx-form-builder-wrapper.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/components/dynamic-table/dynamic-table.component.d.ts +0 -52
- package/lib/components/fx-form-component/fx-form-component.component.d.ts +0 -19
- package/lib/components/toggle/toggle.component.d.ts +0 -13
- package/lib/components/toggle-button/toggle-button.component.d.ts +0 -15
- package/lib/components/uploader/uploader.component.d.ts +0 -16
- package/lib/custom-controls/dispatch-to-clinic/dispatch-to-clinic.component.d.ts +0 -17
- package/lib/fx-builder-wrapper.component.d.ts +0 -19
- package/lib/fx-builder-wrapper.service.d.ts +0 -14
- package/lib/panel/configuration-panel/configuration-panel.component.d.ts +0 -27
- package/lib/panel/settings-panel/settings-panel.component.d.ts +0 -10
- package/public-api.d.ts +0 -3
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
4
|
-
import { FxBaseComponent, FxComponent, FxSelectSetting, FxStringSetting, FxValidatorService } from '@instantsys-labs/fx';
|
|
5
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
export class UploaderComponent extends FxBaseComponent {
|
|
10
|
-
cdr;
|
|
11
|
-
uploadFileControl = new UntypedFormControl();
|
|
12
|
-
uploadedFiles = [];
|
|
13
|
-
constructor(cdr) {
|
|
14
|
-
super(cdr);
|
|
15
|
-
this.cdr = cdr;
|
|
16
|
-
this.onInit.subscribe((fxData) => {
|
|
17
|
-
this._register(this.uploadFileControl);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
onFileSelected(event) {
|
|
21
|
-
const input = event.target;
|
|
22
|
-
if (input.files) {
|
|
23
|
-
for (let i = 0; i < input?.files?.length; i++) {
|
|
24
|
-
const file = input.files[i];
|
|
25
|
-
const reader = new FileReader();
|
|
26
|
-
reader.onload = e => {
|
|
27
|
-
this.uploadedFiles.push({
|
|
28
|
-
file: file,
|
|
29
|
-
previewUrl: e.target?.result,
|
|
30
|
-
name: file?.name,
|
|
31
|
-
id: uuidv4()
|
|
32
|
-
});
|
|
33
|
-
this.uploadFileControl.setValue(this.uploadedFiles);
|
|
34
|
-
};
|
|
35
|
-
reader.readAsDataURL(file);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
deleteFile(id) {
|
|
40
|
-
this.uploadedFiles = this.uploadedFiles.filter(file => file?.id !== id);
|
|
41
|
-
}
|
|
42
|
-
settings() {
|
|
43
|
-
return [
|
|
44
|
-
new FxStringSetting({ key: 'upload-text', $title: 'Upload Text', value: 'Upload File' }),
|
|
45
|
-
new FxSelectSetting({ key: 'multiple-upload', $title: 'Multiple Upload', value: false }, [{ option: 'Enable', value: true }, { option: 'Disable', value: false }])
|
|
46
|
-
];
|
|
47
|
-
}
|
|
48
|
-
validations() {
|
|
49
|
-
return [FxValidatorService.required];
|
|
50
|
-
}
|
|
51
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderComponent, isStandalone: true, selector: "fx-uploader", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <div class=\"custom-upload\">\r\n <button type=\"button\" (click)=\"fileInput.click()\">\r\n {{setting('upload-text')}}\r\n </button>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [multiple]=\"setting('multiple-upload')\"\r\n (change)=\"onFileSelected($event)\"\r\n [formControl]=\"uploadFileControl\"\r\n hidden\r\n />\r\n <div class=\"file-list\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div (click)=\"deleteFile(file?.id)\" *ngFor=\"let file of uploadedFiles\">\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.previewUrl\" alt=\"\">\r\n <!-- <p>{{file?.name}}</p> -->\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</fx-component>\r\n", styles: [".custom-upload{display:flex;flex-direction:row;align-items:flex-start}.custom-upload button{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;background-color:#007bff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s}.custom-upload button:hover{background-color:#0056b3}.custom-upload .file-list{display:flex}.custom-upload .file-list p{margin:0;padding:5px;background-color:#f1f1f1;border:1px solid #ddd;border-radius:3px;font-size:14px}.custom-upload .file-list>div{display:flex;flex-direction:column;align-items:center;justify-content:center}.custom-upload .file-list .file-thumbnail{width:100px;height:100px;object-fit:contain}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{ selector: 'fx-uploader', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <div class=\"custom-upload\">\r\n <button type=\"button\" (click)=\"fileInput.click()\">\r\n {{setting('upload-text')}}\r\n </button>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [multiple]=\"setting('multiple-upload')\"\r\n (change)=\"onFileSelected($event)\"\r\n [formControl]=\"uploadFileControl\"\r\n hidden\r\n />\r\n <div class=\"file-list\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div (click)=\"deleteFile(file?.id)\" *ngFor=\"let file of uploadedFiles\">\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.previewUrl\" alt=\"\">\r\n <!-- <p>{{file?.name}}</p> -->\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</fx-component>\r\n", styles: [".custom-upload{display:flex;flex-direction:row;align-items:flex-start}.custom-upload button{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;background-color:#007bff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s}.custom-upload button:hover{background-color:#0056b3}.custom-upload .file-list{display:flex}.custom-upload .file-list p{margin:0;padding:5px;background-color:#f1f1f1;border:1px solid #ddd;border-radius:3px;font-size:14px}.custom-upload .file-list>div{display:flex;flex-direction:column;align-items:center;justify-content:center}.custom-upload .file-list .file-thumbnail{width:100px;height:100px;object-fit:contain}\n"] }]
|
|
57
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsSixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQVNuQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUloQztJQUhiLGlCQUFpQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUM3QyxhQUFhLEdBQWUsRUFBRSxDQUFDO0lBRXRDLFlBQW9CLEdBQXNCO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQURRLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRXhDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBWTtRQUNoQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLElBQUksRUFBRSxJQUFJO3dCQUNWLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU07d0JBQzVCLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTt3QkFDaEIsRUFBRSxFQUFFLE1BQU0sRUFBRTtxQkFDYixDQUFDLENBQUE7b0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7Z0JBQ3JELENBQUMsQ0FBQTtnQkFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFVO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxRQUFRO1FBQ2hCLE9BQU87WUFDTCxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFDLENBQUM7WUFDdkYsSUFBSSxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBRSxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1NBQzdKLENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0E1Q1UsaUJBQWlCOzRGQUFqQixpQkFBaUIsOEZDYjlCLGk1QkF1QkEsdXRCRGRZLFlBQVksZ1FBQUUsV0FBVyw0RUFBRSxXQUFXLHNaQUFFLG1CQUFtQjs7NEZBSTFELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2VsZWN0U2V0dGluZywgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z4LXVwbG9hZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZ4Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBsb2FkZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZGVyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgdXBsb2FkRmlsZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgcHVibGljIHVwbG9hZGVkRmlsZXM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihjZHIpXHJcbiAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKGZ4RGF0YSk9PntcclxuICAgICAgdGhpcy5fcmVnaXN0ZXIodGhpcy51cGxvYWRGaWxlQ29udHJvbCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChpbnB1dC5maWxlcykge1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgaW5wdXQ/LmZpbGVzPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlc1tpXTtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSBlID0+IHtcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKHtcclxuICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgcHJldmlld1VybDogZS50YXJnZXQ/LnJlc3VsdCxcclxuICAgICAgICAgICAgbmFtZTogZmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgaWQ6IHV1aWR2NCgpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnVwbG9hZGVkRmlsZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlRmlsZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZT8uaWQgIT09IGlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAndXBsb2FkLXRleHQnLCAkdGl0bGU6ICdVcGxvYWQgVGV4dCcsIHZhbHVlOiAnVXBsb2FkIEZpbGUnfSksXHJcbiAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ211bHRpcGxlLXVwbG9hZCcsICR0aXRsZTogJ011bHRpcGxlIFVwbG9hZCcsIHZhbHVlOiBmYWxzZX0sIFt7b3B0aW9uOiAnRW5hYmxlJywgdmFsdWU6IHRydWV9LCB7b3B0aW9uOiAnRGlzYWJsZScsIHZhbHVlOiBmYWxzZX1dKVxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdXBsb2FkXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XHJcbiAgICAgICAgICB7e3NldHRpbmcoJ3VwbG9hZC10ZXh0Jyl9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgW211bHRpcGxlXT1cInNldHRpbmcoJ211bHRpcGxlLXVwbG9hZCcpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidXBsb2FkRmlsZUNvbnRyb2xcIlxyXG4gICAgICAgICAgaGlkZGVuXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXBsb2FkZWRGaWxlcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZT8uaWQpXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2FkZWRGaWxlc1wiPlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmaWxlLXRodW1ibmFpbFwiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogNHB4XCIgW3NyY109XCJmaWxlPy5wcmV2aWV3VXJsXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8cD57e2ZpbGU/Lm5hbWV9fTwvcD4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG48L2Z4LWNvbXBvbmVudD5cclxuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, inject } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule, Validators, FormBuilder, FormsModule } from '@angular/forms';
|
|
4
|
-
import { FxBaseComponent, FxComponent, FxStringSetting, FxValidatorService } from '@instantsys-labs/fx';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
export class DispatchToClinicComponent extends FxBaseComponent {
|
|
10
|
-
cdr;
|
|
11
|
-
fb = inject(FormBuilder);
|
|
12
|
-
clinicAddress$ = new BehaviorSubject({});
|
|
13
|
-
dispatchForm = this.fb.group({
|
|
14
|
-
courierName: ['', Validators.required],
|
|
15
|
-
trackingNumber: ['', Validators.required],
|
|
16
|
-
trackingUrl: ['', [Validators.required, Validators.pattern('https?://.+')]],
|
|
17
|
-
notes: ['', Validators.required]
|
|
18
|
-
});
|
|
19
|
-
constructor(cdr) {
|
|
20
|
-
super(cdr);
|
|
21
|
-
this.cdr = cdr;
|
|
22
|
-
this.onInit.subscribe(() => {
|
|
23
|
-
this._register(this.dispatchForm);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
settings() {
|
|
27
|
-
return [new FxStringSetting({ key: 'heading-text', $title: 'Heading Text', value: 'My Default Value' })];
|
|
28
|
-
}
|
|
29
|
-
validations() {
|
|
30
|
-
return [FxValidatorService.required];
|
|
31
|
-
}
|
|
32
|
-
copyToClipboard(address) {
|
|
33
|
-
navigator.clipboard.writeText(address);
|
|
34
|
-
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DispatchToClinicComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DispatchToClinicComponent, isStandalone: true, selector: "lib-dispatch-to-clinic", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <section\r\n class=\"justify-content-around lg:justify-content-between w-full white-color border-1 border-solid stroke_light_grey p-3 mb-3 mt-3\">\r\n <form [formGroup]=\"dispatchForm\">\r\n <div class=\"grid\">\r\n <!-- Courier Name -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"courierName\" class=\"input-title\">Courier Name</label>\r\n <input autocomplete=\"off\" formControlName=\"courierName\" type=\"text\" id=\"courierName\"\r\n name=\"courierName\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter courier name\" />\r\n\r\n <!-- validation -->\r\n <small *ngIf=\"dispatchForm.get('courierName')?.invalid && dispatchForm.get('courierName')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Courier Name is required.\r\n </small>\r\n <!-- validation -->\r\n </div>\r\n <!-- Courier Name -->\r\n\r\n <!-- Tracking Number -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"trackingNumber\" class=\"input-title\">Tracking Number</label>\r\n <input autocomplete=\"off\" formControlName=\"trackingNumber\" type=\"text\" id=\"trackingNumber\"\r\n name=\"trackingNumber\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter tracking number\" />\r\n <small\r\n *ngIf=\"dispatchForm.get('trackingNumber')?.invalid && dispatchForm.get('trackingNumber')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Tracking Number is required.\r\n </small>\r\n </div>\r\n <!-- Tracking Number -->\r\n\r\n <!-- Tracking URL -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"trackingUrl\" class=\"input-title\">Tracking URL</label>\r\n <input autocomplete=\"off\" formControlName=\"trackingUrl\" type=\"text\" id=\"trackingUrl\"\r\n name=\"trackingUrl\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter tracking url\" />\r\n <small *ngIf=\"dispatchForm.get('trackingUrl')?.invalid && dispatchForm.get('trackingUrl')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n <span *ngIf=\"dispatchForm.get('trackingUrl')?.errors?.['required']\">Tracking URL is\r\n required.</span>\r\n <span *ngIf=\"dispatchForm.get('trackingUrl')?.errors?.['pattern']\">Invalid URL format.</span>\r\n </small>\r\n </div>\r\n <!-- Tracking URL -->\r\n\r\n <!-- Notes -->\r\n <div class=\"col-12 md:col-6 input-container\">\r\n <label for=\"notes\" class=\"input-title\">Notes</label>\r\n <textarea autocomplete=\"off\" formControlName=\"notes\" rows=\"5\" id=\"notes\" name=\"notes\"\r\n class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter notes\"></textarea>\r\n <small *ngIf=\"dispatchForm.get('notes')?.invalid && dispatchForm.get('notes')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Notes are required.\r\n </small>\r\n </div>\r\n <!-- Notes -->\r\n\r\n <!-- Address with Copy Icon -->\r\n <div class=\"col-12 md:col-6 pt-0\">\r\n <div class=\"mb-1\">Address</div>\r\n <ng-container *ngIf=\"(clinicAddress$ | async) as address\">\r\n <address #completeAddress>{{address?.street}}, {{address?.state}}, {{address?.postalCode}}\r\n <i class=\"pi pi-copy cursor-pointer text-xl text-secondary-color\"\r\n (click)=\"copyToClipboard(completeAddress.textContent)\"></i>\r\n </address>\r\n </ng-container>\r\n </div>\r\n <!-- Address with Copy Icon -->\r\n </div>\r\n </form>\r\n </section>\r\n</fx-component>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }] });
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DispatchToClinicComponent, decorators: [{
|
|
39
|
-
type: Component,
|
|
40
|
-
args: [{ selector: 'lib-dispatch-to-clinic', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\">\r\n <section\r\n class=\"justify-content-around lg:justify-content-between w-full white-color border-1 border-solid stroke_light_grey p-3 mb-3 mt-3\">\r\n <form [formGroup]=\"dispatchForm\">\r\n <div class=\"grid\">\r\n <!-- Courier Name -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"courierName\" class=\"input-title\">Courier Name</label>\r\n <input autocomplete=\"off\" formControlName=\"courierName\" type=\"text\" id=\"courierName\"\r\n name=\"courierName\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter courier name\" />\r\n\r\n <!-- validation -->\r\n <small *ngIf=\"dispatchForm.get('courierName')?.invalid && dispatchForm.get('courierName')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Courier Name is required.\r\n </small>\r\n <!-- validation -->\r\n </div>\r\n <!-- Courier Name -->\r\n\r\n <!-- Tracking Number -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"trackingNumber\" class=\"input-title\">Tracking Number</label>\r\n <input autocomplete=\"off\" formControlName=\"trackingNumber\" type=\"text\" id=\"trackingNumber\"\r\n name=\"trackingNumber\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter tracking number\" />\r\n <small\r\n *ngIf=\"dispatchForm.get('trackingNumber')?.invalid && dispatchForm.get('trackingNumber')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Tracking Number is required.\r\n </small>\r\n </div>\r\n <!-- Tracking Number -->\r\n\r\n <!-- Tracking URL -->\r\n <div class=\"col-12 sm:col-6 md:col-3 input-container\">\r\n <label for=\"trackingUrl\" class=\"input-title\">Tracking URL</label>\r\n <input autocomplete=\"off\" formControlName=\"trackingUrl\" type=\"text\" id=\"trackingUrl\"\r\n name=\"trackingUrl\" class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter tracking url\" />\r\n <small *ngIf=\"dispatchForm.get('trackingUrl')?.invalid && dispatchForm.get('trackingUrl')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n <span *ngIf=\"dispatchForm.get('trackingUrl')?.errors?.['required']\">Tracking URL is\r\n required.</span>\r\n <span *ngIf=\"dispatchForm.get('trackingUrl')?.errors?.['pattern']\">Invalid URL format.</span>\r\n </small>\r\n </div>\r\n <!-- Tracking URL -->\r\n\r\n <!-- Notes -->\r\n <div class=\"col-12 md:col-6 input-container\">\r\n <label for=\"notes\" class=\"input-title\">Notes</label>\r\n <textarea autocomplete=\"off\" formControlName=\"notes\" rows=\"5\" id=\"notes\" name=\"notes\"\r\n class=\"p-inputtext p-component p-element input-field border-1 w-full\"\r\n placeholder=\"enter notes\"></textarea>\r\n <small *ngIf=\"dispatchForm.get('notes')?.invalid && dispatchForm.get('notes')?.touched\"\r\n class=\"text-danger-color block mt-1\">\r\n Notes are required.\r\n </small>\r\n </div>\r\n <!-- Notes -->\r\n\r\n <!-- Address with Copy Icon -->\r\n <div class=\"col-12 md:col-6 pt-0\">\r\n <div class=\"mb-1\">Address</div>\r\n <ng-container *ngIf=\"(clinicAddress$ | async) as address\">\r\n <address #completeAddress>{{address?.street}}, {{address?.state}}, {{address?.postalCode}}\r\n <i class=\"pi pi-copy cursor-pointer text-xl text-secondary-color\"\r\n (click)=\"copyToClipboard(completeAddress.textContent)\"></i>\r\n </address>\r\n </ng-container>\r\n </div>\r\n <!-- Address with Copy Icon -->\r\n </div>\r\n </form>\r\n </section>\r\n</fx-component>" }]
|
|
41
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2N1c3RvbS1jb250cm9scy9kaXNwYXRjaC10by1jbGluaWMvZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2N1c3RvbS1jb250cm9scy9kaXNwYXRjaC10by1jbGluaWMvZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQWEsZUFBZSxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSxlQUFlLEVBQVEsTUFBTSxNQUFNLENBQUM7Ozs7QUFRN0MsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGVBQWU7SUFZeEM7SUFYWixFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFCLGNBQWMsR0FBeUIsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7SUFFcEUsWUFBWSxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzdDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3RDLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzNFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ2pDLENBQUMsQ0FBQTtJQUVGLFlBQW9CLEdBQXNCO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURPLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBR3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxRQUFRO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBWTtRQUNqQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQTlCVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qix5R0NadEMscXRKQTZFZSwyQ0RwRUgsWUFBWSx1TEFBRSxtQkFBbUIsNDhCQUFFLFdBQVcsK0JBQUUsV0FBVzs7NEZBRzFELHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHRha2UgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRpc3BhdGNoLXRvLWNsaW5pYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwYXRjaC10by1jbGluaWMuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IHtcclxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHJcbiAgcHVibGljIGNsaW5pY0FkZHJlc3MkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XHJcblxyXG4gIHB1YmxpYyBkaXNwYXRjaEZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgY291cmllck5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB0cmFja2luZ051bWJlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIHRyYWNraW5nVXJsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ2h0dHBzPzovLy4rJyldXSxcclxuICAgIG5vdGVzOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgfSlcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihjZHIpO1xyXG5cclxuICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGlzcGF0Y2hGb3JtKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgIHJldHVybiBbbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2hlYWRpbmctdGV4dCcsICR0aXRsZTogJ0hlYWRpbmcgVGV4dCcsIHZhbHVlOiAnTXkgRGVmYXVsdCBWYWx1ZScgfSldO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQoYWRkcmVzczogYW55KTogdm9pZCB7XHJcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChhZGRyZXNzKTtcclxuICB9XHJcbn1cclxuIiwiPGZ4LWNvbXBvbmVudCBbZnhEYXRhXT1cImZ4RGF0YVwiPlxyXG4gICAgPHNlY3Rpb25cclxuICAgICAgICBjbGFzcz1cImp1c3RpZnktY29udGVudC1hcm91bmQgbGc6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdy1mdWxsIHdoaXRlLWNvbG9yIGJvcmRlci0xIGJvcmRlci1zb2xpZCBzdHJva2VfbGlnaHRfZ3JleSBwLTMgbWItMyBtdC0zXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkaXNwYXRjaEZvcm1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ291cmllciBOYW1lIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBzbTpjb2wtNiBtZDpjb2wtMyBpbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY291cmllck5hbWVcIiBjbGFzcz1cImlucHV0LXRpdGxlXCI+Q291cmllciBOYW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwiY291cmllck5hbWVcIiB0eXBlPVwidGV4dFwiIGlkPVwiY291cmllck5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY291cmllck5hbWVcIiBjbGFzcz1cInAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCBpbnB1dC1maWVsZCBib3JkZXItMSB3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVudGVyIGNvdXJpZXIgbmFtZVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gdmFsaWRhdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJkaXNwYXRjaEZvcm0uZ2V0KCdjb3VyaWVyTmFtZScpPy5pbnZhbGlkICYmIGRpc3BhdGNoRm9ybS5nZXQoJ2NvdXJpZXJOYW1lJyk/LnRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyLWNvbG9yIGJsb2NrIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ291cmllciBOYW1lIGlzIHJlcXVpcmVkLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSB2YWxpZGF0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIENvdXJpZXIgTmFtZSAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFRyYWNraW5nIE51bWJlciAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgc206Y29sLTYgbWQ6Y29sLTMgaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRyYWNraW5nTnVtYmVyXCIgY2xhc3M9XCJpbnB1dC10aXRsZVwiPlRyYWNraW5nIE51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cInRyYWNraW5nTnVtYmVyXCIgdHlwZT1cInRleHRcIiBpZD1cInRyYWNraW5nTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRyYWNraW5nTnVtYmVyXCIgY2xhc3M9XCJwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWVsZW1lbnQgaW5wdXQtZmllbGQgYm9yZGVyLTEgdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbnRlciB0cmFja2luZyBudW1iZXJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BhdGNoRm9ybS5nZXQoJ3RyYWNraW5nTnVtYmVyJyk/LmludmFsaWQgJiYgZGlzcGF0Y2hGb3JtLmdldCgndHJhY2tpbmdOdW1iZXInKT8udG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXItY29sb3IgYmxvY2sgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFja2luZyBOdW1iZXIgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBUcmFja2luZyBOdW1iZXIgLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBUcmFja2luZyBVUkwgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHNtOmNvbC02IG1kOmNvbC0zIGlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0cmFja2luZ1VybFwiIGNsYXNzPVwiaW5wdXQtdGl0bGVcIj5UcmFja2luZyBVUkw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBmb3JtQ29udHJvbE5hbWU9XCJ0cmFja2luZ1VybFwiIHR5cGU9XCJ0ZXh0XCIgaWQ9XCJ0cmFja2luZ1VybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0cmFja2luZ1VybFwiIGNsYXNzPVwicC1pbnB1dHRleHQgcC1jb21wb25lbnQgcC1lbGVtZW50IGlucHV0LWZpZWxkIGJvcmRlci0xIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZW50ZXIgdHJhY2tpbmcgdXJsXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJkaXNwYXRjaEZvcm0uZ2V0KCd0cmFja2luZ1VybCcpPy5pbnZhbGlkICYmIGRpc3BhdGNoRm9ybS5nZXQoJ3RyYWNraW5nVXJsJyk/LnRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyLWNvbG9yIGJsb2NrIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaXNwYXRjaEZvcm0uZ2V0KCd0cmFja2luZ1VybCcpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiPlRyYWNraW5nIFVSTCBpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRpc3BhdGNoRm9ybS5nZXQoJ3RyYWNraW5nVXJsJyk/LmVycm9ycz8uWydwYXR0ZXJuJ11cIj5JbnZhbGlkIFVSTCBmb3JtYXQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gVHJhY2tpbmcgVVJMIC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gTm90ZXMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJub3Rlc1wiIGNsYXNzPVwiaW5wdXQtdGl0bGVcIj5Ob3RlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGVzXCIgcm93cz1cIjVcIiBpZD1cIm5vdGVzXCIgbmFtZT1cIm5vdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWVsZW1lbnQgaW5wdXQtZmllbGQgYm9yZGVyLTEgdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbnRlciBub3Rlc1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiZGlzcGF0Y2hGb3JtLmdldCgnbm90ZXMnKT8uaW52YWxpZCAmJiBkaXNwYXRjaEZvcm0uZ2V0KCdub3RlcycpPy50b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlci1jb2xvciBibG9jayBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGVzIGFyZSByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIE5vdGVzIC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWRkcmVzcyB3aXRoIENvcHkgSWNvbiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTYgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0xXCI+QWRkcmVzczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2xpbmljQWRkcmVzcyQgfCBhc3luYykgYXMgYWRkcmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRkcmVzcyAjY29tcGxldGVBZGRyZXNzPnt7YWRkcmVzcz8uc3RyZWV0fX0sIHt7YWRkcmVzcz8uc3RhdGV9fSwge3thZGRyZXNzPy5wb3N0YWxDb2RlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY29weSBjdXJzb3ItcG9pbnRlciB0ZXh0LXhsIHRleHQtc2Vjb25kYXJ5LWNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKGNvbXBsZXRlQWRkcmVzcy50ZXh0Q29udGVudClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBBZGRyZXNzIHdpdGggQ29weSBJY29uIC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvZngtY29tcG9uZW50PiJdfQ==
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
-
import { FxComponentBuilder, FxMode, FxScope, FxUtils } from '@instantsys-labs/fx';
|
|
4
|
-
import { DispatchToClinicComponent } from './custom-controls/dispatch-to-clinic/dispatch-to-clinic.component';
|
|
5
|
-
import { DynamicTableComponent } from './components/dynamic-table/dynamic-table.component';
|
|
6
|
-
import { ToggleButtonComponent } from './components/toggle-button/toggle-button.component';
|
|
7
|
-
import { UploaderComponent } from './components/uploader/uploader.component';
|
|
8
|
-
import { ToggleComponent } from './components/toggle/toggle.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./fx-builder-wrapper.service";
|
|
11
|
-
export class FxBuilderWrapperComponent {
|
|
12
|
-
fxWrapperService;
|
|
13
|
-
componentBuilder;
|
|
14
|
-
fxForm = FxUtils.createNewForm();
|
|
15
|
-
fxMode = FxMode.EDIT;
|
|
16
|
-
fxConfiguration = {
|
|
17
|
-
settings: true,
|
|
18
|
-
logics: true,
|
|
19
|
-
customControls: true,
|
|
20
|
-
};
|
|
21
|
-
FxScope = FxScope;
|
|
22
|
-
FxMode = FxMode;
|
|
23
|
-
constructor(fxWrapperService) {
|
|
24
|
-
this.fxWrapperService = fxWrapperService;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
if (!Boolean(this.fxWrapperService.getComponent('dispatch-to-clinic'))) {
|
|
28
|
-
this.fxWrapperService.registerCustomComponent('Dispatch To Clinic', 'dispatch-to-clinic', DispatchToClinicComponent);
|
|
29
|
-
}
|
|
30
|
-
if (!Boolean(this.fxWrapperService.getComponent('dynamic-table'))) {
|
|
31
|
-
this.fxWrapperService.registerCustomComponent('Dynamic Table', 'dynamic-table', DynamicTableComponent);
|
|
32
|
-
}
|
|
33
|
-
if (!Boolean(this.fxWrapperService.getComponent('toggle-button'))) {
|
|
34
|
-
this.fxWrapperService.registerCustomComponent('Toggle Button', 'toggle-button', ToggleButtonComponent);
|
|
35
|
-
}
|
|
36
|
-
if (!Boolean(this.fxWrapperService.getComponent('uploader'))) {
|
|
37
|
-
this.fxWrapperService.registerCustomComponent('Uploader', 'uploader', UploaderComponent);
|
|
38
|
-
}
|
|
39
|
-
if (!Boolean(this.fxWrapperService.getComponent('toggle'))) {
|
|
40
|
-
this.fxWrapperService.registerCustomComponent('Toggle', 'toggle', ToggleComponent);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
;
|
|
44
|
-
getParsedForm() {
|
|
45
|
-
return this.componentBuilder.getParsedForm();
|
|
46
|
-
}
|
|
47
|
-
getInitializedFxForm() {
|
|
48
|
-
return FxUtils.createNewForm();
|
|
49
|
-
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FxBuilderWrapperComponent, deps: [{ token: i1.FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FxBuilderWrapperComponent, isStandalone: true, selector: "fx-builder-wrapper", inputs: { fxForm: ["fx-form", "fxForm"] }, viewQueries: [{ propertyName: "componentBuilder", first: true, predicate: ["componentBuilder"], descendants: true }], ngImport: i0, template: `
|
|
52
|
-
<fx-component-builder
|
|
53
|
-
#componentBuilder
|
|
54
|
-
[fx-form]="fxForm"
|
|
55
|
-
[configuration]="fxConfiguration"
|
|
56
|
-
[scope]="FxScope.BUILDER"
|
|
57
|
-
>
|
|
58
|
-
</fx-component-builder>
|
|
59
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FxComponentBuilder, selector: "fx-component-builder", inputs: ["fx-form", "scope", "configuration"] }] });
|
|
60
|
-
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FxBuilderWrapperComponent, decorators: [{
|
|
62
|
-
type: Component,
|
|
63
|
-
args: [{ selector: 'fx-builder-wrapper', standalone: true, imports: [CommonModule, FxComponentBuilder], template: `
|
|
64
|
-
<fx-component-builder
|
|
65
|
-
#componentBuilder
|
|
66
|
-
[fx-form]="fxForm"
|
|
67
|
-
[configuration]="fxConfiguration"
|
|
68
|
-
[scope]="FxScope.BUILDER"
|
|
69
|
-
>
|
|
70
|
-
</fx-component-builder>
|
|
71
|
-
` }]
|
|
72
|
-
}], ctorParameters: () => [{ type: i1.FxBuilderWrapperService }], propDecorators: { componentBuilder: [{
|
|
73
|
-
type: ViewChild,
|
|
74
|
-
args: ['componentBuilder']
|
|
75
|
-
}], fxForm: [{
|
|
76
|
-
type: Input,
|
|
77
|
-
args: [{ alias: 'fx-form', required: true }]
|
|
78
|
-
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtYnVpbGRlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2Z4LWJ1aWxkZXItd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUEwQixrQkFBa0IsRUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBaUJ2RSxNQUFNLE9BQU8seUJBQXlCO0lBYWhCO0lBWlcsZ0JBQWdCLENBQXNCO0lBQ3hCLE1BQU0sR0FBVyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0UsTUFBTSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDN0IsZUFBZSxHQUEyQjtRQUMvQyxRQUFRLEVBQUUsSUFBSTtRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osY0FBYyxFQUFFLElBQUk7S0FDckIsQ0FBQTtJQUVrQixPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFbkMsWUFBb0IsZ0JBQXlDO1FBQXpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7SUFBSSxDQUFDO0lBRTNELFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDdkgsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDckYsQ0FBQztJQUNILENBQUM7SUFBQSxDQUFDO0lBRUssYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7d0dBdkNVLHlCQUF5Qjs0RkFBekIseUJBQXlCLCtPQVgxQjs7Ozs7Ozs7R0FRVCx5RUFUUyxZQUFZLCtCQUFFLGtCQUFrQjs7NEZBWS9CLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQ2pDOzs7Ozs7OztHQVFUOzRGQUk4QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNnQixNQUFNO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlckNvbmZpZ3VyYXRpb24sIEZ4Q29tcG9uZW50QnVpbGRlciwgRnhGb3JtLCBGeE1vZGUsIEZ4U2NvcGUsIEZ4VXRpbHMgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLWNvbnRyb2xzL2Rpc3BhdGNoLXRvLWNsaW5pYy9kaXNwYXRjaC10by1jbGluaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9nZ2xlLWJ1dHRvbi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z4LWJ1aWxkZXItd3JhcHBlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGeENvbXBvbmVudEJ1aWxkZXJdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZngtY29tcG9uZW50LWJ1aWxkZXIgXHJcbiAgICAgICAgI2NvbXBvbmVudEJ1aWxkZXIgXHJcbiAgICAgICAgW2Z4LWZvcm1dPVwiZnhGb3JtXCIgXHJcbiAgICAgICAgW2NvbmZpZ3VyYXRpb25dPVwiZnhDb25maWd1cmF0aW9uXCIgXHJcbiAgICAgICAgW3Njb3BlXT1cIkZ4U2NvcGUuQlVJTERFUlwiXHJcbiAgICAgICAgPlxyXG4gICAgPC9meC1jb21wb25lbnQtYnVpbGRlcj5cclxuICBgLFxyXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWJ1aWxkZXIuY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ4QnVpbGRlcldyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbXBvbmVudEJ1aWxkZXInKSBjb21wb25lbnRCdWlsZGVyITogRnhDb21wb25lbnRCdWlsZGVyO1xyXG4gIEBJbnB1dCh7IGFsaWFzOiAnZngtZm9ybScsIHJlcXVpcmVkOiB0cnVlIH0pIGZ4Rm9ybTogRnhGb3JtID0gRnhVdGlscy5jcmVhdGVOZXdGb3JtKCk7XHJcbiAgcHVibGljIGZ4TW9kZTogRnhNb2RlID0gRnhNb2RlLkVESVQ7XHJcbiAgcHVibGljIGZ4Q29uZmlndXJhdGlvbjogRnhCdWlsZGVyQ29uZmlndXJhdGlvbiA9IHtcclxuICAgIHNldHRpbmdzOiB0cnVlLFxyXG4gICAgbG9naWNzOiB0cnVlLFxyXG4gICAgY3VzdG9tQ29udHJvbHM6IHRydWUsXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRnhTY29wZSA9IEZ4U2NvcGU7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZ4TW9kZSA9IEZ4TW9kZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmeFdyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkaXNwYXRjaC10by1jbGluaWMnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdEaXNwYXRjaCBUbyBDbGluaWMnLCAnZGlzcGF0Y2gtdG8tY2xpbmljJywgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnZHluYW1pYy10YWJsZScpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0R5bmFtaWMgVGFibGUnLCAnZHluYW1pYy10YWJsZScsIER5bmFtaWNUYWJsZUNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndG9nZ2xlLWJ1dHRvbicpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZSBCdXR0b24nLCAndG9nZ2xlLWJ1dHRvbicsIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndXBsb2FkZXInKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdVcGxvYWRlcicsICd1cGxvYWRlcicsIFVwbG9hZGVyQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdUb2dnbGUnLCAndG9nZ2xlJywgVG9nZ2xlQ29tcG9uZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgZ2V0UGFyc2VkRm9ybSgpOiBGeEZvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50QnVpbGRlci5nZXRQYXJzZWRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SW5pdGlhbGl6ZWRGeEZvcm0oKTogRnhGb3JtIHtcclxuICAgIHJldHVybiBGeFV0aWxzLmNyZWF0ZU5ld0Zvcm0oKTsgXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { FxUtils } from '@instantsys-labs/fx';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@instantsys-labs/fx";
|
|
6
|
-
export class FxBuilderWrapperService {
|
|
7
|
-
fxComponentRegistry;
|
|
8
|
-
variables$ = new BehaviorSubject(null);
|
|
9
|
-
constructor(fxComponentRegistry) {
|
|
10
|
-
this.fxComponentRegistry = fxComponentRegistry;
|
|
11
|
-
}
|
|
12
|
-
registerCustomComponent(title, selector, component) {
|
|
13
|
-
this.fxComponentRegistry.registerComponent(selector, component, {
|
|
14
|
-
registeringAs: "CUSTOM",
|
|
15
|
-
libraryItem: {
|
|
16
|
-
title,
|
|
17
|
-
icon: 'fa-eye',
|
|
18
|
-
fxData: {
|
|
19
|
-
id: null,
|
|
20
|
-
name: selector,
|
|
21
|
-
value: "",
|
|
22
|
-
selector: selector,
|
|
23
|
-
elements: [],
|
|
24
|
-
events: []
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
getComponent(selector) {
|
|
30
|
-
return this.fxComponentRegistry.getComponent(selector);
|
|
31
|
-
}
|
|
32
|
-
getInitializedFxForm() {
|
|
33
|
-
return FxUtils.createNewForm();
|
|
34
|
-
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FxBuilderWrapperService, deps: [{ token: i1.FxComponentRegistryService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FxBuilderWrapperService, providedIn: 'root' });
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FxBuilderWrapperService, decorators: [{
|
|
39
|
-
type: Injectable,
|
|
40
|
-
args: [{
|
|
41
|
-
providedIn: 'root'
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [{ type: i1.FxComponentRegistryService }] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBdUQsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBVyxNQUFNLE1BQU0sQ0FBQzs7O0FBS2hELE1BQU0sT0FBTyx1QkFBdUI7SUFFZDtJQURiLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBYSxJQUFJLENBQUMsQ0FBQztJQUMxRCxZQUFvQixtQkFBK0M7UUFBL0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtJQUFJLENBQUM7SUFFakUsdUJBQXVCLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsU0FBZ0M7UUFFOUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUU7WUFDOUQsYUFBYSxFQUFFLFFBQVE7WUFDdkIsV0FBVyxFQUFFO2dCQUNYLEtBQUs7Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsTUFBTSxFQUFFO29CQUNOLEVBQUUsRUFBRSxJQUFJO29CQUNSLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxFQUFFO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUUsRUFBRTtpQkFDWDthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFnQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixPQUFPLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO3dHQTdCUSx1QkFBdUI7NEdBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLCBGeEZvcm0sIEZ4VXRpbHMgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB7XHJcbiAgcHVibGljIHZhcmlhYmxlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueSB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnhDb21wb25lbnRSZWdpc3RyeTogRnhDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UpIHsgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJDdXN0b21Db21wb25lbnQodGl0bGU6IHN0cmluZywgc2VsZWN0b3I6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEZ4QmFzZUNvbXBvbmVudD5cclxuICApOiB2b2lkIHtcclxuICAgIHRoaXMuZnhDb21wb25lbnRSZWdpc3RyeS5yZWdpc3RlckNvbXBvbmVudChzZWxlY3RvciwgY29tcG9uZW50LCB7XHJcbiAgICAgIHJlZ2lzdGVyaW5nQXM6IFwiQ1VTVE9NXCIsXHJcbiAgICAgIGxpYnJhcnlJdGVtOiB7XHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgaWNvbjogJ2ZhLWV5ZScsXHJcbiAgICAgICAgZnhEYXRhOiB7XHJcbiAgICAgICAgICBpZDogbnVsbCxcclxuICAgICAgICAgIG5hbWU6IHNlbGVjdG9yLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXHJcbiAgICAgICAgICBlbGVtZW50czogW10sXHJcbiAgICAgICAgICBldmVudHM6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb21wb25lbnQoc2VsZWN0b3I6IHN0cmluZyk6IFR5cGU8RnhCYXNlQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5meENvbXBvbmVudFJlZ2lzdHJ5LmdldENvbXBvbmVudChzZWxlY3Rvcik7XHJcbiAgfVxyXG5cclxuICAgcHVibGljIGdldEluaXRpYWxpemVkRnhGb3JtKCk6IEZ4Rm9ybSB7XHJcbiAgICAgIHJldHVybiBGeFV0aWxzLmNyZWF0ZU5ld0Zvcm0oKTsgXHJcbiAgICB9XHJcbn1cclxuIl19
|