@morozeckiy/dd-lib 0.4.26 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core/directives/ban-symbol.directive.mjs +36 -0
- package/esm2022/lib/core/directives/max-num.directive.mjs +56 -0
- package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +25 -5
- package/esm2022/lib/lib-date-range/lib-date-range.component.mjs +2 -2
- package/esm2022/lib/lib-period/lib-period.component.mjs +2 -2
- package/fesm2022/morozeckiy-dd-lib.mjs +109 -5
- package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
- package/lib/core/directives/ban-symbol.directive.d.ts +9 -0
- package/lib/core/directives/max-num.directive.d.ts +12 -0
- package/lib/lib-calendar/lib-calendar.component.d.ts +6 -1
- package/morozeckiy-dd-lib-0.5.0.tgz +0 -0
- package/package.json +1 -1
- package/morozeckiy-dd-lib-0.4.26.tgz +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BanSymbolDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.ddBanSymbol = '';
|
|
6
|
+
this.regExp = false;
|
|
7
|
+
}
|
|
8
|
+
onKeyPress(e) {
|
|
9
|
+
if (this.regExp) {
|
|
10
|
+
const regExp = new RegExp(this.ddBanSymbol);
|
|
11
|
+
if (!regExp.test(e.key)) {
|
|
12
|
+
e.preventDefault();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (e.key === this.ddBanSymbol) {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BanSymbolDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: BanSymbolDirective, isStandalone: true, selector: "[ddBanSymbol]", inputs: { ddBanSymbol: "ddBanSymbol", regExp: "regExp" }, host: { listeners: { "keypress": "onKeyPress($event)" } }, ngImport: i0 }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BanSymbolDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
standalone: true,
|
|
26
|
+
selector: '[ddBanSymbol]'
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [], propDecorators: { ddBanSymbol: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], regExp: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], onKeyPress: [{
|
|
33
|
+
type: HostListener,
|
|
34
|
+
args: ['keypress', ['$event']]
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuLXN5bWJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvYmFuLXN5bWJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU03RCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSGdCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFHL0IsQ0FBQztJQUVxQyxVQUFVLENBQUMsQ0FBZ0I7UUFDL0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQzs4R0FsQlUsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjt3REFHaUIsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUtnQyxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdbZGRCYW5TeW1ib2xdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFuU3ltYm9sRGlyZWN0aXZlIHtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRkQmFuU3ltYm9sID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHJlZ0V4cCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSkgb25LZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5yZWdFeHApIHtcclxuICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cCh0aGlzLmRkQmFuU3ltYm9sKTtcclxuICAgICAgaWYgKCFyZWdFeHAudGVzdChlLmtleSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChlLmtleSA9PT0gdGhpcy5kZEJhblN5bWJvbCkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/forms";
|
|
4
|
+
export class MaxNumDirective {
|
|
5
|
+
constructor(model) {
|
|
6
|
+
this.model = model;
|
|
7
|
+
}
|
|
8
|
+
keydown(e) {
|
|
9
|
+
const fullZero = '00' === e.target.value;
|
|
10
|
+
const firstZero = this.curVal && '0' === this.curVal.toString()[0] && this.curVal.toString().length > 1;
|
|
11
|
+
if (fullZero && e.code.includes('Digit')) {
|
|
12
|
+
e.target.value = 0;
|
|
13
|
+
}
|
|
14
|
+
if (firstZero && e.code.includes('Digit')) {
|
|
15
|
+
e.target.value = +e.target.value;
|
|
16
|
+
}
|
|
17
|
+
setTimeout(() => {
|
|
18
|
+
if (+e.target.value > this.ddMaxNum) {
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
this.model.viewToModelUpdate(this.ddMaxNum);
|
|
21
|
+
this.model.valueAccessor?.writeValue(this.ddMaxNum);
|
|
22
|
+
}
|
|
23
|
+
}, 1);
|
|
24
|
+
}
|
|
25
|
+
keyup(e) {
|
|
26
|
+
const firstZero = '0' === e.target.value[0] && e.target.value?.length > 2;
|
|
27
|
+
if (firstZero && e.code.includes('Digit')) {
|
|
28
|
+
e.target.value = +e.target.value;
|
|
29
|
+
}
|
|
30
|
+
if (+e.target > this.ddMaxNum) {
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
this.model.viewToModelUpdate(this.ddMaxNum);
|
|
33
|
+
this.model.valueAccessor?.writeValue(this.ddMaxNum);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MaxNumDirective, deps: [{ token: i1.NgModel }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
37
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: MaxNumDirective, isStandalone: true, selector: "[ddMaxNum]", inputs: { ddMaxNum: "ddMaxNum", curVal: "curVal" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)" } }, ngImport: i0 }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MaxNumDirective, decorators: [{
|
|
40
|
+
type: Directive,
|
|
41
|
+
args: [{
|
|
42
|
+
standalone: true,
|
|
43
|
+
selector: '[ddMaxNum]'
|
|
44
|
+
}]
|
|
45
|
+
}], ctorParameters: () => [{ type: i1.NgModel }], propDecorators: { ddMaxNum: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], curVal: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], keydown: [{
|
|
50
|
+
type: HostListener,
|
|
51
|
+
args: ['keydown', ['$event']]
|
|
52
|
+
}], keyup: [{
|
|
53
|
+
type: HostListener,
|
|
54
|
+
args: ['keyup', ['$event']]
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LW51bS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvbWF4LW51bS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPL0QsTUFBTSxPQUFPLGVBQWU7SUFJeEIsWUFBbUIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFDakMsQ0FBQztJQUdNLE9BQU8sQ0FBQyxDQUFnQjtRQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQU0sQ0FBQyxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFeEcsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDekMsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBRSxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQztRQUNyRCxDQUFDO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBRSxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEQsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFHTSxLQUFLLENBQUMsQ0FBZ0I7UUFDekIsTUFBTSxTQUFTLEdBQUcsR0FBRyxLQUFNLENBQUMsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQUMsQ0FBQyxNQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDNUYsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssR0FBRyxDQUFFLENBQUMsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLENBQUUsQ0FBQyxDQUFDLE1BQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7OEdBdENRLGVBQWU7a0dBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCOzRFQUVtQixRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBTUMsT0FBTztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFxQjVCLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdbZGRNYXhOdW1dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF4TnVtRGlyZWN0aXZlIHtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkZE1heE51bSE6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjdXJWYWwhOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1vZGVsOiBOZ01vZGVsKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMga2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgZnVsbFplcm8gPSAnMDAnID09PSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBjb25zdCBmaXJzdFplcm8gPSB0aGlzLmN1clZhbCAmJiAnMCcgPT09IHRoaXMuY3VyVmFsLnRvU3RyaW5nKClbMF0gJiYgdGhpcy5jdXJWYWwudG9TdHJpbmcoKS5sZW5ndGggPiAxO1xyXG5cclxuICAgICAgICBpZiAoZnVsbFplcm8gJiYgZS5jb2RlLmluY2x1ZGVzKCdEaWdpdCcpKSB7XHJcbiAgICAgICAgICAoZS50YXJnZXQgYXMgYW55KS52YWx1ZSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaXJzdFplcm8gJiYgZS5jb2RlLmluY2x1ZGVzKCdEaWdpdCcpKSB7XHJcbiAgICAgICAgICAoZS50YXJnZXQgYXMgYW55KS52YWx1ZSA9ICsoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICgrKGUudGFyZ2V0IGFzIGFueSkudmFsdWUgPiB0aGlzLmRkTWF4TnVtKSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnZpZXdUb01vZGVsVXBkYXRlKHRoaXMuZGRNYXhOdW0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC52YWx1ZUFjY2Vzc29yPy53cml0ZVZhbHVlKHRoaXMuZGRNYXhOdW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIGtleXVwKGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBmaXJzdFplcm8gPSAnMCcgPT09IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlWzBdICYmIChlLnRhcmdldCBhcyBhbnkpLnZhbHVlPy5sZW5ndGggPiAyO1xyXG4gICAgICAgIGlmIChmaXJzdFplcm8gJiYgZS5jb2RlLmluY2x1ZGVzKCdEaWdpdCcpKSB7XHJcbiAgICAgICAgICAoZS50YXJnZXQgYXMgYW55KS52YWx1ZSA9ICsoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCsoZS50YXJnZXQgYXMgYW55KSA+IHRoaXMuZGRNYXhOdW0pIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnZpZXdUb01vZGVsVXBkYXRlKHRoaXMuZGRNYXhOdW0pO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlQWNjZXNzb3I/LndyaXRlVmFsdWUodGhpcy5kZE1heE51bSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -3,13 +3,16 @@ import { LibFilterButtonComponent } from '../lib-filter-button/lib-filter-button
|
|
|
3
3
|
import { LibCardComponent } from '../lib-card/lib-card.component';
|
|
4
4
|
import { LibRadioComponent } from '../lib-radio/lib-radio.component';
|
|
5
5
|
import { CommonModule, NgOptimizedImage } from '@angular/common';
|
|
6
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
7
|
import { LibButtonComponent } from '../lib-button/lib-button.component';
|
|
8
8
|
import { isAfter, isBefore, parse } from 'date-fns';
|
|
9
9
|
import { LibSvgIconComponent } from "../lib-svg-icon/lib-svg-icon.component";
|
|
10
|
+
import { BanSymbolDirective } from "../core/directives/ban-symbol.directive";
|
|
11
|
+
import { MaxNumDirective } from "../core/directives/max-num.directive";
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "../core";
|
|
12
14
|
import * as i2 from "@angular/common";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
13
16
|
const Months = [
|
|
14
17
|
'Январь',
|
|
15
18
|
'Февраль',
|
|
@@ -92,6 +95,9 @@ export class LibCalendarComponent {
|
|
|
92
95
|
this.type = 'string';
|
|
93
96
|
this.formatDate = 'dd.MM.yyyy';
|
|
94
97
|
this.rangeMode = false;
|
|
98
|
+
this.maxHours = 23;
|
|
99
|
+
this.maxMinutes = 59;
|
|
100
|
+
this.needTime = false;
|
|
95
101
|
this.mode = 'full';
|
|
96
102
|
this.emitDate = new EventEmitter();
|
|
97
103
|
this.emitPeriod = new EventEmitter();
|
|
@@ -103,6 +109,8 @@ export class LibCalendarComponent {
|
|
|
103
109
|
// minDate = setMinDate();
|
|
104
110
|
this.currentDate = new Date();
|
|
105
111
|
this.dateNow = new Date();
|
|
112
|
+
this.hours = '00';
|
|
113
|
+
this.minutes = '00';
|
|
106
114
|
}
|
|
107
115
|
propagateChange(_value) {
|
|
108
116
|
}
|
|
@@ -180,6 +188,9 @@ export class LibCalendarComponent {
|
|
|
180
188
|
this.emitPeriod.emit({ start: this.dateStart, end: this.dateEnd });
|
|
181
189
|
}
|
|
182
190
|
else {
|
|
191
|
+
if (this.needTime) {
|
|
192
|
+
this.dateValue?.setHours(+this.hours, +this.minutes);
|
|
193
|
+
}
|
|
183
194
|
this.propagateChange(this.dateValue);
|
|
184
195
|
this.emitDate.emit(this.dateValue);
|
|
185
196
|
}
|
|
@@ -249,13 +260,13 @@ export class LibCalendarComponent {
|
|
|
249
260
|
}
|
|
250
261
|
}
|
|
251
262
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, deps: [{ token: i1.DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
252
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCalendarComponent, isStandalone: true, selector: "dd-lib-calendar", inputs: { type: "type", formatDate: "formatDate", formatTime: "formatTime", rangeMode: "rangeMode", mode: "mode", maxDate: "maxDate", minDate: "minDate" }, outputs: { emitDate: "emitDate", emitPeriod: "emitPeriod" }, providers: [
|
|
263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCalendarComponent, isStandalone: true, selector: "dd-lib-calendar", inputs: { type: "type", formatDate: "formatDate", formatTime: "formatTime", rangeMode: "rangeMode", maxHours: "maxHours", maxMinutes: "maxMinutes", needTime: "needTime", mode: "mode", maxDate: "maxDate", minDate: "minDate" }, outputs: { emitDate: "emitDate", emitPeriod: "emitPeriod" }, providers: [
|
|
253
264
|
{
|
|
254
265
|
provide: NG_VALUE_ACCESSOR,
|
|
255
266
|
useExisting: forwardRef(() => LibCalendarComponent),
|
|
256
267
|
multi: true,
|
|
257
268
|
},
|
|
258
|
-
], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
269
|
+
], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
259
270
|
}
|
|
260
271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, decorators: [{
|
|
261
272
|
type: Component,
|
|
@@ -267,13 +278,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
267
278
|
LibButtonComponent,
|
|
268
279
|
NgOptimizedImage,
|
|
269
280
|
LibSvgIconComponent,
|
|
281
|
+
FormsModule,
|
|
282
|
+
BanSymbolDirective,
|
|
283
|
+
MaxNumDirective
|
|
270
284
|
], providers: [
|
|
271
285
|
{
|
|
272
286
|
provide: NG_VALUE_ACCESSOR,
|
|
273
287
|
useExisting: forwardRef(() => LibCalendarComponent),
|
|
274
288
|
multi: true,
|
|
275
289
|
},
|
|
276
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}\n"] }]
|
|
290
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
277
291
|
}], ctorParameters: () => [{ type: i1.DateService }], propDecorators: { type: [{
|
|
278
292
|
type: Input
|
|
279
293
|
}], formatDate: [{
|
|
@@ -282,6 +296,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
282
296
|
type: Input
|
|
283
297
|
}], rangeMode: [{
|
|
284
298
|
type: Input
|
|
299
|
+
}], maxHours: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], maxMinutes: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], needTime: [{
|
|
304
|
+
type: Input
|
|
285
305
|
}], mode: [{
|
|
286
306
|
type: Input
|
|
287
307
|
}], emitDate: [{
|
|
@@ -293,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
293
313
|
}], minDate: [{
|
|
294
314
|
type: Input
|
|
295
315
|
}] } });
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jYWxlbmRhci9saWItY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sR0FBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUUzRSxNQUFNLE1BQU0sR0FBRztJQUNiLFFBQVE7SUFDUixTQUFTO0lBQ1QsTUFBTTtJQUNOLFFBQVE7SUFDUixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsVUFBVTtJQUNWLFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUM7QUFPRjs7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RSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7OEdBbE5VLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVSQVhwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNuRkgsdXZGQWlFQSxtaURES0ksZ0JBQWdCLHlMQUVoQixZQUFZLHlQQUNaLGtCQUFrQixnR0FFbEIsbUJBQW1COzsyRkFhVixvQkFBb0I7a0JBdkJoQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCx3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2dGQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUVJLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TGliRmlsdGVyQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9saWItZmlsdGVyLWJ1dHRvbi9saWItZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYkNhcmRDb21wb25lbnR9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGliUmFkaW9Db21wb25lbnR9IGZyb20gJy4uL2xpYi1yYWRpby9saWItcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TGliQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9saWItYnV0dG9uL2xpYi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHtpc0FmdGVyLCBpc0JlZm9yZSwgcGFyc2V9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHtEYXRlU2VydmljZSwgSURheXNJbk1vbnRofSBmcm9tIFwiLi4vY29yZVwiO1xyXG5pbXBvcnQge0xpYlN2Z0ljb25Db21wb25lbnR9IGZyb20gXCIuLi9saWItc3ZnLWljb24vbGliLXN2Zy1pY29uLmNvbXBvbmVudFwiO1xyXG5cclxuY29uc3QgTW9udGhzID0gW1xyXG4gICfQr9C90LLQsNGA0YwnLFxyXG4gICfQpNC10LLRgNCw0LvRjCcsXHJcbiAgJ9Cc0LDRgNGCJyxcclxuICAn0JDQv9GA0LXQu9GMJyxcclxuICAn0JzQsNC5JyxcclxuICAn0JjRjtC90YwnLFxyXG4gICfQmNGO0LvRjCcsXHJcbiAgJ9CQ0LLQs9GD0YHRgicsXHJcbiAgJ9Ch0LXQvdGC0Y/QsdGA0YwnLFxyXG4gICfQntC60YLRj9Cx0YDRjCcsXHJcbiAgJ9Cd0L7Rj9Cx0YDRjCcsXHJcbiAgJ9CU0LXQutCw0LHRgNGMJyxcclxuXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVQZXJpb2Qge1xyXG4gIHN0YXJ0OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGVuZDogRGF0ZSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiDQrdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDQu9C10L3QtNCw0YDRjyDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINC00LDRgtGLLlxyXG4g0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvdC+INC+0L/QuNGB0LDQvdC40LUg0YHQstC+0LnRgdGC0LIg0Lgg0LzQtdGC0L7QtNC+0LIg0LTQsNC90L3QvtCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LA6XHJcblxyXG4g0KHQstC+0LnRgdGC0LLQsDpcclxuIC0gQElucHV0KCkgcHVibGljIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgPSAnc3RyaW5nJzsgLSDRgtC40L8g0LTQsNC90L3Ri9GFINC00LvRjyDQstGL0LHQvtGA0LAg0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXQgPSAnZGQuTU0ueXl5eSBISDptbSc7IC0g0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gbmV3IERhdGUoKTsgLSDQvNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQsNGC0LAsINC60L7RgtC+0YDRg9GOINC80L7QttC90L4g0LLRi9Cx0YDQsNGC0YwuXHJcbiAtIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGRhdGUgfCB1bmRlZmluZWQ+KCk7IC0g0YHQvtCx0YvRgtC40LUsINGB0YDQsNCx0LDRgtGL0LLQsNGO0YnQtdC1INC/0YDQuCDQstGL0LHQvtGA0LUg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBkYXRlVmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7IC0g0LLRi9Cx0YDQsNC90L3QsNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC8INC00LDRgtCwLlxyXG4gLSBwdWJsaWMgbW9udGhzID0gTW9udGhzOyAtINC80LDRgdGB0LjQsiDRgSDQvdCw0LfQstCw0L3QuNGP0LzQuCDQvNC10YHRj9GG0LXQsi5cclxuIC0gcHVibGljIHdlZWsgPSBbJ9Cf0J0nLCAn0JLQoicsICfQodCgJywgJ9Cn0KInLCAn0J/QoicsICfQodCRJywgJ9CS0KEnXTsgLSDQvNCw0YHRgdC40LIg0YEg0L3QsNC30LLQsNC90LjRj9C80Lgg0LTQvdC10Lkg0L3QtdC00LXQu9C4LlxyXG4gLSBwdWJsaWMgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsgLSDRgtC10LrRg9GJ0LjQuSDQs9C+0LQuXHJcbiAtIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTsgLSDRgtC10LrRg9GJ0LjQuSDQvNC10YHRj9GGLlxyXG4gLSBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTsgLSDRgtC10LrRg9GJ0LjQuSDQtNC10L3RjCDQvdC10LTQtdC70LguXHJcbiAtIHB1YmxpYyBkYXlzSW5Nb250aDogSURheXNJbk1vbnRoOyAtINC60L7Qu9C40YfQtdGB0YLQstC+INC00L3QtdC5INCyINGC0LXQutGD0YnQtdC8INC80LXRgdGP0YbQtS5cclxuIC0gcHVibGljIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQstGL0LHRgNCw0L3QvdCw0Y8g0LTQsNGC0LAuXHJcbiAtIHB1YmxpYyBkYXRlTm93ID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQtNCw0YLQsC5cclxuIC0gcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkOyAtINGE0YPQvdC60YbQuNGPINC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG5cclxuINCc0LXRgtC+0LTRizpcclxuIC0gcHVibGljIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0Lkg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQttC40LfQvdC10L3QvdC+0LPQviDRhtC40LrQu9CwINC60L7QvNC/0L7QvdC10L3RgtCwLCDQstGL0LfRi9Cy0LDQtdC80YvQuSDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXHJcbiAtIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRg9GB0YLQsNC90L7QstC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0LTQvdC10Lkg0LIg0YLQtdC60YPRidC10Lwg0LzQtdGB0Y/RhtC1LlxyXG4gLSBwdWJsaWMgY2hhbmdlTW9udGgobnVtYmVyOiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC80LXRgdGP0YbQsCDQsiDQutCw0LvQtdC90LTQsNGA0LUuXHJcbiAtIHB1YmxpYyBnZXRNb250aCgpOiBzdHJpbmcge30gLSDQvNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L3QsNC30LLQsNC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INC80LXRgdGP0YbQsC5cclxuIC0gcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNGPLlxyXG4gLSBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG4gLSBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LLRi9Cx0L7RgNCwINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0LTQvdGPINCyINC60LDQu9C10L3QtNCw0YDQtS5cclxuIC0gcHVibGljIHNlbGVjdERhdGUoKTogdm9pZCB7fSAtINC80LXRgtC+0LQg0LTQu9GPINCy0YvQsdC+0YDQsCDQtNCw0YLRiyDQuCDQv9C10YDQtdC00LDRh9C4INC30L3QsNGH0LXQvdC40Y8g0YfQtdGA0LXQtyBwcm9wYWdhdGVDaGFuZ2Ug0LggZW1pdERhdGUuXHJcbiAtIHB1YmxpYyBjaGVja0hpZGVEYXkoZGF5OiBudW1iZXIpOiBib29sZWFuIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDRgdC60YDRi9GC0LjRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviDQtNC90Y8g0LIg0LrQsNC70LXQvdC00LDRgNC1LlxyXG4gLSBwdWJsaWMgY2Fuc2VsRGF0ZSgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7RgtC80LXQvdGLINCy0YvQsdGA0LDQvdC90L7QuSDQtNCw0YLRiyDQuCDRgdCx0YDQvtGB0LAg0LfQvdCw0YfQtdC90LjQuS5cclxuICoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jYWxlbmRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBMaWJGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBMaWJDYXJkQ29tcG9uZW50LFxyXG4gICAgTGliUmFkaW9Db21wb25lbnQsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBMaWJCdXR0b25Db21wb25lbnQsXHJcbiAgICBOZ09wdGltaXplZEltYWdlLFxyXG4gICAgTGliU3ZnSWNvbkNvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliQ2FsZW5kYXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgcHVibGljIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgPSAnc3RyaW5nJztcclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF0ZSA9ICdkZC5NTS55eXl5JztcclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0VGltZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByYW5nZU1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ2ljb24nIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBlbWl0UGVyaW9kID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZVBlcmlvZCB8IHVuZGVmaW5lZD4oKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIGlmIChkYXRlID09PSAnY3VycmVudCcpIHtcclxuICAgICAgdGhpcy5fbWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9tYXhEYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21heERhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtaW5EYXRlKGRhdGU6IGFueSkge1xyXG4gICAgaWYgKGRhdGUgPT09ICdjdXJyZW50Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEZ1bGxZZWFyKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEpKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRNb250aChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgLSAxKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZGF0ZVZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBkYXRlU3RhcnQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGVFbmQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIG1vbnRocyA9IE1vbnRocztcclxuICBwdWJsaWMgd2VlayA9IFsn0J/QnScsICfQktCiJywgJ9Ch0KAnLCAn0KfQoicsICfQn9CiJywgJ9Ch0JEnLCAn0JLQoSddO1xyXG4gIHB1YmxpYyB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTtcclxuICBwdWJsaWMgZGF5c0luTW9udGg6IElEYXlzSW5Nb250aCB8IHVuZGVmaW5lZDtcclxuICAvLyBtaW5EYXRlID0gc2V0TWluRGF0ZSgpO1xyXG4gIHB1YmxpYyBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGRhdGVOb3cgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogRGF0ZSB8IElEYXRlUGVyaW9kKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldERheUluTW9udGgoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0RGF5c0luTW9udGgodGhpcy5tb250aCwgdGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VNb250aChudW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdGVtcCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudERhdGUpO1xyXG4gICAgdGVtcC5zZXRNb250aCh0ZW1wLmdldE1vbnRoKCkgKyBudW1iZXIpO1xyXG4gICAgdGhpcy5tb250aCA9IHRlbXAuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMueWVhciA9IHRlbXAuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0ZW1wO1xyXG4gICAgdGhpcy5zZXREYXlJbk1vbnRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TW9udGgoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnREYXRlICYmICEodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc1t0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9udGhzW3RoaXMubW9udGhdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdmFsPy5zdGFydDtcclxuICAgICAgdGhpcy5kYXRlRW5kID0gdmFsPy5lbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGVWYWx1ZSB8fCB0aGlzLmRhdGVTdGFydCkge1xyXG4gICAgICB0aGlzLnNob3dDdXJyZW5TZWxlY3REYXkodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDdXJyZW5TZWxlY3REYXkoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXkgPSBkYXRlLmdldERhdGUoKVxyXG4gICAgdGhpcy5tb250aCA9IGRhdGUuZ2V0TW9udGgoKVxyXG4gICAgdGhpcy55ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja0hpZGVEYXkoZGF5KSkge1xyXG4gICAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVTdGFydCA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZURhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRlU3RhcnQgPiBlRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gZURhdGU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSBlRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtzdGFydDogdGhpcy5kYXRlU3RhcnQhLCBlbmQ6IHRoaXMuZGF0ZUVuZCF9KTtcclxuICAgICAgdGhpcy5lbWl0UGVyaW9kLmVtaXQoe3N0YXJ0OiB0aGlzLmRhdGVTdGFydCEsIGVuZDogdGhpcy5kYXRlRW5kIX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRlVmFsdWUgYXMgRGF0ZSk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGUuZW1pdCh0aGlzLmRhdGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSGlkZURheShkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IG1vcmVEYXkgPSBmYWxzZTtcclxuICAgICAgbGV0IG1vcmVNb250aCA9IGZhbHNlO1xyXG4gICAgICBsZXQgbW9yZVllYXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IGxlc3NEYXkgPSBmYWxzZTtcclxuICAgICAgY29uc3QgbGVzc01vbnRoID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGxlc3NZZWFyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fbWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBbbWF4WWVhciwgbWF4TW9udGgsIG1heERheV0gPSBbXHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRoaXMuX21heERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLl9tYXhEYXRlLmdldERhdGUoKSxcclxuICAgICAgXTtcclxuICAgICAgbW9yZURheSA9IHRoaXMueWVhciA+PSBtYXhZZWFyICYmIHRoaXMubW9udGggPj0gbWF4TW9udGggJiYgZGF5ID4gbWF4RGF5O1xyXG4gICAgICBtb3JlTW9udGggPSB0aGlzLnllYXIgPj0gbWF4WWVhciAmJiB0aGlzLm1vbnRoID4gbWF4TW9udGg7XHJcbiAgICAgIG1vcmVZZWFyID0gdGhpcy55ZWFyID4gbWF4WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IFttaW5ZZWFyLCBtaW5Nb250aCwgbWluRGF5XSA9IFtcclxuICAgICAgICB0aGlzLl9taW5EYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgdGhpcy5fbWluRGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBdO1xyXG4gICAgICBtb3JlRGF5ID0gdGhpcy55ZWFyIDw9IG1pblllYXIgJiYgdGhpcy5tb250aCA8PSBtaW5Nb250aCAmJiBkYXkgPCBtaW5EYXk7XHJcbiAgICAgIG1vcmVNb250aCA9IHRoaXMueWVhciA8PSBtaW5ZZWFyICYmIHRoaXMubW9udGggPCBtaW5Nb250aDtcclxuICAgICAgbW9yZVllYXIgPSB0aGlzLnllYXIgPCBtaW5ZZWFyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vcmVEYXkgfHwgbW9yZU1vbnRoIHx8IG1vcmVZZWFyIHx8IGxlc3NEYXkgfHwgbGVzc01vbnRoIHx8IGxlc3NZZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbnNlbERhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXREYXRlLmVtaXQoKTtcclxuICAgIHRoaXMuZW1pdFBlcmlvZC5lbWl0KCk7XHJcbiAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlRW5kID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWN0aXZlRGF5KGRheTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgY29uc3Qgc0RheSA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXREYXRlKClcclxuICAgICAgY29uc3QgZURheSA9IHRoaXMuZGF0ZUVuZD8uZ2V0RGF0ZSgpXHJcbiAgICAgIGNvbnN0IHNNb250aCA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRNb250aCgpXHJcbiAgICAgIGNvbnN0IGVNb250aCA9IHRoaXMuZGF0ZUVuZD8uZ2V0TW9udGgoKVxyXG4gICAgICBjb25zdCBzWWVhciA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IGVZZWFyID0gdGhpcy5kYXRlRW5kPy5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF5ID0gc0RheSA9PT0gZGF5ICYmIHNNb250aCA9PT0gdGhpcy5tb250aCAmJiBzWWVhciA9PT0gdGhpcy55ZWFyO1xyXG4gICAgICBjb25zdCBlbmREYXkgPSBlRGF5ID09PSBkYXkgJiYgZU1vbnRoID09PSB0aGlzLm1vbnRoICYmIGVZZWFyID09PSB0aGlzLnllYXI7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVTdGFydCAmJiB0aGlzLmRhdGVFbmQpIHtcclxuICAgICAgICBjb25zdCBjaGVja2VkRGF0ZSA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KVxyXG5cclxuICAgICAgICBjb25zdCBhZnRlciA9IGlzQWZ0ZXIodGhpcy5kYXRlRW5kLCBjaGVja2VkRGF0ZSlcclxuICAgICAgICBjb25zdCBiZWZvcmUgPSBpc0JlZm9yZSh0aGlzLmRhdGVTdGFydCwgY2hlY2tlZERhdGUpXHJcbiAgICAgICAgcmV0dXJuIGFmdGVyICYmIGJlZm9yZSB8fCBzdGFydERheSB8fCBlbmREYXk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF5IHx8IGVuZERheTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVZhbHVlPy5nZXREYXRlKCkgPT09IGRheVxyXG4gICAgICAgICYmIHRoaXMuZGF0ZVZhbHVlPy5nZXRNb250aCgpID09PSB0aGlzLm1vbnRoXHJcbiAgICAgICAgJiYgdGhpcy5kYXRlVmFsdWU/LmdldEZ1bGxZZWFyKCkgPT09IHRoaXMueWVhcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChtb2RlID09PSAnaWNvbicpIHtcclxuPGRpdiBjbGFzcz1cInBvcy1yZWxhdGl2ZSBkLWZsZXggYWxpZ24tY2VudGVyXCI+XHJcbiAgQGlmIChkYXRlVmFsdWUpIHtcclxuICA8c3BhbiBjbGFzcz1cIm1yLTEyIGdyZWVuXCI+e3sgZGF0ZVZhbHVlIHwgZGF0ZTogJ2RkLk1NLnl5eXknIH19PC9zcGFuPlxyXG4gIH1cclxuICA8ZGQtbGliLXN2Zy1pY29uIGNsYXNzPVwiY3VwXCIgKGNsaWNrKT1cInNob3dDYWxlbmRhciA9ICFzaG93Q2FsZW5kYXJcIiBpY29uPVwiY2FsZW5kYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICBAaWYgKGRhdGVWYWx1ZSkge1xyXG4gICAgPGRkLWxpYi1zdmctaWNvbiBjbGFzcz1cImN1cFwiIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICB9IEBpZiAoc2hvd0NhbGVuZGFyKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWFicy13cmFwcGVyXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FsZW5kYXJcIj48L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbn0gQGlmIChtb2RlID09PSAnZnVsbCcpIHtcclxuPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbGVuZGFyXCI+PC9uZy10ZW1wbGF0ZT5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cclxuICA8ZGQtbGliLWNhcmQgY2xhc3M9XCJjYWxlbmRhci1ibG9ja1wiIHR5cGU9XCJzbWFsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgtMSlcIiBpY29uPVwibGVmdF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2hlYWRlcl95ZWFyXCI+e3sgZ2V0TW9udGgoKSArICcgJyArIHllYXIgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgxKVwiIGljb249XCJyaWdodF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtcIj5cclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtfZGF5XCI+e3sgZGF5IH19PC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzXCI+XHJcbiAgICAgIEBmb3IgKGRheSBvZiBkYXlzSW5Nb250aD8ucHJldkRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2RheXNfZGF5IGhpZGVcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgfSBAZm9yIChkYXkgb2YgZGF5c0luTW9udGg/LmRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERheShkYXkpXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImNoZWNrQWN0aXZlRGF5KGRheSlcIlxyXG5cclxuICAgICAgICBbY2xhc3MuY3VycmVudF09XCJcclxuICAgICAgICAgIGRhdGVOb3cuZ2V0RGF0ZSgpID09PSBkYXkgJiYgZGF0ZU5vdy5nZXRNb250aCgpID09PSBtb250aCAmJiBkYXRlTm93LmdldEZ1bGxZZWFyKCkgPT09IHllYXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtjbGFzcy5oaWRlXT1cImNoZWNrSGlkZURheShkYXkpXCJcclxuICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzX2RheSBub3JtYWxcIj5cclxuICAgICAgICB7eyBkYXkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGZvciAoZGF5IG9mIGRheXNJbk1vbnRoPy5sYXN0RGF5czsgdHJhY2sgZGF5KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZGF5c19kYXkgaGlkZVwiPnt7IGRheSB9fTwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZm9vdGVyXCI+XHJcbiAgICAgIDxkZC1saWItYnV0dG9uIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBbYnRuQ29sb3JdPVwiJ3RyYW5zcGFyZW50J1wiIGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2Zvb3Rlcl9idG5cIlxyXG4gICAgICAgID7QntGC0LzQtdC90LjRgtGMXHJcbiAgICAgIDwvZGQtbGliLWJ1dHRvbj5cclxuICAgICAgPGRkLWxpYi1idXR0b24gKGNsaWNrKT1cInNlbGVjdERhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoIWRhdGVWYWx1ZSAmJiAhcmFuZ2VNb2RlKSB8fCAocmFuZ2VNb2RlICYmICghZGF0ZVN0YXJ0IHx8ICFkYXRlRW5kKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19mb290ZXJfYnRuXCJcclxuICAgICAgICA+0JLRi9Cx0YDQsNGC0YxcclxuICAgICAgPC9kZC1saWItYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kZC1saWItY2FyZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jYWxlbmRhci9saWItY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sR0FBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFM0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQUVyRSxNQUFNLE1BQU0sR0FBRztJQUNiLFFBQVE7SUFDUixTQUFTO0lBQ1QsTUFBTTtJQUNOLFFB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MUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2dGQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUVJLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TGliRmlsdGVyQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9saWItZmlsdGVyLWJ1dHRvbi9saWItZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYkNhcmRDb21wb25lbnR9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGliUmFkaW9Db21wb25lbnR9IGZyb20gJy4uL2xpYi1yYWRpby9saWItcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0xpYkJ1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vbGliLWJ1dHRvbi9saWItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7aXNBZnRlciwgaXNCZWZvcmUsIHBhcnNlfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7RGF0ZVNlcnZpY2UsIElEYXlzSW5Nb250aH0gZnJvbSBcIi4uL2NvcmVcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge0JhblN5bWJvbERpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9iYW4tc3ltYm9sLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge01heE51bURpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9tYXgtbnVtLmRpcmVjdGl2ZVwiO1xyXG5cclxuY29uc3QgTW9udGhzID0gW1xyXG4gICfQr9C90LLQsNGA0YwnLFxyXG4gICfQpNC10LLRgNCw0LvRjCcsXHJcbiAgJ9Cc0LDRgNGCJyxcclxuICAn0JDQv9GA0LXQu9GMJyxcclxuICAn0JzQsNC5JyxcclxuICAn0JjRjtC90YwnLFxyXG4gICfQmNGO0LvRjCcsXHJcbiAgJ9CQ0LLQs9GD0YHRgicsXHJcbiAgJ9Ch0LXQvdGC0Y/QsdGA0YwnLFxyXG4gICfQntC60YLRj9Cx0YDRjCcsXHJcbiAgJ9Cd0L7Rj9Cx0YDRjCcsXHJcbiAgJ9CU0LXQutCw0LHRgNGMJyxcclxuXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVQZXJpb2Qge1xyXG4gIHN0YXJ0OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGVuZDogRGF0ZSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiDQrdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDQu9C10L3QtNCw0YDRjyDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINC00LDRgtGLLlxyXG4g0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvdC+INC+0L/QuNGB0LDQvdC40LUg0YHQstC+0LnRgdGC0LIg0Lgg0LzQtdGC0L7QtNC+0LIg0LTQsNC90L3QvtCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LA6XHJcblxyXG4g0KHQstC+0LnRgdGC0LLQsDpcclxuIC0gQElucHV0KCkgcHVibGljIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgPSAnc3RyaW5nJzsgLSDRgtC40L8g0LTQsNC90L3Ri9GFINC00LvRjyDQstGL0LHQvtGA0LAg0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXQgPSAnZGQuTU0ueXl5eSBISDptbSc7IC0g0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gbmV3IERhdGUoKTsgLSDQvNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQsNGC0LAsINC60L7RgtC+0YDRg9GOINC80L7QttC90L4g0LLRi9Cx0YDQsNGC0YwuXHJcbiAtIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGRhdGUgfCB1bmRlZmluZWQ+KCk7IC0g0YHQvtCx0YvRgtC40LUsINGB0YDQsNCx0LDRgtGL0LLQsNGO0YnQtdC1INC/0YDQuCDQstGL0LHQvtGA0LUg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBkYXRlVmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7IC0g0LLRi9Cx0YDQsNC90L3QsNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC8INC00LDRgtCwLlxyXG4gLSBwdWJsaWMgbW9udGhzID0gTW9udGhzOyAtINC80LDRgdGB0LjQsiDRgSDQvdCw0LfQstCw0L3QuNGP0LzQuCDQvNC10YHRj9GG0LXQsi5cclxuIC0gcHVibGljIHdlZWsgPSBbJ9Cf0J0nLCAn0JLQoicsICfQodCgJywgJ9Cn0KInLCAn0J/QoicsICfQodCRJywgJ9CS0KEnXTsgLSDQvNCw0YHRgdC40LIg0YEg0L3QsNC30LLQsNC90LjRj9C80Lgg0LTQvdC10Lkg0L3QtdC00LXQu9C4LlxyXG4gLSBwdWJsaWMgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsgLSDRgtC10LrRg9GJ0LjQuSDQs9C+0LQuXHJcbiAtIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTsgLSDRgtC10LrRg9GJ0LjQuSDQvNC10YHRj9GGLlxyXG4gLSBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTsgLSDRgtC10LrRg9GJ0LjQuSDQtNC10L3RjCDQvdC10LTQtdC70LguXHJcbiAtIHB1YmxpYyBkYXlzSW5Nb250aDogSURheXNJbk1vbnRoOyAtINC60L7Qu9C40YfQtdGB0YLQstC+INC00L3QtdC5INCyINGC0LXQutGD0YnQtdC8INC80LXRgdGP0YbQtS5cclxuIC0gcHVibGljIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQstGL0LHRgNCw0L3QvdCw0Y8g0LTQsNGC0LAuXHJcbiAtIHB1YmxpYyBkYXRlTm93ID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQtNCw0YLQsC5cclxuIC0gcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkOyAtINGE0YPQvdC60YbQuNGPINC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG5cclxuINCc0LXRgtC+0LTRizpcclxuIC0gcHVibGljIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0Lkg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQttC40LfQvdC10L3QvdC+0LPQviDRhtC40LrQu9CwINC60L7QvNC/0L7QvdC10L3RgtCwLCDQstGL0LfRi9Cy0LDQtdC80YvQuSDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXHJcbiAtIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRg9GB0YLQsNC90L7QstC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0LTQvdC10Lkg0LIg0YLQtdC60YPRidC10Lwg0LzQtdGB0Y/RhtC1LlxyXG4gLSBwdWJsaWMgY2hhbmdlTW9udGgobnVtYmVyOiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC80LXRgdGP0YbQsCDQsiDQutCw0LvQtdC90LTQsNGA0LUuXHJcbiAtIHB1YmxpYyBnZXRNb250aCgpOiBzdHJpbmcge30gLSDQvNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L3QsNC30LLQsNC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INC80LXRgdGP0YbQsC5cclxuIC0gcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNGPLlxyXG4gLSBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG4gLSBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LLRi9Cx0L7RgNCwINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0LTQvdGPINCyINC60LDQu9C10L3QtNCw0YDQtS5cclxuIC0gcHVibGljIHNlbGVjdERhdGUoKTogdm9pZCB7fSAtINC80LXRgtC+0LQg0LTQu9GPINCy0YvQsdC+0YDQsCDQtNCw0YLRiyDQuCDQv9C10YDQtdC00LDRh9C4INC30L3QsNGH0LXQvdC40Y8g0YfQtdGA0LXQtyBwcm9wYWdhdGVDaGFuZ2Ug0LggZW1pdERhdGUuXHJcbiAtIHB1YmxpYyBjaGVja0hpZGVEYXkoZGF5OiBudW1iZXIpOiBib29sZWFuIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDRgdC60YDRi9GC0LjRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviDQtNC90Y8g0LIg0LrQsNC70LXQvdC00LDRgNC1LlxyXG4gLSBwdWJsaWMgY2Fuc2VsRGF0ZSgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7RgtC80LXQvdGLINCy0YvQsdGA0LDQvdC90L7QuSDQtNCw0YLRiyDQuCDRgdCx0YDQvtGB0LAg0LfQvdCw0YfQtdC90LjQuS5cclxuICoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jYWxlbmRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBMaWJGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBMaWJDYXJkQ29tcG9uZW50LFxyXG4gICAgTGliUmFkaW9Db21wb25lbnQsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBMaWJCdXR0b25Db21wb25lbnQsXHJcbiAgICBOZ09wdGltaXplZEltYWdlLFxyXG4gICAgTGliU3ZnSWNvbkNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQmFuU3ltYm9sRGlyZWN0aXZlLFxyXG4gICAgTWF4TnVtRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYkNhbGVuZGFyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnID0gJ3N0cmluZyc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERhdGUgPSAnZGQuTU0ueXl5eSc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdFRpbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcmFuZ2VNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1heEhvdXJzID0gMjM7XHJcbiAgQElucHV0KCkgcHVibGljIG1heE1pbnV0ZXMgPSA1OTtcclxuICBASW5wdXQoKSBwdWJsaWMgbmVlZFRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ2ljb24nIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBlbWl0UGVyaW9kID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZVBlcmlvZCB8IHVuZGVmaW5lZD4oKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIGlmIChkYXRlID09PSAnY3VycmVudCcpIHtcclxuICAgICAgdGhpcy5fbWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9tYXhEYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21heERhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtaW5EYXRlKGRhdGU6IGFueSkge1xyXG4gICAgaWYgKGRhdGUgPT09ICdjdXJyZW50Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEZ1bGxZZWFyKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEpKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRNb250aChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgLSAxKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZGF0ZVZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBkYXRlU3RhcnQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGVFbmQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIG1vbnRocyA9IE1vbnRocztcclxuICBwdWJsaWMgd2VlayA9IFsn0J/QnScsICfQktCiJywgJ9Ch0KAnLCAn0KfQoicsICfQn9CiJywgJ9Ch0JEnLCAn0JLQoSddO1xyXG4gIHB1YmxpYyB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTtcclxuICBwdWJsaWMgZGF5c0luTW9udGg6IElEYXlzSW5Nb250aCB8IHVuZGVmaW5lZDtcclxuICAvLyBtaW5EYXRlID0gc2V0TWluRGF0ZSgpO1xyXG4gIHB1YmxpYyBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGRhdGVOb3cgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGhvdXJzID0gJzAwJ1xyXG4gIHB1YmxpYyBtaW51dGVzID0gJzAwJ1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogRGF0ZSB8IElEYXRlUGVyaW9kKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldERheUluTW9udGgoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0RGF5c0luTW9udGgodGhpcy5tb250aCwgdGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VNb250aChudW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdGVtcCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudERhdGUpO1xyXG4gICAgdGVtcC5zZXRNb250aCh0ZW1wLmdldE1vbnRoKCkgKyBudW1iZXIpO1xyXG4gICAgdGhpcy5tb250aCA9IHRlbXAuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMueWVhciA9IHRlbXAuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0ZW1wO1xyXG4gICAgdGhpcy5zZXREYXlJbk1vbnRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TW9udGgoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnREYXRlICYmICEodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc1t0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9udGhzW3RoaXMubW9udGhdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdmFsPy5zdGFydDtcclxuICAgICAgdGhpcy5kYXRlRW5kID0gdmFsPy5lbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGVWYWx1ZSB8fCB0aGlzLmRhdGVTdGFydCkge1xyXG4gICAgICB0aGlzLnNob3dDdXJyZW5TZWxlY3REYXkodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDdXJyZW5TZWxlY3REYXkoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXkgPSBkYXRlLmdldERhdGUoKVxyXG4gICAgdGhpcy5tb250aCA9IGRhdGUuZ2V0TW9udGgoKVxyXG4gICAgdGhpcy55ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja0hpZGVEYXkoZGF5KSkge1xyXG4gICAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVTdGFydCA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZURhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRlU3RhcnQgPiBlRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gZURhdGU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSBlRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtzdGFydDogdGhpcy5kYXRlU3RhcnQhLCBlbmQ6IHRoaXMuZGF0ZUVuZCF9KTtcclxuICAgICAgdGhpcy5lbWl0UGVyaW9kLmVtaXQoe3N0YXJ0OiB0aGlzLmRhdGVTdGFydCEsIGVuZDogdGhpcy5kYXRlRW5kIX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmVlZFRpbWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZT8uc2V0SG91cnMoK3RoaXMuaG91cnMsICt0aGlzLm1pbnV0ZXMpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRlVmFsdWUgYXMgRGF0ZSk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGUuZW1pdCh0aGlzLmRhdGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSGlkZURheShkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IG1vcmVEYXkgPSBmYWxzZTtcclxuICAgICAgbGV0IG1vcmVNb250aCA9IGZhbHNlO1xyXG4gICAgICBsZXQgbW9yZVllYXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IGxlc3NEYXkgPSBmYWxzZTtcclxuICAgICAgY29uc3QgbGVzc01vbnRoID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGxlc3NZZWFyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fbWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBbbWF4WWVhciwgbWF4TW9udGgsIG1heERheV0gPSBbXHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRoaXMuX21heERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLl9tYXhEYXRlLmdldERhdGUoKSxcclxuICAgICAgXTtcclxuICAgICAgbW9yZURheSA9IHRoaXMueWVhciA+PSBtYXhZZWFyICYmIHRoaXMubW9udGggPj0gbWF4TW9udGggJiYgZGF5ID4gbWF4RGF5O1xyXG4gICAgICBtb3JlTW9udGggPSB0aGlzLnllYXIgPj0gbWF4WWVhciAmJiB0aGlzLm1vbnRoID4gbWF4TW9udGg7XHJcbiAgICAgIG1vcmVZZWFyID0gdGhpcy55ZWFyID4gbWF4WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IFttaW5ZZWFyLCBtaW5Nb250aCwgbWluRGF5XSA9IFtcclxuICAgICAgICB0aGlzLl9taW5EYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgdGhpcy5fbWluRGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBdO1xyXG4gICAgICBtb3JlRGF5ID0gdGhpcy55ZWFyIDw9IG1pblllYXIgJiYgdGhpcy5tb250aCA8PSBtaW5Nb250aCAmJiBkYXkgPCBtaW5EYXk7XHJcbiAgICAgIG1vcmVNb250aCA9IHRoaXMueWVhciA8PSBtaW5ZZWFyICYmIHRoaXMubW9udGggPCBtaW5Nb250aDtcclxuICAgICAgbW9yZVllYXIgPSB0aGlzLnllYXIgPCBtaW5ZZWFyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vcmVEYXkgfHwgbW9yZU1vbnRoIHx8IG1vcmVZZWFyIHx8IGxlc3NEYXkgfHwgbGVzc01vbnRoIHx8IGxlc3NZZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbnNlbERhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXREYXRlLmVtaXQoKTtcclxuICAgIHRoaXMuZW1pdFBlcmlvZC5lbWl0KCk7XHJcbiAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlRW5kID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWN0aXZlRGF5KGRheTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgY29uc3Qgc0RheSA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXREYXRlKClcclxuICAgICAgY29uc3QgZURheSA9IHRoaXMuZGF0ZUVuZD8uZ2V0RGF0ZSgpXHJcbiAgICAgIGNvbnN0IHNNb250aCA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRNb250aCgpXHJcbiAgICAgIGNvbnN0IGVNb250aCA9IHRoaXMuZGF0ZUVuZD8uZ2V0TW9udGgoKVxyXG4gICAgICBjb25zdCBzWWVhciA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IGVZZWFyID0gdGhpcy5kYXRlRW5kPy5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF5ID0gc0RheSA9PT0gZGF5ICYmIHNNb250aCA9PT0gdGhpcy5tb250aCAmJiBzWWVhciA9PT0gdGhpcy55ZWFyO1xyXG4gICAgICBjb25zdCBlbmREYXkgPSBlRGF5ID09PSBkYXkgJiYgZU1vbnRoID09PSB0aGlzLm1vbnRoICYmIGVZZWFyID09PSB0aGlzLnllYXI7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVTdGFydCAmJiB0aGlzLmRhdGVFbmQpIHtcclxuICAgICAgICBjb25zdCBjaGVja2VkRGF0ZSA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KVxyXG5cclxuICAgICAgICBjb25zdCBhZnRlciA9IGlzQWZ0ZXIodGhpcy5kYXRlRW5kLCBjaGVja2VkRGF0ZSlcclxuICAgICAgICBjb25zdCBiZWZvcmUgPSBpc0JlZm9yZSh0aGlzLmRhdGVTdGFydCwgY2hlY2tlZERhdGUpXHJcbiAgICAgICAgcmV0dXJuIGFmdGVyICYmIGJlZm9yZSB8fCBzdGFydERheSB8fCBlbmREYXk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF5IHx8IGVuZERheTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVZhbHVlPy5nZXREYXRlKCkgPT09IGRheVxyXG4gICAgICAgICYmIHRoaXMuZGF0ZVZhbHVlPy5nZXRNb250aCgpID09PSB0aGlzLm1vbnRoXHJcbiAgICAgICAgJiYgdGhpcy5kYXRlVmFsdWU/LmdldEZ1bGxZZWFyKCkgPT09IHRoaXMueWVhcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChtb2RlID09PSAnaWNvbicpIHtcclxuPGRpdiBjbGFzcz1cInBvcy1yZWxhdGl2ZSBkLWZsZXggYWxpZ24tY2VudGVyXCI+XHJcbiAgQGlmIChkYXRlVmFsdWUpIHtcclxuICA8c3BhbiBjbGFzcz1cIm1yLTEyIGdyZWVuXCI+e3sgZGF0ZVZhbHVlIHwgZGF0ZTogJ2RkLk1NLnl5eXknIH19PC9zcGFuPlxyXG4gIH1cclxuICA8ZGQtbGliLXN2Zy1pY29uIGNsYXNzPVwiY3VwXCIgKGNsaWNrKT1cInNob3dDYWxlbmRhciA9ICFzaG93Q2FsZW5kYXJcIiBpY29uPVwiY2FsZW5kYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICBAaWYgKGRhdGVWYWx1ZSkge1xyXG4gICAgPGRkLWxpYi1zdmctaWNvbiBjbGFzcz1cImN1cFwiIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICB9IEBpZiAoc2hvd0NhbGVuZGFyKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWFicy13cmFwcGVyXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FsZW5kYXJcIj48L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbn0gQGlmIChtb2RlID09PSAnZnVsbCcpIHtcclxuPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbGVuZGFyXCI+PC9uZy10ZW1wbGF0ZT5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cclxuICA8ZGQtbGliLWNhcmQgY2xhc3M9XCJjYWxlbmRhci1ibG9ja1wiIHR5cGU9XCJzbWFsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgtMSlcIiBpY29uPVwibGVmdF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2hlYWRlcl95ZWFyXCI+e3sgZ2V0TW9udGgoKSArICcgJyArIHllYXIgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgxKVwiIGljb249XCJyaWdodF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtcIj5cclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtfZGF5XCI+e3sgZGF5IH19PC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzXCI+XHJcbiAgICAgIEBmb3IgKGRheSBvZiBkYXlzSW5Nb250aD8ucHJldkRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2RheXNfZGF5IGhpZGVcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgfSBAZm9yIChkYXkgb2YgZGF5c0luTW9udGg/LmRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERheShkYXkpXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImNoZWNrQWN0aXZlRGF5KGRheSlcIlxyXG5cclxuICAgICAgICBbY2xhc3MuY3VycmVudF09XCJcclxuICAgICAgICAgIGRhdGVOb3cuZ2V0RGF0ZSgpID09PSBkYXkgJiYgZGF0ZU5vdy5nZXRNb250aCgpID09PSBtb250aCAmJiBkYXRlTm93LmdldEZ1bGxZZWFyKCkgPT09IHllYXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtjbGFzcy5oaWRlXT1cImNoZWNrSGlkZURheShkYXkpXCJcclxuICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzX2RheSBub3JtYWxcIj5cclxuICAgICAgICB7eyBkYXkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGZvciAoZGF5IG9mIGRheXNJbk1vbnRoPy5sYXN0RGF5czsgdHJhY2sgZGF5KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZGF5c19kYXkgaGlkZVwiPnt7IGRheSB9fTwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihuZWVkVGltZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3RpbWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcGxhaW5cIj7QktGA0LXQvNGPPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImhvdXJzXCIgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fdGltZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGRNYXhOdW1dPVwibWF4SG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICAgW2N1clZhbF09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcmVnRXhwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgZGRCYW5TeW1ib2w9XCJeXFxkKyRcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kLWRvdFwiPjo8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNcIiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX190aW1lLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgIFtkZE1heE51bV09XCJtYXhNaW51dGVzXCJcclxuICAgICAgICAgICAgICAgICAgIFtjdXJWYWxdPVwibWludXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcmVnRXhwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgZGRCYW5TeW1ib2w9XCJeXFxkKyRcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2Zvb3RlclwiPlxyXG4gICAgICA8ZGQtbGliLWJ1dHRvbiAoY2xpY2spPVwiY2Fuc2VsRGF0ZSgpXCIgW2J0bkNvbG9yXT1cIid0cmFuc3BhcmVudCdcIiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19mb290ZXJfYnRuXCJcclxuICAgICAgICA+0J7RgtC80LXQvdC40YLRjFxyXG4gICAgICA8L2RkLWxpYi1idXR0b24+XHJcbiAgICAgIDxkZC1saWItYnV0dG9uIChjbGljayk9XCJzZWxlY3REYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCFkYXRlVmFsdWUgJiYgIXJhbmdlTW9kZSkgfHwgKHJhbmdlTW9kZSAmJiAoIWRhdGVTdGFydCB8fCAhZGF0ZUVuZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZm9vdGVyX2J0blwiXHJcbiAgICAgICAgPtCS0YvQsdGA0LDRgtGMXHJcbiAgICAgIDwvZGQtbGliLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGQtbGliLWNhcmQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -77,7 +77,7 @@ export class LibDateRangeComponent {
|
|
|
77
77
|
useExisting: forwardRef(() => LibDateRangeComponent),
|
|
78
78
|
multi: true,
|
|
79
79
|
},
|
|
80
|
-
], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
|
+
], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81
81
|
}
|
|
82
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateRangeComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
110
110
|
}], required: [{
|
|
111
111
|
type: Input
|
|
112
112
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWRhdGUtcmFuZ2UvbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWRhdGUtcmFuZ2UvbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDckcsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQWMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUE4QnpDLE1BQU0sT0FBTyxxQkFBcUI7SUE1QmxDO1FBa0NTLGtCQUFhLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFaEIsbUJBQWMsR0FB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QU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNsQ0gscTlDQTJDQSwyZ0REM0JJLFdBQVcsK21CQUdYLG1CQUFtQiwwR0FFbkIscUJBQXFCLGdIQUVyQixvQkFBb0IsMExBQ3BCLGdCQUFnQjs7MkZBZVAscUJBQXFCO2tCQTVCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsUUFBUTtxQkFDVCxhQUNVO3dCQUNULGNBQWMsRUFBRTt3QkFDaEI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQixPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDbGlja091dHNpZGVEaXJlY3RpdmUsIERhdGVTZXJ2aWNlLCBGaWx0ZXJCeUtleVBpcGUsIEhpZ2hsaWdodFBpcGUsIFNhZmVQaXBlfSBmcm9tIFwiLi4vY29yZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0xpYkxvYWRlckNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1sb2FkZXIvbGliLWxvYWRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaWJQZXJpb2RDb21wb25lbnR9IGZyb20gXCIuLi9saWItcGVyaW9kL2xpYi1wZXJpb2QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SURhdGVQZXJpb2QsIExpYkNhbGVuZGFyQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtmb3JtYXR9IGZyb20gXCJkYXRlLWZuc1wiO1xyXG5pbXBvcnQge05neE1hc2tEaXJlY3RpdmUsIHByb3ZpZGVOZ3hNYXNrfSBmcm9tIFwibmd4LW1hc2tcIjtcclxuaW1wb3J0IHtKc29uUGlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItZGF0ZS1yYW5nZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGaWx0ZXJCeUtleVBpcGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEhpZ2hsaWdodFBpcGUsXHJcbiAgICBMaWJMb2FkZXJDb21wb25lbnQsXHJcbiAgICBMaWJTdmdJY29uQ29tcG9uZW50LFxyXG4gICAgU2FmZVBpcGUsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBMaWJQZXJpb2RDb21wb25lbnQsXHJcbiAgICBMaWJDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBKc29uUGlwZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBwcm92aWRlTmd4TWFzaygpLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliRGF0ZVJhbmdlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJEYXRlUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwdWJsaWMgc3RhdGljIGlkQ291bnRlciA9IDE7XHJcbiAgQElucHV0KCkgcHVibGljIHJhbmdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuICB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgaXNTaG93blBlcmlvZCA9IGZhbHNlXHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2VcclxuICBwdWJsaWMgc2VsZWN0ZWRQZXJpb2RTdHI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2VsZWN0ZWRQZXJpb2Q6IElEYXRlUGVyaW9kIHwgdW5kZWZpbmVkID0ge3N0YXJ0OiBuZXcgRGF0ZSgpLCBlbmQ6IG5ldyBEYXRlKCl9O1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG5cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlSWQpIHtcclxuICAgICAgdGhpcy5yYW5nZUlkID0gJ2RkLXJhbmdlLScgKyBMaWJEYXRlUmFuZ2VDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIG9wZW5DYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBjbG9zZUNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUGVyaW9kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2RTdHIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSBmYWxzZVxyXG5cclxuICB9XHJcblxyXG4gIHNldFBlcmlvZCgkZXZlbnQ6IElEYXRlUGVyaW9kIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSBmYWxzZTtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZFN0ciA9IGAke2Zvcm1hdCgkZXZlbnQ/LnN0YXJ0ISwgJ2RkLk1NLnl5eXknKX0gLSAke2Zvcm1hdCgkZXZlbnQ/LmVuZCEsICdkZC5NTS55eXl5Jyl9YDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kU3RyID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZFBlcmlvZClcclxuICB9XHJcblxyXG4gIGNoYW5nZVN0ckRhdGUoJGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZVNlcnZpY2UuZ2V0RGF0ZUZyb21TdHJpbmcoJGV2ZW50LnN1YnN0cmluZygwLCA4KSk7XHJcbiAgICBjb25zdCBlbmQgPSBEYXRlU2VydmljZS5nZXREYXRlRnJvbVN0cmluZygkZXZlbnQuc3Vic3RyaW5nKDgsIDE2KSk7XHJcbiAgICBpZiAoc3RhcnQgJiYgZW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSB7c3RhcnQsIGVuZH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZFBlcmlvZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogSURhdGVQZXJpb2QgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUoJGV2ZW50OiBJRGF0ZVBlcmlvZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9ICRldmVudDtcclxuICAgIGlmICgkZXZlbnQ/LnN0YXJ0ICYmICRldmVudD8uZW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2RTdHIgPSBgJHtmb3JtYXQoJGV2ZW50Py5zdGFydCEsICdkZC5NTS55eXl5Jyl9IC0gJHtmb3JtYXQoJGV2ZW50Py5lbmQhLCAnZGQuTU0ueXl5eScpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItcmFuZ2VcIiBpZD1cImxpYi1yYW5nZS17eyByYW5nZUlkIH19XCI+XHJcbiAgQGlmIChsYWJlbCkge1xyXG4gICAgPGxhYmVsIFtmb3JdPVwicmFuZ2VJZFwiIGNsYXNzPVwibGliLXJhbmdlX190aXRsZVwiPlxyXG4gICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgICAgPGRkLWxpYi1zdmctaWNvbiBpY29uPVwiZXJyb3JfaGludFwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICB9XHJcbiAgICA8L2xhYmVsPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwicG9zLXJlbGF0aXZlXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW2F0dHIuaWRdPVwicmFuZ2VJZFwiXHJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBlcmlvZFN0clwiXHJcbiAgICAgIFttYXNrXT1cIidkMC5NMC4wMDAwIC0gZDAuTTAuMDAwMCdcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTdHJEYXRlKCRldmVudClcIlxyXG4gICAgICBbbGVhZFplcm9EYXRlVGltZV09XCJ0cnVlXCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LXNlbGVjdFwiLz5cclxuICAgIEBpZiAoIXNlbGVjdGVkUGVyaW9kU3RyKSB7XHJcbiAgICAgIDxkZC1saWItc3ZnLWljb24gW2NsYXNzLmdyYXktc3ZnXT1cIiFpc1Nob3duUGVyaW9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2FsZW5kYXIte3sgcmFuZ2VJZCB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhclwiIGljb249XCJjYWxlbmRhclwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG5cclxuXHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGRkLWxpYi1zdmctaWNvblxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QodW5kZWZpbmVkKVwiXHJcbiAgICAgICAgY2xhc3M9XCJjbGVhclwiXHJcbiAgICAgICAgaWNvbj1cImNsZWFyXCI+PC9kZC1saWItc3ZnLWljb24+XHJcblxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoaXNTaG93blBlcmlvZCkge1xyXG4gICAgPGRpdlxyXG4gICAgICAoZGRDbGlja091dHNpZGUpPVwiY2xvc2VDYWxlbmRhcigpXCJcclxuICAgICAgW2VsZW1lbnRzXT1cIlsnbGliLXJhbmdlLScgKyByYW5nZUlkLCAnY2FsZW5kYXInICsgcmFuZ2VJZF1cIlxyXG4gICAgICBjbGFzcz1cImNhbGVuZGFyLXdyYXBwZXJcIj5cclxuICAgICAgPGRkLWxpYi1jYWxlbmRhciBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUGVyaW9kXCIgW3JhbmdlTW9kZV09XCJ0cnVlXCIgKGVtaXRQZXJpb2QpPVwic2V0UGVyaW9kKCRldmVudClcIj48L2RkLWxpYi1jYWxlbmRhcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWRhdGUtcmFuZ2UvbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWRhdGUtcmFuZ2UvbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDckcsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQWMsb0JBQW9CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUE4QnpDLE1BQU0sT0FBTyxxQkFBcUI7SUE1QmxDO1FBa0NTLGtCQUFhLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFaEIsbUJBQWMsR0FB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QU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNsQ0gscTlDQTJDQSwyZ0REM0JJLFdBQVcsK21CQUdYLG1CQUFtQiwwR0FFbkIscUJBQXFCLGdIQUVyQixvQkFBb0IsZ09BQ3BCLGdCQUFnQjs7MkZBZVAscUJBQXFCO2tCQTVCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsUUFBUTtxQkFDVCxhQUNVO3dCQUNULGNBQWMsRUFBRTt3QkFDaEI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQixPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDbGlja091dHNpZGVEaXJlY3RpdmUsIERhdGVTZXJ2aWNlLCBGaWx0ZXJCeUtleVBpcGUsIEhpZ2hsaWdodFBpcGUsIFNhZmVQaXBlfSBmcm9tIFwiLi4vY29yZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0xpYkxvYWRlckNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1sb2FkZXIvbGliLWxvYWRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMaWJQZXJpb2RDb21wb25lbnR9IGZyb20gXCIuLi9saWItcGVyaW9kL2xpYi1wZXJpb2QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SURhdGVQZXJpb2QsIExpYkNhbGVuZGFyQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtmb3JtYXR9IGZyb20gXCJkYXRlLWZuc1wiO1xyXG5pbXBvcnQge05neE1hc2tEaXJlY3RpdmUsIHByb3ZpZGVOZ3hNYXNrfSBmcm9tIFwibmd4LW1hc2tcIjtcclxuaW1wb3J0IHtKc29uUGlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItZGF0ZS1yYW5nZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGaWx0ZXJCeUtleVBpcGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEhpZ2hsaWdodFBpcGUsXHJcbiAgICBMaWJMb2FkZXJDb21wb25lbnQsXHJcbiAgICBMaWJTdmdJY29uQ29tcG9uZW50LFxyXG4gICAgU2FmZVBpcGUsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBMaWJQZXJpb2RDb21wb25lbnQsXHJcbiAgICBMaWJDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBKc29uUGlwZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBwcm92aWRlTmd4TWFzaygpLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliRGF0ZVJhbmdlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLWRhdGUtcmFuZ2UuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJEYXRlUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwdWJsaWMgc3RhdGljIGlkQ291bnRlciA9IDE7XHJcbiAgQElucHV0KCkgcHVibGljIHJhbmdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuICB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgaXNTaG93blBlcmlvZCA9IGZhbHNlXHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2VcclxuICBwdWJsaWMgc2VsZWN0ZWRQZXJpb2RTdHI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2VsZWN0ZWRQZXJpb2Q6IElEYXRlUGVyaW9kIHwgdW5kZWZpbmVkID0ge3N0YXJ0OiBuZXcgRGF0ZSgpLCBlbmQ6IG5ldyBEYXRlKCl9O1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG5cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlSWQpIHtcclxuICAgICAgdGhpcy5yYW5nZUlkID0gJ2RkLXJhbmdlLScgKyBMaWJEYXRlUmFuZ2VDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIG9wZW5DYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBjbG9zZUNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUGVyaW9kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2RTdHIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSBmYWxzZVxyXG5cclxuICB9XHJcblxyXG4gIHNldFBlcmlvZCgkZXZlbnQ6IElEYXRlUGVyaW9kIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmlzU2hvd25QZXJpb2QgPSBmYWxzZTtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZFN0ciA9IGAke2Zvcm1hdCgkZXZlbnQ/LnN0YXJ0ISwgJ2RkLk1NLnl5eXknKX0gLSAke2Zvcm1hdCgkZXZlbnQ/LmVuZCEsICdkZC5NTS55eXl5Jyl9YDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kU3RyID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZFBlcmlvZClcclxuICB9XHJcblxyXG4gIGNoYW5nZVN0ckRhdGUoJGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZVNlcnZpY2UuZ2V0RGF0ZUZyb21TdHJpbmcoJGV2ZW50LnN1YnN0cmluZygwLCA4KSk7XHJcbiAgICBjb25zdCBlbmQgPSBEYXRlU2VydmljZS5nZXREYXRlRnJvbVN0cmluZygkZXZlbnQuc3Vic3RyaW5nKDgsIDE2KSk7XHJcbiAgICBpZiAoc3RhcnQgJiYgZW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSB7c3RhcnQsIGVuZH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGVyaW9kID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZFBlcmlvZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogSURhdGVQZXJpb2QgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUoJGV2ZW50OiBJRGF0ZVBlcmlvZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9ICRldmVudDtcclxuICAgIGlmICgkZXZlbnQ/LnN0YXJ0ICYmICRldmVudD8uZW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2RTdHIgPSBgJHtmb3JtYXQoJGV2ZW50Py5zdGFydCEsICdkZC5NTS55eXl5Jyl9IC0gJHtmb3JtYXQoJGV2ZW50Py5lbmQhLCAnZGQuTU0ueXl5eScpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItcmFuZ2VcIiBpZD1cImxpYi1yYW5nZS17eyByYW5nZUlkIH19XCI+XHJcbiAgQGlmIChsYWJlbCkge1xyXG4gICAgPGxhYmVsIFtmb3JdPVwicmFuZ2VJZFwiIGNsYXNzPVwibGliLXJhbmdlX190aXRsZVwiPlxyXG4gICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgICAgPGRkLWxpYi1zdmctaWNvbiBpY29uPVwiZXJyb3JfaGludFwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICB9XHJcbiAgICA8L2xhYmVsPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwicG9zLXJlbGF0aXZlXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW2F0dHIuaWRdPVwicmFuZ2VJZFwiXHJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBlcmlvZFN0clwiXHJcbiAgICAgIFttYXNrXT1cIidkMC5NMC4wMDAwIC0gZDAuTTAuMDAwMCdcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTdHJEYXRlKCRldmVudClcIlxyXG4gICAgICBbbGVhZFplcm9EYXRlVGltZV09XCJ0cnVlXCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LXNlbGVjdFwiLz5cclxuICAgIEBpZiAoIXNlbGVjdGVkUGVyaW9kU3RyKSB7XHJcbiAgICAgIDxkZC1saWItc3ZnLWljb24gW2NsYXNzLmdyYXktc3ZnXT1cIiFpc1Nob3duUGVyaW9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2FsZW5kYXIte3sgcmFuZ2VJZCB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhclwiIGljb249XCJjYWxlbmRhclwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG5cclxuXHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGRkLWxpYi1zdmctaWNvblxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QodW5kZWZpbmVkKVwiXHJcbiAgICAgICAgY2xhc3M9XCJjbGVhclwiXHJcbiAgICAgICAgaWNvbj1cImNsZWFyXCI+PC9kZC1saWItc3ZnLWljb24+XHJcblxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoaXNTaG93blBlcmlvZCkge1xyXG4gICAgPGRpdlxyXG4gICAgICAoZGRDbGlja091dHNpZGUpPVwiY2xvc2VDYWxlbmRhcigpXCJcclxuICAgICAgW2VsZW1lbnRzXT1cIlsnbGliLXJhbmdlLScgKyByYW5nZUlkLCAnY2FsZW5kYXInICsgcmFuZ2VJZF1cIlxyXG4gICAgICBjbGFzcz1cImNhbGVuZGFyLXdyYXBwZXJcIj5cclxuICAgICAgPGRkLWxpYi1jYWxlbmRhciBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUGVyaW9kXCIgW3JhbmdlTW9kZV09XCJ0cnVlXCIgKGVtaXRQZXJpb2QpPVwic2V0UGVyaW9kKCRldmVudClcIj48L2RkLWxpYi1jYWxlbmRhcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|