@bizdoc/core 1.15.4 → 1.15.7
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/assets/bizdoc-schema.json +6 -8
- package/assets/system/icons.json +1 -0
- package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +2 -2
- package/esm2020/lib/admin/configuration-designer/designer.base.mjs +55 -11
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +90 -44
- package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +12 -18
- package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -6
- package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +7 -6
- package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +8 -11
- package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +13 -14
- package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +61 -0
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +47 -29
- package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +15 -32
- package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +15 -14
- package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +16 -17
- package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +50 -21
- package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +34 -19
- package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +41 -9
- package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +5 -4
- package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +14 -26
- package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +5 -4
- package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +12 -18
- package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +3 -4
- package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +18 -18
- package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +9 -18
- package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +16 -18
- package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +6 -4
- package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +15 -19
- package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +35 -8
- package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +12 -16
- package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +13 -12
- package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +10 -19
- package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +162 -0
- package/esm2020/lib/admin/configuration-designer/privileges.component.mjs +25 -17
- package/esm2020/lib/admin/core/ace.input.mjs +14 -16
- package/esm2020/lib/admin/core/color-picker.input.mjs +10 -33
- package/esm2020/lib/admin/form/designer/designer.component.mjs +192 -22
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +6 -6
- package/esm2020/lib/admin/system.service.mjs +7 -1
- package/esm2020/lib/compose/box/box.component.mjs +44 -0
- package/esm2020/lib/compose/document.component.mjs +2 -2
- package/esm2020/lib/compose/form-ref.mjs +7 -2
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
- package/esm2020/lib/compose/form.component.mjs +2 -2
- package/esm2020/lib/compose/new-menu.component.mjs +3 -3
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +2 -2
- package/esm2020/lib/core/functions.mjs +14 -2
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/translations.mjs +4 -1
- package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/table.component.mjs +1 -1
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +1 -1
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +1 -1
- package/esm2020/lib/reports/cube/documents.component.mjs +1 -1
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +1 -1
- package/esm2020/lib/reports/cube/table-documents.component.mjs +1 -1
- package/esm2020/lib/reports/cube/usage-base.mjs +1 -1
- package/esm2020/lib/shared.module.mjs +7 -7
- package/esm2020/lib/system.module.mjs +11 -6
- package/esm2020/lib/views/cube/chart.component.mjs +1 -1
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/bizdoc-core.mjs +1453 -945
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +1436 -946
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/configuration-designer/designer.base.d.ts +83 -29
- package/lib/admin/configuration-designer/designer.component.d.ts +14 -3
- package/lib/admin/configuration-designer/elements/action.component.d.ts +2 -13
- package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +0 -5
- package/lib/admin/configuration-designer/elements/box-form.component.d.ts +3 -13
- package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts +26 -0
- package/lib/admin/configuration-designer/elements/cube.component.d.ts +12 -13
- package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +3 -27
- package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +3 -2
- package/lib/admin/configuration-designer/elements/folder.component.d.ts +2 -12
- package/lib/admin/configuration-designer/elements/form.component.d.ts +6 -12
- package/lib/admin/configuration-designer/elements/guide.component.d.ts +7 -12
- package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +7 -1
- package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +3 -21
- package/lib/admin/configuration-designer/elements/report.component.d.ts +2 -15
- package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +1 -2
- package/lib/admin/configuration-designer/elements/role.component.d.ts +3 -15
- package/lib/admin/configuration-designer/elements/rule.component.d.ts +2 -13
- package/lib/admin/configuration-designer/elements/state.component.d.ts +2 -14
- package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/type.component.d.ts +2 -15
- package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +7 -1
- package/lib/admin/configuration-designer/elements/utility.component.d.ts +2 -12
- package/lib/admin/configuration-designer/elements/view.component.d.ts +5 -10
- package/lib/admin/configuration-designer/elements/widget.component.d.ts +2 -13
- package/lib/admin/configuration-designer/icon-picker.component.d.ts +67 -0
- package/lib/admin/configuration-designer/privileges.component.d.ts +3 -4
- package/lib/admin/core/ace.input.d.ts +4 -4
- package/lib/admin/core/color-picker.input.d.ts +4 -6
- package/lib/admin/form/designer/designer.component.d.ts +68 -20
- package/lib/admin/form/workflow/workflow.component.d.ts +2 -2
- package/lib/admin/system.service.d.ts +7 -0
- package/lib/compose/box/box.component.d.ts +17 -0
- package/lib/compose/form-ref.d.ts +6 -2
- package/lib/core/models.d.ts +4 -1
- package/lib/core/translations.d.ts +3 -0
- package/lib/cube/matrix/table.component.d.ts +0 -1
- package/lib/dashboard/cube/compare.widget.d.ts +7 -1
- package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -0
- package/lib/reports/cube/documents.component.d.ts +2 -3
- package/lib/reports/cube/grid-documents.component.d.ts +2 -2
- package/lib/reports/cube/table-documents.component.d.ts +2 -2
- package/lib/reports/cube/usage-base.d.ts +2 -1
- package/lib/shared.module.d.ts +33 -33
- package/lib/system.module.d.ts +62 -59
- package/lib/views/cube/chart.component.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
@@ -0,0 +1,162 @@
|
|
1
|
+
import { ESCAPE } from "@angular/cdk/keycodes";
|
2
|
+
import { TemplatePortal } from "@angular/cdk/portal";
|
3
|
+
import { Component, EventEmitter, HostBinding, Input, Optional, Output, Self, TemplateRef, ViewChild } from "@angular/core";
|
4
|
+
import { FormControl } from "@angular/forms";
|
5
|
+
import { debounceTime, filter, merge, Subject } from "rxjs";
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@angular/forms";
|
8
|
+
import * as i2 from "@angular/cdk/overlay";
|
9
|
+
import * as i3 from "@angular/common/http";
|
10
|
+
import * as i4 from "@angular/cdk/bidi";
|
11
|
+
import * as i5 from "@angular/common";
|
12
|
+
import * as i6 from "@angular/material/button";
|
13
|
+
import * as i7 from "@angular/material/input";
|
14
|
+
import * as i8 from "@angular/material/icon";
|
15
|
+
export class IconPickerComponent {
|
16
|
+
constructor(ngControl, _overlay, _http, _vc, _element, _dir) {
|
17
|
+
this.ngControl = ngControl;
|
18
|
+
this._overlay = _overlay;
|
19
|
+
this._http = _http;
|
20
|
+
this._vc = _vc;
|
21
|
+
this._element = _element;
|
22
|
+
this._dir = _dir;
|
23
|
+
this.id = `color-picker-${IconPickerComponent.nextId++}`;
|
24
|
+
this.errorState = false;
|
25
|
+
this.describedBy = '';
|
26
|
+
this.focused = false;
|
27
|
+
this.valueChanges = new EventEmitter();
|
28
|
+
this.categories = [];
|
29
|
+
this.filter = new FormControl(null);
|
30
|
+
this._required = false;
|
31
|
+
this._disabled = false;
|
32
|
+
this.stateChanges = new Subject();
|
33
|
+
if (this.ngControl != null) {
|
34
|
+
this.ngControl.valueAccessor = this;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
get value() { return this._value; }
|
38
|
+
set value(val) {
|
39
|
+
this._value = val;
|
40
|
+
this._onChange && this._onChange(val);
|
41
|
+
this.valueChanges.next(val);
|
42
|
+
this.stateChanges.next();
|
43
|
+
}
|
44
|
+
get empty() {
|
45
|
+
return this._value === null;
|
46
|
+
}
|
47
|
+
get shouldLabelFloat() {
|
48
|
+
return this.focused || !this.empty;
|
49
|
+
}
|
50
|
+
get required() {
|
51
|
+
return this._required;
|
52
|
+
}
|
53
|
+
set required(req) {
|
54
|
+
this._required = req;
|
55
|
+
this.stateChanges.next();
|
56
|
+
}
|
57
|
+
get disabled() { return this._disabled; }
|
58
|
+
set disabled(value) {
|
59
|
+
this._disabled = value;
|
60
|
+
this.stateChanges.next();
|
61
|
+
}
|
62
|
+
registerOnChange(fn) {
|
63
|
+
this._onChange = fn;
|
64
|
+
}
|
65
|
+
registerOnTouched(fn) {
|
66
|
+
this._onTouched = fn;
|
67
|
+
}
|
68
|
+
writeValue(obj) {
|
69
|
+
this._value = obj;
|
70
|
+
}
|
71
|
+
setDescribedByIds(ids) {
|
72
|
+
this.describedBy = ids.join(' ');
|
73
|
+
}
|
74
|
+
onContainerClick(_event) {
|
75
|
+
this._onTouched && this._onTouched();
|
76
|
+
this.open();
|
77
|
+
}
|
78
|
+
ngOnInit() {
|
79
|
+
if (!IconPickerComponent.icons)
|
80
|
+
this._http.get('/assets/system/icons.json').subscribe(e => {
|
81
|
+
IconPickerComponent.icons = e;
|
82
|
+
this._list(e);
|
83
|
+
});
|
84
|
+
else
|
85
|
+
this._list(IconPickerComponent.icons);
|
86
|
+
this.filter.valueChanges.
|
87
|
+
pipe(debounceTime(150)).
|
88
|
+
subscribe(v => this._list(IconPickerComponent.icons.filter(i => i.tags.findIndex(t => t.indexOf(v) > -1) > -1)));
|
89
|
+
}
|
90
|
+
_list(e) {
|
91
|
+
e.forEach(i => i.categories.forEach(c => {
|
92
|
+
if (this.categories[c])
|
93
|
+
this.categories[c].items.push(i);
|
94
|
+
else
|
95
|
+
this.categories.push(this.categories[c] = { items: [i] });
|
96
|
+
}));
|
97
|
+
}
|
98
|
+
open() {
|
99
|
+
this._overlayRef = this._overlay.create({
|
100
|
+
positionStrategy: this._overlay.position().flexibleConnectedTo(this._element).withPositions([{
|
101
|
+
originX: 'start',
|
102
|
+
originY: 'bottom',
|
103
|
+
overlayX: 'start',
|
104
|
+
overlayY: 'top'
|
105
|
+
}, {
|
106
|
+
originX: 'start',
|
107
|
+
originY: 'top',
|
108
|
+
overlayX: 'start',
|
109
|
+
overlayY: 'bottom'
|
110
|
+
}]),
|
111
|
+
hasBackdrop: true,
|
112
|
+
direction: this._dir.value,
|
113
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
114
|
+
panelClass: 'home-panel'
|
115
|
+
});
|
116
|
+
const portal = new TemplatePortal(this.panel, this._vc);
|
117
|
+
this._overlayRef.attach(portal);
|
118
|
+
merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE))).subscribe(() => this._overlayRef.detach());
|
119
|
+
}
|
120
|
+
_trackBy(index, el) {
|
121
|
+
return el.name;
|
122
|
+
}
|
123
|
+
_clear() { }
|
124
|
+
close() {
|
125
|
+
this._overlayRef.detach();
|
126
|
+
}
|
127
|
+
_pick(icon) {
|
128
|
+
this.value = icon.name;
|
129
|
+
this.close();
|
130
|
+
}
|
131
|
+
}
|
132
|
+
IconPickerComponent.nextId = 0;
|
133
|
+
IconPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: IconPickerComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.Overlay }, { token: i3.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i4.Directionality }], target: i0.ɵɵFactoryTarget.Component });
|
134
|
+
IconPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: { value: "value", required: "required", disabled: "disabled" }, outputs: { valueChanges: "valueChanges" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\">\r\n <mat-icon>{{value}}</mat-icon>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n</button>\r\n<ng-template>\r\n <div class=\"icon-palette\">\r\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" />\r\n <div *ngFor=\"let c of categories; trackBy: _trackBy\">\r\n <span></span>\r\n <div>\r\n <mat-icon *ngFor=\"let i of c.items; trackBy: _trackBy\" (click)=\"_pick(i)\">{{i.name}}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: IconPickerComponent, decorators: [{
|
136
|
+
type: Component,
|
137
|
+
args: [{ selector: 'bizdoc-icon-picker', template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\">\r\n <mat-icon>{{value}}</mat-icon>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n</button>\r\n<ng-template>\r\n <div class=\"icon-palette\">\r\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" />\r\n <div *ngFor=\"let c of categories; trackBy: _trackBy\">\r\n <span></span>\r\n <div>\r\n <mat-icon *ngFor=\"let i of c.items; trackBy: _trackBy\" (click)=\"_pick(i)\">{{i.name}}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}\n"] }]
|
138
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
139
|
+
type: Optional
|
140
|
+
}, {
|
141
|
+
type: Self
|
142
|
+
}] }, { type: i2.Overlay }, { type: i3.HttpClient }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i4.Directionality }]; }, propDecorators: { id: [{
|
143
|
+
type: HostBinding
|
144
|
+
}], value: [{
|
145
|
+
type: Input
|
146
|
+
}], shouldLabelFloat: [{
|
147
|
+
type: HostBinding,
|
148
|
+
args: ['class.floating']
|
149
|
+
}], required: [{
|
150
|
+
type: Input
|
151
|
+
}], disabled: [{
|
152
|
+
type: Input
|
153
|
+
}], describedBy: [{
|
154
|
+
type: HostBinding,
|
155
|
+
args: ['attr.aria-describedby']
|
156
|
+
}], valueChanges: [{
|
157
|
+
type: Output
|
158
|
+
}], panel: [{
|
159
|
+
type: ViewChild,
|
160
|
+
args: [TemplateRef]
|
161
|
+
}] } });
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2ljb24tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9pY29uLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbEssT0FBTyxFQUF3QixXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTyxtQkFBbUI7SUFnRDlCLFlBQzZCLFNBQW9CLEVBQ3ZDLFFBQWlCLEVBQ2pCLEtBQWlCLEVBQ2pCLEdBQXFCLEVBQ3JCLFFBQW9CLEVBQ3BCLElBQW9CO1FBTEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQXBEZixPQUFFLEdBQUcs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Q0FBQztJQUM1QixDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQWM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7O0FBOUhjLDBCQUFNLEdBQUcsQ0FBRSxDQUFBO2dIQURmLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVWQXNDbkIsV0FBVyxnRENyRHhCLG1qQkFlQTsyRkRBYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBR0Usb0JBQW9COzswQkFtRDNCLFFBQVE7OzBCQUFJLElBQUk7Z0xBL0NKLEVBQUU7c0JBQWhCLFdBQVc7Z0JBSVIsS0FBSztzQkFEUixLQUFLO2dCQVdGLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBT2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUdqQixZQUFZO3NCQUE5QixNQUFNO2dCQUNpQixLQUFLO3NCQUE1QixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvYmlkaVwiO1xyXG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdpY29uLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2ljb24tcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtaWNvbi1waWNrZXInXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGNvbG9yLXBpY2tlci0ke0ljb25QaWNrZXJDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZSh2YWwpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCh2YWwpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPT09IG51bGw7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXEpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gcmVxO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBwYW5lbDogVGVtcGxhdGVSZWY8YW55PjtcclxuICByZWFkb25seSBjYXRlZ29yaWVzOiBDYXRlZ29yeUluZm9bXSA9IFtdO1xyXG4gIHJlYWRvbmx5IGZpbHRlciA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcclxuICBwcml2YXRlIHN0YXRpYyBpY29uczogSWNvbkluZm9bXTtcclxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gb2JqO1xyXG4gIH1cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljayhfZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIHRoaXMub3BlbigpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghSWNvblBpY2tlckNvbXBvbmVudC5pY29ucylcclxuICAgICAgdGhpcy5faHR0cC5nZXQ8SWNvbkluZm9bXT4oJy9hc3NldHMvc3lzdGVtL2ljb25zLmpzb24nKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgSWNvblBpY2tlckNvbXBvbmVudC5pY29ucyA9IGU7XHJcbiAgICAgICAgdGhpcy5fbGlzdChlKTtcclxuICAgICAgfSk7XHJcbiAgICBlbHNlIHRoaXMuX2xpc3QoSWNvblBpY2tlckNvbXBvbmVudC5pY29ucyk7XHJcbiAgICB0aGlzLmZpbHRlci52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PiB0aGlzLl9saXN0KEljb25QaWNrZXJDb21wb25lbnQuaWNvbnMuZmlsdGVyKGkgPT4gaS50YWdzLmZpbmRJbmRleCh0ID0+IHQuaW5kZXhPZih2KSA+IC0xKSA+IC0xKSkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9saXN0KGU6IEljb25JbmZvW10pIHtcclxuICAgIGUuZm9yRWFjaChpID0+IGkuY2F0ZWdvcmllcy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jYXRlZ29yaWVzW2NdKVxyXG4gICAgICAgICh0aGlzLmNhdGVnb3JpZXNbY10gYXMgQ2F0ZWdvcnlJbmZvKS5pdGVtcy5wdXNoKGkpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5jYXRlZ29yaWVzW2NdID0geyBpdGVtczogW2ldIH0gYXMgQ2F0ZWdvcnlJbmZvKTtcclxuICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudCkud2l0aFBvc2l0aW9ucyhbe1xyXG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xyXG4gICAgICB9XSksXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX2Rpci52YWx1ZSxcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcclxuICAgICAgcGFuZWxDbGFzczogJ2hvbWUtcGFuZWwnXHJcbiAgICB9KVxyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMucGFuZWwsIHRoaXMuX3ZjKTtcclxuICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XHJcbiAgICBtZXJnZSh0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSwgdGhpcy5fb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoayA9PiBrLmtleUNvZGUgPT09IEVTQ0FQRSkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSk7XHJcbiAgfVxyXG4gIF90cmFja0J5KGluZGV4OiBudW1iZXIsIGVsOiBJY29uSW5mbyB8IENhdGVnb3J5SW5mbykge1xyXG4gICAgcmV0dXJuIGVsLm5hbWU7XHJcbiAgfVxyXG4gIF9jbGVhcigpIHsgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICB9XHJcbiAgX3BpY2soaWNvbjogSWNvbkluZm8pIHtcclxuICAgIHRoaXMudmFsdWUgPSBpY29uLm5hbWU7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBDYXRlZ29yeUluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpdGVtczogSWNvbkluZm9bXTtcclxufVxyXG5pbnRlcmZhY2UgSWNvbkluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcclxuICB0YWdzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9wZW4oKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gIDxtYXQtaWNvbj57e3ZhbHVlfX08L21hdC1pY29uPlxyXG4gIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuPG5nLXRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJpY29uLXBhbGV0dGVcIj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiZmlsdGVyXCIgKGtleWRvd24uZXNjYXBlKT1cIl9jbGVhcigpXCIgLz5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGMgb2YgY2F0ZWdvcmllczsgdHJhY2tCeTogX3RyYWNrQnlcIj5cclxuICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgaSBvZiBjLml0ZW1zOyB0cmFja0J5OiBfdHJhY2tCeVwiIChjbGljayk9XCJfcGljayhpKVwiPnt7aS5uYW1lfX08L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
@@ -1,18 +1,19 @@
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
1
|
+
import { Component, EventEmitter, Inject, Input, Output } from "@angular/core";
|
2
|
+
import { DesignerRef } from "./designer.base";
|
2
3
|
import * as i0 from "@angular/core";
|
3
4
|
import * as i1 from "@angular/forms";
|
4
|
-
import * as i2 from "
|
5
|
-
import * as i3 from "
|
6
|
-
import * as i4 from "@angular/
|
7
|
-
import * as i5 from "@angular/material/
|
8
|
-
import * as i6 from "
|
9
|
-
import * as i7 from "
|
10
|
-
import * as i8 from "
|
5
|
+
import * as i2 from "../system.service";
|
6
|
+
import * as i3 from "@angular/common";
|
7
|
+
import * as i4 from "@angular/material/list";
|
8
|
+
import * as i5 from "@angular/material/form-field";
|
9
|
+
import * as i6 from "../core/ace.input";
|
10
|
+
import * as i7 from "../../core/pipes/translate.pipe";
|
11
|
+
import * as i8 from "./designer.base";
|
11
12
|
export class PrivilegesDesignComponent {
|
12
|
-
constructor(_fb,
|
13
|
+
constructor(_fb, _service, _ref) {
|
13
14
|
this._fb = _fb;
|
14
|
-
this._session = _session;
|
15
15
|
this._service = _service;
|
16
|
+
this._ref = _ref;
|
16
17
|
this.change = new EventEmitter();
|
17
18
|
this.form = this._fb.group({
|
18
19
|
rule: null,
|
@@ -20,8 +21,12 @@ export class PrivilegesDesignComponent {
|
|
20
21
|
});
|
21
22
|
}
|
22
23
|
ngOnInit() {
|
23
|
-
this._service.roles().subscribe(r => this.roles = r
|
24
|
-
|
24
|
+
this._service.roles().subscribe(r => this.roles = r.
|
25
|
+
concat(this._ref.model.roles.map(r => ({
|
26
|
+
name: r.name,
|
27
|
+
title: r.title,
|
28
|
+
dataType: r.dataType
|
29
|
+
}))));
|
25
30
|
this.form.patchValue(this.model);
|
26
31
|
this.form.valueChanges.subscribe(v => Object.assign(this.model, v));
|
27
32
|
}
|
@@ -29,14 +34,17 @@ export class PrivilegesDesignComponent {
|
|
29
34
|
this.form.get('roles').setValue(evt.options.map(o => o.value));
|
30
35
|
}
|
31
36
|
}
|
32
|
-
PrivilegesDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: PrivilegesDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.
|
33
|
-
PrivilegesDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: { model: "model" }, outputs: { change: "change" }, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <h2 class=\"mat-
|
37
|
+
PrivilegesDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: PrivilegesDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
|
38
|
+
PrivilegesDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: { model: "model" }, outputs: { change: "change" }, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <mat-selection-list (selectionChange)=\"rolesChange($event)\" multiple *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [selected]=\"model?.roles?.indexOf(r.name) > -1\" [value]=\"r.name\">{{r.title}}</mat-list-option>\r\n <!--[disabled]=\"false\"-->\r\n </mat-selection-list>\r\n <!--<mat-form-field>\r\n <mat-label>{{'Roles'|translate}}</mat-label>\r\n <mat-select formControlName=\"roles\" multiple>\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>-->\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", dependencies: [{ 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: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i4.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i6.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
34
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: PrivilegesDesignComponent, decorators: [{
|
35
40
|
type: Component,
|
36
|
-
args: [{ selector: 'bizdoc-privileges', template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <h2 class=\"mat-
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.
|
41
|
+
args: [{ selector: 'bizdoc-privileges', template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <mat-selection-list (selectionChange)=\"rolesChange($event)\" multiple *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [selected]=\"model?.roles?.indexOf(r.name) > -1\" [value]=\"r.name\">{{r.title}}</mat-list-option>\r\n <!--[disabled]=\"false\"-->\r\n </mat-selection-list>\r\n <!--<mat-form-field>\r\n <mat-label>{{'Roles'|translate}}</mat-label>\r\n <mat-select formControlName=\"roles\" multiple>\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>-->\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i8.DesignerRef, decorators: [{
|
43
|
+
type: Inject,
|
44
|
+
args: [DesignerRef]
|
45
|
+
}] }]; }, propDecorators: { model: [{
|
38
46
|
type: Input
|
39
47
|
}], change: [{
|
40
48
|
type: Output
|
41
49
|
}] } });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmlsZWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvcHJpdmlsZWdlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvcHJpdmlsZWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RixPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBTS9ELE1BQU0sT0FBTyx5QkFBeUI7SUFRcEMsWUFBb0IsR0FBZ0IsRUFDMUIsUUFBdUIsRUFDRixJQUFpQjtRQUY1QixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDRixTQUFJLEdBQUosSUFBSSxDQUFhO1FBUjdCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBVyxFQUFFLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBS0gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7WUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQ1AsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQTJCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O3NIQTFCVSx5QkFBeUIsMEVBVTFCLFdBQVc7MEdBVlYseUJBQXlCLG9IQ1h0QywrNkJBaUJBOzJGRE5hLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQWExQixNQUFNOzJCQUFDLFdBQVc7NENBVFosS0FBSztzQkFBYixLQUFLO2dCQUNhLE1BQU07c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3Rpb25MaXN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcclxuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBQcml2aWxlZ2VzTW9kZWwgfSBmcm9tIFwiLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1wcml2aWxlZ2VzJyxcclxuICB0ZW1wbGF0ZVVybDogJ3ByaXZpbGVnZXMuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcml2aWxlZ2VzRGVzaWduQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBtb2RlbCE6IFByaXZpbGVnZXNNb2RlbDtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBydWxlOiBudWxsLFxyXG4gICAgcm9sZXM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KFtdKSxcclxuICB9KTtcclxuICByb2xlczogUm9sZVtdO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fc2VydmljZS5yb2xlcygpLnN1YnNjcmliZShyID0+XHJcbiAgICAgIHRoaXMucm9sZXMgPSByLlxyXG4gICAgICAgIGNvbmNhdCh0aGlzLl9yZWYubW9kZWwucm9sZXMubWFwKHIgPT4gKHtcclxuICAgICAgICAgIG5hbWU6IHIubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiByLnRpdGxlLFxyXG4gICAgICAgICAgZGF0YVR5cGU6IHIuZGF0YVR5cGVcclxuICAgICAgICB9KSkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgdikpO1xyXG4gIH1cclxuICByb2xlc0NoYW5nZShldnQ6IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UpIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3JvbGVzJykuc2V0VmFsdWUoZXZ0Lm9wdGlvbnMubWFwKG8gPT4gby52YWx1ZSkpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7J1ByaXZpbGVnZXMnfHRyYW5zbGF0ZX19PC9oMj5cclxuICA8bWF0LXNlbGVjdGlvbi1saXN0IChzZWxlY3Rpb25DaGFuZ2UpPVwicm9sZXNDaGFuZ2UoJGV2ZW50KVwiIG11bHRpcGxlICpuZ0lmPVwicm9sZXNcIj5cclxuICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygcm9sZXNcIiBbc2VsZWN0ZWRdPVwibW9kZWw/LnJvbGVzPy5pbmRleE9mKHIubmFtZSkgPiAtMVwiIFt2YWx1ZV09XCJyLm5hbWVcIj57e3IudGl0bGV9fTwvbWF0LWxpc3Qtb3B0aW9uPlxyXG4gICAgPCEtLVtkaXNhYmxlZF09XCJmYWxzZVwiLS0+XHJcbiAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XHJcbiAgPCEtLTxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtbGFiZWw+e3snUm9sZXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJyb2xlc1wiIG11bHRpcGxlPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiByb2xlc1wiIFt2YWx1ZV09XCJyLm5hbWVcIj57e3IudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPi0tPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtYWNlLWlucHV0IFtwbGFjZWhvbGRlcl09XCInQ29uZGl0aW9uJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJydWxlXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgPG1hdC1oaW50PiB7eyAnUHJvZ3JhbW1hYmxlRXhwcmVzc2lvbid8dHJhbnNsYXRlIH19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Component, Input, HostBinding, Optional, Self } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
2
|
+
import { shareReplay, Subject } from 'rxjs';
|
3
3
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
4
4
|
import * as brace from 'brace';
|
5
5
|
import 'brace/mode/javascript';
|
@@ -7,12 +7,12 @@ import 'brace/theme/github';
|
|
7
7
|
import 'brace/ext/language_tools';
|
8
8
|
import * as i0 from "@angular/core";
|
9
9
|
import * as i1 from "@angular/forms";
|
10
|
-
import * as i2 from "
|
10
|
+
import * as i2 from "../system.service";
|
11
11
|
export class AceInput {
|
12
|
-
constructor(ngControl, _el,
|
12
|
+
constructor(ngControl, _el, _service) {
|
13
13
|
this.ngControl = ngControl;
|
14
14
|
this._el = _el;
|
15
|
-
this.
|
15
|
+
this._service = _service;
|
16
16
|
this._required = false;
|
17
17
|
this._disabled = false;
|
18
18
|
this.stateChanges = new Subject();
|
@@ -25,9 +25,6 @@ export class AceInput {
|
|
25
25
|
this.ngControl.valueAccessor = this;
|
26
26
|
}
|
27
27
|
}
|
28
|
-
focus() {
|
29
|
-
this._editor.focus();
|
30
|
-
}
|
31
28
|
get placeholder() {
|
32
29
|
return this._placeholder;
|
33
30
|
}
|
@@ -85,11 +82,11 @@ export class AceInput {
|
|
85
82
|
enableLiveAutocompletion: true
|
86
83
|
});
|
87
84
|
this._editor.setValue(this._value || '');
|
88
|
-
const rules = this.
|
85
|
+
const rules = this._service.rules(this.params).pipe(shareReplay());
|
89
86
|
this._editor.addEventListener('change', () => {
|
90
87
|
const val = this._editor.getValue();
|
91
|
-
this._value = val;
|
92
|
-
this._onChange(
|
88
|
+
this._value = val.length > 0 ? val : null;
|
89
|
+
this._onChange(this._value);
|
93
90
|
});
|
94
91
|
this._editor.addEventListener('focus', () => {
|
95
92
|
this.focused = true;
|
@@ -98,18 +95,19 @@ export class AceInput {
|
|
98
95
|
this._editor.addEventListener('blur', () => this.focused = false);
|
99
96
|
brace.acequire("ace/ext/language_tools").addCompleter({
|
100
97
|
getCompletions: (_editor, _session, _pos, _prefix, callback) => {
|
101
|
-
rules.subscribe(r => callback(null,
|
102
|
-
return { name: n, value: n, score: 1, meta: 'BizDoc' };
|
103
|
-
})));
|
98
|
+
rules.subscribe(r => callback(null, r.map(r => ({ name: r.title, value: r.name, score: 1, meta: 'BizDoc' }))));
|
104
99
|
}
|
105
100
|
});
|
106
101
|
}
|
102
|
+
focus() {
|
103
|
+
this._editor.focus();
|
104
|
+
}
|
107
105
|
ngOnDestroy() {
|
108
106
|
this.stateChanges.complete();
|
109
107
|
}
|
110
108
|
}
|
111
109
|
AceInput.nextId = 0;
|
112
|
-
AceInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AceInput, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2.
|
110
|
+
AceInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AceInput, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component });
|
113
111
|
AceInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: AceInput, selector: "bizdoc-ace-input", inputs: { params: "params", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: AceInput }], ngImport: i0, template: `<div></div>`, isInline: true, styles: [":host ::ng-deep textarea{position:unset}\n", ":host ::ng-deep .ace_scrollbar.ace_scrollbar-h{height:5px!important}\n", ":host ::ng-deep .ace_editor{min-height:50px}\n"] });
|
114
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AceInput, decorators: [{
|
115
113
|
type: Component,
|
@@ -118,7 +116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImpor
|
|
118
116
|
type: Optional
|
119
117
|
}, {
|
120
118
|
type: Self
|
121
|
-
}] }, { type: i0.ElementRef }, { type: i2.
|
119
|
+
}] }, { type: i0.ElementRef }, { type: i2.SystemService }]; }, propDecorators: { id: [{
|
122
120
|
type: HostBinding
|
123
121
|
}], params: [{
|
124
122
|
type: Input
|
@@ -137,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImpor
|
|
137
135
|
}], value: [{
|
138
136
|
type: Input
|
139
137
|
}] } });
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNlLmlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb3JlL2FjZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sb0JBQW9CLENBQUM7QUFDNUIsT0FBTywwQkFBMEIsQ0FBQzs7OztBQVNsQyxNQUFNLE9BQ0UsUUFBUTtJQXlFZCxZQUF1QyxTQUFvQixFQUFVLEdBQWUsRUFDMUUsS0FBaUI7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUMxRSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBbkVuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFLakIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzdCLE9BQUUsR0FBRyxhQUFhLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBU3JELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFvQmhCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBWSxrQkFBa0IsQ0FBQztRQUVKLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBNkJyRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FB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LENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOztBQXpHYyxlQUFNLEdBQUcsQ0FBRSxDQUFBO3FHQUxwQixRQUFRO3lGQUFSLFFBQVEsb1NBUEgsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUMsMEJBQzFELGFBQWE7MkZBTWpCLFFBQVE7a0JBVGYsU0FBUzsrQkFDRSxrQkFBa0IsYUFDakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLFVBQVUsRUFBRSxDQUFDLFlBQzFELGFBQWE7OzBCQStFVixRQUFROzswQkFBSSxJQUFJOzhGQTNEZCxFQUFFO3NCQUFoQixXQUFXO2dCQUNILE1BQU07c0JBQWQsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQVVGLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBU2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQW9CdkIsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCAqIGFzIGJyYWNlIGZyb20gJ2JyYWNlJztcclxuaW1wb3J0ICdicmFjZS9tb2RlL2phdmFzY3JpcHQnO1xyXG5pbXBvcnQgJ2JyYWNlL3RoZW1lL2dpdGh1Yic7XHJcbmltcG9ydCAnYnJhY2UvZXh0L2xhbmd1YWdlX3Rvb2xzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWNlLWlucHV0JyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBBY2VJbnB1dCB9XSxcclxuICB0ZW1wbGF0ZTogYDxkaXY+PC9kaXY+YCxcclxuICBzdHlsZXM6IFsnOmhvc3QgOjpuZy1kZWVwIHRleHRhcmVhIHtwb3NpdGlvbjogdW5zZXR9JyxcclxuICAgICc6aG9zdCA6Om5nLWRlZXAgLmFjZV9zY3JvbGxiYXIuYWNlX3Njcm9sbGJhci1oIHtoZWlnaHQ6IDVweCAhaW1wb3J0YW50fScsXHJcbiAgICAnOmhvc3QgOjpuZy1kZWVwIC5hY2VfZWRpdG9yIHttaW4taGVpZ2h0OiA1MHB4O30nXVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBBY2VJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBmb2N1cygpIHtcclxuICB0aGlzLl9lZGl0b3IuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmFsdWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICBwcml2YXRlIF9lZGl0b3I6IGJyYWNlLkVkaXRvcjtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGFjZS1pbnB1dC0ke0FjZUlucHV0Lm5leHRJZCsrfWA7XHJcbiAgQElucHV0KCkgcGFyYW1zOiBhbnk7XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3ZhbHVlID09PSAnJzsgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXEpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gcmVxO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYml6ZG9jLWFjZS1pbnB1dCc7XHJcbiAgYXV0b2ZpbGxlZD86IGJvb2xlYW47XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lZGl0b3IgPSBicmFjZS5lZGl0KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCk7XHJcbiAgICB0aGlzLl9lZGl0b3IuZ2V0U2Vzc2lvbigpLnNldE1vZGUoJ2FjZS9tb2RlL2phdmFzY3JpcHQnKTtcclxuICAgIHRoaXMuX2VkaXRvci5zZXRUaGVtZSgnYWNlL3RoZW1lL2dpdGh1YicpO1xyXG4gICAgdGhpcy5fZWRpdG9yLnNldE9wdGlvbnMoe1xyXG4gICAgICBlbmFibGVCYXNpY0F1dG9jb21wbGV0aW9uOiB0cnVlLFxyXG4gICAgICBlbmFibGVMaXZlQXV0b2NvbXBsZXRpb246IHRydWVcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRoaXMuX3ZhbHVlIHx8ICcnKTtcclxuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5faHR0cC5nZXQ8eyBbbmFtZTogc3RyaW5nXTogUnVsZSB9PihgL2FwaS9mb3JtL3J1bGVzYCwgeyBwYXJhbXM6IHRoaXMucGFyYW1zIH0pO1xyXG4gICAgdGhpcy5fZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcclxuICAgICAgY29uc3QgdmFsID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xyXG4gICAgICB0aGlzLl9vbkNoYW5nZSh2YWwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuZm9jdXNlZCA9IGZhbHNlKTtcclxuICAgIGJyYWNlLmFjZXF1aXJlKFwiYWNlL2V4dC9sYW5ndWFnZV90b29sc1wiKS5hZGRDb21wbGV0ZXIoe1xyXG4gICAgICBnZXRDb21wbGV0aW9uczogKF9lZGl0b3IsIF9zZXNzaW9uLCBfcG9zLCBfcHJlZml4LCBjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIHJ1bGVzLnN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICBjYWxsYmFjayhudWxsLCBPYmplY3Qua2V5cyhyKS5tYXAobiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IG4sIHZhbHVlOiBuLCBzY29yZTogMSwgbWV0YTogJ0JpekRvYycgfTtcclxuICAgICAgICAgIH0pKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBSdWxlIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNlLmlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb3JlL2FjZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sMEJBQTBCLENBQUM7Ozs7QUFVbEMsTUFBTSxPQUNFLFFBQVE7SUFxRWQsWUFBdUMsU0FBb0IsRUFBVSxHQUFlLEVBQzFFLFFBQXVCO1FBRE0sY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDMUUsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQW5FekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBS2pCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM3QixPQUFFLEdBQUcsYUFBYSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQVNyRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBb0JoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQVksa0JBQWtCLENBQUM7UUFFSixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQTZCckQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FB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QUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7O0FBM0djLGVBQU0sR0FBRyxDQUFFLENBQUE7cUdBRHBCLFFBQVE7eUZBQVIsUUFBUSxvU0FQSCxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQywwQkFDMUQsYUFBYTsyRkFNakIsUUFBUTtrQkFUZixTQUFTOytCQUNFLGtCQUFrQixhQUNqQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsVUFBVSxFQUFFLENBQUMsWUFDMUQsYUFBYTs7MEJBMkVWLFFBQVE7OzBCQUFJLElBQUk7aUdBM0RkLEVBQUU7c0JBQWhCLFdBQVc7Z0JBQ0gsTUFBTTtzQkFBZCxLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBVUYsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLekIsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFTZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBb0J2QixLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCAqIGFzIGJyYWNlIGZyb20gJ2JyYWNlJztcclxuaW1wb3J0ICdicmFjZS9tb2RlL2phdmFzY3JpcHQnO1xyXG5pbXBvcnQgJ2JyYWNlL3RoZW1lL2dpdGh1Yic7XHJcbmltcG9ydCAnYnJhY2UvZXh0L2xhbmd1YWdlX3Rvb2xzJztcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gJy4uL3N5c3RlbS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWNlLWlucHV0JyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBBY2VJbnB1dCB9XSxcclxuICB0ZW1wbGF0ZTogYDxkaXY+PC9kaXY+YCxcclxuICBzdHlsZXM6IFsnOmhvc3QgOjpuZy1kZWVwIHRleHRhcmVhIHtwb3NpdGlvbjogdW5zZXR9JyxcclxuICAgICc6aG9zdCA6Om5nLWRlZXAgLmFjZV9zY3JvbGxiYXIuYWNlX3Njcm9sbGJhci1oIHtoZWlnaHQ6IDVweCAhaW1wb3J0YW50fScsXHJcbiAgICAnOmhvc3QgOjpuZy1kZWVwIC5hY2VfZWRpdG9yIHttaW4taGVpZ2h0OiA1MHB4O30nXVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBBY2VJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZWRpdG9yOiBicmFjZS5FZGl0b3I7XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBASG9zdEJpbmRpbmcoKSBpZCA9IGBhY2UtaW5wdXQtJHtBY2VJbnB1dC5uZXh0SWQrK31gO1xyXG4gIEBJbnB1dCgpIHBhcmFtczogYW55O1xyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcbiAgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl92YWx1ZSA9PT0gJyc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHJlcTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy1hY2UtaW5wdXQnO1xyXG4gIGF1dG9maWxsZWQ/OiBib29sZWFuO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG4gIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZWRpdG9yID0gYnJhY2UuZWRpdCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQpO1xyXG4gICAgdGhpcy5fZWRpdG9yLmdldFNlc3Npb24oKS5zZXRNb2RlKCdhY2UvbW9kZS9qYXZhc2NyaXB0Jyk7XHJcbiAgICB0aGlzLl9lZGl0b3Iuc2V0VGhlbWUoJ2FjZS90aGVtZS9naXRodWInKTtcclxuICAgIHRoaXMuX2VkaXRvci5zZXRPcHRpb25zKHtcclxuICAgICAgZW5hYmxlQmFzaWNBdXRvY29tcGxldGlvbjogdHJ1ZSxcclxuICAgICAgZW5hYmxlTGl2ZUF1dG9jb21wbGV0aW9uOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSB8fCAnJyk7XHJcbiAgICBjb25zdCBydWxlcyA9IHRoaXMuX3NlcnZpY2UucnVsZXModGhpcy5wYXJhbXMpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgICB0aGlzLl9lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICBjb25zdCB2YWwgPSB0aGlzLl9lZGl0b3IuZ2V0VmFsdWUoKTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWwubGVuZ3RoID4gMCA/IHZhbCA6IG51bGw7XHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLmZvY3VzZWQgPSBmYWxzZSk7XHJcbiAgICBicmFjZS5hY2VxdWlyZShcImFjZS9leHQvbGFuZ3VhZ2VfdG9vbHNcIikuYWRkQ29tcGxldGVyKHtcclxuICAgICAgZ2V0Q29tcGxldGlvbnM6IChfZWRpdG9yLCBfc2Vzc2lvbiwgX3BvcywgX3ByZWZpeCwgY2FsbGJhY2spID0+IHtcclxuICAgICAgICBydWxlcy5zdWJzY3JpYmUociA9PlxyXG4gICAgICAgICAgY2FsbGJhY2sobnVsbCwgci5tYXAociA9PiAoeyBuYW1lOiByLnRpdGxlLCB2YWx1ZTogci5uYW1lLCBzY29yZTogMSwgbWV0YTogJ0JpekRvYycgfSkpKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmb2N1cygpIHtcclxuICAgIHRoaXMuX2VkaXRvci5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|