@valtimo/form-view-model 12.15.1 → 12.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/form-view-model/form-view-model.component.mjs +5 -8
- package/esm2022/lib/form-view-model.module.mjs +9 -3
- package/fesm2022/valtimo-form-view-model.mjs +16 -13
- package/fesm2022/valtimo-form-view-model.mjs.map +1 -1
- package/lib/components/form-view-model/form-view-model.component.d.ts +5 -5
- package/lib/components/form-view-model/form-view-model.component.d.ts.map +1 -1
- package/lib/form-view-model.module.d.ts +5 -1
- package/lib/form-view-model.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,15 +13,12 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
16
17
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
18
|
+
import { deepmerge } from 'deepmerge-ts';
|
|
17
19
|
import moment from 'moment';
|
|
18
20
|
import { BehaviorSubject, combineLatest, filter, interval, merge, Subject, switchMap, take, tap, } from 'rxjs';
|
|
19
|
-
import { FormioModule, } from '@formio/angular';
|
|
20
21
|
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
21
|
-
import { deepmerge } from 'deepmerge-ts';
|
|
22
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
23
|
-
import { CommonModule } from '@angular/common';
|
|
24
|
-
import { LayerModule } from 'carbon-components-angular';
|
|
25
22
|
import * as i0 from "@angular/core";
|
|
26
23
|
import * as i1 from "../../services";
|
|
27
24
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -348,11 +345,11 @@ export class FormViewModelComponent {
|
|
|
348
345
|
document.body.style.cursor = enabled ? 'wait' : 'auto';
|
|
349
346
|
}
|
|
350
347
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, deps: [{ token: i1.ViewModelService }, { token: i2.TranslateService }, { token: i3.FormIoStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
351
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormViewModelComponent,
|
|
348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormViewModelComponent, selector: "valtimo-form-view-model", inputs: { options: "options", submission: "submission", form: "form", formName: "formName", taskInstanceId: "taskInstanceId", isStartForm: "isStartForm", documentId: "documentId", processDefinitionKey: "processDefinitionKey", documentDefinitionName: "documentDefinitionName" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "formio", first: true, predicate: ["formio"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FormioComponent, selector: "formio" }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
352
349
|
}
|
|
353
350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, decorators: [{
|
|
354
351
|
type: Component,
|
|
355
|
-
args: [{ selector: 'valtimo-form-view-model',
|
|
352
|
+
args: [{ selector: 'valtimo-form-view-model', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"] }]
|
|
356
353
|
}], ctorParameters: () => [{ type: i1.ViewModelService }, { type: i2.TranslateService }, { type: i3.FormIoStateService }], propDecorators: { formio: [{
|
|
357
354
|
type: ViewChild,
|
|
358
355
|
args: ['formio']
|
|
@@ -377,4 +374,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
377
374
|
}], formSubmit: [{
|
|
378
375
|
type: Output
|
|
379
376
|
}] } });
|
|
380
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxPQUFPLEVBRVAsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBRUwsWUFBWSxHQUliLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHdkMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFFdEQsTUFBTSxDQUFDLGFBQWEsR0FB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QUFzQjtrQkFQbEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7cUpBRzdCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFFTixPQUFPO3NCQUFuQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFZTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFJTyxzQkFBc0I7c0JBQWxDLEtBQUs7Z0JBSUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ29tcG9uZW50LFxuICBGb3JtaW9Nb2R1bGUsXG4gIEZvcm1pb09wdGlvbnMsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayxcbn0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7Vmlld01vZGVsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2RlZXBtZXJnZX0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7Rm9ybUlvU3RhdGVTZXJ2aWNlLCBWYWx0aW1vRm9ybWlvT3B0aW9uc30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xheWVyTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcblxubW9tZW50LmRlZmF1bHRGb3JtYXQgPSAnREQgTU1NIFlZWVkgSEg6bW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0tdmlldy1tb2RlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtaW9Nb2R1bGUsIExheWVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZm9ybWlvJykgZm9ybWlvOiBGb3JtaW9Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgc2V0IG9wdGlvbnMob3B0aW9uc1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMkLm5leHQob3B0aW9uc1ZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzdWJtaXNzaW9uKHN1Ym1pc3Npb25WYWx1ZTogRm9ybWlvU3VibWlzc2lvbikge1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZvcm0oZm9ybVZhbHVlOiBvYmplY3QpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXM7XG4gICAgY29uc3QgZm9ybSA9IHtcbiAgICAgIGxvYWRJbml0aWFsVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbCgpLFxuICAgICAgdXBkYXRlVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWwoKSxcbiAgICAgIGxvYWRJbml0aWFsU3RhcnRGb3JtVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpLFxuICAgICAgdXBkYXRlVmlld1N0YXJ0Rm9ybU1vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKSxcbiAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICB9O1xuICAgIHRoaXMuZm9ybSQubmV4dChmb3JtKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmb3JtTmFtZShmb3JtTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTmFtZSQubmV4dChmb3JtTmFtZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdGFza0luc3RhbmNlSWQodGFza0luc3RhbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMudGFza0luc3RhbmNlSWQkLm5leHQodGFza0luc3RhbmNlSWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGlzU3RhcnRGb3JtKGlzU3RhcnRGb3JtVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU3RhcnRGb3JtJC5uZXh0KGlzU3RhcnRGb3JtVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRvY3VtZW50SWQoZG9jdW1lbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kb2N1bWVudElkJC5uZXh0KGRvY3VtZW50SWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHByb2Nlc3NEZWZpbml0aW9uS2V5KHByb2Nlc3NEZWZpbml0aW9uS2V5VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLm5leHQocHJvY2Vzc0RlZmluaXRpb25LZXlWYWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQubmV4dChkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgcmVmcmVzaEZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfcHJldmVudE5leHRQYWdlID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNXaXphcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3Q+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtTmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1FcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbHRpbW9Gb3JtaW9PcHRpb25zPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlblNldEluTG9jYWxTdG9yYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VFdmVudHMkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYmx1ciQgPSBuZXcgU3ViamVjdDxGb2N1c0V2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9jdXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb2N1c0V2ZW50PihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzU3RhcnRGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzRGVmaW5pdGlvbktleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVGb3JtID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlJCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJyaWRlT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1pb09wdGlvbnM+KHtcbiAgICBob29rczoge1xuICAgICAgYmVmb3JlU3VibWl0OiB0aGlzLmJlZm9yZVN1Ym1pdEhvb2sodGhpcyksXG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1pb09wdGlvbnMkOiBPYnNlcnZhYmxlPFZhbHRpbW9Gb3JtaW9PcHRpb25zIHwgRm9ybWlvT3B0aW9ucz4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9wdGlvbnMkLFxuICAgIHRoaXMuX292ZXJyaWRlT3B0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbb3B0aW9ucywgb3ZlcnJpZGVPcHRpb25zXSkgPT4ge1xuICAgICAgcmV0dXJuIGRlZXBtZXJnZShvcHRpb25zLCBvdmVycmlkZU9wdGlvbnMpO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlbmRlck9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRMYW5ndWFnZSRdKS5waXBlKFxuICAgIG1hcCgoW2xhbmd1YWdlXSkgPT4ge1xuICAgICAgY29uc3QgZm9ybWlvVHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Zvcm1pb1RyYW5zbGF0aW9ucycpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgLi4uKHR5cGVvZiBmb3JtaW9UcmFuc2xhdGlvbnMgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICBpMThuOiB7XG4gICAgICAgICAgICAgICAgW2xhbmd1YWdlXTogdGhpcy5zdGF0ZVNlcnZpY2UuZmxhdHRlblRyYW5zbGF0aW9uc09iamVjdChmb3JtaW9UcmFuc2xhdGlvbnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgZm9jdXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBibHVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdXBkYXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3TW9kZWxTZXJ2aWNlOiBWaWV3TW9kZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdGFydEZvcm0kLnZhbHVlKSB7XG4gICAgICB0aGlzLmxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxWaWV3TW9kZWwoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIGhhbmRsZSBibHVyIGV2ZW50cyBhZnRlciBlbnRlcmluZyBhbiBpbnB1dFxuICAgICAgICAgIHJldHVybiAhIWUgJiYgZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJsdXJTdWJzY3JpcHRpb24gPSB0aGlzLmJsdXIkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgZXZlbnRzIHdoZXJlIHJlbGF0ZWRUYXJnZXQgaXMgbm90IG51bGwuXG4gICAgICAgICAgICAgIC8vIFRoZSByZWxhdGVkVGFyZ2V0IHdpbGwgYmUgbnVsbCB3aGVuIG5vIG5ldyBpbnB1dCBpcyBmb2N1c2VkLlxuICAgICAgICAgICAgICByZXR1cm4gIWUucmVsYXRlZFRhcmdldDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRXYWl0Q3Vyc29yKHRydWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy51cGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N0YXJ0Rm9ybSQudmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld01vZGVsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9jdXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlU3VibWl0SG9vayhpbnN0YW5jZTogRm9ybVZpZXdNb2RlbENvbXBvbmVudCk6IChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gaW5zdGFuY2UuYmVmb3JlU3VibWl0KHN1Ym1pc3Npb24sIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVTdWJtaXQoc3VibWlzc2lvbjogYW55LCBjYWxsYmFjazogRm9ybWlvU3VibWlzc2lvbkNhbGxiYWNrKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudHMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNldFdhaXRDdXJzb3IoZmFsc2UpO1xuXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgICAgIHRoaXMudGFza0luc3RhbmNlSWQkLFxuICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLFxuICAgICAgICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQsXG4gICAgICAgICAgdGhpcy5pc1N0YXJ0Rm9ybSQsXG4gICAgICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgdGFza0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBpc1N0YXJ0Rm9ybSxcbiAgICAgICAgICAgICAgICBkb2N1bWVudElkLFxuICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgIGlzU3RhcnRGb3JtXG4gICAgICAgICAgICAgICAgICA/IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24uZGF0YVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWwoZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkLCBzdWJtaXNzaW9uLmRhdGEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogXyA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHN1Ym1pc3Npb24pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN1Ym1pc3Npb25FcnJvcihlcnIsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXNzaW9uRXJyb3IoZXJyb3I6IGFueSwgY2FsbGJhY2s6IEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayk6IHZvaWQge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBtZXJnZSh0aGlzLmNoYW5nZUV2ZW50cyQsIGludGVydmFsKDIwMCkpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUVycm9yKGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayh7bWVzc2FnZTogJ2Vycm9yJywgY29tcG9uZW50OiBudWxsLCBzaWxlbnQ6IGZhbHNlfSwgbnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcm1FcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtaW8gPSB0aGlzLmZvcm1pby5mb3JtaW87XG4gICAgY29uc3QgZm9ybUVycm9ycyA9IFtdO1xuXG4gICAgdGhpcy5mb3JtRXJyb3JzJC5uZXh0KFtdKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEVycm9ycyA9IGVycm9yPy5lcnJvcj8uY29tcG9uZW50RXJyb3JzO1xuICAgIGNvbnN0IGdlbmVyaWNNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcjtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSBlcnJvcj8uZXJyb3I/LmNvbXBvbmVudDtcblxuICAgIC8vIEhhbmRsZSBmaWVsZC1sZXZlbCAoY29tcG9uZW50KSBlcnJvcnNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRFcnJvcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHtjb21wb25lbnQsIG1lc3NhZ2V9IG9mIGNvbXBvbmVudEVycm9ycykge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGZvcm1pby5nZXRDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgZmllbGQuc2V0Q3VzdG9tVmFsaWRpdHkobWVzc2FnZSwgdHJ1ZSk7IC8vIE1hcmsgZGlydHlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChmb3JtRXJyb3JzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc2luZ2xlIChnZW5lcmljIG9yIGNvbXBvbmVudC1zcGVjaWZpYykgZXJyb3JcbiAgICBpZiAoZ2VuZXJpY01lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZm9ybWlvLmdldENvbXBvbmVudChjb21wb25lbnRLZXkpO1xuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIGZpZWxkLnNldEN1c3RvbVZhbGlkaXR5KGdlbmVyaWNNZXNzYWdlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChbZ2VuZXJpY01lc3NhZ2VdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoc3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbik6IHZvaWQge1xuICAgIHRoaXMuZm9ybVN1Ym1pdC5uZXh0KHN1Ym1pc3Npb24pO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoJGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyQubmV4dCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihibHVyRXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIkLm5leHQoYmx1ckV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZShvYmplY3Q6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5uZXh0KG9iamVjdCk7XG4gICAgaWYgKG9iamVjdC5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEkLm5leHQob2JqZWN0LmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IHRydWU7XG4gICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgLSAxKTtcbiAgICB0aGlzLnVwZGF0ZUZvcm0ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2ZW50UHJldmlvdXNQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1pby5mb3JtaW8uc2V0UGFnZSh0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSArIDEpO1xuICAgIHRoaXMudXBkYXRlRm9ybS5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYWdlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9wcmV2ZW50TmV4dFBhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgKyAxKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5zZXRQYWdlKHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnRhc2tJbnN0YW5jZUlkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2UuZ2V0Vmlld01vZGVsKGZvcm1OYW1lLCB0YXNrSW5zdGFuY2VJZCkucGlwZShcbiAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZUV2ZW50cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoe2RhdGE6IHZpZXdNb2RlbH0pO1xuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZCA9IHRoaXMuZm9ybWlvLmZvcm0uZGlzcGxheSA9PT0gJ3dpemFyZCc7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5JCwgdGhpcy5kb2N1bWVudElkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dCh7ZGF0YTogdmlld01vZGVsfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmQgPSB0aGlzLmZvcm1pby5mb3JtLmRpc3BsYXkgPT09ICd3aXphcmQnO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlld01vZGVsKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mb3JtTmFtZSQsXG4gICAgICB0aGlzLnRhc2tJbnN0YW5jZUlkJCxcbiAgICAgIHRoaXMuZGF0YSQsXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtmb3JtTmFtZSwgdGFza0luc3RhbmNlSWQsIGRhdGFdKSA9PlxuICAgICAgICAgIHRoaXMudmlld01vZGVsU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVZpZXdNb2RlbChcbiAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgIHRhc2tJbnN0YW5jZUlkLFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICB0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSxcbiAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmRcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHZpZXdNb2RlbCA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZSh2aWV3TW9kZWwpLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZUVycm9yKGVycm9yKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSQsXG4gICAgICB0aGlzLmRhdGEkLFxuICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoW2Zvcm1OYW1lLCBwcm9jZXNzRGVmaW5pdGlvbktleSwgZGF0YSwgZG9jdW1lbnRJZF0pID0+XG4gICAgICAgICAgdGhpcy52aWV3TW9kZWxTZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlVmlld01vZGVsRm9yU3RhcnRGb3JtKFxuICAgICAgICAgICAgICBmb3JtTmFtZSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgIGRvY3VtZW50SWQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlLFxuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh7XG4gICAgICAgICAgICAgICAgbmV4dDogdmlld01vZGVsID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3IpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbDogb2JqZWN0KTogdm9pZCB7XG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbiQudmFsdWU7XG4gICAgc3VibWlzc2lvbi5kYXRhID0gdmlld01vZGVsO1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uKTtcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe3N1Ym1pc3Npb259KTtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1FcnJvcnMkLm5leHQoW10pO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy5oYW5kbGVGb3JtRXJyb3IoZXJyb3IpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFdhaXRDdXJzb3IoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gZW5hYmxlZCA/ICd3YWl0JyA6ICdhdXRvJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZm9ybS1jb250YWluZXIgZm9ybWlvLWNhcmJvblwiXG4gIGNkc0xheWVyPVwiMS4wXCJcbiAgKm5nSWY9XCJ7XG4gICAgc3VibWlzc2lvbjogc3VibWlzc2lvbiQgfCBhc3luYyxcbiAgICBmb3JtOiBmb3JtJCB8IGFzeW5jLFxuICAgIHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2U6IHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2UkIHwgYXN5bmMsXG4gICAgZm9ybWlvT3B0aW9uczogZm9ybWlvT3B0aW9ucyQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICAgIGVycm9yczogZm9ybUVycm9ycyQgfCBhc3luYyxcbiAgICByZW5kZXJPcHRpb25zOiByZW5kZXJPcHRpb25zJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgKm5nSWY9XCJvYnMubG9hZGluZ1wiIGNsYXNzPVwib3ZlcmxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5lcnJvcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyIHB0LTUgcGItNSBtYi0yXCI+XG4gICAgPG9sPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBvYnMuZXJyb3JzXCIgY2xhc3M9XCJwbC0yXCI+XG4gICAgICAgIHt7IGVycm9yIH19XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuXG4gIDxmb3JtaW9cbiAgICAjZm9ybWlvXG4gICAgW3N1Ym1pc3Npb25dPVwib2JzLnN1Ym1pc3Npb25cIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtXCJcbiAgICBbb3B0aW9uc109XCJvYnMuZm9ybWlvT3B0aW9uc1wiXG4gICAgW3JlbmRlck9wdGlvbnNdPVwib2JzLnJlbmRlck9wdGlvbnNcIlxuICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCJcbiAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZvY3VzaW4pPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoZm9jdXNvdXQpPVwib25CbHVyKCRldmVudClcIlxuICAgIChuZXh0UGFnZSk9XCJvbk5leHRQYWdlKClcIlxuICAgIChwcmV2UGFnZSk9XCJvblByZXZpb3VzUGFnZSgpXCJcbiAgPjwvZm9ybWlvPlxuPC9kaXY+XG4iXX0=
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBU25HLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE9BQU8sRUFFUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFHekQsTUFBTSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQU8zQyxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLElBQWEsT0FBTyxDQUFDLFlBQWlCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFF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QUFjO3NCQUExQixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBSU8sc0JBQXNCO3NCQUFsQyxLQUFLO2dCQUlJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtaW9Db21wb25lbnQsXG4gIEZvcm1pb09wdGlvbnMsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayxcbn0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Zvcm1Jb1N0YXRlU2VydmljZSwgVmFsdGltb0Zvcm1pb09wdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtkZWVwbWVyZ2V9IGZyb20gJ2RlZXBtZXJnZS10cyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtWaWV3TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbm1vbWVudC5kZWZhdWx0Rm9ybWF0ID0gJ0REIE1NTSBZWVlZIEhIOm1tJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1mb3JtLXZpZXctbW9kZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZm9ybWlvJykgZm9ybWlvOiBGb3JtaW9Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgc2V0IG9wdGlvbnMob3B0aW9uc1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMkLm5leHQob3B0aW9uc1ZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzdWJtaXNzaW9uKHN1Ym1pc3Npb25WYWx1ZTogRm9ybWlvU3VibWlzc2lvbikge1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZvcm0oZm9ybVZhbHVlOiBvYmplY3QpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXM7XG4gICAgY29uc3QgZm9ybSA9IHtcbiAgICAgIGxvYWRJbml0aWFsVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbCgpLFxuICAgICAgdXBkYXRlVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWwoKSxcbiAgICAgIGxvYWRJbml0aWFsU3RhcnRGb3JtVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpLFxuICAgICAgdXBkYXRlVmlld1N0YXJ0Rm9ybU1vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKSxcbiAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICB9O1xuICAgIHRoaXMuZm9ybSQubmV4dChmb3JtKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmb3JtTmFtZShmb3JtTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTmFtZSQubmV4dChmb3JtTmFtZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdGFza0luc3RhbmNlSWQodGFza0luc3RhbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMudGFza0luc3RhbmNlSWQkLm5leHQodGFza0luc3RhbmNlSWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGlzU3RhcnRGb3JtKGlzU3RhcnRGb3JtVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU3RhcnRGb3JtJC5uZXh0KGlzU3RhcnRGb3JtVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRvY3VtZW50SWQoZG9jdW1lbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kb2N1bWVudElkJC5uZXh0KGRvY3VtZW50SWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHByb2Nlc3NEZWZpbml0aW9uS2V5KHByb2Nlc3NEZWZpbml0aW9uS2V5VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLm5leHQocHJvY2Vzc0RlZmluaXRpb25LZXlWYWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQubmV4dChkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgcmVmcmVzaEZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfcHJldmVudE5leHRQYWdlID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNXaXphcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3Q+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtTmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1FcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbHRpbW9Gb3JtaW9PcHRpb25zPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlblNldEluTG9jYWxTdG9yYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VFdmVudHMkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYmx1ciQgPSBuZXcgU3ViamVjdDxGb2N1c0V2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9jdXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb2N1c0V2ZW50PihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzU3RhcnRGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzRGVmaW5pdGlvbktleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVGb3JtID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlJCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJyaWRlT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1pb09wdGlvbnM+KHtcbiAgICBob29rczoge1xuICAgICAgYmVmb3JlU3VibWl0OiB0aGlzLmJlZm9yZVN1Ym1pdEhvb2sodGhpcyksXG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1pb09wdGlvbnMkOiBPYnNlcnZhYmxlPFZhbHRpbW9Gb3JtaW9PcHRpb25zIHwgRm9ybWlvT3B0aW9ucz4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9wdGlvbnMkLFxuICAgIHRoaXMuX292ZXJyaWRlT3B0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbb3B0aW9ucywgb3ZlcnJpZGVPcHRpb25zXSkgPT4ge1xuICAgICAgcmV0dXJuIGRlZXBtZXJnZShvcHRpb25zLCBvdmVycmlkZU9wdGlvbnMpO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlbmRlck9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRMYW5ndWFnZSRdKS5waXBlKFxuICAgIG1hcCgoW2xhbmd1YWdlXSkgPT4ge1xuICAgICAgY29uc3QgZm9ybWlvVHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Zvcm1pb1RyYW5zbGF0aW9ucycpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgLi4uKHR5cGVvZiBmb3JtaW9UcmFuc2xhdGlvbnMgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICBpMThuOiB7XG4gICAgICAgICAgICAgICAgW2xhbmd1YWdlXTogdGhpcy5zdGF0ZVNlcnZpY2UuZmxhdHRlblRyYW5zbGF0aW9uc09iamVjdChmb3JtaW9UcmFuc2xhdGlvbnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgZm9jdXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBibHVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdXBkYXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3TW9kZWxTZXJ2aWNlOiBWaWV3TW9kZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdGFydEZvcm0kLnZhbHVlKSB7XG4gICAgICB0aGlzLmxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxWaWV3TW9kZWwoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIGhhbmRsZSBibHVyIGV2ZW50cyBhZnRlciBlbnRlcmluZyBhbiBpbnB1dFxuICAgICAgICAgIHJldHVybiAhIWUgJiYgZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJsdXJTdWJzY3JpcHRpb24gPSB0aGlzLmJsdXIkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgZXZlbnRzIHdoZXJlIHJlbGF0ZWRUYXJnZXQgaXMgbm90IG51bGwuXG4gICAgICAgICAgICAgIC8vIFRoZSByZWxhdGVkVGFyZ2V0IHdpbGwgYmUgbnVsbCB3aGVuIG5vIG5ldyBpbnB1dCBpcyBmb2N1c2VkLlxuICAgICAgICAgICAgICByZXR1cm4gIWUucmVsYXRlZFRhcmdldDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRXYWl0Q3Vyc29yKHRydWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy51cGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N0YXJ0Rm9ybSQudmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld01vZGVsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9jdXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlU3VibWl0SG9vayhpbnN0YW5jZTogRm9ybVZpZXdNb2RlbENvbXBvbmVudCk6IChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gaW5zdGFuY2UuYmVmb3JlU3VibWl0KHN1Ym1pc3Npb24sIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVTdWJtaXQoc3VibWlzc2lvbjogYW55LCBjYWxsYmFjazogRm9ybWlvU3VibWlzc2lvbkNhbGxiYWNrKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudHMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNldFdhaXRDdXJzb3IoZmFsc2UpO1xuXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgICAgIHRoaXMudGFza0luc3RhbmNlSWQkLFxuICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLFxuICAgICAgICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQsXG4gICAgICAgICAgdGhpcy5pc1N0YXJ0Rm9ybSQsXG4gICAgICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgdGFza0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBpc1N0YXJ0Rm9ybSxcbiAgICAgICAgICAgICAgICBkb2N1bWVudElkLFxuICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgIGlzU3RhcnRGb3JtXG4gICAgICAgICAgICAgICAgICA/IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24uZGF0YVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWwoZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkLCBzdWJtaXNzaW9uLmRhdGEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogXyA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHN1Ym1pc3Npb24pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN1Ym1pc3Npb25FcnJvcihlcnIsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXNzaW9uRXJyb3IoZXJyb3I6IGFueSwgY2FsbGJhY2s6IEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayk6IHZvaWQge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBtZXJnZSh0aGlzLmNoYW5nZUV2ZW50cyQsIGludGVydmFsKDIwMCkpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUVycm9yKGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayh7bWVzc2FnZTogJ2Vycm9yJywgY29tcG9uZW50OiBudWxsLCBzaWxlbnQ6IGZhbHNlfSwgbnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcm1FcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtaW8gPSB0aGlzLmZvcm1pby5mb3JtaW87XG4gICAgY29uc3QgZm9ybUVycm9ycyA9IFtdO1xuXG4gICAgdGhpcy5mb3JtRXJyb3JzJC5uZXh0KFtdKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEVycm9ycyA9IGVycm9yPy5lcnJvcj8uY29tcG9uZW50RXJyb3JzO1xuICAgIGNvbnN0IGdlbmVyaWNNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcjtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSBlcnJvcj8uZXJyb3I/LmNvbXBvbmVudDtcblxuICAgIC8vIEhhbmRsZSBmaWVsZC1sZXZlbCAoY29tcG9uZW50KSBlcnJvcnNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRFcnJvcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHtjb21wb25lbnQsIG1lc3NhZ2V9IG9mIGNvbXBvbmVudEVycm9ycykge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGZvcm1pby5nZXRDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgZmllbGQuc2V0Q3VzdG9tVmFsaWRpdHkobWVzc2FnZSwgdHJ1ZSk7IC8vIE1hcmsgZGlydHlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChmb3JtRXJyb3JzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc2luZ2xlIChnZW5lcmljIG9yIGNvbXBvbmVudC1zcGVjaWZpYykgZXJyb3JcbiAgICBpZiAoZ2VuZXJpY01lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZm9ybWlvLmdldENvbXBvbmVudChjb21wb25lbnRLZXkpO1xuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIGZpZWxkLnNldEN1c3RvbVZhbGlkaXR5KGdlbmVyaWNNZXNzYWdlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChbZ2VuZXJpY01lc3NhZ2VdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoc3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbik6IHZvaWQge1xuICAgIHRoaXMuZm9ybVN1Ym1pdC5uZXh0KHN1Ym1pc3Npb24pO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoJGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyQubmV4dCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihibHVyRXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIkLm5leHQoYmx1ckV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZShvYmplY3Q6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5uZXh0KG9iamVjdCk7XG4gICAgaWYgKG9iamVjdC5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEkLm5leHQob2JqZWN0LmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IHRydWU7XG4gICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgLSAxKTtcbiAgICB0aGlzLnVwZGF0ZUZvcm0ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2ZW50UHJldmlvdXNQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1pby5mb3JtaW8uc2V0UGFnZSh0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSArIDEpO1xuICAgIHRoaXMudXBkYXRlRm9ybS5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYWdlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9wcmV2ZW50TmV4dFBhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgKyAxKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5zZXRQYWdlKHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnRhc2tJbnN0YW5jZUlkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2UuZ2V0Vmlld01vZGVsKGZvcm1OYW1lLCB0YXNrSW5zdGFuY2VJZCkucGlwZShcbiAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZUV2ZW50cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoe2RhdGE6IHZpZXdNb2RlbH0pO1xuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZCA9IHRoaXMuZm9ybWlvLmZvcm0uZGlzcGxheSA9PT0gJ3dpemFyZCc7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5JCwgdGhpcy5kb2N1bWVudElkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dCh7ZGF0YTogdmlld01vZGVsfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmQgPSB0aGlzLmZvcm1pby5mb3JtLmRpc3BsYXkgPT09ICd3aXphcmQnO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlld01vZGVsKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mb3JtTmFtZSQsXG4gICAgICB0aGlzLnRhc2tJbnN0YW5jZUlkJCxcbiAgICAgIHRoaXMuZGF0YSQsXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtmb3JtTmFtZSwgdGFza0luc3RhbmNlSWQsIGRhdGFdKSA9PlxuICAgICAgICAgIHRoaXMudmlld01vZGVsU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVZpZXdNb2RlbChcbiAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgIHRhc2tJbnN0YW5jZUlkLFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICB0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSxcbiAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmRcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHZpZXdNb2RlbCA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZSh2aWV3TW9kZWwpLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZUVycm9yKGVycm9yKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSQsXG4gICAgICB0aGlzLmRhdGEkLFxuICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoW2Zvcm1OYW1lLCBwcm9jZXNzRGVmaW5pdGlvbktleSwgZGF0YSwgZG9jdW1lbnRJZF0pID0+XG4gICAgICAgICAgdGhpcy52aWV3TW9kZWxTZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlVmlld01vZGVsRm9yU3RhcnRGb3JtKFxuICAgICAgICAgICAgICBmb3JtTmFtZSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgIGRvY3VtZW50SWQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlLFxuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh7XG4gICAgICAgICAgICAgICAgbmV4dDogdmlld01vZGVsID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3IpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbDogb2JqZWN0KTogdm9pZCB7XG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbiQudmFsdWU7XG4gICAgc3VibWlzc2lvbi5kYXRhID0gdmlld01vZGVsO1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uKTtcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe3N1Ym1pc3Npb259KTtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1FcnJvcnMkLm5leHQoW10pO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy5oYW5kbGVGb3JtRXJyb3IoZXJyb3IpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFdhaXRDdXJzb3IoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gZW5hYmxlZCA/ICd3YWl0JyA6ICdhdXRvJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZm9ybS1jb250YWluZXIgZm9ybWlvLWNhcmJvblwiXG4gIGNkc0xheWVyPVwiMS4wXCJcbiAgKm5nSWY9XCJ7XG4gICAgc3VibWlzc2lvbjogc3VibWlzc2lvbiQgfCBhc3luYyxcbiAgICBmb3JtOiBmb3JtJCB8IGFzeW5jLFxuICAgIHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2U6IHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2UkIHwgYXN5bmMsXG4gICAgZm9ybWlvT3B0aW9uczogZm9ybWlvT3B0aW9ucyQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICAgIGVycm9yczogZm9ybUVycm9ycyQgfCBhc3luYyxcbiAgICByZW5kZXJPcHRpb25zOiByZW5kZXJPcHRpb25zJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgKm5nSWY9XCJvYnMubG9hZGluZ1wiIGNsYXNzPVwib3ZlcmxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5lcnJvcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyIHB0LTUgcGItNSBtYi0yXCI+XG4gICAgPG9sPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBvYnMuZXJyb3JzXCIgY2xhc3M9XCJwbC0yXCI+XG4gICAgICAgIHt7IGVycm9yIH19XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuXG4gIDxmb3JtaW9cbiAgICAjZm9ybWlvXG4gICAgW3N1Ym1pc3Npb25dPVwib2JzLnN1Ym1pc3Npb25cIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtXCJcbiAgICBbb3B0aW9uc109XCJvYnMuZm9ybWlvT3B0aW9uc1wiXG4gICAgW3JlbmRlck9wdGlvbnNdPVwib2JzLnJlbmRlck9wdGlvbnNcIlxuICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCJcbiAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZvY3VzaW4pPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoZm9jdXNvdXQpPVwib25CbHVyKCRldmVudClcIlxuICAgIChuZXh0UGFnZSk9XCJvbk5leHRQYWdlKClcIlxuICAgIChwcmV2UGFnZSk9XCJvblByZXZpb3VzUGFnZSgpXCJcbiAgPjwvZm9ybWlvPlxuPC9kaXY+XG4iXX0=
|
|
@@ -13,29 +13,35 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
16
17
|
import { NgModule } from '@angular/core';
|
|
18
|
+
import { FormioModule } from '@formio/angular';
|
|
17
19
|
import { FORM_VIEW_MODEL_TOKEN } from '@valtimo/config';
|
|
20
|
+
import { LayerModule } from 'carbon-components-angular';
|
|
18
21
|
import { FormViewModelComponent } from './components/form-view-model';
|
|
19
22
|
import * as i0 from "@angular/core";
|
|
20
23
|
export class FormViewModelModule {
|
|
21
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule }); }
|
|
25
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, declarations: [FormViewModelComponent], imports: [CommonModule, FormioModule, LayerModule], exports: [FormViewModelComponent] }); }
|
|
23
26
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, providers: [
|
|
24
27
|
{
|
|
25
28
|
provide: FORM_VIEW_MODEL_TOKEN,
|
|
26
29
|
useValue: { component: FormViewModelComponent },
|
|
27
30
|
},
|
|
28
|
-
] }); }
|
|
31
|
+
], imports: [CommonModule, FormioModule, LayerModule] }); }
|
|
29
32
|
}
|
|
30
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, decorators: [{
|
|
31
34
|
type: NgModule,
|
|
32
35
|
args: [{
|
|
36
|
+
declarations: [FormViewModelComponent],
|
|
37
|
+
imports: [CommonModule, FormioModule, LayerModule],
|
|
33
38
|
providers: [
|
|
34
39
|
{
|
|
35
40
|
provide: FORM_VIEW_MODEL_TOKEN,
|
|
36
41
|
useValue: { component: FormViewModelComponent },
|
|
37
42
|
},
|
|
38
43
|
],
|
|
44
|
+
exports: [FormViewModelComponent],
|
|
39
45
|
}]
|
|
40
46
|
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LW1vZGVsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvZm9ybS12aWV3LW1vZGVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOEJBQThCLENBQUM7O0FBYXBFLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLGlCQVZmLHNCQUFzQixhQUMzQixZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsYUFPdkMsc0JBQXNCO2dIQUVyQixtQkFBbUIsYUFSbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUM7YUFDOUM7U0FDRixZQU5TLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVzs7NEZBU3RDLG1CQUFtQjtrQkFYL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ2xELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUM7eUJBQzlDO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9Nb2R1bGV9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge0ZPUk1fVklFV19NT0RFTF9UT0tFTn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7TGF5ZXJNb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtGb3JtVmlld01vZGVsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS12aWV3LW1vZGVsJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRm9ybVZpZXdNb2RlbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1pb01vZHVsZSwgTGF5ZXJNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGT1JNX1ZJRVdfTU9ERUxfVE9LRU4sXG4gICAgICB1c2VWYWx1ZToge2NvbXBvbmVudDogRm9ybVZpZXdNb2RlbENvbXBvbmVudH0sXG4gICAgfSxcbiAgXSxcbiAgZXhwb3J0czogW0Zvcm1WaWV3TW9kZWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtVmlld01vZGVsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
+
import * as i1 from '@angular/common/http';
|
|
2
|
+
import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
4
|
import { Injectable, EventEmitter, Output, Input, ViewChild, Component, NgModule } from '@angular/core';
|
|
5
|
+
import { deepmerge } from 'deepmerge-ts';
|
|
3
6
|
import moment from 'moment';
|
|
4
7
|
import { BehaviorSubject, Subject, combineLatest, filter, take, switchMap, merge, interval, tap } from 'rxjs';
|
|
5
|
-
import * as i5 from '@formio/angular';
|
|
6
|
-
import { FormioModule } from '@formio/angular';
|
|
7
8
|
import { map, distinctUntilChanged } from 'rxjs/operators';
|
|
8
|
-
import { deepmerge } from 'deepmerge-ts';
|
|
9
|
-
import * as i1 from '@angular/common/http';
|
|
10
|
-
import { HttpHeaders, HttpErrorResponse } from '@angular/common/http';
|
|
11
|
-
import * as i4 from '@angular/common';
|
|
12
|
-
import { CommonModule } from '@angular/common';
|
|
13
|
-
import * as i6 from 'carbon-components-angular';
|
|
14
|
-
import { LayerModule } from 'carbon-components-angular';
|
|
15
9
|
import * as i2 from '@valtimo/config';
|
|
16
10
|
import { BaseApiService, FORM_VIEW_MODEL_TOKEN } from '@valtimo/config';
|
|
17
11
|
import { InterceptorSkip } from '@valtimo/security';
|
|
18
12
|
import * as i2$1 from '@ngx-translate/core';
|
|
19
13
|
import * as i3 from '@valtimo/components';
|
|
14
|
+
import * as i4 from '@angular/common';
|
|
15
|
+
import { CommonModule } from '@angular/common';
|
|
16
|
+
import * as i5 from '@formio/angular';
|
|
17
|
+
import { FormioModule } from '@formio/angular';
|
|
18
|
+
import * as i6 from 'carbon-components-angular';
|
|
19
|
+
import { LayerModule } from 'carbon-components-angular';
|
|
20
20
|
|
|
21
21
|
/*
|
|
22
22
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -461,11 +461,11 @@ class FormViewModelComponent {
|
|
|
461
461
|
document.body.style.cursor = enabled ? 'wait' : 'auto';
|
|
462
462
|
}
|
|
463
463
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, deps: [{ token: ViewModelService }, { token: i2$1.TranslateService }, { token: i3.FormIoStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormViewModelComponent,
|
|
464
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormViewModelComponent, selector: "valtimo-form-view-model", inputs: { options: "options", submission: "submission", form: "form", formName: "formName", taskInstanceId: "taskInstanceId", isStartForm: "isStartForm", documentId: "documentId", processDefinitionKey: "processDefinitionKey", documentDefinitionName: "documentDefinitionName" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "formio", first: true, predicate: ["formio"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FormioComponent, selector: "formio" }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
465
465
|
}
|
|
466
466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, decorators: [{
|
|
467
467
|
type: Component,
|
|
468
|
-
args: [{ selector: 'valtimo-form-view-model',
|
|
468
|
+
args: [{ selector: 'valtimo-form-view-model', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"] }]
|
|
469
469
|
}], ctorParameters: () => [{ type: ViewModelService }, { type: i2$1.TranslateService }, { type: i3.FormIoStateService }], propDecorators: { formio: [{
|
|
470
470
|
type: ViewChild,
|
|
471
471
|
args: ['formio']
|
|
@@ -524,23 +524,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
524
524
|
*/
|
|
525
525
|
class FormViewModelModule {
|
|
526
526
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
527
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule }); }
|
|
527
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, declarations: [FormViewModelComponent], imports: [CommonModule, FormioModule, LayerModule], exports: [FormViewModelComponent] }); }
|
|
528
528
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, providers: [
|
|
529
529
|
{
|
|
530
530
|
provide: FORM_VIEW_MODEL_TOKEN,
|
|
531
531
|
useValue: { component: FormViewModelComponent },
|
|
532
532
|
},
|
|
533
|
-
] }); }
|
|
533
|
+
], imports: [CommonModule, FormioModule, LayerModule] }); }
|
|
534
534
|
}
|
|
535
535
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, decorators: [{
|
|
536
536
|
type: NgModule,
|
|
537
537
|
args: [{
|
|
538
|
+
declarations: [FormViewModelComponent],
|
|
539
|
+
imports: [CommonModule, FormioModule, LayerModule],
|
|
538
540
|
providers: [
|
|
539
541
|
{
|
|
540
542
|
provide: FORM_VIEW_MODEL_TOKEN,
|
|
541
543
|
useValue: { component: FormViewModelComponent },
|
|
542
544
|
},
|
|
543
545
|
],
|
|
546
|
+
exports: [FormViewModelComponent],
|
|
544
547
|
}]
|
|
545
548
|
}] });
|
|
546
549
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-form-view-model.mjs","sources":["../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts","../../../../projects/valtimo/form-view-model/src/lib/services/index.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.html","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/index.ts","../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts","../../../../projects/valtimo/form-view-model/src/public_api.ts","../../../../projects/valtimo/form-view-model/src/valtimo-form-view-model.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\nimport {Observable} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ViewModelService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getViewModel(formName: string, taskInstanceId: string): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/user-task'), {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n taskInstanceId,\n isWizard,\n ...(!isNaN(page) && {page}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public getViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string = null\n ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n processDefinitionKey,\n isWizard,\n ...(!isNaN(page) && {page}),\n ...(!!documentId && {documentId}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n documentDefinitionName: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(\n this.getApiUrl(`/v1/form/view-model/submit/start-form`),\n viewModel,\n {\n params: {\n formName,\n processDefinitionKey,\n documentDefinitionName,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n }\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './view-model.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n interval,\n merge,\n Observable,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n FormioComponent,\n FormioModule,\n FormioOptions,\n FormioSubmission,\n FormioSubmissionCallback,\n} from '@formio/angular';\nimport {ViewModelService} from '../../services';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {deepmerge} from 'deepmerge-ts';\nimport {FormIoStateService, ValtimoFormioOptions} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {CommonModule} from '@angular/common';\nimport {LayerModule} from 'carbon-components-angular';\n\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-form-view-model',\n templateUrl: './form-view-model.component.html',\n styleUrls: ['./form-view-model.component.css'],\n standalone: true,\n imports: [CommonModule, FormioModule, LayerModule],\n})\nexport class FormViewModelComponent implements OnInit, OnDestroy {\n @ViewChild('formio') formio: FormioComponent;\n\n @Input() set options(optionsValue: any) {\n this.options$.next(optionsValue);\n }\n\n @Input() set submission(submissionValue: FormioSubmission) {\n this.submission$.next(submissionValue);\n }\n\n @Input() set form(formValue: object) {\n const instance = this;\n const form = {\n loadInitialViewModel: () => instance.loadInitialViewModel(),\n updateViewModel: () => instance.updateViewModel(),\n loadInitialStartFormViewModel: () => instance.loadInitialViewModelForStartForm(),\n updateViewStartFormModel: () => instance.updateViewModelForStartForm(),\n ...formValue,\n };\n this.form$.next(form);\n }\n\n @Input() set formName(formName: string) {\n this.formName$.next(formName);\n }\n\n @Input() set taskInstanceId(taskInstanceId: string) {\n this.taskInstanceId$.next(taskInstanceId);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\n }\n\n @Input() set documentId(documentId: string) {\n this.documentId$.next(documentId);\n }\n\n @Input() set processDefinitionKey(processDefinitionKeyValue: string) {\n this.processDefinitionKey$.next(processDefinitionKeyValue);\n }\n\n @Input() set documentDefinitionName(documentDefinitionNameValue: string) {\n this.documentDefinitionName$.next(documentDefinitionNameValue);\n }\n\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter();\n\n private _preventNextPage = false;\n private _preventPreviousPage = false;\n private _isWizard: boolean = false;\n\n public pendingUpdateSubscription: Subscription | null = null;\n\n public readonly submission$ = new BehaviorSubject<any>({});\n public readonly form$ = new BehaviorSubject<object>(undefined);\n public readonly formName$ = new BehaviorSubject<string>(undefined);\n public readonly formErrors$ = new BehaviorSubject<string[]>([]);\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly data$ = new BehaviorSubject<any>(null);\n public readonly changeEvents$ = new Subject<any>();\n public readonly blur$ = new Subject<FocusEvent>();\n public readonly focus$ = new BehaviorSubject<FocusEvent>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly documentId$ = new BehaviorSubject<string>(null);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n public readonly updateForm = new Subject<boolean>();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({\n hooks: {\n beforeSubmit: this.beforeSubmitHook(this),\n },\n });\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, overrideOptions]) => {\n return deepmerge(options, overrideOptions);\n })\n );\n\n public readonly renderOptions$: Observable<any> = combineLatest([this.currentLanguage$]).pipe(\n map(([language]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n return {\n language,\n ...(typeof formioTranslations === 'object'\n ? {\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : {}),\n };\n })\n );\n\n private focusSubscription: Subscription;\n private blurSubscription: Subscription;\n private updateSubscription: Subscription;\n\n constructor(\n private readonly viewModelService: ViewModelService,\n private readonly translateService: TranslateService,\n private readonly stateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n if (this.isStartForm$.value) {\n this.loadInitialViewModelForStartForm();\n } else {\n this.loadInitialViewModel();\n }\n\n this.focusSubscription = this.focus$\n .pipe(\n filter(e => {\n // We only want to handle blur events after entering an input\n return !!e && e.target instanceof HTMLInputElement;\n })\n )\n .subscribe(() => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.blurSubscription?.unsubscribe();\n this.blurSubscription = this.blur$\n .pipe(\n filter(e => {\n // Filter out events where relatedTarget is not null.\n // The relatedTarget will be null when no new input is focused.\n return !e.relatedTarget;\n })\n )\n .subscribe(() => {\n this.blurSubscription?.unsubscribe();\n this.setWaitCursor(true);\n this.updateForm.next(true);\n });\n });\n\n this.updateSubscription = this.updateForm.subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.blurSubscription?.unsubscribe();\n this.focusSubscription?.unsubscribe();\n this.updateSubscription?.unsubscribe();\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n }\n\n public beforeSubmitHook(instance: FormViewModelComponent): (submission, callback) => void {\n return (submission, callback) => instance.beforeSubmit(submission, callback);\n }\n\n public beforeSubmit(submission: any, callback: FormioSubmissionCallback): void {\n this.changeEvents$.pipe(take(1)).subscribe({\n next: () => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n\n combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n documentId,\n ]) =>\n isStartForm\n ? this.viewModelService.submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n documentDefinitionName,\n submission.data\n )\n : this.viewModelService.submitViewModel(formName, taskInstanceId, submission.data)\n )\n )\n .subscribe({\n next: _ => {\n callback(null, submission);\n },\n error: err => {\n this.handleSubmissionError(err, callback);\n },\n });\n },\n });\n }\n\n private handleSubmissionError(error: any, callback: FormioSubmissionCallback): void {\n if (error instanceof HttpErrorResponse) {\n merge(this.changeEvents$, interval(200))\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.handleFormError(error);\n },\n });\n }\n\n callback({message: 'error', component: null, silent: false}, null);\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formio = this.formio.formio;\n const formErrors = [];\n\n this.formErrors$.next([]);\n\n const componentErrors = error?.error?.componentErrors;\n const genericMessage = error?.error?.error;\n const componentKey = error?.error?.component;\n\n // Handle field-level (component) errors\n if (Array.isArray(componentErrors)) {\n for (const {component, message} of componentErrors) {\n const field = formio.getComponent(component);\n if (field) {\n field.setCustomValidity(message, true); // Mark dirty\n } else {\n formErrors.push(message);\n }\n }\n this.formErrors$.next(formErrors);\n return;\n }\n\n // Handle single (generic or component-specific) error\n if (genericMessage) {\n const field = formio.getComponent(componentKey);\n if (field) {\n field.setCustomValidity(genericMessage, true);\n } else {\n this.formErrors$.next([genericMessage]);\n }\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onFocus($event: FocusEvent): void {\n this.focus$.next($event);\n }\n\n public onBlur(blurEvent: FocusEvent): void {\n this.blur$.next(blurEvent);\n }\n\n public onChange(object: any): void {\n this.changeEvents$.next(object);\n if (object.data) {\n this.data$.next(object.data);\n }\n }\n\n public onNextPage(): void {\n this._preventNextPage = true;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n this.updateForm.next(true);\n }\n\n public onPreviousPage(): void {\n this._preventPreviousPage = true;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n this.updateForm.next(true);\n }\n\n private handlePageChange(): void {\n if (this._preventNextPage) {\n this._preventNextPage = false;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n } else if (this._preventPreviousPage) {\n this._preventPreviousPage = false;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n }\n }\n\n public loadInitialViewModel(): void {\n combineLatest([this.formName$, this.taskInstanceId$])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId]) =>\n this.viewModelService.getViewModel(formName, taskInstanceId).pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, documentId]) =>\n this.viewModelService\n .getViewModelForStartForm(formName, processDefinitionKey, documentId)\n .pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.data$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId, data]) =>\n this.viewModelService\n .updateViewModel(\n formName,\n taskInstanceId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.processDefinitionKey$,\n this.data$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, data, documentId]) =>\n this.viewModelService\n .updateViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public handleViewModelUpdate(viewModel: object): void {\n const submission = this.submission$.value;\n submission.data = viewModel;\n this.submission$.next(submission);\n this.handlePageChange();\n this.refreshForm.emit({submission});\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.formErrors$.next([]);\n this.setWaitCursor(false);\n }\n\n public handleViewModelUpdateError(error: HttpErrorResponse): void {\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.handleFormError(error);\n this.setWaitCursor(false);\n }\n\n private setWaitCursor(enabled: boolean): void {\n document.body.style.cursor = enabled ? 'wait' : 'auto';\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-view-model.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {NgModule} from '@angular/core';\nimport {FORM_VIEW_MODEL_TOKEN} from '@valtimo/config';\nimport {FormViewModelComponent} from './components/form-view-model';\n\n@NgModule({\n providers: [\n {\n provide: FORM_VIEW_MODEL_TOKEN,\n useValue: {component: FormViewModelComponent},\n },\n ],\n})\nexport class FormViewModelModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form view model\n */\n\nexport * from './lib/components/form-view-model/form-view-model.component';\nexport * from './lib/services';\nexport * from './lib/form-view-model.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ViewModelService","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-form-view-model.mjs","sources":["../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts","../../../../projects/valtimo/form-view-model/src/lib/services/index.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.html","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/index.ts","../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts","../../../../projects/valtimo/form-view-model/src/public_api.ts","../../../../projects/valtimo/form-view-model/src/valtimo-form-view-model.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\nimport {Observable} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ViewModelService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getViewModel(formName: string, taskInstanceId: string): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/user-task'), {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n taskInstanceId,\n isWizard,\n ...(!isNaN(page) && {page}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public getViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string = null\n ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n processDefinitionKey,\n isWizard,\n ...(!isNaN(page) && {page}),\n ...(!!documentId && {documentId}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n documentDefinitionName: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(\n this.getApiUrl(`/v1/form/view-model/submit/start-form`),\n viewModel,\n {\n params: {\n formName,\n processDefinitionKey,\n documentDefinitionName,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n }\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './view-model.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {\n FormioComponent,\n FormioOptions,\n FormioSubmission,\n FormioSubmissionCallback,\n} from '@formio/angular';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FormIoStateService, ValtimoFormioOptions} from '@valtimo/components';\nimport {deepmerge} from 'deepmerge-ts';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n interval,\n merge,\n Observable,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {ViewModelService} from '../../services';\n\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-form-view-model',\n templateUrl: './form-view-model.component.html',\n styleUrls: ['./form-view-model.component.css'],\n})\nexport class FormViewModelComponent implements OnInit, OnDestroy {\n @ViewChild('formio') formio: FormioComponent;\n\n @Input() set options(optionsValue: any) {\n this.options$.next(optionsValue);\n }\n\n @Input() set submission(submissionValue: FormioSubmission) {\n this.submission$.next(submissionValue);\n }\n\n @Input() set form(formValue: object) {\n const instance = this;\n const form = {\n loadInitialViewModel: () => instance.loadInitialViewModel(),\n updateViewModel: () => instance.updateViewModel(),\n loadInitialStartFormViewModel: () => instance.loadInitialViewModelForStartForm(),\n updateViewStartFormModel: () => instance.updateViewModelForStartForm(),\n ...formValue,\n };\n this.form$.next(form);\n }\n\n @Input() set formName(formName: string) {\n this.formName$.next(formName);\n }\n\n @Input() set taskInstanceId(taskInstanceId: string) {\n this.taskInstanceId$.next(taskInstanceId);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\n }\n\n @Input() set documentId(documentId: string) {\n this.documentId$.next(documentId);\n }\n\n @Input() set processDefinitionKey(processDefinitionKeyValue: string) {\n this.processDefinitionKey$.next(processDefinitionKeyValue);\n }\n\n @Input() set documentDefinitionName(documentDefinitionNameValue: string) {\n this.documentDefinitionName$.next(documentDefinitionNameValue);\n }\n\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter();\n\n private _preventNextPage = false;\n private _preventPreviousPage = false;\n private _isWizard: boolean = false;\n\n public pendingUpdateSubscription: Subscription | null = null;\n\n public readonly submission$ = new BehaviorSubject<any>({});\n public readonly form$ = new BehaviorSubject<object>(undefined);\n public readonly formName$ = new BehaviorSubject<string>(undefined);\n public readonly formErrors$ = new BehaviorSubject<string[]>([]);\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly data$ = new BehaviorSubject<any>(null);\n public readonly changeEvents$ = new Subject<any>();\n public readonly blur$ = new Subject<FocusEvent>();\n public readonly focus$ = new BehaviorSubject<FocusEvent>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly documentId$ = new BehaviorSubject<string>(null);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n public readonly updateForm = new Subject<boolean>();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({\n hooks: {\n beforeSubmit: this.beforeSubmitHook(this),\n },\n });\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, overrideOptions]) => {\n return deepmerge(options, overrideOptions);\n })\n );\n\n public readonly renderOptions$: Observable<any> = combineLatest([this.currentLanguage$]).pipe(\n map(([language]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n return {\n language,\n ...(typeof formioTranslations === 'object'\n ? {\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : {}),\n };\n })\n );\n\n private focusSubscription: Subscription;\n private blurSubscription: Subscription;\n private updateSubscription: Subscription;\n\n constructor(\n private readonly viewModelService: ViewModelService,\n private readonly translateService: TranslateService,\n private readonly stateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n if (this.isStartForm$.value) {\n this.loadInitialViewModelForStartForm();\n } else {\n this.loadInitialViewModel();\n }\n\n this.focusSubscription = this.focus$\n .pipe(\n filter(e => {\n // We only want to handle blur events after entering an input\n return !!e && e.target instanceof HTMLInputElement;\n })\n )\n .subscribe(() => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.blurSubscription?.unsubscribe();\n this.blurSubscription = this.blur$\n .pipe(\n filter(e => {\n // Filter out events where relatedTarget is not null.\n // The relatedTarget will be null when no new input is focused.\n return !e.relatedTarget;\n })\n )\n .subscribe(() => {\n this.blurSubscription?.unsubscribe();\n this.setWaitCursor(true);\n this.updateForm.next(true);\n });\n });\n\n this.updateSubscription = this.updateForm.subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.blurSubscription?.unsubscribe();\n this.focusSubscription?.unsubscribe();\n this.updateSubscription?.unsubscribe();\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n }\n\n public beforeSubmitHook(instance: FormViewModelComponent): (submission, callback) => void {\n return (submission, callback) => instance.beforeSubmit(submission, callback);\n }\n\n public beforeSubmit(submission: any, callback: FormioSubmissionCallback): void {\n this.changeEvents$.pipe(take(1)).subscribe({\n next: () => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n\n combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n documentId,\n ]) =>\n isStartForm\n ? this.viewModelService.submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n documentDefinitionName,\n submission.data\n )\n : this.viewModelService.submitViewModel(formName, taskInstanceId, submission.data)\n )\n )\n .subscribe({\n next: _ => {\n callback(null, submission);\n },\n error: err => {\n this.handleSubmissionError(err, callback);\n },\n });\n },\n });\n }\n\n private handleSubmissionError(error: any, callback: FormioSubmissionCallback): void {\n if (error instanceof HttpErrorResponse) {\n merge(this.changeEvents$, interval(200))\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.handleFormError(error);\n },\n });\n }\n\n callback({message: 'error', component: null, silent: false}, null);\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formio = this.formio.formio;\n const formErrors = [];\n\n this.formErrors$.next([]);\n\n const componentErrors = error?.error?.componentErrors;\n const genericMessage = error?.error?.error;\n const componentKey = error?.error?.component;\n\n // Handle field-level (component) errors\n if (Array.isArray(componentErrors)) {\n for (const {component, message} of componentErrors) {\n const field = formio.getComponent(component);\n if (field) {\n field.setCustomValidity(message, true); // Mark dirty\n } else {\n formErrors.push(message);\n }\n }\n this.formErrors$.next(formErrors);\n return;\n }\n\n // Handle single (generic or component-specific) error\n if (genericMessage) {\n const field = formio.getComponent(componentKey);\n if (field) {\n field.setCustomValidity(genericMessage, true);\n } else {\n this.formErrors$.next([genericMessage]);\n }\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onFocus($event: FocusEvent): void {\n this.focus$.next($event);\n }\n\n public onBlur(blurEvent: FocusEvent): void {\n this.blur$.next(blurEvent);\n }\n\n public onChange(object: any): void {\n this.changeEvents$.next(object);\n if (object.data) {\n this.data$.next(object.data);\n }\n }\n\n public onNextPage(): void {\n this._preventNextPage = true;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n this.updateForm.next(true);\n }\n\n public onPreviousPage(): void {\n this._preventPreviousPage = true;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n this.updateForm.next(true);\n }\n\n private handlePageChange(): void {\n if (this._preventNextPage) {\n this._preventNextPage = false;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n } else if (this._preventPreviousPage) {\n this._preventPreviousPage = false;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n }\n }\n\n public loadInitialViewModel(): void {\n combineLatest([this.formName$, this.taskInstanceId$])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId]) =>\n this.viewModelService.getViewModel(formName, taskInstanceId).pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, documentId]) =>\n this.viewModelService\n .getViewModelForStartForm(formName, processDefinitionKey, documentId)\n .pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.data$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId, data]) =>\n this.viewModelService\n .updateViewModel(\n formName,\n taskInstanceId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.processDefinitionKey$,\n this.data$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, data, documentId]) =>\n this.viewModelService\n .updateViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public handleViewModelUpdate(viewModel: object): void {\n const submission = this.submission$.value;\n submission.data = viewModel;\n this.submission$.next(submission);\n this.handlePageChange();\n this.refreshForm.emit({submission});\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.formErrors$.next([]);\n this.setWaitCursor(false);\n }\n\n public handleViewModelUpdateError(error: HttpErrorResponse): void {\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.handleFormError(error);\n this.setWaitCursor(false);\n }\n\n private setWaitCursor(enabled: boolean): void {\n document.body.style.cursor = enabled ? 'wait' : 'auto';\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-view-model.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormioModule} from '@formio/angular';\nimport {FORM_VIEW_MODEL_TOKEN} from '@valtimo/config';\nimport {LayerModule} from 'carbon-components-angular';\nimport {FormViewModelComponent} from './components/form-view-model';\n\n@NgModule({\n declarations: [FormViewModelComponent],\n imports: [CommonModule, FormioModule, LayerModule],\n providers: [\n {\n provide: FORM_VIEW_MODEL_TOKEN,\n useValue: {component: FormViewModelComponent},\n },\n ],\n exports: [FormViewModelComponent],\n})\nexport class FormViewModelModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form view model\n */\n\nexport * from './lib/components/form-view-model/form-view-model.component';\nexport * from './lib/services';\nexport * from './lib/form-view-model.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ViewModelService","i2"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
1
2
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
|
|
3
3
|
import { FormioComponent, FormioOptions, FormioSubmission, FormioSubmissionCallback } from '@formio/angular';
|
|
4
|
-
import { ViewModelService } from '../../services';
|
|
5
|
-
import { FormIoStateService, ValtimoFormioOptions } from '@valtimo/components';
|
|
6
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
7
|
-
import {
|
|
5
|
+
import { FormIoStateService, ValtimoFormioOptions } from '@valtimo/components';
|
|
6
|
+
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
|
|
7
|
+
import { ViewModelService } from '../../services';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class FormViewModelComponent implements OnInit, OnDestroy {
|
|
10
10
|
private readonly viewModelService;
|
|
@@ -72,6 +72,6 @@ export declare class FormViewModelComponent implements OnInit, OnDestroy {
|
|
|
72
72
|
handleViewModelUpdateError(error: HttpErrorResponse): void;
|
|
73
73
|
private setWaitCursor;
|
|
74
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormViewModelComponent, never>;
|
|
75
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormViewModelComponent, "valtimo-form-view-model", never, { "options": { "alias": "options"; "required": false; }; "submission": { "alias": "submission"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formName": { "alias": "formName"; "required": false; }; "taskInstanceId": { "alias": "taskInstanceId"; "required": false; }; "isStartForm": { "alias": "isStartForm"; "required": false; }; "documentId": { "alias": "documentId"; "required": false; }; "processDefinitionKey": { "alias": "processDefinitionKey"; "required": false; }; "documentDefinitionName": { "alias": "documentDefinitionName"; "required": false; }; }, { "formSubmit": "formSubmit"; }, never, never,
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormViewModelComponent, "valtimo-form-view-model", never, { "options": { "alias": "options"; "required": false; }; "submission": { "alias": "submission"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formName": { "alias": "formName"; "required": false; }; "taskInstanceId": { "alias": "taskInstanceId"; "required": false; }; "isStartForm": { "alias": "isStartForm"; "required": false; }; "documentId": { "alias": "documentId"; "required": false; }; "processDefinitionKey": { "alias": "processDefinitionKey"; "required": false; }; "documentDefinitionName": { "alias": "documentDefinitionName"; "required": false; }; }, { "formSubmit": "formSubmit"; }, never, never, false, never>;
|
|
76
76
|
}
|
|
77
77
|
//# sourceMappingURL=form-view-model.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-view-model.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"form-view-model.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./components/form-view-model/form-view-model.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@formio/angular";
|
|
5
|
+
import * as i4 from "carbon-components-angular";
|
|
2
6
|
export declare class FormViewModelModule {
|
|
3
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormViewModelModule, never>;
|
|
4
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FormViewModelModule,
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FormViewModelModule, [typeof i1.FormViewModelComponent], [typeof i2.CommonModule, typeof i3.FormioModule, typeof i4.LayerModule], [typeof i1.FormViewModelComponent]>;
|
|
5
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<FormViewModelModule>;
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=form-view-model.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-view-model.module.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-view-model.module.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts"],"names":[],"mappings":";;;;;AAsBA,qBAWa,mBAAmB;yCAAnB,mBAAmB;0CAAnB,mBAAmB;0CAAnB,mBAAmB;CAAG"}
|