ontimize-web-ngx 15.2.0 → 15.2.2
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/svg/ontimize-icon-set.svg +0 -1
- package/esm2020/lib/components/form/navigation/o-form.navigation.class.mjs +5 -4
- package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +3 -3
- package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +6 -6
- package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +2 -2
- package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +18 -8
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +3 -3
- package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +3 -3
- package/esm2020/lib/components/input/radio/o-radio.component.mjs +3 -3
- package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +3 -3
- package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +31 -22
- package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +6 -6
- package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +6 -6
- package/esm2020/lib/components/table/column/cell-renderer/cell-renderer.mjs +5 -3
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +80 -19
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +97 -40
- package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +10 -11
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +5 -3
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +30 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-export-configuration.class.mjs +1 -1
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +11 -2
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +12 -7
- package/esm2020/lib/components/table/o-table.component.mjs +12 -13
- package/esm2020/lib/config/o-directives.mjs +4 -2
- package/esm2020/lib/directives/index.mjs +2 -1
- package/esm2020/lib/directives/input-regulate.directive.mjs +70 -0
- package/esm2020/lib/i18n/i18n.mjs +30 -3
- package/esm2020/lib/interfaces/export-service.interface.mjs +1 -1
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +7 -5
- package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +6 -3
- package/esm2020/lib/shared/shared.module.mjs +4 -3
- package/esm2020/lib/validators/o-validators.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +2980 -2711
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +2967 -2699
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/input/listpicker/o-list-picker.component.d.ts +2 -2
- package/lib/components/input/o-form-service-component.class.d.ts +1 -1
- package/lib/components/input/text-input/o-text-input.component.d.ts +4 -2
- package/lib/components/table/column/o-table-column.component.d.ts +1 -1
- package/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.d.ts +24 -1
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +18 -4
- package/lib/components/table/extensions/dialog/o-table-dialog-components.d.ts +1 -1
- package/lib/components/table/extensions/export-button/o-table-export-button.component.d.ts +2 -2
- package/lib/components/table/extensions/footer/o-table-footer-components.d.ts +1 -1
- package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
- package/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.d.ts +5 -1
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +4 -1
- package/lib/components/table/extensions/header/table-menu/o-table-export-configuration.class.d.ts +1 -0
- package/lib/components/table/extensions/header/table-menu/o-table-menu.component.d.ts +1 -0
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +6 -3
- package/lib/components/table/o-table.component.d.ts +12 -10
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/input-regulate.directive.d.ts +23 -0
- package/lib/i18n/i18n.d.ts +27 -0
- package/lib/interfaces/export-service.interface.d.ts +1 -1
- package/lib/services/ontimize/ontimize-export-3xx.service.d.ts +1 -1
- package/lib/shared/shared.module.d.ts +15 -14
- package/package.json +1 -1
- package/theming/styles/ontimize-v8/containers.scss +0 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OListItemDirective } from '../components/list/list-item/o-list-item.directive';
|
|
2
|
+
import { InputRegulateDirective } from '../directives/input-regulate.directive';
|
|
2
3
|
import { OKeyboardListenerDirective } from '../directives/keyboard-listener.directive';
|
|
3
4
|
import { OLockerDirective } from '../directives/locker.directive';
|
|
4
5
|
import { OFileDragAndDropDirective } from '../directives/o-file-drag-and-drop.directive';
|
|
@@ -16,6 +17,7 @@ export const ONTIMIZE_DIRECTIVES = [
|
|
|
16
17
|
OMatErrorDirective,
|
|
17
18
|
OFileDragAndDropDirective,
|
|
18
19
|
OMatPrefix,
|
|
19
|
-
OMatSuffix
|
|
20
|
+
OMatSuffix,
|
|
21
|
+
InputRegulateDirective
|
|
20
22
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbmZpZy9vLWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUVqQywwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsVUFBVTtJQUNWLFVBQVU7SUFDVixzQkFBc0I7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9MaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGlzdC9saXN0LWl0ZW0vby1saXN0LWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0UmVndWxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2lucHV0LXJlZ3VsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPS2V5Ym9hcmRMaXN0ZW5lckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMva2V5Ym9hcmQtbGlzdGVuZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9Mb2NrZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2xvY2tlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT0ZpbGVEcmFnQW5kRHJvcERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvby1maWxlLWRyYWctYW5kLWRyb3AuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9IaWRkZW5EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL28taGlkZGVuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPTWF0RXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL28tbWF0LWVycm9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPTWF0UHJlZml4IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9vLW1hdC1wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IE9NYXRTdWZmaXggfSBmcm9tICcuLi9kaXJlY3RpdmVzL28tbWF0LXN1ZmZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT1RhYkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9vLXRhYi1ncm91cC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgT05USU1JWkVfRElSRUNUSVZFUyA9IFtcbiAgLy8gT250aW1pemUgZGlyZWN0aXZlcy4uLlxuICBPS2V5Ym9hcmRMaXN0ZW5lckRpcmVjdGl2ZSxcbiAgT0xpc3RJdGVtRGlyZWN0aXZlLFxuICBPVGFiR3JvdXBEaXJlY3RpdmUsXG4gIE9Mb2NrZXJEaXJlY3RpdmUsXG4gIE9IaWRkZW5EaXJlY3RpdmUsXG4gIE9NYXRFcnJvckRpcmVjdGl2ZSxcbiAgT0ZpbGVEcmFnQW5kRHJvcERpcmVjdGl2ZSxcbiAgT01hdFByZWZpeCxcbiAgT01hdFN1ZmZpeCxcbiAgSW5wdXRSZWd1bGF0ZURpcmVjdGl2ZVxuXTtcbiJdfQ==
|
|
@@ -6,4 +6,5 @@ export * from './o-tab-group.directive';
|
|
|
6
6
|
export * from './o-file-drag-and-drop.directive';
|
|
7
7
|
export * from './o-mat-prefix.directive';
|
|
8
8
|
export * from './o-mat-suffix.directive';
|
|
9
|
-
|
|
9
|
+
export * from './input-regulate.directive';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4va2V5Ym9hcmQtbGlzdGVuZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vby1oaWRkZW4uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vby1tYXQtZXJyb3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ja2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFiLWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZmlsZS1kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbWF0LXByZWZpeC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLW1hdC1zdWZmaXguZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtcmVndWxhdGUuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Directive, ElementRef, forwardRef, HostListener, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { Util } from '../util/util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class InputRegulateDirective {
|
|
6
|
+
constructor(elementRef, renderer) {
|
|
7
|
+
this.elementRef = elementRef;
|
|
8
|
+
this.renderer = renderer;
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
if (Util.isDefined(this.oInputRegulatePattern)) {
|
|
12
|
+
this.regExpattern = new RegExp(this.oInputRegulatePattern);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
onInputChange(value) {
|
|
16
|
+
if (Util.isDefined(this.regExpattern)) {
|
|
17
|
+
const filterValue = this.regExpattern.test(value) ? value : this.value;
|
|
18
|
+
this.updateTextInput(filterValue, filterValue !== this.value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
onBlur() {
|
|
22
|
+
this.onTouched();
|
|
23
|
+
}
|
|
24
|
+
updateTextInput(value, propagateChange) {
|
|
25
|
+
this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);
|
|
26
|
+
if (propagateChange) {
|
|
27
|
+
this.onChange(value);
|
|
28
|
+
}
|
|
29
|
+
this.value = value;
|
|
30
|
+
}
|
|
31
|
+
registerOnChange(fn) {
|
|
32
|
+
this.onChange = fn;
|
|
33
|
+
}
|
|
34
|
+
registerOnTouched(fn) {
|
|
35
|
+
this.onTouched = fn;
|
|
36
|
+
}
|
|
37
|
+
setDisabledState(isDisabled) {
|
|
38
|
+
this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);
|
|
39
|
+
}
|
|
40
|
+
writeValue(value) {
|
|
41
|
+
value = value ? String(value) : '';
|
|
42
|
+
this.updateTextInput(value, false);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
InputRegulateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputRegulateDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
InputRegulateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: InputRegulateDirective, selector: "[oInputRegulate]", inputs: { oInputRegulatePattern: "oInputRegulatePattern" }, host: { listeners: { "input": "onInputChange($event.target.value)", "blur": "onBlur()" } }, providers: [{
|
|
47
|
+
provide: NG_VALUE_ACCESSOR,
|
|
48
|
+
useExisting: forwardRef(() => InputRegulateDirective),
|
|
49
|
+
multi: true
|
|
50
|
+
}], ngImport: i0 });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputRegulateDirective, decorators: [{
|
|
52
|
+
type: Directive,
|
|
53
|
+
args: [{
|
|
54
|
+
selector: '[oInputRegulate]',
|
|
55
|
+
providers: [{
|
|
56
|
+
provide: NG_VALUE_ACCESSOR,
|
|
57
|
+
useExisting: forwardRef(() => InputRegulateDirective),
|
|
58
|
+
multi: true
|
|
59
|
+
}]
|
|
60
|
+
}]
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { oInputRegulatePattern: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], onInputChange: [{
|
|
64
|
+
type: HostListener,
|
|
65
|
+
args: ['input', ['$event.target.value']]
|
|
66
|
+
}], onBlur: [{
|
|
67
|
+
type: HostListener,
|
|
68
|
+
args: ['blur']
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmVndWxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQtcmVndWxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFVcEMsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQyxZQUNtQixVQUFzQixFQUN0QixRQUFtQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFHdEMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFHRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFHRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYSxFQUFFLGVBQXdCO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUdELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7b0hBMURVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLG1NQU50QixDQUFDO1lBQ1YsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1lBQ3JELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQzs0RkFFUyxzQkFBc0I7a0JBUmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7aUJBQ0g7eUhBT0MscUJBQXFCO3NCQURwQixLQUFLO2dCQWlCTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBUzlDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tvSW5wdXRSZWd1bGF0ZV0nLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRSZWd1bGF0ZURpcmVjdGl2ZSksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSZWd1bGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgb0lucHV0UmVndWxhdGVQYXR0ZXJuOiBzdHJpbmc7XG4gIHJlZ0V4cGF0dGVybjogUmVnRXhwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG5cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5vSW5wdXRSZWd1bGF0ZVBhdHRlcm4pKSB7XG4gICAgICB0aGlzLnJlZ0V4cGF0dGVybiA9IG5ldyBSZWdFeHAodGhpcy5vSW5wdXRSZWd1bGF0ZVBhdHRlcm4pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gIG9uSW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnJlZ0V4cGF0dGVybikpIHtcbiAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5yZWdFeHBhdHRlcm4udGVzdCh2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dChmaWx0ZXJWYWx1ZSwgZmlsdGVyVmFsdWUgIT09IHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGV4dElucHV0KHZhbHVlOiBzdHJpbmcsIHByb3BhZ2F0ZUNoYW5nZTogYm9vbGVhbikge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcbiAgICBpZiAocHJvcGFnYXRlQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgSW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB2YWx1ZSA9IHZhbHVlID8gU3RyaW5nKHZhbHVlKSA6ICcnO1xuICAgIHRoaXMudXBkYXRlVGV4dElucHV0KHZhbHVlLCBmYWxzZSk7XG4gIH1cblxufVxuXG4iXX0=
|