ets-fe-ng-sdk 17.0.422 → 17.0.424
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/Shared/components/form-error/form-error.component.mjs +13 -11
- package/esm2022/lib/Shared/components/toggle-input-form/toggle-input-form.component.mjs +6 -3
- package/fesm2022/ets-fe-ng-sdk.mjs +16 -11
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Shared/components/btn/btn.component.d.ts +3 -3
- package/lib/Shared/components/form-error/form-error.component.d.ts +1 -0
- package/lib/Shared/components/index-comp-layout/index-comp-layout.component.d.ts +1 -1
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/toggle-input-form/toggle-input-form.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -40,13 +40,15 @@ export class FormErrorComponent {
|
|
|
40
40
|
this.destroyerRef = destroyerRef;
|
|
41
41
|
this.sub = this.uS.createSubscriptionManager();
|
|
42
42
|
this.errors = signal([]);
|
|
43
|
+
this.cErrors = computed(() => this.errors()?.filter((x) => x.formControl.invalid || x.formControl.pending));
|
|
43
44
|
// protected form?: Form;
|
|
44
45
|
// protected forms?: Form[];
|
|
45
46
|
this.lgGridNo = input(2);
|
|
46
47
|
this.xxlGridNo = input(3);
|
|
47
|
-
this.hasError = computed(() => this.
|
|
48
|
+
this.hasError = computed(() => this.cErrors()?.length > 0);
|
|
48
49
|
effect(() => {
|
|
49
50
|
console.log('errored forms', this.errors());
|
|
51
|
+
console.log('cErrored forms', this.cErrors());
|
|
50
52
|
});
|
|
51
53
|
this.destroyerRef.onDestroy(() => {
|
|
52
54
|
this.sub?.clear();
|
|
@@ -83,7 +85,7 @@ export class FormErrorComponent {
|
|
|
83
85
|
// console.log('message', this.message);
|
|
84
86
|
}
|
|
85
87
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: i1.UtilityService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
|
|
87
89
|
}
|
|
88
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, decorators: [{
|
|
89
91
|
type: Component,
|
|
@@ -94,17 +96,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
94
96
|
BtnComponent,
|
|
95
97
|
MatTooltipModule,
|
|
96
98
|
InfoIconComponent,
|
|
97
|
-
], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of
|
|
99
|
+
], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
|
|
98
100
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.UtilityService }, { type: i0.DestroyRef }], propDecorators: { form: [{
|
|
99
101
|
type: Input
|
|
100
102
|
}] } });
|
|
101
103
|
function hasError(control) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
return control?.pending
|
|
105
|
+
? true
|
|
106
|
+
: !control?.errors
|
|
107
|
+
? false
|
|
108
|
+
: Object.keys(control.errors).length
|
|
109
|
+
? true
|
|
110
|
+
: false;
|
|
109
111
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFVLEdBQUcsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFpQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0Isb0dBQW9HO0lBQ3BHLElBQWEsSUFBSSxDQUFDLENBQWdCO1FBQ2hDLFlB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b2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5mb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSW5mb0ljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHN1YiA9IHRoaXMudVMuY3JlYXRlU3Vic2NyaXB0aW9uTWFuYWdlcigpO1xuICAvLyByZWFkb25seSBlcnJvcnMgPSBzaWduYWw8eyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ/OiBzdHJpbmcgfVtdPihbXSk7XG4gIEBJbnB1dCgpIHNldCBmb3JtKHY6IEZvcm0gfCBGb3JtW10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB0aGlzLnN1Yi5wdXNoKFxuICAgICAgKEFycmF5LmlzQXJyYXkodilcbiAgICAgICAgPyBtZXJnZSguLi52Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgdi5zb21lKChmKSA9PiBmLnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgZi5zdGF0dXMgPT0gJ1BFTkRJTkcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIHVuaXFCeShcbiAgICAgICAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gaS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiB2LnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2LnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgdi5zdGF0dXMgPT0gJ1BFTkRJTkcnKSByZXR1cm4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKHYpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKChyKSA9PiB0aGlzLmVycm9ycy5zZXQocikpLFxuICAgICk7XG4gIH1cbiAgcmVhZG9ubHkgZXJyb3JzID0gc2lnbmFsPElFcnJvcj4oW10pO1xuXG4gIC8vIHByb3RlY3RlZCBmb3JtPzogRm9ybTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zPzogRm9ybVtdO1xuICByZWFkb25seSBsZ0dyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMik7XG4gIHJlYWRvbmx5IHh4bEdyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMyk7XG5cbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmVycm9ycygpPy5sZW5ndGggPiAwKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogVXRpbGl0eVNlcnZpY2UsXG4gICAgcHVibGljIGRlc3Ryb3llclJlZjogRGVzdHJveVJlZixcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdlcnJvcmVkIGZvcm1zJywgdGhpcy5lcnJvcnMoKSk7XG4gICAgfSk7XG4gICAgdGhpcy5kZXN0cm95ZXJSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMuc3ViPy5jbGVhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICBmb3JtOiBGb3JtIHwgQWJzdHJhY3RDb250cm9sLFxuICAgIGZvcm1OYW1lPzogc3RyaW5nLFxuICAgIF9pbmRleD86IG51bWJlcixcbiAgICBwYXJlbnQ/OiBzdHJpbmcsXG4gICk6IElFcnJvciB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgbGV0IG1lc3NhZ2VzOiBJRXJyb3IgPSBbXTtcbiAgICBpZiAoaGFzRXJyb3IoZm9ybSkpIHtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgIGZvcm1Db250cm9sOiBmb3JtLFxuICAgICAgICBsYWJlbDpcbiAgICAgICAgICAoX2luZGV4ID8gYEl0ZW0gJHtfaW5kZXh9OiBgIDogJycpICtcbiAgICAgICAgICAoZm9ybS5sYWJlbFZhbHVlIHx8XG4gICAgICAgICAgICAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IGZvcm1OYW1lPy50b1NlbnRlbmNlQ2FzZSgpKSksXG4gICAgICAgIHBhcmVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cClcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm0uY29udHJvbHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtLmNvbnRyb2xzLCBrZXkpKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNba2V5XTtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKFxuICAgICAgICAgICAgICBjb250cm9sLFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIF9pbmRleCxcbiAgICAgICAgICAgICAgZm9ybS5sYWJlbFZhbHVlIHx8IChmb3JtTmFtZSA/IHRoaXMudVMuZm9ybWF0RmllbGQoZm9ybU5hbWUpIDogcGFyZW50KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGVsc2UgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtQXJyYXkpXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZm9ybS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNbaW5kZXhdO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAuLi50aGlzLmdldEVycm9yTWVzc2FnZXMoXG4gICAgICAgICAgICBjb250cm9sLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgaW5kZXggKyAxLFxuICAgICAgICAgICAgZm9ybS5sYWJlbFZhbHVlIHx8IChmb3JtTmFtZSA/IHRoaXMudVMuZm9ybWF0RmllbGQoZm9ybU5hbWUpIDogcGFyZW50KSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIHJldHVybiBtZXNzYWdlcztcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICAvLyBjb25zb2xlLmxvZygnbWVzc2FnZScsIHRoaXMubWVzc2FnZSk7XG4gIH1cbn1cbnR5cGUgRm9ybSA9IEZvcm1Hcm91cCB8IEZvcm1Db250cm9sIHwgRm9ybUFycmF5O1xudHlwZSBJRXJyb3IgPSB7IGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGxhYmVsOiBzdHJpbmc7IHBhcmVudDogc3RyaW5nIHwgbnVsbCB9W107XG5mdW5jdGlvbiBoYXNFcnJvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgaWYgKGNvbnRyb2w/LnBlbmRpbmcpIHJldHVybiB0cnVlO1xuICBlbHNlIGlmICghY29udHJvbD8uZXJyb3JzKSByZXR1cm4gZmFsc2U7XG4gIGVsc2UgaWYgKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGgpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG4iLCJAaWYgKGhhc0Vycm9yKCkpIHtcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cbiAgICA8YXBwLWJ0blxuICAgICAgdGV4dD1cIkZvcm0gRXJyb3JzXCJcbiAgICAgIGljb249XCJpbmZvXCJcbiAgICAgIHR5cGU9XCJjbGVhclwiXG4gICAgICBtY2xhc3M9XCJidG4tb3V0bGluZS13YXJuaW5nXCJcbiAgICAgIChtY2xpY2spPVwiZXJyQ29udC5oaWRkZW4gPSAhZXJyQ29udC5oaWRkZW5cIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBmb3JtLWVycm9yLWNvbnRhaW5lciBwLTMgbXQtMlwiICNlcnJDb250IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3sgbGdHcmlkTm8oKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZE5vKCkgfX1cIj5cbiAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlLTNcIj57eyAnRm9ybSBlcnJvcnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIGVycm9ycygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoaXRlbS5mb3JtQ29udHJvbCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1pdGVtLWNhc2VcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgPGFwcC1pbmZvLWljb24gdGV4dD1cIkdyb3VwOiB7eyBpdGVtLnBhcmVudCB9fVwiIC8+XG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIlwiIFttYXRUb29sdGlwXT1cIml0ZW0ucGFyZW50XCI+UGFyZW50PC9kaXY+IC0tPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGFwcC12YWxpZGF0aW9uLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWwgfCB0aXRsZWNhc2VcIlxuICAgICAgICAgICAgICBbaWdub3JlRGlydGluZXNzXT1cInRydWVcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJpdGVtLmZvcm1Db250cm9sXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFVLEdBQUcsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFpQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0Isb0dBQW9HO0lBQ3BHLElBQWEsSUFBSSxDQUFDLENBQWdCO1FBQ2hDLFlB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LE9BQU8sT0FBTyxFQUFFLE9BQU87UUFDckIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNO2dCQUNsQyxDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5mb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSW5mb0ljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHN1YiA9IHRoaXMudVMuY3JlYXRlU3Vic2NyaXB0aW9uTWFuYWdlcigpO1xuICAvLyByZWFkb25seSBlcnJvcnMgPSBzaWduYWw8eyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ/OiBzdHJpbmcgfVtdPihbXSk7XG4gIEBJbnB1dCgpIHNldCBmb3JtKHY6IEZvcm0gfCBGb3JtW10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB0aGlzLnN1Yi5wdXNoKFxuICAgICAgKEFycmF5LmlzQXJyYXkodilcbiAgICAgICAgPyBtZXJnZSguLi52Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgdi5zb21lKChmKSA9PiBmLnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgZi5zdGF0dXMgPT0gJ1BFTkRJTkcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIHVuaXFCeShcbiAgICAgICAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gaS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiB2LnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2LnN0YXR1cyA9PSAnSU5WQUxJRCcgfHwgdi5zdGF0dXMgPT0gJ1BFTkRJTkcnKSByZXR1cm4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKHYpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKChyKSA9PiB0aGlzLmVycm9ycy5zZXQocikpLFxuICAgICk7XG4gIH1cbiAgcmVhZG9ubHkgZXJyb3JzID0gc2lnbmFsPElFcnJvcj4oW10pO1xuICByZWFkb25seSBjRXJyb3JzID0gY29tcHV0ZWQ8SUVycm9yPihcbiAgICAoKSA9PiB0aGlzLmVycm9ycygpPy5maWx0ZXIoKHgpID0+IHguZm9ybUNvbnRyb2wuaW52YWxpZCB8fCB4LmZvcm1Db250cm9sLnBlbmRpbmcpLFxuICApO1xuXG4gIC8vIHByb3RlY3RlZCBmb3JtPzogRm9ybTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zPzogRm9ybVtdO1xuICByZWFkb25seSBsZ0dyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMik7XG4gIHJlYWRvbmx5IHh4bEdyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMyk7XG5cbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmNFcnJvcnMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyBkZXN0cm95ZXJSZWY6IERlc3Ryb3lSZWYsXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnZXJyb3JlZCBmb3JtcycsIHRoaXMuZXJyb3JzKCkpO1xuICAgICAgY29uc29sZS5sb2coJ2NFcnJvcmVkIGZvcm1zJywgdGhpcy5jRXJyb3JzKCkpO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveWVyUmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLnN1Yj8uY2xlYXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZXMoXG4gICAgZm9ybTogRm9ybSB8IEFic3RyYWN0Q29udHJvbCxcbiAgICBmb3JtTmFtZT86IHN0cmluZyxcbiAgICBfaW5kZXg/OiBudW1iZXIsXG4gICAgcGFyZW50Pzogc3RyaW5nLFxuICApOiBJRXJyb3Ige1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGxldCBtZXNzYWdlczogSUVycm9yID0gW107XG4gICAgaWYgKGhhc0Vycm9yKGZvcm0pKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIG1lc3NhZ2VzLnB1c2goe1xuICAgICAgICBmb3JtQ29udHJvbDogZm9ybSxcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgKF9pbmRleCA/IGBJdGVtICR7X2luZGV4fTogYCA6ICcnKSArXG4gICAgICAgICAgKGZvcm0ubGFiZWxWYWx1ZSB8fFxuICAgICAgICAgICAgKGZvcm1OYW1lID8gdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgOiBmb3JtTmFtZT8udG9TZW50ZW5jZUNhc2UoKSkpLFxuICAgICAgICBwYXJlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtLmNvbnRyb2xzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybS5jb250cm9scywga2V5KSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2tleV07XG4gICAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBfaW5kZXgsXG4gICAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm0ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIG1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKFxuICAgICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGluZGV4ICsgMSxcbiAgICAgICAgICAgIGZvcm0ubGFiZWxWYWx1ZSB8fCAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IHBhcmVudCksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgLy8gY29uc29sZS5sb2coJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2UpO1xuICB9XG59XG50eXBlIEZvcm0gPSBGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheTtcbnR5cGUgSUVycm9yID0geyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ6IHN0cmluZyB8IG51bGwgfVtdO1xuZnVuY3Rpb24gaGFzRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIHJldHVybiBjb250cm9sPy5wZW5kaW5nXG4gICAgPyB0cnVlXG4gICAgOiAhY29udHJvbD8uZXJyb3JzXG4gICAgICA/IGZhbHNlXG4gICAgICA6IE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2U7XG59XG4iLCJAaWYgKGhhc0Vycm9yKCkpIHtcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cbiAgICA8YXBwLWJ0blxuICAgICAgdGV4dD1cIkZvcm0gRXJyb3JzXCJcbiAgICAgIGljb249XCJpbmZvXCJcbiAgICAgIHR5cGU9XCJjbGVhclwiXG4gICAgICBtY2xhc3M9XCJidG4tb3V0bGluZS13YXJuaW5nXCJcbiAgICAgIChtY2xpY2spPVwiZXJyQ29udC5oaWRkZW4gPSAhZXJyQ29udC5oaWRkZW5cIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBmb3JtLWVycm9yLWNvbnRhaW5lciBwLTMgbXQtMlwiICNlcnJDb250IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3sgbGdHcmlkTm8oKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZE5vKCkgfX1cIj5cbiAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlLTNcIj57eyAnRm9ybSBlcnJvcnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIGNFcnJvcnMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAaWYgKGl0ZW0uZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItaXRlbS1jYXNlXCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICAgIDxhcHAtaW5mby1pY29uIHRleHQ9XCJHcm91cDoge3sgaXRlbS5wYXJlbnQgfX1cIiAvPlxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJcIiBbbWF0VG9vbHRpcF09XCJpdGVtLnBhcmVudFwiPlBhcmVudDwvZGl2PiAtLT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsIHwgdGl0bGVjYXNlXCJcbiAgICAgICAgICAgICAgW2lnbm9yZURpcnRpbmVzc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiaXRlbS5mb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output, input, signal } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, input, signal, } from '@angular/core';
|
|
3
3
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
4
4
|
import { InputBasicComponent } from '../input/input-basic.component';
|
|
5
5
|
import { BtnComponent } from '../btn/btn.component';
|
|
@@ -50,6 +50,7 @@ export class ToggleInputFormComponent {
|
|
|
50
50
|
this.columnLengths = signal([
|
|
51
51
|
{ label: `List`, value: 1 },
|
|
52
52
|
{ label: `Dual`, value: 2 },
|
|
53
|
+
{ label: `Triple`, value: 3 },
|
|
53
54
|
{ label: `Medium`, value: 4 },
|
|
54
55
|
{ label: `Maximum`, value: 6 },
|
|
55
56
|
]);
|
|
@@ -87,7 +88,9 @@ export class ToggleInputFormComponent {
|
|
|
87
88
|
this.emitSelected();
|
|
88
89
|
}
|
|
89
90
|
emitSelected() {
|
|
90
|
-
this.selected.emit(this.list()
|
|
91
|
+
this.selected.emit(this.list()
|
|
92
|
+
.filter((x) => x.checked)
|
|
93
|
+
.map((x) => x.originalRow));
|
|
91
94
|
}
|
|
92
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ToggleInputFormComponent, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
96
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { setGrid: { classPropertyName: "setGrid", publicName: "gridNo", isSignal: false, isRequired: false, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: false, isRequired: true, transformFunction: null }, labelType: { classPropertyName: "labelType", publicName: "labelType", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: false, isRequired: true, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: null }, addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: false, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n\t<div class=\"row align-items-center justify-content-between g-3\">\n\t\t<div class=\"col-lg-auto\">\n\t\t\t<mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n\t\t\t\t{{ 'Toggle All' | appTranslate | async }}\n\t\t\t</mat-slide-toggle>\n\t\t</div>\n\t\t<div class=\"col-lg d-flex justify-content-end\">\n\t\t\t<div class=\"row align-items-center g-3\">\n\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t<app-btn\n\t\t\t\t\t\ticonBtn\n\t\t\t\t\t\t[showHelpIcon]=\"false\"\n\t\t\t\t\t\thelp=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n\t\t\t\t\t\t[icon]=\"searchBox.hidden ? 'search' : 'close'\"\n\t\t\t\t\t\t(mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n\t\t\t\t\t<app-input-td-rf\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t[noFormat]=\"true\"\n\t\t\t\t\t\t[showLabel]=\"false\"\n\t\t\t\t\t\tplaceholder=\"Type to search\"\n\t\t\t\t\t\t[(model)]=\"searchQuery\" />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t<app-btn\n\t\t\t\t\t\tcustomIcon=\"fa fa-list\"\n\t\t\t\t\t\t[showHelpIcon]=\"false\"\n\t\t\t\t\t\thelp=\"Grid Style\"\n\t\t\t\t\t\t[matMenuTriggerFor]=\"gridMenu\" />\n\t\t\t\t\t<mat-menu #gridMenu=\"matMenu\" class=\"\">\n\t\t\t\t\t\t@for (item of columnLengths(); track item) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tmat-menu-item\n\t\t\t\t\t\t\t\t(click)=\"setGrid = item.value\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'text-primary': item.value == currentGrid() }\">\n\t\t\t\t\t\t\t\t{{ item.label | appTranslate | async }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</mat-menu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{ xxlGrid() }} g-3\">\n\t@for (item of list() | filterArrayByString: searchQuery : ['label']; track item.value) {\n\t\t<div class=\"\">\n\t\t\t<div class=\"border rounded-10 p-10\">\n\t\t\t\t<div class=\"row align-items-center\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"col text-ellipsis\"\n\t\t\t\t\t\t[matTooltip]=\"ele.innerText\"\n\t\t\t\t\t\t[matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n\t\t\t\t\t\t#ele>\n\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t\t<mat-slide-toggle [(ngModel)]=\"item.checked\" (change)=\"toggledItem($event, item.originalRow)\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t}\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
|
|
@@ -124,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
124
127
|
}], selected: [{
|
|
125
128
|
type: Output
|
|
126
129
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RvZ2dsZS1pbnB1dC1mb3JtL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90b2dnbGUtaW5wdXQtZm9ybS90b2dnbGUtaW5wdXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUEyQixTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUYsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQXFCbkUsTUFB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LGlMQUNaLG9CQUFvQixtV0FDcEIsWUFBWSw4ZkFDWix1QkFBdUIsNERBRXZCLG1CQUFtQix5SUFDbkIsV0FBVyw4VkFDWCxnQkFBZ0IsNFRBQ2hCLGFBQWEseXZCQUNiLGdCQUFnQjs7MkZBR1Asd0JBQXdCO2tCQW5CcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUlQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7aUZBTW9CLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsUUFBUTtnQkFnQlgsS0FBSztzQkFEUixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVNiLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPdXRwdXQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVDaGFuZ2UsIE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IElPcHRpb24sIElucHV0U2VydmljZSB9IGZyb20gJy4uL2lucHV0L2lucHV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uTGFiZWxUeXBlLCBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0VERfUkZDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC10ZC1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNES1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvZ2dsZS1pbnB1dC1mb3JtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC5zY3NzJyxcbiAgLy8gXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIEZpbHRlckFycmF5QnlTdHJpbmdQaXBlLFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgSW5wdXRURF9SRkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgU0RLVHJhbnNsYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlSW5wdXRGb3JtQ29tcG9uZW50PFRPcHRpb24sIFRSb3c+IHtcbiAgcmF3TGlzdDogVE9wdGlvbltdO1xuICBsaXN0ID0gc2lnbmFsPElUb2dnbGVPcHRpb25bXT4oW10pO1xuICBzZWFyY2hRdWVyeTogc3RyaW5nO1xuICBASW5wdXQoJ2dyaWRObycpIHNldCBzZXRHcmlkKG51bTogR3JpZFNpemUpIHtcbiAgICB0aGlzLnh4bEdyaWQuc2V0KG51bSk7XG4gICAgdGhpcy5sZ0dyaWQuc2V0KG51bSA+IDMgPyBudW0gLSAxIDogbnVtKTtcbiAgICB0aGlzLm1kR3JpZC5zZXQobnVtID4gMyA/IE1hdGguZmxvb3IodGhpcy5sZ0dyaWQoKSAvIDIpIDogbnVtKTtcbiAgfVxuICAvLyBASW5wdXQoKSBzZXQgc2F2ZWREYXRhKHY6IFRSb3dbXSkge1xuICAvLyBcdGlmKHYpXG4gIC8vIFx0di5mb3JFYWNoKHJvdz0+e1xuICAvLyB0aGlzLlxuICAvLyBcdH0pXG4gIC8vIH1cbiAgY3VycmVudEdyaWQgPSBzaWduYWw8bnVtYmVyPih1bmRlZmluZWQpO1xuICB4eGxHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgbGdHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgbWRHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgQElucHV0KHsgYWxpYXM6ICdsaXN0JywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc2V0IF9saXN0KHY6IFRPcHRpb25bXSkge1xuICAgIHRoaXMucmF3TGlzdCA9IHY7XG4gICAgdGhpcy5saXN0LnNldCh0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIodiwgdGhpcy52YWx1ZUZpZWxkIGFzIHN0cmluZywgbnVsbCwgdGhpcy5sYWJlbFR5cGUoKSwgdGhpcy5sYWJlbEZpZWxkKCkgYXMgc3RyaW5nLCBmYWxzZSkpO1xuICAgIGlmICh0aGlzLmRlZmF1bHRUb2dnbGVBbGwoKSkgdGhpcy50b2dnbGVBbGwoeyBjaGVja2VkOiB0cnVlIH0pO1xuICB9XG4gIGxhYmVsVHlwZSA9IGlucHV0PE9wdGlvbkxhYmVsVHlwZT4oKTtcbiAgZGVmYXVsdFRvZ2dsZUFsbCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGxhYmVsRmllbGQgPSBpbnB1dDxrZXlvZiBUT3B0aW9uPigpO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2YWx1ZUZpZWxkOiBrZXlvZiBUT3B0aW9uO1xuICBASW5wdXQoKSBzaG93VG9nZ2xlQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgYWRkVG9Gb3JtRnVuYzogKGRhdGE/OiBUT3B0aW9uKSA9PiBhbnk7XG4gIEBJbnB1dCgpIGRlbGV0ZUZyb21Gb3JtRnVuYzogKGRhdGE/OiBUT3B0aW9uKSA9PiBhbnk7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUT3B0aW9uW10+KCk7XG5cbiAgY29sdW1uTGVuZ3RocyA9IHNpZ25hbDx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBHcmlkU2l6ZSB9W10+KFtcbiAgICB7IGxhYmVsOiBgTGlzdGAsIHZhbHVlOiAxIH0sXG4gICAgeyBsYWJlbDogYER1YWxgLCB2YWx1ZTogMiB9LFxuICAgIHsgbGFiZWw6IGBNZWRpdW1gLCB2YWx1ZTogNCB9LFxuICAgIHsgbGFiZWw6IGBNYXhpbXVtYCwgdmFsdWU6IDYgfSxcbiAgXSk7XG5cbiAgLy8gQElucHV0KCdsaXN0JylzZXQgX2xpc3Q6VFtdXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpUzogSW5wdXRTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZXRHcmlkID0gNjtcbiAgfVxuXG4gIHRvZ2dsZWRJdGVtKGU6IHsgY2hlY2tlZDogYm9vbGVhbiB9LCBpdGVtOiBUT3B0aW9uKSB7XG4gICAgLy8gdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICAgIGlmIChlLmNoZWNrZWQpIHRoaXMuYWRkVG9Gb3JtRnVuYz8uKGl0ZW0pO1xuICAgIGVsc2UgdGhpcy5kZWxldGVGcm9tRm9ybUZ1bmM/LihpdGVtKTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZCgpO1xuICB9XG5cbiAgdG9nZ2xlQWxsKGU6IHsgY2hlY2tlZDogYm9vbGVhbiB9KSB7XG4gICAgaWYgKGUuY2hlY2tlZClcbiAgICAgIHRoaXMubGlzdC51cGRhdGUoKGxpc3QpID0+IHtcbiAgICAgICAgbGlzdFxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+ICF4LmNoZWNrZWQpXG4gICAgICAgICAgLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICAgIHguY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFkZFRvRm9ybUZ1bmM/Lih4Lm9yaWdpbmFsUm93KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICB9KTtcbiAgICBlbHNlXG4gICAgICB0aGlzLmxpc3QudXBkYXRlKChsaXN0KSA9PiB7XG4gICAgICAgIGxpc3RcbiAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LmNoZWNrZWQpXG4gICAgICAgICAgLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kZWxldGVGcm9tRm9ybUZ1bmM/Lih4Lm9yaWdpbmFsUm93KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICB9KTtcbiAgICB0aGlzLmVtaXRTZWxlY3RlZCgpO1xuICB9XG5cbiAgZW1pdFNlbGVjdGVkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLmxpc3QoKS5maWx0ZXIoKHgpID0+IHguY2hlY2tlZCkubWFwKCh4KSA9PiB4Lm9yaWdpbmFsUm93KSk7XG4gIH1cbn1cbmludGVyZmFjZSBJVG9nZ2xlT3B0aW9uIGV4dGVuZHMgSU9wdGlvbiB7XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xufVxudHlwZSBHcmlkU2l6ZSA9IDYgfCA0IHwgMiB8IDE7XG4iLCI8ZGl2IGNsYXNzPVwicGItM1wiPlxuXHQ8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnLTNcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLWF1dG9cIj5cblx0XHRcdDxtYXQtc2xpZGUtdG9nZ2xlIChjaGFuZ2UpPVwidG9nZ2xlQWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJkZWZhdWx0VG9nZ2xlQWxsKClcIj5cblx0XHRcdFx0e3sgJ1RvZ2dsZSBBbGwnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cblx0XHRcdDwvbWF0LXNsaWRlLXRvZ2dsZT5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlciBnLTNcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG5cdFx0XHRcdFx0PGFwcC1idG5cblx0XHRcdFx0XHRcdGljb25CdG5cblx0XHRcdFx0XHRcdFtzaG93SGVscEljb25dPVwiZmFsc2VcIlxuXHRcdFx0XHRcdFx0aGVscD1cInt7IHNlYXJjaEJveC5oaWRkZW4gPyAnT3BlbiBzZWFyY2gnIDogJ0Nsb3NlIHNlYXJjaCcgfX1cIlxuXHRcdFx0XHRcdFx0W2ljb25dPVwic2VhcmNoQm94LmhpZGRlbiA/ICdzZWFyY2gnIDogJ2Nsb3NlJ1wiXG5cdFx0XHRcdFx0XHQobWNsaWNrKT1cInNlYXJjaEJveC5oaWRkZW4gPSAhc2VhcmNoQm94LmhpZGRlblwiIC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIiBbaGlkZGVuXT1cInRydWVcIiAjc2VhcmNoQm94PlxuXHRcdFx0XHRcdDxhcHAtaW5wdXQtdGQtcmZcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcblx0XHRcdFx0XHRcdFtub0Zvcm1hdF09XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJUeXBlIHRvIHNlYXJjaFwiXG5cdFx0XHRcdFx0XHRbKG1vZGVsKV09XCJzZWFyY2hRdWVyeVwiIC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cblx0XHRcdFx0XHQ8YXBwLWJ0blxuXHRcdFx0XHRcdFx0Y3VzdG9tSWNvbj1cImZhIGZhLWxpc3RcIlxuXHRcdFx0XHRcdFx0W3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiXG5cdFx0XHRcdFx0XHRoZWxwPVwiR3JpZCBTdHlsZVwiXG5cdFx0XHRcdFx0XHRbbWF0TWVudVRyaWdnZXJGb3JdPVwiZ3JpZE1lbnVcIiAvPlxuXHRcdFx0XHRcdDxtYXQtbWVudSAjZ3JpZE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJcIj5cblx0XHRcdFx0XHRcdEBmb3IgKGl0ZW0gb2YgY29sdW1uTGVuZ3RocygpOyB0cmFjayBpdGVtKSB7XG5cdFx0XHRcdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRcdFx0XHRtYXQtbWVudS1pdGVtXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInNldEdyaWQgPSBpdGVtLnZhbHVlXCJcblx0XHRcdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7ICd0ZXh0LXByaW1hcnknOiBpdGVtLnZhbHVlID09IGN1cnJlbnRHcmlkKCkgfVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L21hdC1tZW51PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1tZC17eyBtZEdyaWQoKSB9fSByb3ctY29scy1sZy17eyBsZ0dyaWQoKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZCgpIH19IGctM1wiPlxuXHRAZm9yIChpdGVtIG9mIGxpc3QoKSB8IGZpbHRlckFycmF5QnlTdHJpbmc6IHNlYXJjaFF1ZXJ5IDogWydsYWJlbCddOyB0cmFjayBpdGVtLnZhbHVlKSB7XG5cdFx0PGRpdiBjbGFzcz1cIlwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMTBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRjbGFzcz1cImNvbCB0ZXh0LWVsbGlwc2lzXCJcblx0XHRcdFx0XHRcdFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIlxuXHRcdFx0XHRcdFx0W21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcblx0XHRcdFx0XHRcdCNlbGU+XG5cdFx0XHRcdFx0XHR7eyBpdGVtLmxhYmVsIH19XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG5cdFx0XHRcdFx0XHQ8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIml0ZW0uY2hlY2tlZFwiIChjaGFuZ2UpPVwidG9nZ2xlZEl0ZW0oJGV2ZW50LCBpdGVtLm9yaWdpbmFsUm93KVwiIC8+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdH1cbjwvZGl2PlxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL3RvZ2dsZS1pbnB1dC1mb3JtL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy90b2dnbGUtaW5wdXQtZm9ybS90b2dnbGUtaW5wdXQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUNMLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0Isb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBcUJuRSxNQUFN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OEdBOUZVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDgxQ0MxQ3JDLHk4RUFrRUEsK0VEcENJLFlBQVksaUxBQ1osb0JBQW9CLG1XQUNwQixZQUFZLDhmQUNaLHVCQUF1Qiw0REFFdkIsbUJBQW1CLHlJQUNuQixXQUFXLDhWQUNYLGdCQUFnQiw0VEFDaEIsYUFBYSx5dkJBQ2IsZ0JBQWdCOzsyRkFHUCx3QkFBd0I7a0JBbkJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBSVA7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNqQjtpRkFNb0IsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxRQUFRO2dCQWdCWCxLQUFLO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBa0JiLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSwgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgSU9wdGlvbiwgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUsIElucHV0QmFzaWNDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRURF9SRkNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEZpbHRlckFycmF5QnlTdHJpbmdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9nZ2xlLWlucHV0LWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdG9nZ2xlLWlucHV0LWZvcm0uY29tcG9uZW50LnNjc3MnLFxuICAvL1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBGaWx0ZXJBcnJheUJ5U3RyaW5nUGlwZSxcbiAgICBJbnB1dEJhc2ljQ29tcG9uZW50LFxuICAgIElucHV0VERfUkZDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUlucHV0Rm9ybUNvbXBvbmVudDxUT3B0aW9uIGV4dGVuZHMgeyBjaGVja2VkPzogYm9vbGVhbiB9LCBUUm93PiB7XG4gIHJhd0xpc3Q6IFRPcHRpb25bXTtcbiAgbGlzdCA9IHNpZ25hbDxJVG9nZ2xlT3B0aW9uW10+KFtdKTtcbiAgc2VhcmNoUXVlcnk6IHN0cmluZztcbiAgQElucHV0KCdncmlkTm8nKSBzZXQgc2V0R3JpZChudW06IEdyaWRTaXplKSB7XG4gICAgdGhpcy54eGxHcmlkLnNldChudW0pO1xuICAgIHRoaXMubGdHcmlkLnNldChudW0gPiAzID8gbnVtIC0gMSA6IG51bSk7XG4gICAgdGhpcy5tZEdyaWQuc2V0KG51bSA+IDMgPyBNYXRoLmZsb29yKHRoaXMubGdHcmlkKCkgLyAyKSA6IG51bSk7XG4gIH1cbiAgLy8gQElucHV0KCkgc2V0IHNhdmVkRGF0YSh2OiBUUm93W10pIHtcbiAgLy8gXHRpZih2KVxuICAvLyBcdHYuZm9yRWFjaChyb3c9PntcbiAgLy8gdGhpcy5cbiAgLy8gXHR9KVxuICAvLyB9XG4gIGN1cnJlbnRHcmlkID0gc2lnbmFsPG51bWJlcj4odW5kZWZpbmVkKTtcbiAgeHhsR3JpZCA9IHNpZ25hbDxudW1iZXI+KHVuZGVmaW5lZCk7XG4gIGxnR3JpZCA9IHNpZ25hbDxudW1iZXI+KHVuZGVmaW5lZCk7XG4gIG1kR3JpZCA9IHNpZ25hbDxudW1iZXI+KHVuZGVmaW5lZCk7XG4gIEBJbnB1dCh7IGFsaWFzOiAnbGlzdCcsIHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCBfbGlzdCh2OiBUT3B0aW9uW10pIHtcbiAgICB0aGlzLnJhd0xpc3QgPSB2O1xuICAgIHRoaXMubGlzdC5zZXQoXG4gICAgICB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIoXG4gICAgICAgIHYsXG4gICAgICAgIHRoaXMudmFsdWVGaWVsZCBhcyBzdHJpbmcsXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMubGFiZWxUeXBlKCksXG4gICAgICAgIHRoaXMubGFiZWxGaWVsZCgpIGFzIHN0cmluZyxcbiAgICAgICAgZmFsc2UsXG4gICAgICApLFxuICAgICk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFRvZ2dsZUFsbCgpKSB0aGlzLnRvZ2dsZUFsbCh7IGNoZWNrZWQ6IHRydWUgfSk7XG4gIH1cbiAgbGFiZWxUeXBlID0gaW5wdXQ8T3B0aW9uTGFiZWxUeXBlPigpO1xuICBkZWZhdWx0VG9nZ2xlQWxsID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbGFiZWxGaWVsZCA9IGlucHV0PGtleW9mIFRPcHRpb24+KCk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHZhbHVlRmllbGQ6IGtleW9mIFRPcHRpb247XG4gIEBJbnB1dCgpIHNob3dUb2dnbGVBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhZGRUb0Zvcm1GdW5jOiAoZGF0YT86IFRPcHRpb24pID0+IGFueTtcbiAgQElucHV0KCkgZGVsZXRlRnJvbUZvcm1GdW5jOiAoZGF0YT86IFRPcHRpb24pID0+IGFueTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRPcHRpb25bXT4oKTtcblxuICBjb2x1bW5MZW5ndGhzID0gc2lnbmFsPHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEdyaWRTaXplIH1bXT4oW1xuICAgIHsgbGFiZWw6IGBMaXN0YCwgdmFsdWU6IDEgfSxcbiAgICB7IGxhYmVsOiBgRHVhbGAsIHZhbHVlOiAyIH0sXG4gICAgeyBsYWJlbDogYFRyaXBsZWAsIHZhbHVlOiAzIH0sXG4gICAgeyBsYWJlbDogYE1lZGl1bWAsIHZhbHVlOiA0IH0sXG4gICAgeyBsYWJlbDogYE1heGltdW1gLCB2YWx1ZTogNiB9LFxuICBdKTtcblxuICAvLyBASW5wdXQoJ2xpc3QnKXNldCBfbGlzdDpUW11cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHtcbiAgICB0aGlzLnNldEdyaWQgPSA2O1xuICB9XG5cbiAgdG9nZ2xlZEl0ZW0oZTogeyBjaGVja2VkOiBib29sZWFuIH0sIGl0ZW06IFRPcHRpb24pIHtcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gICAgaWYgKGUuY2hlY2tlZCkgdGhpcy5hZGRUb0Zvcm1GdW5jPy4oaXRlbSk7XG4gICAgZWxzZSB0aGlzLmRlbGV0ZUZyb21Gb3JtRnVuYz8uKGl0ZW0pO1xuICAgIHRoaXMuZW1pdFNlbGVjdGVkKCk7XG4gIH1cblxuICB0b2dnbGVBbGwoZTogeyBjaGVja2VkOiBib29sZWFuIH0pIHtcbiAgICBpZiAoZS5jaGVja2VkKVxuICAgICAgdGhpcy5saXN0LnVwZGF0ZSgobGlzdCkgPT4ge1xuICAgICAgICBsaXN0XG4gICAgICAgICAgLmZpbHRlcigoeCkgPT4gIXguY2hlY2tlZClcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgeC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9Gb3JtRnVuYz8uKHgub3JpZ2luYWxSb3cpO1xuICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgIH0pO1xuICAgIGVsc2VcbiAgICAgIHRoaXMubGlzdC51cGRhdGUoKGxpc3QpID0+IHtcbiAgICAgICAgbGlzdFxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHguY2hlY2tlZClcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgeC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZyb21Gb3JtRnVuYz8uKHgub3JpZ2luYWxSb3cpO1xuICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgIH0pO1xuICAgIHRoaXMuZW1pdFNlbGVjdGVkKCk7XG4gIH1cblxuICBlbWl0U2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KFxuICAgICAgdGhpcy5saXN0KClcbiAgICAgICAgLmZpbHRlcigoeCkgPT4geC5jaGVja2VkKVxuICAgICAgICAubWFwKCh4KSA9PiB4Lm9yaWdpbmFsUm93KSxcbiAgICApO1xuICB9XG59XG5pbnRlcmZhY2UgSVRvZ2dsZU9wdGlvbiBleHRlbmRzIElPcHRpb24ge1xuICBjaGVja2VkPzogYm9vbGVhbjtcbn1cbnR5cGUgR3JpZFNpemUgPSA2IHwgNCB8IDMgfCAyIHwgMTtcbiIsIjxkaXYgY2xhc3M9XCJwYi0zXCI+XG5cdDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGctM1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctYXV0b1wiPlxuXHRcdFx0PG1hdC1zbGlkZS10b2dnbGUgKGNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImRlZmF1bHRUb2dnbGVBbGwoKVwiPlxuXHRcdFx0XHR7eyAnVG9nZ2xlIEFsbCcgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuXHRcdFx0PC9tYXQtc2xpZGUtdG9nZ2xlPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtbGcgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGctM1wiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cblx0XHRcdFx0XHQ8YXBwLWJ0blxuXHRcdFx0XHRcdFx0aWNvbkJ0blxuXHRcdFx0XHRcdFx0W3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiXG5cdFx0XHRcdFx0XHRoZWxwPVwie3sgc2VhcmNoQm94LmhpZGRlbiA/ICdPcGVuIHNlYXJjaCcgOiAnQ2xvc2Ugc2VhcmNoJyB9fVwiXG5cdFx0XHRcdFx0XHRbaWNvbl09XCJzZWFyY2hCb3guaGlkZGVuID8gJ3NlYXJjaCcgOiAnY2xvc2UnXCJcblx0XHRcdFx0XHRcdChtY2xpY2spPVwic2VhcmNoQm94LmhpZGRlbiA9ICFzZWFyY2hCb3guaGlkZGVuXCIgLz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiIFtoaWRkZW5dPVwidHJ1ZVwiICNzZWFyY2hCb3g+XG5cdFx0XHRcdFx0PGFwcC1pbnB1dC10ZC1yZlxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdFx0W25vRm9ybWF0XT1cInRydWVcIlxuXHRcdFx0XHRcdFx0W3Nob3dMYWJlbF09XCJmYWxzZVwiXG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCJcblx0XHRcdFx0XHRcdFsobW9kZWwpXT1cInNlYXJjaFF1ZXJ5XCIgLz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuXHRcdFx0XHRcdDxhcHAtYnRuXG5cdFx0XHRcdFx0XHRjdXN0b21JY29uPVwiZmEgZmEtbGlzdFwiXG5cdFx0XHRcdFx0XHRbc2hvd0hlbHBJY29uXT1cImZhbHNlXCJcblx0XHRcdFx0XHRcdGhlbHA9XCJHcmlkIFN0eWxlXCJcblx0XHRcdFx0XHRcdFttYXRNZW51VHJpZ2dlckZvcl09XCJncmlkTWVudVwiIC8+XG5cdFx0XHRcdFx0PG1hdC1tZW51ICNncmlkTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0QGZvciAoaXRlbSBvZiBjb2x1bW5MZW5ndGhzKCk7IHRyYWNrIGl0ZW0pIHtcblx0XHRcdFx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdG1hdC1tZW51LWl0ZW1cblx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwic2V0R3JpZCA9IGl0ZW0udmFsdWVcIlxuXHRcdFx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cInsgJ3RleHQtcHJpbWFyeSc6IGl0ZW0udmFsdWUgPT0gY3VycmVudEdyaWQoKSB9XCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG5cdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvbWF0LW1lbnU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLW1kLXt7IG1kR3JpZCgpIH19IHJvdy1jb2xzLWxnLXt7IGxnR3JpZCgpIH19IHJvdy1jb2xzLXh4bC17eyB4eGxHcmlkKCkgfX0gZy0zXCI+XG5cdEBmb3IgKGl0ZW0gb2YgbGlzdCgpIHwgZmlsdGVyQXJyYXlCeVN0cmluZzogc2VhcmNoUXVlcnkgOiBbJ2xhYmVsJ107IHRyYWNrIGl0ZW0udmFsdWUpIHtcblx0XHQ8ZGl2IGNsYXNzPVwiXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQtMTAgcC0xMFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29sIHRleHQtZWxsaXBzaXNcIlxuXHRcdFx0XHRcdFx0W21hdFRvb2x0aXBdPVwiZWxlLmlubmVyVGV4dFwiXG5cdFx0XHRcdFx0XHRbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxXaWR0aCA8PSBlbGUub2Zmc2V0V2lkdGhcIlxuXHRcdFx0XHRcdFx0I2VsZT5cblx0XHRcdFx0XHRcdHt7IGl0ZW0ubGFiZWwgfX1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cblx0XHRcdFx0XHRcdDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiaXRlbS5jaGVja2VkXCIgKGNoYW5nZSk9XCJ0b2dnbGVkSXRlbSgkZXZlbnQsIGl0ZW0ub3JpZ2luYWxSb3cpXCIgLz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0fVxuPC9kaXY+XG4iXX0=
|
|
@@ -12679,13 +12679,15 @@ class FormErrorComponent {
|
|
|
12679
12679
|
this.destroyerRef = destroyerRef;
|
|
12680
12680
|
this.sub = this.uS.createSubscriptionManager();
|
|
12681
12681
|
this.errors = signal([]);
|
|
12682
|
+
this.cErrors = computed(() => this.errors()?.filter((x) => x.formControl.invalid || x.formControl.pending));
|
|
12682
12683
|
// protected form?: Form;
|
|
12683
12684
|
// protected forms?: Form[];
|
|
12684
12685
|
this.lgGridNo = input(2);
|
|
12685
12686
|
this.xxlGridNo = input(3);
|
|
12686
|
-
this.hasError = computed(() => this.
|
|
12687
|
+
this.hasError = computed(() => this.cErrors()?.length > 0);
|
|
12687
12688
|
effect(() => {
|
|
12688
12689
|
console.log('errored forms', this.errors());
|
|
12690
|
+
console.log('cErrored forms', this.cErrors());
|
|
12689
12691
|
});
|
|
12690
12692
|
this.destroyerRef.onDestroy(() => {
|
|
12691
12693
|
this.sub?.clear();
|
|
@@ -12722,7 +12724,7 @@ class FormErrorComponent {
|
|
|
12722
12724
|
// console.log('message', this.message);
|
|
12723
12725
|
}
|
|
12724
12726
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: UtilityService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12725
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of
|
|
12727
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
|
|
12726
12728
|
}
|
|
12727
12729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, decorators: [{
|
|
12728
12730
|
type: Component,
|
|
@@ -12733,18 +12735,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
12733
12735
|
BtnComponent,
|
|
12734
12736
|
MatTooltipModule,
|
|
12735
12737
|
InfoIconComponent,
|
|
12736
|
-
], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of
|
|
12738
|
+
], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of cErrors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
|
|
12737
12739
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: UtilityService }, { type: i0.DestroyRef }], propDecorators: { form: [{
|
|
12738
12740
|
type: Input
|
|
12739
12741
|
}] } });
|
|
12740
12742
|
function hasError(control) {
|
|
12741
|
-
|
|
12742
|
-
|
|
12743
|
-
|
|
12744
|
-
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12743
|
+
return control?.pending
|
|
12744
|
+
? true
|
|
12745
|
+
: !control?.errors
|
|
12746
|
+
? false
|
|
12747
|
+
: Object.keys(control.errors).length
|
|
12748
|
+
? true
|
|
12749
|
+
: false;
|
|
12748
12750
|
}
|
|
12749
12751
|
|
|
12750
12752
|
class TextCaseService {
|
|
@@ -15834,6 +15836,7 @@ class ToggleInputFormComponent {
|
|
|
15834
15836
|
this.columnLengths = signal([
|
|
15835
15837
|
{ label: `List`, value: 1 },
|
|
15836
15838
|
{ label: `Dual`, value: 2 },
|
|
15839
|
+
{ label: `Triple`, value: 3 },
|
|
15837
15840
|
{ label: `Medium`, value: 4 },
|
|
15838
15841
|
{ label: `Maximum`, value: 6 },
|
|
15839
15842
|
]);
|
|
@@ -15871,7 +15874,9 @@ class ToggleInputFormComponent {
|
|
|
15871
15874
|
this.emitSelected();
|
|
15872
15875
|
}
|
|
15873
15876
|
emitSelected() {
|
|
15874
|
-
this.selected.emit(this.list()
|
|
15877
|
+
this.selected.emit(this.list()
|
|
15878
|
+
.filter((x) => x.checked)
|
|
15879
|
+
.map((x) => x.originalRow));
|
|
15875
15880
|
}
|
|
15876
15881
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ToggleInputFormComponent, deps: [{ token: InputService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15877
15882
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: ToggleInputFormComponent, isStandalone: true, selector: "toggle-input-form", inputs: { setGrid: { classPropertyName: "setGrid", publicName: "gridNo", isSignal: false, isRequired: false, transformFunction: null }, _list: { classPropertyName: "_list", publicName: "list", isSignal: false, isRequired: true, transformFunction: null }, labelType: { classPropertyName: "labelType", publicName: "labelType", isSignal: true, isRequired: false, transformFunction: null }, defaultToggleAll: { classPropertyName: "defaultToggleAll", publicName: "defaultToggleAll", isSignal: true, isRequired: false, transformFunction: null }, labelField: { classPropertyName: "labelField", publicName: "labelField", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: false, isRequired: true, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: null }, addToFormFunc: { classPropertyName: "addToFormFunc", publicName: "addToFormFunc", isSignal: false, isRequired: false, transformFunction: null }, deleteFromFormFunc: { classPropertyName: "deleteFromFormFunc", publicName: "deleteFromFormFunc", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"pb-3\">\n\t<div class=\"row align-items-center justify-content-between g-3\">\n\t\t<div class=\"col-lg-auto\">\n\t\t\t<mat-slide-toggle (change)=\"toggleAll($event)\" [checked]=\"defaultToggleAll()\">\n\t\t\t\t{{ 'Toggle All' | appTranslate | async }}\n\t\t\t</mat-slide-toggle>\n\t\t</div>\n\t\t<div class=\"col-lg d-flex justify-content-end\">\n\t\t\t<div class=\"row align-items-center g-3\">\n\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t<app-btn\n\t\t\t\t\t\ticonBtn\n\t\t\t\t\t\t[showHelpIcon]=\"false\"\n\t\t\t\t\t\thelp=\"{{ searchBox.hidden ? 'Open search' : 'Close search' }}\"\n\t\t\t\t\t\t[icon]=\"searchBox.hidden ? 'search' : 'close'\"\n\t\t\t\t\t\t(mclick)=\"searchBox.hidden = !searchBox.hidden\" />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"col-auto\" [hidden]=\"true\" #searchBox>\n\t\t\t\t\t<app-input-td-rf\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t[noFormat]=\"true\"\n\t\t\t\t\t\t[showLabel]=\"false\"\n\t\t\t\t\t\tplaceholder=\"Type to search\"\n\t\t\t\t\t\t[(model)]=\"searchQuery\" />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t<app-btn\n\t\t\t\t\t\tcustomIcon=\"fa fa-list\"\n\t\t\t\t\t\t[showHelpIcon]=\"false\"\n\t\t\t\t\t\thelp=\"Grid Style\"\n\t\t\t\t\t\t[matMenuTriggerFor]=\"gridMenu\" />\n\t\t\t\t\t<mat-menu #gridMenu=\"matMenu\" class=\"\">\n\t\t\t\t\t\t@for (item of columnLengths(); track item) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tmat-menu-item\n\t\t\t\t\t\t\t\t(click)=\"setGrid = item.value\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'text-primary': item.value == currentGrid() }\">\n\t\t\t\t\t\t\t\t{{ item.label | appTranslate | async }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</mat-menu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row row-cols-md-{{ mdGrid() }} row-cols-lg-{{ lgGrid() }} row-cols-xxl-{{ xxlGrid() }} g-3\">\n\t@for (item of list() | filterArrayByString: searchQuery : ['label']; track item.value) {\n\t\t<div class=\"\">\n\t\t\t<div class=\"border rounded-10 p-10\">\n\t\t\t\t<div class=\"row align-items-center\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"col text-ellipsis\"\n\t\t\t\t\t\t[matTooltip]=\"ele.innerText\"\n\t\t\t\t\t\t[matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n\t\t\t\t\t\t#ele>\n\t\t\t\t\t\t{{ item.label }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-auto\">\n\t\t\t\t\t\t<mat-slide-toggle [(ngModel)]=\"item.checked\" (change)=\"toggledItem($event, item.originalRow)\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t}\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "pipe", type: FilterArrayByStringPipe, name: "filterArrayByString" }, { kind: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }] }); }
|