@abp/ng.theme.shared 7.4.0 → 7.4.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/extensions/lib/adapters/date-time.adapter.mjs +5 -6
- package/esm2022/extensions/lib/adapters/date.adapter.mjs +5 -6
- package/esm2022/extensions/lib/adapters/time.adapter.mjs +5 -6
- package/esm2022/extensions/lib/components/abstract-actions/abstract-actions.component.mjs +5 -6
- package/esm2022/extensions/lib/components/date-time-picker/date-time-picker.component.mjs +5 -6
- package/esm2022/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +5 -6
- package/esm2022/extensions/lib/components/extensible-form/extensible-form.component.mjs +5 -6
- package/esm2022/extensions/lib/components/extensible-table/extensible-table.component.mjs +5 -6
- package/esm2022/extensions/lib/components/grid-actions/grid-actions.component.mjs +5 -6
- package/esm2022/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +6 -7
- package/esm2022/extensions/lib/directives/disabled.directive.mjs +5 -6
- package/esm2022/extensions/lib/directives/prop-data.directive.mjs +5 -6
- package/esm2022/extensions/lib/pipes/create-injector.pipe.mjs +5 -6
- package/esm2022/extensions/lib/services/extensions.service.mjs +5 -6
- package/esm2022/extensions/lib/ui-extensions.module.mjs +11 -13
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +5 -6
- package/esm2022/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +5 -6
- package/esm2022/lib/components/button/button.component.mjs +5 -6
- package/esm2022/lib/components/card/card-body.component.mjs +5 -6
- package/esm2022/lib/components/card/card-footer.component.mjs +5 -6
- package/esm2022/lib/components/card/card-header.component.mjs +5 -6
- package/esm2022/lib/components/card/card-header.directive.mjs +5 -6
- package/esm2022/lib/components/card/card-img-top.directive.mjs +5 -6
- package/esm2022/lib/components/card/card-subtitle.directive.mjs +5 -6
- package/esm2022/lib/components/card/card-title.directive.mjs +5 -6
- package/esm2022/lib/components/card/card.component.mjs +5 -6
- package/esm2022/lib/components/card/card.module.mjs +6 -7
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +5 -6
- package/esm2022/lib/components/confirmation/confirmation.component.mjs +5 -6
- package/esm2022/lib/components/form-input/form-input.component.mjs +5 -6
- package/esm2022/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +5 -6
- package/esm2022/lib/components/internet-connection-status/internet-connection-status.component.mjs +5 -6
- package/esm2022/lib/components/loader-bar/loader-bar.component.mjs +5 -6
- package/esm2022/lib/components/loading/loading.component.mjs +5 -6
- package/esm2022/lib/components/modal/modal-close.directive.mjs +5 -6
- package/esm2022/lib/components/modal/modal-ref.service.mjs +5 -6
- package/esm2022/lib/components/modal/modal.component.mjs +5 -6
- package/esm2022/lib/components/password/password.component.mjs +5 -6
- package/esm2022/lib/components/toast/toast.component.mjs +5 -6
- package/esm2022/lib/components/toast-container/toast-container.component.mjs +5 -6
- package/esm2022/lib/directives/ellipsis.directive.mjs +10 -12
- package/esm2022/lib/directives/loading.directive.mjs +5 -6
- package/esm2022/lib/directives/ngx-datatable-default.directive.mjs +5 -6
- package/esm2022/lib/directives/ngx-datatable-list.directive.mjs +5 -6
- package/esm2022/lib/directives/visible.directive.mjs +5 -6
- package/esm2022/lib/handlers/document-dir.handler.mjs +5 -6
- package/esm2022/lib/handlers/error.handler.mjs +6 -10
- package/esm2022/lib/services/abp-format-error-handler.service.mjs +5 -6
- package/esm2022/lib/services/confirmation.service.mjs +5 -6
- package/esm2022/lib/services/create-error-component.service.mjs +5 -6
- package/esm2022/lib/services/nav-items.service.mjs +5 -6
- package/esm2022/lib/services/page-alert.service.mjs +5 -6
- package/esm2022/lib/services/router-error-handler.service.mjs +5 -6
- package/esm2022/lib/services/status-code-error-handler.service.mjs +8 -9
- package/esm2022/lib/services/tenant-resolve-error-handler.service.mjs +5 -6
- package/esm2022/lib/services/toaster.service.mjs +5 -6
- package/esm2022/lib/services/unknown-status-code-error-handler.service.mjs +5 -6
- package/esm2022/lib/services/user-menu.service.mjs +5 -6
- package/esm2022/lib/theme-shared.module.mjs +11 -13
- package/esm2022/lib/utils/date-parser-formatter.mjs +5 -6
- package/esm2022/testing/lib/theme-shared-testing.module.mjs +6 -7
- package/fesm2022/abp-ng.theme.shared-extensions.mjs +51 -51
- package/fesm2022/abp-ng.theme.shared-extensions.mjs.map +1 -1
- package/fesm2022/abp-ng.theme.shared-testing.mjs +4 -4
- package/fesm2022/abp-ng.theme.shared-testing.mjs.map +1 -1
- package/fesm2022/abp-ng.theme.shared.mjs +149 -152
- package/fesm2022/abp-ng.theme.shared.mjs.map +1 -1
- package/lib/services/status-code-error-handler.service.d.ts +1 -3
- package/package.json +4 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
class DateTimeAdapter {
|
|
3
|
+
export class DateTimeAdapter {
|
|
4
4
|
fromModel(value) {
|
|
5
5
|
if (!value)
|
|
6
6
|
return null;
|
|
@@ -35,11 +35,10 @@ class DateTimeAdapter {
|
|
|
35
35
|
const date = new Date(newValue.year, newValue.month - 1, newValue.day, newValue.hour, newValue.minute, newValue.second);
|
|
36
36
|
return new Date(date).toISOString();
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateTimeAdapter }); }
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: DateTimeAdapter, decorators: [{
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateTimeAdapter, decorators: [{
|
|
43
42
|
type: Injectable
|
|
44
43
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2FkYXB0ZXJzL2RhdGUtdGltZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXhCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksS0FBSyxDQUFDLElBQXlCLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVsRCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1lBQzFCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzFCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUF3QztRQUM5QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFdkIsTUFBTSxRQUFRLEdBQUc7WUFDZixtQ0FBbUM7WUFDbkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxjQUFjLEVBQUU7WUFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1lBQ3pCLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQztZQUNULEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixHQUFHLEtBQUs7U0FDWSxDQUFDO1FBRXZCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUNuQixRQUFRLENBQUMsSUFBSSxFQUNiLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNsQixRQUFRLENBQUMsR0FBRyxFQUNaLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsUUFBUSxDQUFDLE1BQU0sRUFDZixRQUFRLENBQUMsTUFBTSxDQUNoQixDQUFDO1FBRUYsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOytHQWpEVSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QsIE5nYlRpbWVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUFkYXB0ZXIge1xyXG4gIHZhbHVlITogUGFydGlhbDxOZ2JEYXRlVGltZVN0cnVjdD47XHJcblxyXG4gIGZyb21Nb2RlbCh2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IFBhcnRpYWw8TmdiRGF0ZVRpbWVTdHJ1Y3Q+IHwgbnVsbCB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG5cclxuICAgIGlmIChpc05hTihkYXRlIGFzIHVua25vd24gYXMgbnVtYmVyKSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHtcclxuICAgICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtb250aDogZGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgZGF5OiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaG91cjogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBtaW51dGU6IGRhdGUuZ2V0TWludXRlcygpLFxyXG4gICAgICBzZWNvbmQ6IGRhdGUuZ2V0U2Vjb25kcygpLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHRvTW9kZWwodmFsdWU6IFBhcnRpYWw8TmdiRGF0ZVRpbWVTdHJ1Y3Q+IHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHtcclxuICAgICAgLy8gVE9ETyBsb29rIGZvciBzdHJpY3QgbW9kZSBlcnJvcnNcclxuICAgICAgeWVhcjogbm93LmdldFVUQ0Z1bGxZZWFyKCksXHJcbiAgICAgIG1vbnRoOiBub3cuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIGRheTogbm93LmdldERhdGUoKSxcclxuICAgICAgaG91cjogMCxcclxuICAgICAgbWludXRlOiAwLFxyXG4gICAgICBzZWNvbmQ6IDAsXHJcbiAgICAgIC4uLnRoaXMudmFsdWUsXHJcbiAgICAgIC4uLnZhbHVlLFxyXG4gICAgfSBhcyBOZ2JEYXRlVGltZVN0cnVjdDtcclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoXHJcbiAgICAgIG5ld1ZhbHVlLnllYXIsXHJcbiAgICAgIG5ld1ZhbHVlLm1vbnRoIC0gMSxcclxuICAgICAgbmV3VmFsdWUuZGF5LFxyXG4gICAgICBuZXdWYWx1ZS5ob3VyLFxyXG4gICAgICBuZXdWYWx1ZS5taW51dGUsXHJcbiAgICAgIG5ld1ZhbHVlLnNlY29uZCxcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIE5nYkRhdGVUaW1lU3RydWN0ID0gTmdiRGF0ZVN0cnVjdCAmIE5nYlRpbWVTdHJ1Y3Q7XHJcbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { formatDate } from '@angular/common';
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
class DateAdapter extends NgbDateAdapter {
|
|
5
|
+
export class DateAdapter extends NgbDateAdapter {
|
|
6
6
|
fromModel(value) {
|
|
7
7
|
if (!value)
|
|
8
8
|
return null;
|
|
@@ -32,11 +32,10 @@ class DateAdapter extends NgbDateAdapter {
|
|
|
32
32
|
const dateUtc = new Date(Date.parse(value));
|
|
33
33
|
return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateAdapter }); }
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: DateAdapter, decorators: [{
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateAdapter, decorators: [{
|
|
40
39
|
type: Injectable
|
|
41
40
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9hZGFwdGVycy9kYXRlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUE2QjtJQUM1RCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV4QixJQUFJLElBQVUsQ0FBQztRQUVmLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUF5QixDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbEQsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztZQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUEyQjtRQUNqQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxNQUFNLENBQUMsS0FBYTtRQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7K0dBakNVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyLCBOZ2JEYXRlU3RydWN0IH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBOZ2JEYXRlQWRhcHRlcjxzdHJpbmcgfCBEYXRlPiB7XHJcbiAgZnJvbU1vZGVsKHZhbHVlOiBzdHJpbmcgfCBEYXRlKTogTmdiRGF0ZVN0cnVjdCB8IG51bGwge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgbGV0IGRhdGU6IERhdGU7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgZGF0ZSA9IHRoaXMuZGF0ZU9mKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzTmFOKGRhdGUgYXMgdW5rbm93biBhcyBudW1iZXIpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXk6IGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBtb250aDogZGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHRvTW9kZWwodmFsdWU6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUueWVhciwgdmFsdWUubW9udGggLSAxLCB2YWx1ZS5kYXkpO1xyXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGZvcm1hdERhdGUoZGF0ZSwgJ3l5eXktTU0tZGQnLCAnZW4nKTtcclxuXHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkYXRlT2YodmFsdWU6IHN0cmluZyk6IERhdGUge1xyXG4gICAgY29uc3QgZGF0ZVV0YyA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlVXRjLmdldFRpbWUoKSArIE1hdGguYWJzKGRhdGVVdGMuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { formatDate } from '@angular/common';
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
class TimeAdapter extends NgbTimeAdapter {
|
|
5
|
+
export class TimeAdapter extends NgbTimeAdapter {
|
|
6
6
|
fromModel(value) {
|
|
7
7
|
if (!value)
|
|
8
8
|
return null;
|
|
@@ -24,14 +24,13 @@ class TimeAdapter extends NgbTimeAdapter {
|
|
|
24
24
|
const formattedDate = formatDate(date, 'HH:mm', 'en');
|
|
25
25
|
return formattedDate;
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: TimeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: TimeAdapter }); }
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: TimeAdapter, decorators: [{
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: TimeAdapter, decorators: [{
|
|
32
31
|
type: Injectable
|
|
33
32
|
}] });
|
|
34
33
|
function isTimeStr(value) {
|
|
35
34
|
return /^((2[123])|[01][0-9])(\:[0-5][0-9]){1,2}$/.test(String(value));
|
|
36
35
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9hZGFwdGVycy90aW1lLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUE2QjtJQUM1RCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV4QixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQixJQUFJLEtBQUssQ0FBQyxJQUF5QixDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbEQsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQTJCO1FBQ2pDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV0RCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOytHQXhCVSxXQUFXO21IQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBRHZCLFVBQVU7O0FBNEJYLFNBQVMsU0FBUyxDQUFDLEtBQW9CO0lBQ3JDLE9BQU8sMkNBQTJDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JUaW1lQWRhcHRlciwgTmdiVGltZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRpbWVBZGFwdGVyIGV4dGVuZHMgTmdiVGltZUFkYXB0ZXI8c3RyaW5nIHwgRGF0ZT4ge1xyXG4gIGZyb21Nb2RlbCh2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IE5nYlRpbWVTdHJ1Y3QgfCBudWxsIHtcclxuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBpc1RpbWVTdHIodmFsdWUpXHJcbiAgICAgID8gbmV3IERhdGUoMCwgMCwgMSwgLi4udmFsdWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKSlcclxuICAgICAgOiBuZXcgRGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKGlzTmFOKGRhdGUgYXMgdW5rbm93biBhcyBudW1iZXIpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBob3VyOiBkYXRlLmdldEhvdXJzKCksXHJcbiAgICAgIG1pbnV0ZTogZGF0ZS5nZXRNaW51dGVzKCksXHJcbiAgICAgIHNlY29uZDogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdG9Nb2RlbCh2YWx1ZTogTmdiVGltZVN0cnVjdCB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgwLCAwLCAxLCB2YWx1ZS5ob3VyLCB2YWx1ZS5taW51dGUsIHZhbHVlLnNlY29uZCk7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gZm9ybWF0RGF0ZShkYXRlLCAnSEg6bW0nLCAnZW4nKTtcclxuXHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVGltZVN0cih2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IHZhbHVlIGlzIHN0cmluZyB7XHJcbiAgcmV0dXJuIC9eKCgyWzEyM10pfFswMV1bMC05XSkoXFw6WzAtNV1bMC05XSl7MSwyfSQvLnRlc3QoU3RyaW5nKHZhbHVlKSk7XHJcbn1cclxuIl19
|
|
@@ -5,7 +5,7 @@ import { EXTENSIONS_ACTION_TYPE, EXTENSIONS_IDENTIFIER } from '../../tokens/exte
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
// Fix for https://github.com/angular/angular/issues/23904
|
|
7
7
|
// @dynamic
|
|
8
|
-
class AbstractActionsComponent extends ActionData {
|
|
8
|
+
export class AbstractActionsComponent extends ActionData {
|
|
9
9
|
constructor(injector) {
|
|
10
10
|
super();
|
|
11
11
|
this.getInjected = injector.get.bind(injector);
|
|
@@ -14,13 +14,12 @@ class AbstractActionsComponent extends ActionData {
|
|
|
14
14
|
const type = injector.get(EXTENSIONS_ACTION_TYPE);
|
|
15
15
|
this.actionList = extensions[type].get(name).actions;
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
18
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AbstractActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
18
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: AbstractActionsComponent, inputs: { record: "record" }, usesInheritance: true, ngImport: i0 }); }
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbstractActionsComponent, decorators: [{
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AbstractActionsComponent, decorators: [{
|
|
22
21
|
type: Directive
|
|
23
22
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { record: [{
|
|
24
23
|
type: Input
|
|
25
24
|
}] } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvYWJzdHJhY3QtYWN0aW9ucy9hYnN0cmFjdC1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBOEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHOUYsMERBQTBEO0FBQzFELFdBQVc7QUFFWCxNQUFNLE9BQWdCLHdCQUVwQixTQUFRLFVBQTZCO0lBT3JDLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUF1QixDQUFDO0lBQ3ZFLENBQUM7K0dBakJtQix3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEN0MsU0FBUzsrRkFRQyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25EYXRhLCBBY3Rpb25MaXN0LCBJbmZlcnJlZEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb25zJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0FDVElPTl9UWVBFLCBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEluZmVycmVkRGF0YSwgSW5mZXJyZWRSZWNvcmQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9vbGJhci1hY3Rpb25zJztcclxuXHJcbi8vIEZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjM5MDRcclxuLy8gQGR5bmFtaWNcclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQ8XHJcbiAgTCBleHRlbmRzIEFjdGlvbkxpc3Q8YW55LCBJbmZlcnJlZEFjdGlvbjxMPj4sXHJcbj4gZXh0ZW5kcyBBY3Rpb25EYXRhPEluZmVycmVkUmVjb3JkPEw+PiB7XHJcbiAgcmVhZG9ubHkgYWN0aW9uTGlzdDogTDtcclxuXHJcbiAgcmVhZG9ubHkgZ2V0SW5qZWN0ZWQ6IEluZmVycmVkRGF0YTxMPlsnZ2V0SW5qZWN0ZWQnXTtcclxuXHJcbiAgQElucHV0KCkgcmVjb3JkITogSW5mZXJyZWREYXRhPEw+WydyZWNvcmQnXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIGNvbnN0IHR5cGUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19BQ1RJT05fVFlQRSk7XHJcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zW3R5cGVdLmdldChuYW1lKS5hY3Rpb25zIGFzIHVua25vd24gYXMgTDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
import * as i1 from "@angular/forms";
|
|
9
9
|
import * as i2 from "@ngx-validate/core";
|
|
10
10
|
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
11
|
-
class DateTimePickerComponent {
|
|
11
|
+
export class DateTimePickerComponent {
|
|
12
12
|
constructor(cdRef) {
|
|
13
13
|
this.cdRef = cdRef;
|
|
14
14
|
this.meridian = false;
|
|
@@ -19,8 +19,8 @@ class DateTimePickerComponent {
|
|
|
19
19
|
setTime(datestr) {
|
|
20
20
|
this.time.writeValue(datestr);
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: DateTimePickerComponent, selector: "abp-date-time-picker", inputs: { prop: "prop", meridian: "meridian" }, viewQueries: [{ propertyName: "date", first: true, predicate: NgbInputDatepicker, descendants: true }, { propertyName: "time", first: true, predicate: NgbTimepicker, descendants: true }], exportAs: ["abpDateTimePicker"], ngImport: i0, template: `
|
|
24
24
|
<input
|
|
25
25
|
[id]="prop.id"
|
|
26
26
|
[formControlName]="prop.name"
|
|
@@ -54,8 +54,7 @@ class DateTimePickerComponent {
|
|
|
54
54
|
},
|
|
55
55
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
59
58
|
type: Component,
|
|
60
59
|
args: [{
|
|
61
60
|
exportAs: 'abpDateTimePicker',
|
|
@@ -107,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
|
|
|
107
106
|
type: ViewChild,
|
|
108
107
|
args: [NgbTimepicker]
|
|
109
108
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxhQUFhLEdBQ2QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUF5Q3ZELE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFBNEIsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFMM0MsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUs2QixDQUFDO0lBRXhELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDOytHQWZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGtKQUl2QixrQkFBa0IsdUVBQ2xCLGFBQWEsaUZBekNkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQsbTZDQUVjO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsVUFBVSxFQUFFLFdBQVc7Z0JBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDM0Q7WUFDRDtnQkFDRSxPQUFPLEVBQUUsY0FBYztnQkFDdkIsUUFBUSxFQUFFLGVBQWU7YUFDMUI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsY0FBYztnQkFDdkIsUUFBUSxFQUFFLGVBQWU7YUFDMUI7U0FDRjs7NEZBRVUsdUJBQXVCO2tCQXZDbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSxXQUFXOzRCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUMzRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsUUFBUSxFQUFFLGVBQWU7eUJBQzFCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixRQUFRLEVBQUUsZUFBZTt5QkFDMUI7cUJBQ0Y7aUJBQ0Y7d0dBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRXlCLElBQUk7c0JBQWxDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNILElBQUk7c0JBQTdCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlQWRhcHRlcixcclxuICBOZ2JJbnB1dERhdGVwaWNrZXIsXHJcbiAgTmdiVGltZUFkYXB0ZXIsXHJcbiAgTmdiVGltZXBpY2tlcixcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2RhdGUtdGltZS5hZGFwdGVyJztcclxuaW1wb3J0IHsgRm9ybVByb3AgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1wcm9wcyc7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRGF0ZVRpbWVQaWNrZXInLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWRhdGUtdGltZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8aW5wdXRcclxuICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFRpbWUoJGV2ZW50KVwiXHJcbiAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgIChrZXl1cC5zcGFjZSk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgI2RhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAvPlxyXG4gICAgPG5nYi10aW1lcGlja2VyXHJcbiAgICAgICN0aW1lcGlja2VyXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RGF0ZSgkZXZlbnQpXCJcclxuICAgICAgW21lcmlkaWFuXT1cIm1lcmlkaWFuXCJcclxuICAgID48L25nYi10aW1lcGlja2VyPlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcclxuICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvbnRyb2xDb250YWluZXJdXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLFxyXG4gICAgICB1c2VDbGFzczogRGF0ZVRpbWVBZGFwdGVyLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTmdiVGltZUFkYXB0ZXIsXHJcbiAgICAgIHVzZUNsYXNzOiBEYXRlVGltZUFkYXB0ZXIsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcHJvcCE6IEZvcm1Qcm9wO1xyXG4gIEBJbnB1dCgpIG1lcmlkaWFuID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTmdiSW5wdXREYXRlcGlja2VyKSBkYXRlITogTmdiSW5wdXREYXRlcGlja2VyO1xyXG4gIEBWaWV3Q2hpbGQoTmdiVGltZXBpY2tlcikgdGltZSE6IE5nYlRpbWVwaWNrZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIHNldERhdGUoZGF0ZXN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGUud3JpdGVWYWx1ZShkYXRlc3RyKTtcclxuICB9XHJcblxyXG4gIHNldFRpbWUoZGF0ZXN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRpbWUud3JpdGVWYWx1ZShkYXRlc3RyKTtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2022/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs
CHANGED
|
@@ -21,7 +21,7 @@ import * as i5 from "@abp/ng.theme.shared";
|
|
|
21
21
|
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
22
22
|
import * as i7 from "../date-time-picker/date-time-picker.component";
|
|
23
23
|
import * as i8 from "../../directives/disabled.directive";
|
|
24
|
-
class ExtensibleFormPropComponent {
|
|
24
|
+
export class ExtensibleFormPropComponent {
|
|
25
25
|
get disabled() {
|
|
26
26
|
return this.disabledFn(this.data);
|
|
27
27
|
}
|
|
@@ -158,8 +158,8 @@ class ExtensibleFormPropComponent {
|
|
|
158
158
|
if (keyControl && valueControl)
|
|
159
159
|
this.typeaheadModel = { key: keyControl.value, value: valueControl.value };
|
|
160
160
|
}
|
|
161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.6", type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: { data: "data", prop: "prop", first: "first" }, viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container\r\n [ngSwitch]=\"getComponent(prop)\"\r\n *abpPermission=\"prop.permission; runChangeDetection: false\"\r\n>\r\n <ng-template ngSwitchCase=\"template\">\r\n <ng-container *ngComponentOutlet=\"prop.template; injector: injectorForCustomComponent\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <div [ngClass]=\"containerClassName\" class=\"mb-2\">\r\n <ng-template ngSwitchCase=\"input\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [type]=\"getType(prop)\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"hidden\">\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"checkbox\">\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n ></ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"select\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"multiselect\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n multiple=\"multiple\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"typeahead\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"date\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"time\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"dateTime\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"textarea\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <textarea\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"passwordinputgroup\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-password\r\n *abpReplaceableTemplate=\"{\r\n componentKey: passwordKey,\r\n inputs: {\r\n inputId: { value: prop.id },\r\n formControlName: { value: prop.name }\r\n }\r\n }\"\r\n [inputId]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n ></abp-password>\r\n </ng-template>\r\n\r\n <small *ngIf=\"prop.formText\" class=\"text-muted d-block\">{{\r\n prop.formText | abpLocalization\r\n }}</small>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes || 'form-label'\">\r\n <ng-container *ngIf=\"prop.displayTextResolver; else displayNameTemplate\">\r\n {{ prop.displayTextResolver(data) | abpLocalization }}\r\n </ng-container>\r\n <ng-template #displayNameTemplate> {{ prop.displayName | abpLocalization }}</ng-template>\r\n {{ asterisk }}\r\n </label>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: i4.ValidationStyleDirective, selector: "[validationStyle]", exportAs: ["validationStyle"] }, { kind: "directive", type: i4.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i5.PasswordComponent, selector: "abp-password", inputs: ["inputId", "formControlName"] }, { kind: "directive", type: i6.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i6.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "directive", type: i6.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "component", type: i7.DateTimePickerComponent, selector: "abp-date-time-picker", inputs: ["prop", "meridian"], exportAs: ["abpDateTimePicker"] }, { kind: "directive", type: i8.DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], viewProviders: [
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ExtensibleFormPropComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i1.ConfigStateService }, { token: i2.FormGroupDirective }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: { data: "data", prop: "prop", first: "first" }, viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container\r\n [ngSwitch]=\"getComponent(prop)\"\r\n *abpPermission=\"prop.permission; runChangeDetection: false\"\r\n>\r\n <ng-template ngSwitchCase=\"template\">\r\n <ng-container *ngComponentOutlet=\"prop.template; injector: injectorForCustomComponent\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <div [ngClass]=\"containerClassName\" class=\"mb-2\">\r\n <ng-template ngSwitchCase=\"input\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [type]=\"getType(prop)\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"hidden\">\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"checkbox\">\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n ></ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"select\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"multiselect\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n multiple=\"multiple\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"typeahead\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"date\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"time\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"dateTime\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"textarea\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <textarea\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"passwordinputgroup\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-password\r\n *abpReplaceableTemplate=\"{\r\n componentKey: passwordKey,\r\n inputs: {\r\n inputId: { value: prop.id },\r\n formControlName: { value: prop.name }\r\n }\r\n }\"\r\n [inputId]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n ></abp-password>\r\n </ng-template>\r\n\r\n <small *ngIf=\"prop.formText\" class=\"text-muted d-block\">{{\r\n prop.formText | abpLocalization\r\n }}</small>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes || 'form-label'\">\r\n <ng-container *ngIf=\"prop.displayTextResolver; else displayNameTemplate\">\r\n {{ prop.displayTextResolver(data) | abpLocalization }}\r\n </ng-container>\r\n <ng-template #displayNameTemplate> {{ prop.displayName | abpLocalization }}</ng-template>\r\n {{ asterisk }}\r\n </label>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: i4.ValidationStyleDirective, selector: "[validationStyle]", exportAs: ["validationStyle"] }, { kind: "directive", type: i4.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i5.PasswordComponent, selector: "abp-password", inputs: ["inputId", "formControlName"] }, { kind: "directive", type: i6.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i6.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "directive", type: i6.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "component", type: i7.DateTimePickerComponent, selector: "abp-date-time-picker", inputs: ["prop", "meridian"], exportAs: ["abpDateTimePicker"] }, { kind: "directive", type: i8.DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], viewProviders: [
|
|
163
163
|
{
|
|
164
164
|
provide: ControlContainer,
|
|
165
165
|
useFactory: selfFactory,
|
|
@@ -169,8 +169,7 @@ class ExtensibleFormPropComponent {
|
|
|
169
169
|
{ provide: NgbTimeAdapter, useClass: TimeAdapter },
|
|
170
170
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
171
171
|
}
|
|
172
|
-
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: ExtensibleFormPropComponent, decorators: [{
|
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ExtensibleFormPropComponent, decorators: [{
|
|
174
173
|
type: Component,
|
|
175
174
|
args: [{ selector: 'abp-extensible-form-prop', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
|
|
176
175
|
{
|
|
@@ -196,4 +195,4 @@ function isRequired(validator) {
|
|
|
196
195
|
validator === AbpValidators.required ||
|
|
197
196
|
validator.name === 'required');
|
|
198
197
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS1wcm9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xHLE9BQU8sRUFBTyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RGLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUdsQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdB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Z0JBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDM0Q7WUFDRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtTQUNuRDs7U0FFVSwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSxXQUFXOzRCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUMzRDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTt3QkFDbEQsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7cUJBQ25EOzhOQUdRLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVzQixRQUFRO3NCQUFuQyxTQUFTO3VCQUFDLE9BQU87O0FBZ0xwQixTQUFTLFVBQVUsQ0FBQyxTQUFzQjtJQUN4QyxPQUFPLENBQ0wsU0FBUyxLQUFLLFVBQVUsQ0FBQyxRQUFRO1FBQ2pDLFNBQVMsS0FBSyxhQUFhLENBQUMsUUFBUTtRQUNwQyxTQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FDOUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFWFRFTlNJT05TX0ZPUk1fUFJPUCwgRVhURU5TSU9OU19GT1JNX1BST1BfREFUQSB9IGZyb20gJy4vLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBBQlAsIEFicFZhbGlkYXRvcnMsIENvbmZpZ1N0YXRlU2VydmljZSwgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyLCBOZ2JUaW1lQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2RhdGUuYWRhcHRlcic7XHJcbmltcG9ydCB7IFRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvdGltZS5hZGFwdGVyJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgUHJvcERhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvcHMnO1xyXG5pbXBvcnQgeyBzZWxmRmFjdG9yeSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZhY3RvcnkudXRpbCc7XHJcbmltcG9ydCB7IGFkZFR5cGVhaGVhZFRleHRTdWZmaXggfSBmcm9tICcuLi8uLi91dGlscy90eXBlYWhlYWQudXRpbCc7XHJcbmltcG9ydCB7IGVUaGVtZVNoYXJlZENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtZm9ybS1wcm9wJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXHJcbiAgICB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYlRpbWVBZGFwdGVyLCB1c2VDbGFzczogVGltZUFkYXB0ZXIgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkYXRhITogUHJvcERhdGE7XHJcblxyXG4gIEBJbnB1dCgpIHByb3AhOiBGb3JtUHJvcDtcclxuXHJcbiAgQElucHV0KCkgZmlyc3Q/OiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWVsZCcpIHByaXZhdGUgZmllbGRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgcHVibGljIGluamVjdG9yRm9yQ3VzdG9tQ29tcG9uZW50PzogSW5qZWN0b3I7XHJcblxyXG4gIGFzdGVyaXNrID0gJyc7XHJcblxyXG4gIGNvbnRhaW5lckNsYXNzTmFtZSA9ICdtYi0yJztcclxuXHJcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8QUJQLk9wdGlvbjxhbnk+W10+ID0gb2YoW10pO1xyXG5cclxuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gIHJlYWRvbmx5ITogYm9vbGVhbjtcclxuXHJcbiAgdHlwZWFoZWFkTW9kZWw6IGFueTtcclxuXHJcbiAgcGFzc3dvcmRLZXkgPSBlVGhlbWVTaGFyZWRDb21wb25lbnRzLlBhc3N3b3JkQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGRpc2FibGVkRm4gPSAoZGF0YTogUHJvcERhdGEpID0+IGZhbHNlO1xyXG5cclxuICBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZEZuKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlYWhlYWRWYWx1ZShzZWxlY3RlZE9wdGlvbjogQUJQLk9wdGlvbjxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLnR5cGVhaGVhZE1vZGVsID0gc2VsZWN0ZWRPcHRpb24gfHwgeyBrZXk6IG51bGwsIHZhbHVlOiBudWxsIH07XHJcbiAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHRoaXMudHlwZWFoZWFkTW9kZWw7XHJcbiAgICBjb25zdCBba2V5Q29udHJvbCwgdmFsdWVDb250cm9sXSA9IHRoaXMuZ2V0VHlwZWFoZWFkQ29udHJvbHMoKTtcclxuICAgIGlmICh2YWx1ZUNvbnRyb2w/LnZhbHVlICYmICF2YWx1ZSkgdmFsdWVDb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICBrZXlDb250cm9sPy5zZXRWYWx1ZShrZXkpO1xyXG4gICAgdmFsdWVDb250cm9sPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2ggPSAodGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPikgPT5cclxuICAgIHRleHQkXHJcbiAgICAgID8gdGV4dCQucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHN3aXRjaE1hcCh0ZXh0ID0+IHRoaXMucHJvcD8ub3B0aW9ucz8uKHRoaXMuZGF0YSwgdGV4dCkgfHwgb2YoW10pKSxcclxuICAgICAgICApXHJcbiAgICAgIDogb2YoW10pO1xyXG5cclxuICB0eXBlYWhlYWRGb3JtYXR0ZXIgPSAob3B0aW9uOiBBQlAuT3B0aW9uPGFueT4pID0+IG9wdGlvbi5rZXk7XHJcblxyXG4gIGdldCBtZXJpZGlhbigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCgnbG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmRhdGVUaW1lRm9ybWF0LnNob3J0VGltZVBhdHRlcm4nKSB8fCAnJ1xyXG4gICAgKS5pbmNsdWRlcygndHQnKTtcclxuICB9XHJcblxyXG4gIGdldCBpc0ludmFsaWQoKSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldCh0aGlzLnByb3AubmFtZSk7XHJcbiAgICByZXR1cm4gY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sLmludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgICBncm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBncm91cERpcmVjdGl2ZS5mb3JtO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUeXBlYWhlYWRDb250cm9scygpIHtcclxuICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5wcm9wO1xyXG4gICAgY29uc3QgZXh0cmFQcm9wTmFtZSA9IGAke0VYVFJBX1BST1BFUlRJRVNfS0VZfS4ke25hbWV9YDtcclxuICAgIGNvbnN0IGtleUNvbnRyb2wgPVxyXG4gICAgICB0aGlzLmZvcm0uZ2V0KGFkZFR5cGVhaGVhZFRleHRTdWZmaXgoZXh0cmFQcm9wTmFtZSkpIHx8XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeChuYW1lKSk7XHJcbiAgICBjb25zdCB2YWx1ZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGV4dHJhUHJvcE5hbWUpIHx8IHRoaXMuZm9ybS5nZXQobmFtZSk7XHJcbiAgICByZXR1cm4gW2tleUNvbnRyb2wsIHZhbHVlQ29udHJvbF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFzdGVyaXNrKCkge1xyXG4gICAgdGhpcy5hc3RlcmlzayA9IHRoaXMudmFsaWRhdG9ycy5zb21lKGlzUmVxdWlyZWQpID8gJyonIDogJyc7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5maXJzdCAmJiB0aGlzLmZpZWxkUmVmKSB7XHJcbiAgICAgIHRoaXMuZmllbGRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudChwcm9wOiBGb3JtUHJvcCk6IHN0cmluZyB7XHJcbiAgICBpZiAocHJvcC50ZW1wbGF0ZSkge1xyXG4gICAgICByZXR1cm4gJ3RlbXBsYXRlJztcclxuICAgIH1cclxuICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgcmV0dXJuICdjaGVja2JveCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XHJcbiAgICAgICAgcmV0dXJuICdkYXRlJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgcmV0dXJuICdkYXRlVGltZSc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkhpZGRlbjpcclxuICAgICAgICByZXR1cm4gJ2hpZGRlbic7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLk11bHRpU2VsZWN0OlxyXG4gICAgICAgIHJldHVybiAnbXVsdGlzZWxlY3QnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5UZXh0OlxyXG4gICAgICAgIHJldHVybiAndGV4dGFyZWEnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxyXG4gICAgICAgIHJldHVybiAndGltZSc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlR5cGVhaGVhZDpcclxuICAgICAgICByZXR1cm4gJ3R5cGVhaGVhZCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlBhc3N3b3JkSW5wdXRHcm91cDpcclxuICAgICAgICByZXR1cm4gJ3Bhc3N3b3JkaW5wdXRncm91cCc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHByb3Aub3B0aW9ucyA/ICdzZWxlY3QnIDogJ2lucHV0JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFR5cGUocHJvcDogRm9ybVByb3ApOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuU3RyaW5nOlxyXG4gICAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgcmV0dXJuICdjaGVja2JveCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLk51bWJlcjpcclxuICAgICAgICByZXR1cm4gJ251bWJlcic7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkVtYWlsOlxyXG4gICAgICAgIHJldHVybiAnZW1haWwnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5QYXNzd29yZDpcclxuICAgICAgICByZXR1cm4gJ3Bhc3N3b3JkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ2hpZGRlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyh7IHByb3AsIGRhdGEgfTogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgY3VycmVudFByb3AgPSBwcm9wPy5jdXJyZW50VmFsdWUgYXMgRm9ybVByb3A7XHJcbiAgICBjb25zdCB7IG9wdGlvbnMsIHJlYWRvbmx5LCBkaXNhYmxlZCwgdmFsaWRhdG9ycywgY2xhc3NOYW1lLCB0ZW1wbGF0ZSB9ID0gY3VycmVudFByb3AgfHwge307XHJcbiAgICBpZiAodGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5pbmplY3RvckZvckN1c3RvbUNvbXBvbmVudCA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfRk9STV9QUk9QLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZTogY3VycmVudFByb3AsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZTogKGRhdGE/LmN1cnJlbnRWYWx1ZSBhcyBQcm9wRGF0YSk/LnJlY29yZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBGb3JtR3JvdXBEaXJlY3RpdmUgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMpIHRoaXMub3B0aW9ucyQgPSBvcHRpb25zKHRoaXMuZGF0YSk7XHJcbiAgICBpZiAocmVhZG9ubHkpIHRoaXMucmVhZG9ubHkgPSByZWFkb25seSh0aGlzLmRhdGEpO1xyXG5cclxuICAgIGlmIChkaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmRpc2FibGVkRm4gPSBkaXNhYmxlZDtcclxuICAgIH1cclxuICAgIGlmICh2YWxpZGF0b3JzKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnModGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5zZXRBc3RlcmlzaygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNsYXNzTmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtrZXlDb250cm9sLCB2YWx1ZUNvbnRyb2xdID0gdGhpcy5nZXRUeXBlYWhlYWRDb250cm9scygpO1xyXG4gICAgaWYgKGtleUNvbnRyb2wgJiYgdmFsdWVDb250cm9sKVxyXG4gICAgICB0aGlzLnR5cGVhaGVhZE1vZGVsID0geyBrZXk6IGtleUNvbnRyb2wudmFsdWUsIHZhbHVlOiB2YWx1ZUNvbnRyb2wudmFsdWUgfTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmVxdWlyZWQodmFsaWRhdG9yOiBWYWxpZGF0b3JGbikge1xyXG4gIHJldHVybiAoXHJcbiAgICB2YWxpZGF0b3IgPT09IFZhbGlkYXRvcnMucmVxdWlyZWQgfHxcclxuICAgIHZhbGlkYXRvciA9PT0gQWJwVmFsaWRhdG9ycy5yZXF1aXJlZCB8fFxyXG4gICAgdmFsaWRhdG9yLm5hbWUgPT09ICdyZXF1aXJlZCdcclxuICApO1xyXG59XHJcbiIsIjxuZy1jb250YWluZXJcclxuICBbbmdTd2l0Y2hdPVwiZ2V0Q29tcG9uZW50KHByb3ApXCJcclxuICAqYWJwUGVybWlzc2lvbj1cInByb3AucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbj5cclxuICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwidGVtcGxhdGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwicHJvcC50ZW1wbGF0ZTsgaW5qZWN0b3I6IGluamVjdG9yRm9yQ3VzdG9tQ29tcG9uZW50XCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzTmFtZVwiIGNsYXNzPVwibWItMlwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cImlucHV0XCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICNmaWVsZFxyXG4gICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJwcm9wLmF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgW3R5cGVdPVwiZ2V0VHlwZShwcm9wKVwiXHJcbiAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgLz5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cImhpZGRlblwiPlxyXG4gICAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIiB0eXBlPVwiaGlkZGVuXCIgLz5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cImNoZWNrYm94XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICNmaWVsZFxyXG4gICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6ICdmb3JtLWNoZWNrLWxhYmVsJyB9XCJcclxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJzZWxlY3RcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPHNlbGVjdFxyXG4gICAgICAgICNmaWVsZFxyXG4gICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrLmJ5KCd2YWx1ZScpXCJcclxuICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0aW9uLmtleSB9fVxyXG4gICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cIm11bHRpc2VsZWN0XCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxzZWxlY3RcclxuICAgICAgICAjZmllbGRcclxuICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgbXVsdGlwbGU9XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFjay5ieSgndmFsdWUnKVwiXHJcbiAgICAgICAgICBbbmdWYWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG9wdGlvbi5rZXkgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJ0eXBlYWhlYWRcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGRpdiAjdHlwZWFoZWFkIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIiB2YWxpZGF0aW9uU3R5bGUgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICNmaWVsZFxyXG4gICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJwcm9wLmF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW25nYlR5cGVhaGVhZF09XCJzZWFyY2hcIlxyXG4gICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtpbnB1dEZvcm1hdHRlcl09XCJ0eXBlYWhlYWRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgW3Jlc3VsdEZvcm1hdHRlcl09XCJ0eXBlYWhlYWRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwidHlwZWFoZWFkTW9kZWxcIlxyXG4gICAgICAgICAgKHNlbGVjdEl0ZW0pPVwic2V0VHlwZWFoZWFkVmFsdWUoJGV2ZW50Lml0ZW0pXCJcclxuICAgICAgICAgIChibHVyKT1cInNldFR5cGVhaGVhZFZhbHVlKHR5cGVhaGVhZE1vZGVsKVwiXHJcbiAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJ0eXBlYWhlYWQuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1pbnZhbGlkJylcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCIgdHlwZT1cImhpZGRlblwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiZGF0ZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgKGtleXVwLnNwYWNlKT1cImRhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgI2RhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAvPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwidGltZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmdiLXRpbWVwaWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIj48L25nYi10aW1lcGlja2VyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiZGF0ZVRpbWVcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGFicC1kYXRlLXRpbWUtcGlja2VyIFtwcm9wXT1cInByb3BcIiBbbWVyaWRpYW5dPVwibWVyaWRpYW5cIj48L2FicC1kYXRlLXRpbWUtcGlja2VyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwidGV4dGFyZWFcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICA+PC90ZXh0YXJlYT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cInBhc3N3b3JkaW5wdXRncm91cFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8YWJwLXBhc3N3b3JkXHJcbiAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICBjb21wb25lbnRLZXk6IHBhc3N3b3JkS2V5LFxyXG4gICAgICAgICAgaW5wdXRzOiB7XHJcbiAgICAgICAgICAgIGlucHV0SWQ6IHsgdmFsdWU6IHByb3AuaWQgfSxcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lOiB7IHZhbHVlOiBwcm9wLm5hbWUgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cIlxyXG4gICAgICAgIFtpbnB1dElkXT1cInByb3AuaWRcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgPjwvYWJwLXBhc3N3b3JkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8c21hbGwgKm5nSWY9XCJwcm9wLmZvcm1UZXh0XCIgY2xhc3M9XCJ0ZXh0LW11dGVkIGQtYmxvY2tcIj57e1xyXG4gICAgICBwcm9wLmZvcm1UZXh0IHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICB9fTwvc21hbGw+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNsYWJlbCBsZXQtY2xhc3Nlcz5cclxuICA8bGFiZWwgW2h0bWxGb3JdPVwicHJvcC5pZFwiIFtuZ0NsYXNzXT1cImNsYXNzZXMgfHwgJ2Zvcm0tbGFiZWwnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcC5kaXNwbGF5VGV4dFJlc29sdmVyOyBlbHNlIGRpc3BsYXlOYW1lVGVtcGxhdGVcIj5cclxuICAgICAge3sgcHJvcC5kaXNwbGF5VGV4dFJlc29sdmVyKGRhdGEpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGlzcGxheU5hbWVUZW1wbGF0ZT4ge3sgcHJvcC5kaXNwbGF5TmFtZSB8IGFicExvY2FsaXphdGlvbiB9fTwvbmctdGVtcGxhdGU+XHJcbiAgICB7eyBhc3RlcmlzayB9fVxyXG4gIDwvbGFiZWw+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL2V4dGVuc2lvbnMvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS1wcm9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xHLE9BQU8sRUFBTyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RGLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUdsQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdB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LFdBQVc7Z0JBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDM0Q7WUFDRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtTQUNuRDs7NEZBRVUsMkJBQTJCO2tCQWR2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3dCQUNELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO3dCQUNsRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtxQkFDbkQ7OE5BR1EsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRXNCLFFBQVE7c0JBQW5DLFNBQVM7dUJBQUMsT0FBTzs7QUFnTHBCLFNBQVMsVUFBVSxDQUFDLFNBQXNCO0lBQ3hDLE9BQU8sQ0FDTCxTQUFTLEtBQUssVUFBVSxDQUFDLFFBQVE7UUFDakMsU0FBUyxLQUFLLGFBQWEsQ0FBQyxRQUFRO1FBQ3BDLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUM5QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYVEVOU0lPTlNfRk9STV9QUk9QLCBFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBIH0gZnJvbSAnLi8uLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEFCUCwgQWJwVmFsaWRhdG9ycywgQ29uZmlnU3RhdGVTZXJ2aWNlLCBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3B0aW9uYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBTa2lwU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbENvbnRhaW5lcixcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxuICBWYWxpZGF0b3JGbixcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIsIE5nYlRpbWVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvZGF0ZS5hZGFwdGVyJztcclxuaW1wb3J0IHsgVGltZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZGFwdGVycy90aW1lLmFkYXB0ZXInO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgZVByb3BUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvcHJvcHMuZW51bSc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeCB9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVhaGVhZC51dGlsJztcclxuaW1wb3J0IHsgZVRoZW1lU2hhcmVkQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2VudW1zL2NvbXBvbmVudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3AnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcclxuICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvbnRyb2xDb250YWluZXJdXSxcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiVGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBUaW1lQWRhcHRlciB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBQcm9wRGF0YTtcclxuXHJcbiAgQElucHV0KCkgcHJvcCE6IEZvcm1Qcm9wO1xyXG5cclxuICBASW5wdXQoKSBmaXJzdD86IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpZWxkJykgcHJpdmF0ZSBmaWVsZFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBwdWJsaWMgaW5qZWN0b3JGb3JDdXN0b21Db21wb25lbnQ/OiBJbmplY3RvcjtcclxuXHJcbiAgYXN0ZXJpc2sgPSAnJztcclxuXHJcbiAgY29udGFpbmVyQ2xhc3NOYW1lID0gJ21iLTInO1xyXG5cclxuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4gPSBvZihbXSk7XHJcblxyXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkhOiBib29sZWFuO1xyXG5cclxuICB0eXBlYWhlYWRNb2RlbDogYW55O1xyXG5cclxuICBwYXNzd29yZEtleSA9IGVUaGVtZVNoYXJlZENvbXBvbmVudHMuUGFzc3dvcmRDb21wb25lbnQ7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgZGlzYWJsZWRGbiA9IChkYXRhOiBQcm9wRGF0YSkgPT4gZmFsc2U7XHJcblxyXG4gIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkRm4odGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHNldFR5cGVhaGVhZFZhbHVlKHNlbGVjdGVkT3B0aW9uOiBBQlAuT3B0aW9uPHN0cmluZz4pIHtcclxuICAgIHRoaXMudHlwZWFoZWFkTW9kZWwgPSBzZWxlY3RlZE9wdGlvbiB8fCB7IGtleTogbnVsbCwgdmFsdWU6IG51bGwgfTtcclxuICAgIGNvbnN0IHsga2V5LCB2YWx1ZSB9ID0gdGhpcy50eXBlYWhlYWRNb2RlbDtcclxuICAgIGNvbnN0IFtrZXlDb250cm9sLCB2YWx1ZUNvbnRyb2xdID0gdGhpcy5nZXRUeXBlYWhlYWRDb250cm9scygpO1xyXG4gICAgaWYgKHZhbHVlQ29udHJvbD8udmFsdWUgJiYgIXZhbHVlKSB2YWx1ZUNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgIGtleUNvbnRyb2w/LnNldFZhbHVlKGtleSk7XHJcbiAgICB2YWx1ZUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaCA9ICh0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+KSA9PlxyXG4gICAgdGV4dCRcclxuICAgICAgPyB0ZXh0JC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgc3dpdGNoTWFwKHRleHQgPT4gdGhpcy5wcm9wPy5vcHRpb25zPy4odGhpcy5kYXRhLCB0ZXh0KSB8fCBvZihbXSkpLFxyXG4gICAgICAgIClcclxuICAgICAgOiBvZihbXSk7XHJcblxyXG4gIHR5cGVhaGVhZEZvcm1hdHRlciA9IChvcHRpb246IEFCUC5PcHRpb248YW55PikgPT4gb3B0aW9uLmtleTtcclxuXHJcbiAgZ2V0IG1lcmlkaWFuKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuZGF0ZVRpbWVGb3JtYXQuc2hvcnRUaW1lUGF0dGVybicpIHx8ICcnXHJcbiAgICApLmluY2x1ZGVzKCd0dCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzSW52YWxpZCgpIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KHRoaXMucHJvcC5uYW1lKTtcclxuICAgIHJldHVybiBjb250cm9sPy50b3VjaGVkICYmIGNvbnRyb2wuaW52YWxpZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyByZWFkb25seSB0cmFjazogVHJhY2tCeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICAgIGdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICApIHtcclxuICAgIHRoaXMuZm9ybSA9IGdyb3VwRGlyZWN0aXZlLmZvcm07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFR5cGVhaGVhZENvbnRyb2xzKCkge1xyXG4gICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnByb3A7XHJcbiAgICBjb25zdCBleHRyYVByb3BOYW1lID0gYCR7RVhUUkFfUFJPUEVSVElFU19LRVl9LiR7bmFtZX1gO1xyXG4gICAgY29uc3Qga2V5Q29udHJvbCA9XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeChleHRyYVByb3BOYW1lKSkgfHxcclxuICAgICAgdGhpcy5mb3JtLmdldChhZGRUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpKTtcclxuICAgIGNvbnN0IHZhbHVlQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZXh0cmFQcm9wTmFtZSkgfHwgdGhpcy5mb3JtLmdldChuYW1lKTtcclxuICAgIHJldHVybiBba2V5Q29udHJvbCwgdmFsdWVDb250cm9sXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QXN0ZXJpc2soKSB7XHJcbiAgICB0aGlzLmFzdGVyaXNrID0gdGhpcy52YWxpZGF0b3JzLnNvbWUoaXNSZXF1aXJlZCkgPyAnKicgOiAnJztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmZpcnN0ICYmIHRoaXMuZmllbGRSZWYpIHtcclxuICAgICAgdGhpcy5maWVsZFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50KHByb3A6IEZvcm1Qcm9wKTogc3RyaW5nIHtcclxuICAgIGlmIChwcm9wLnRlbXBsYXRlKSB7XHJcbiAgICAgIHJldHVybiAndGVtcGxhdGUnO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrYm94JztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGUnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGVUaW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuSGlkZGVuOlxyXG4gICAgICAgIHJldHVybiAnaGlkZGVuJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuTXVsdGlTZWxlY3Q6XHJcbiAgICAgICAgcmV0dXJuICdtdWx0aXNlbGVjdCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRleHQ6XHJcbiAgICAgICAgcmV0dXJuICd0ZXh0YXJlYSc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgcmV0dXJuICd0aW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuVHlwZWFoZWFkOlxyXG4gICAgICAgIHJldHVybiAndHlwZWFoZWFkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcHJvcC5vcHRpb25zID8gJ3NlbGVjdCcgOiAnaW5wdXQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZShwcm9wOiBGb3JtUHJvcCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5TdHJpbmc6XHJcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrYm94JztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuTnVtYmVyOlxyXG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRW1haWw6XHJcbiAgICAgICAgcmV0dXJuICdlbWFpbCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlBhc3N3b3JkOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmQnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5QYXNzd29yZElucHV0R3JvdXA6XHJcbiAgICAgICAgcmV0dXJuICdwYXNzd29yZGlucHV0Z3JvdXAnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnaGlkZGVuJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHsgcHJvcCwgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCBjdXJyZW50UHJvcCA9IHByb3A/LmN1cnJlbnRWYWx1ZSBhcyBGb3JtUHJvcDtcclxuICAgIGNvbnN0IHsgb3B0aW9ucywgcmVhZG9ubHksIGRpc2FibGVkLCB2YWxpZGF0b3JzLCBjbGFzc05hbWUsIHRlbXBsYXRlIH0gPSBjdXJyZW50UHJvcCB8fCB7fTtcclxuICAgIGlmICh0ZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmluamVjdG9yRm9yQ3VzdG9tQ29tcG9uZW50ID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19GT1JNX1BST1AsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjdXJyZW50UHJvcCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfRk9STV9QUk9QX0RBVEEsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiAoZGF0YT8uY3VycmVudFZhbHVlIGFzIFByb3BEYXRhKT8ucmVjb3JkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucykgdGhpcy5vcHRpb25zJCA9IG9wdGlvbnModGhpcy5kYXRhKTtcclxuICAgIGlmIChyZWFkb25seSkgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5KHRoaXMuZGF0YSk7XHJcblxyXG4gICAgaWYgKGRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRGbiA9IGRpc2FibGVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRvcnMpIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JzID0gdmFsaWRhdG9ycyh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEFzdGVyaXNrKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2xhc3NOYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb250YWluZXJDbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2tleUNvbnRyb2wsIHZhbHVlQ29udHJvbF0gPSB0aGlzLmdldFR5cGVhaGVhZENvbnRyb2xzKCk7XHJcbiAgICBpZiAoa2V5Q29udHJvbCAmJiB2YWx1ZUNvbnRyb2wpXHJcbiAgICAgIHRoaXMudHlwZWFoZWFkTW9kZWwgPSB7IGtleToga2V5Q29udHJvbC52YWx1ZSwgdmFsdWU6IHZhbHVlQ29udHJvbC52YWx1ZSB9O1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaXNSZXF1aXJlZCh2YWxpZGF0b3I6IFZhbGlkYXRvckZuKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHZhbGlkYXRvciA9PT0gVmFsaWRhdG9ycy5yZXF1aXJlZCB8fFxyXG4gICAgdmFsaWRhdG9yID09PSBBYnBWYWxpZGF0b3JzLnJlcXVpcmVkIHx8XHJcbiAgICB2YWxpZGF0b3IubmFtZSA9PT0gJ3JlcXVpcmVkJ1xyXG4gICk7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lclxyXG4gIFtuZ1N3aXRjaF09XCJnZXRDb21wb25lbnQocHJvcClcIlxyXG4gICphYnBQZXJtaXNzaW9uPVwicHJvcC5wZXJtaXNzaW9uOyBydW5DaGFuZ2VEZXRlY3Rpb246IGZhbHNlXCJcclxuPlxyXG4gIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJ0ZW1wbGF0ZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJwcm9wLnRlbXBsYXRlOyBpbmplY3RvcjogaW5qZWN0b3JGb3JDdXN0b21Db21wb25lbnRcIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NOYW1lXCIgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiaW5wdXRcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInByb3AuYXV0b2NvbXBsZXRlXCJcclxuICAgICAgICBbdHlwZV09XCJnZXRUeXBlKHByb3ApXCJcclxuICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAvPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiaGlkZGVuXCI+XHJcbiAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiIHR5cGU9XCJoaWRkZW5cIiAvPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiY2hlY2tib3hcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogJ2Zvcm0tY2hlY2stbGFiZWwnIH1cIlxyXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cInNlbGVjdFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8c2VsZWN0XHJcbiAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9ucyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2suYnkoJ3ZhbHVlJylcIlxyXG4gICAgICAgICAgW25nVmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvcHRpb24ua2V5IH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwibXVsdGlzZWxlY3RcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPHNlbGVjdFxyXG4gICAgICAgICNmaWVsZFxyXG4gICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBtdWx0aXBsZT1cIm11bHRpcGxlXCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrLmJ5KCd2YWx1ZScpXCJcclxuICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0aW9uLmtleSB9fVxyXG4gICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoQ2FzZT1cInR5cGVhaGVhZFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8ZGl2ICN0eXBlYWhlYWQgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIHZhbGlkYXRpb25TdHlsZSB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInByb3AuYXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbmdiVHlwZWFoZWFkXT1cInNlYXJjaFwiXHJcbiAgICAgICAgICBbZWRpdGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2lucHV0Rm9ybWF0dGVyXT1cInR5cGVhaGVhZEZvcm1hdHRlclwiXHJcbiAgICAgICAgICBbcmVzdWx0Rm9ybWF0dGVyXT1cInR5cGVhaGVhZEZvcm1hdHRlclwiXHJcbiAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0eXBlYWhlYWRNb2RlbFwiXHJcbiAgICAgICAgICAoc2VsZWN0SXRlbSk9XCJzZXRUeXBlYWhlYWRWYWx1ZSgkZXZlbnQuaXRlbSlcIlxyXG4gICAgICAgICAgKGJsdXIpPVwic2V0VHlwZWFoZWFkVmFsdWUodHlwZWFoZWFkTW9kZWwpXCJcclxuICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cInR5cGVhaGVhZC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLWludmFsaWQnKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIiB0eXBlPVwiaGlkZGVuXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJkYXRlXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAoa2V5dXAuc3BhY2UpPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAjZGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJ0aW1lXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZ2ItdGltZXBpY2tlciBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiPjwvbmdiLXRpbWVwaWNrZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJkYXRlVGltZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8YWJwLWRhdGUtdGltZS1waWNrZXIgW3Byb3BdPVwicHJvcFwiIFttZXJpZGlhbl09XCJtZXJpZGlhblwiPjwvYWJwLWRhdGUtdGltZS1waWNrZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJ0ZXh0YXJlYVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8dGV4dGFyZWFcclxuICAgICAgICAjZmllbGRcclxuICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgID48L3RleHRhcmVhPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwicGFzc3dvcmRpbnB1dGdyb3VwXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxhYnAtcGFzc3dvcmRcclxuICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgIGNvbXBvbmVudEtleTogcGFzc3dvcmRLZXksXHJcbiAgICAgICAgICBpbnB1dHM6IHtcclxuICAgICAgICAgICAgaW5wdXRJZDogeyB2YWx1ZTogcHJvcC5pZCB9LFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU6IHsgdmFsdWU6IHByb3AubmFtZSB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW2lucHV0SWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICA+PC9hYnAtcGFzc3dvcmQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxzbWFsbCAqbmdJZj1cInByb3AuZm9ybVRleHRcIiBjbGFzcz1cInRleHQtbXV0ZWQgZC1ibG9ja1wiPnt7XHJcbiAgICAgIHByb3AuZm9ybVRleHQgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9zbWFsbD5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2xhYmVsIGxldC1jbGFzc2VzPlxyXG4gIDxsYWJlbCBbaHRtbEZvcl09XCJwcm9wLmlkXCIgW25nQ2xhc3NdPVwiY2xhc3NlcyB8fCAnZm9ybS1sYWJlbCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wLmRpc3BsYXlUZXh0UmVzb2x2ZXI7IGVsc2UgZGlzcGxheU5hbWVUZW1wbGF0ZVwiPlxyXG4gICAgICB7eyBwcm9wLmRpc3BsYXlUZXh0UmVzb2x2ZXIoZGF0YSkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLXRlbXBsYXRlICNkaXNwbGF5TmFtZVRlbXBsYXRlPiB7eyBwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgIHt7IGFzdGVyaXNrIH19XHJcbiAgPC9sYWJlbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -15,7 +15,7 @@ import * as i4 from "@angular/common";
|
|
|
15
15
|
import * as i5 from "@ngx-validate/core";
|
|
16
16
|
import * as i6 from "./extensible-form-prop.component";
|
|
17
17
|
import * as i7 from "../../directives/prop-data.directive";
|
|
18
|
-
class ExtensibleFormComponent {
|
|
18
|
+
export class ExtensibleFormComponent {
|
|
19
19
|
set selectedRecord(record) {
|
|
20
20
|
const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
|
|
21
21
|
const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
|
|
@@ -43,8 +43,8 @@ class ExtensibleFormComponent {
|
|
|
43
43
|
this.identifier = identifier;
|
|
44
44
|
this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ExtensibleFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i2.ControlContainer }, { token: i3.ExtensionsService }, { token: EXTENSIONS_IDENTIFIER }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\r\n\r\n <ng-container *ngFor=\"let groupedProp of groupedPropList.items\">\r\n <ng-container *abpPropData=\"let data; fromList: groupedProp.formPropList; withRecord: record\">\r\n\r\n <div *ngIf=\"groupedProp.group?.className; else withoutClassName\"\r\n [class]=\"groupedProp.group?.className\" [attr.data-name]=\"groupedProp.group?.className\">\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #withoutClassName>\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-container>\r\n\r\n\r\n<ng-template let-groupedProp=\"groupedProp\" let-data=\"data\" #propListTemplate>\r\n <ng-container *ngFor=\"let prop of groupedProp.formPropList; let first = first; trackBy: track.by('name')\">\r\n <ng-container *ngIf=\"prop.visible(data)\">\r\n <ng-container\r\n [formGroupName]=\"extraPropertiesKey\"\r\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\r\n >\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"\r\n [class]=\"prop.className\">\r\n </abp-extensible-form-prop>\r\n </ng-container>\r\n\r\n <ng-template #tempDefault>\r\n <abp-extensible-form-prop\r\n [class]=\"prop.className\"\r\n *ngIf=\"form.get(prop.name)\"\r\n [prop]=\"prop\"\r\n [data]=\"data\"\r\n [first]=\"first\"\r\n ></abp-extensible-form-prop>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\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: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i6.ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }, { kind: "directive", type: i7.PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }], viewProviders: [
|
|
48
48
|
{
|
|
49
49
|
provide: ControlContainer,
|
|
50
50
|
useFactory: selfFactory,
|
|
@@ -52,8 +52,7 @@ class ExtensibleFormComponent {
|
|
|
52
52
|
},
|
|
53
53
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
57
56
|
type: Component,
|
|
58
57
|
args: [{ exportAs: 'abpExtensibleForm', selector: 'abp-extensible-form', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
|
|
59
58
|
{
|
|
@@ -71,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
|
|
|
71
70
|
}], selectedRecord: [{
|
|
72
71
|
type: Input
|
|
73
72
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFlL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxJQUNJLGNBQWMsQ0FBQyxNQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBTUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDekMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDdEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBcUIsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQXFCLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBQ2tCLEtBQXdCLEVBQ3hCLEtBQXFCLEVBQzdCLFNBQTJCLEVBQzNCLFVBQTZCLEVBQ0UsVUFBa0I7UUFKekMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDRSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBekIzRCx1QkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztJQTBCdkMsQ0FBQzsrR0F0Q08sdUJBQXVCLGtKQXFDeEIscUJBQXFCO21HQXJDcEIsdUJBQXVCLHVJQUNwQiwyQkFBMkIsaUZDbEMzQyxxMERBNkNBLDZtQ0RwQmlCO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsVUFBVSxFQUFFLFdBQVc7Z0JBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDM0Q7U0FDRjs7NEZBRVUsdUJBQXVCO2tCQWJuQyxTQUFTOytCQUNFLG1CQUFtQixZQUNuQixxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3FCQUNGOzswQkF1Q0UsTUFBTTsyQkFBQyxxQkFBcUI7NENBbkMvQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsMkJBQTJCO2dCQUlyQyxjQUFjO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNraXBTZWxmLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wTGlzdCwgR3JvdXBlZEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlRm9ybScsXHJcbiAgc2VsZWN0b3I6ICdhYnAtZXh0ZW5zaWJsZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IHNlbGZGYWN0b3J5LFxyXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29udHJvbENvbnRhaW5lcl1dLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUZvcm1Db21wb25lbnQ8UiA9IGFueT4ge1xyXG4gIEBWaWV3Q2hpbGRyZW4oRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50KVxyXG4gIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZFJlY29yZChyZWNvcmQ6IFIpIHtcclxuICAgIGNvbnN0IHR5cGUgPSAhcmVjb3JkIHx8IEpTT04uc3RyaW5naWZ5KHJlY29yZCkgPT09ICd7fScgPyAnY3JlYXRlJyA6ICdlZGl0JztcclxuICAgIGNvbnN0IHByb3BMaXN0ID0gdGhpcy5leHRlbnNpb25zW2Ake3R5cGV9Rm9ybVByb3BzYF0uZ2V0KHRoaXMuaWRlbnRpZmllcikucHJvcHM7XHJcbiAgICB0aGlzLmdyb3VwZWRQcm9wTGlzdCA9IHRoaXMuY3JlYXRlR3JvdXBlZExpc3QocHJvcExpc3QpO1xyXG4gICAgdGhpcy5yZWNvcmQgPSByZWNvcmQ7XHJcbiAgfVxyXG5cclxuICBleHRyYVByb3BlcnRpZXNLZXkgPSBFWFRSQV9QUk9QRVJUSUVTX0tFWTtcclxuICBncm91cGVkUHJvcExpc3QhOiBHcm91cGVkRm9ybVByb3BMaXN0O1xyXG4gIHJlY29yZCE6IFI7XHJcblxyXG4gIGNyZWF0ZUdyb3VwZWRMaXN0KHByb3BMaXN0OiBGb3JtUHJvcExpc3Q8Uj4pIHtcclxuICAgIGNvbnN0IGdyb3VwZWRGb3JtUHJvcExpc3QgPSBuZXcgR3JvdXBlZEZvcm1Qcm9wTGlzdCgpO1xyXG4gICAgcHJvcExpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgZ3JvdXBlZEZvcm1Qcm9wTGlzdC5hZGRJdGVtKGl0ZW0udmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JvdXBlZEZvcm1Qcm9wTGlzdDtcclxuICB9XHJcblxyXG4gIGdldCBmb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuICh0aGlzLmNvbnRhaW5lciA/IHRoaXMuY29udGFpbmVyLmNvbnRyb2wgOiB7IGNvbnRyb2xzOiB7fSB9KSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGV4dHJhUHJvcGVydGllcygpOiBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzLmV4dHJhUHJvcGVydGllcyB8fCB7IGNvbnRyb2xzOiB7fSB9KSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHByaXZhdGUgY29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgcHJpdmF0ZSBleHRlbnNpb25zOiBFeHRlbnNpb25zU2VydmljZSxcclxuICAgIEBJbmplY3QoRVhURU5TSU9OU19JREVOVElGSUVSKSBwcml2YXRlIGlkZW50aWZpZXI6IHN0cmluZyxcclxuICApIHt9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1cIj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXBlZFByb3Agb2YgZ3JvdXBlZFByb3BMaXN0Lml0ZW1zXCI+XHJcbiAgICA8bmctY29udGFpbmVyICphYnBQcm9wRGF0YT1cImxldCBkYXRhOyBmcm9tTGlzdDogZ3JvdXBlZFByb3AuZm9ybVByb3BMaXN0OyB3aXRoUmVjb3JkOiByZWNvcmRcIj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJncm91cGVkUHJvcC5ncm91cD8uY2xhc3NOYW1lOyBlbHNlIHdpdGhvdXRDbGFzc05hbWVcIlxyXG4gICAgICAgICAgIFtjbGFzc109XCJncm91cGVkUHJvcC5ncm91cD8uY2xhc3NOYW1lXCIgW2F0dHIuZGF0YS1uYW1lXT1cImdyb3VwZWRQcm9wLmdyb3VwPy5jbGFzc05hbWVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb3BMaXN0VGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2dyb3VwZWRQcm9wOmdyb3VwZWRQcm9wLGRhdGE6ZGF0YX1cIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI3dpdGhvdXRDbGFzc05hbWU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9wTGlzdFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntncm91cGVkUHJvcDpncm91cGVkUHJvcCxkYXRhOmRhdGF9XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSBsZXQtZ3JvdXBlZFByb3A9XCJncm91cGVkUHJvcFwiIGxldC1kYXRhPVwiZGF0YVwiICNwcm9wTGlzdFRlbXBsYXRlPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb3Agb2YgZ3JvdXBlZFByb3AuZm9ybVByb3BMaXN0OyBsZXQgZmlyc3QgPSBmaXJzdDsgdHJhY2tCeTogdHJhY2suYnkoJ25hbWUnKVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3AudmlzaWJsZShkYXRhKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiZXh0cmFQcm9wZXJ0aWVzS2V5XCJcclxuICAgICAgICAqbmdJZj1cImV4dHJhUHJvcGVydGllcy5jb250cm9sc1twcm9wLm5hbWVdOyBlbHNlIHRlbXBEZWZhdWx0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3AgW3Byb3BdPVwicHJvcFwiIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInByb3AuY2xhc3NOYW1lXCI+XHJcbiAgICAgICAgPC9hYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3A+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wRGVmYXVsdD5cclxuICAgICAgICA8YWJwLWV4dGVuc2libGUtZm9ybS1wcm9wXHJcbiAgICAgICAgICBbY2xhc3NdPVwicHJvcC5jbGFzc05hbWVcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmb3JtLmdldChwcm9wLm5hbWUpXCJcclxuICAgICAgICAgIFtwcm9wXT1cInByb3BcIlxyXG4gICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgICAgID48L2FicC1leHRlbnNpYmxlLWZvcm0tcHJvcD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|