@tolle_/tolle-ui 0.0.15-beta → 0.0.18-beta
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/button.component.mjs +50 -33
- package/esm2022/lib/data-table.component.mjs +31 -3
- package/esm2022/lib/date-range-picker.component.mjs +1 -1
- package/esm2022/lib/input.component.mjs +113 -52
- package/esm2022/lib/multi-select.component.mjs +1 -1
- package/esm2022/lib/pagination.component.mjs +2 -2
- package/esm2022/lib/select.component.mjs +17 -6
- package/esm2022/lib/textarea.component.mjs +177 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/tolle_-tolle-ui.mjs +377 -92
- package/fesm2022/tolle_-tolle-ui.mjs.map +1 -1
- package/lib/button.component.d.ts +4 -4
- package/lib/data-table.component.d.ts +8 -1
- package/lib/input.component.d.ts +8 -3
- package/lib/select.component.d.ts +2 -1
- package/lib/textarea.component.d.ts +31 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { cn } from './utils/cn';
|
|
4
|
+
import { cn } from './utils/cn';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
|
|
7
|
-
const buttonVariants = cva(
|
|
8
|
-
// Base styles applied to ALL buttons
|
|
9
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background", {
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
const buttonVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background active:scale-[0.98]", {
|
|
10
8
|
variants: {
|
|
11
9
|
variant: {
|
|
12
10
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
@@ -21,62 +19,79 @@ const buttonVariants = cva(
|
|
|
21
19
|
xs: "h-8 px-2 py-1 text-xs",
|
|
22
20
|
sm: "h-9 rounded-md px-3",
|
|
23
21
|
lg: "h-11 rounded-md px-8",
|
|
22
|
+
// RESTORED: Square icon button variants
|
|
24
23
|
"icon-xs": "h-8 w-8",
|
|
25
24
|
"icon-sm": "h-9 w-9",
|
|
26
25
|
icon: "h-10 w-10",
|
|
27
26
|
"icon-lg": "h-11 w-11",
|
|
28
27
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
true: "w-full flex",
|
|
32
|
-
},
|
|
33
|
-
// Added readonly variant
|
|
34
|
-
readonly: {
|
|
35
|
-
true: "pointer-events-none opacity-80",
|
|
36
|
-
},
|
|
37
|
-
disabled: {
|
|
38
|
-
true: "pointer-events-none",
|
|
39
|
-
}
|
|
28
|
+
block: { true: "w-full flex" },
|
|
29
|
+
busy: { true: "relative !cursor-wait !pointer-events-none" }
|
|
40
30
|
},
|
|
41
31
|
defaultVariants: {
|
|
42
32
|
variant: "default",
|
|
43
33
|
size: "default",
|
|
44
34
|
block: false,
|
|
45
|
-
readonly: false,
|
|
46
35
|
},
|
|
47
36
|
});
|
|
48
37
|
export class ButtonComponent {
|
|
49
|
-
// Allow consumers to pass a custom class to override styles
|
|
50
38
|
class = '';
|
|
51
|
-
// Expose the variants as Inputs
|
|
52
39
|
variant = 'default';
|
|
53
40
|
size = 'default';
|
|
54
|
-
// Added new inputs
|
|
55
41
|
block = false;
|
|
56
|
-
readonly = false;
|
|
57
42
|
disabled = false;
|
|
58
|
-
|
|
43
|
+
busy = false;
|
|
44
|
+
readonly = false;
|
|
59
45
|
get computedClass() {
|
|
60
|
-
return cn(buttonVariants({
|
|
46
|
+
return cn(buttonVariants({
|
|
47
|
+
variant: this.variant,
|
|
48
|
+
size: this.size,
|
|
49
|
+
block: this.block,
|
|
50
|
+
busy: this.busy
|
|
51
|
+
}),
|
|
52
|
+
// Adds 'size-icon-sm', 'size-xs', etc. for the CSS selectors to work
|
|
53
|
+
'size-' + this.size, this.class);
|
|
61
54
|
}
|
|
62
55
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "tolle-button", inputs: { class: "class", variant: "variant", size: "size", block: "block",
|
|
64
|
-
<button
|
|
65
|
-
|
|
56
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "tolle-button", inputs: { class: "class", variant: "variant", size: "size", block: "block", disabled: "disabled", busy: "busy", readonly: "readonly" }, ngImport: i0, template: `
|
|
57
|
+
<button
|
|
58
|
+
[class]="computedClass"
|
|
59
|
+
[disabled]="disabled || busy"
|
|
60
|
+
[attr.aria-busy]="busy"
|
|
61
|
+
>
|
|
62
|
+
<div *ngIf="busy" class="absolute inset-0 flex items-center justify-center">
|
|
63
|
+
<svg class="animate-spin h-5 w-5 text-current" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
|
64
|
+
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
|
65
|
+
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
|
66
|
+
</svg>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<span class="flex items-center justify-center w-full h-full" [class.invisible]="busy">
|
|
66
70
|
<ng-content></ng-content>
|
|
67
71
|
</span>
|
|
68
72
|
</button>
|
|
69
|
-
`, isInline: true, styles: [":host ::ng-deep i{display:inline-flex;align-items:center;line-height:1
|
|
73
|
+
`, isInline: true, styles: [":host{display:inline-block}:host(.w-full){display:block}:host ::ng-deep i{display:inline-flex;align-items:center;justify-content:center;line-height:1}:host-context(.size-xs) ::ng-deep i,:host-context(.size-icon-xs) ::ng-deep i,:host-context(.size-sm) ::ng-deep i,:host-context(.size-icon-sm) ::ng-deep i{font-size:1rem}:host-context(.size-default) ::ng-deep i,:host-context(.size-icon) ::ng-deep i,:host-context(.size-lg) ::ng-deep i,:host-context(.size-icon-lg) ::ng-deep i{font-size:1.2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
70
74
|
}
|
|
71
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
72
76
|
type: Component,
|
|
73
77
|
args: [{ selector: 'tolle-button', standalone: true, imports: [CommonModule], template: `
|
|
74
|
-
<button
|
|
75
|
-
|
|
78
|
+
<button
|
|
79
|
+
[class]="computedClass"
|
|
80
|
+
[disabled]="disabled || busy"
|
|
81
|
+
[attr.aria-busy]="busy"
|
|
82
|
+
>
|
|
83
|
+
<div *ngIf="busy" class="absolute inset-0 flex items-center justify-center">
|
|
84
|
+
<svg class="animate-spin h-5 w-5 text-current" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
|
85
|
+
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
|
86
|
+
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
|
87
|
+
</svg>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<span class="flex items-center justify-center w-full h-full" [class.invisible]="busy">
|
|
76
91
|
<ng-content></ng-content>
|
|
77
92
|
</span>
|
|
78
93
|
</button>
|
|
79
|
-
`, styles: [":host ::ng-deep i{display:inline-flex;align-items:center;line-height:1
|
|
94
|
+
`, styles: [":host{display:inline-block}:host(.w-full){display:block}:host ::ng-deep i{display:inline-flex;align-items:center;justify-content:center;line-height:1}:host-context(.size-xs) ::ng-deep i,:host-context(.size-icon-xs) ::ng-deep i,:host-context(.size-sm) ::ng-deep i,:host-context(.size-icon-sm) ::ng-deep i{font-size:1rem}:host-context(.size-default) ::ng-deep i,:host-context(.size-icon) ::ng-deep i,:host-context(.size-lg) ::ng-deep i,:host-context(.size-icon-lg) ::ng-deep i{font-size:1.2rem}\n"] }]
|
|
80
95
|
}], propDecorators: { class: [{
|
|
81
96
|
type: Input
|
|
82
97
|
}], variant: [{
|
|
@@ -85,9 +100,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
85
100
|
type: Input
|
|
86
101
|
}], block: [{
|
|
87
102
|
type: Input
|
|
88
|
-
}], readonly: [{
|
|
89
|
-
type: Input
|
|
90
103
|
}], disabled: [{
|
|
91
104
|
type: Input
|
|
105
|
+
}], busy: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], readonly: [{
|
|
108
|
+
type: Input
|
|
92
109
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFFaEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUN4Qix1UkFBdVIsRUFDdlI7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsd0RBQXdEO1lBQ2pFLFdBQVcsRUFBRSxvRUFBb0U7WUFDakYsT0FBTyxFQUFFLGtFQUFrRTtZQUMzRSxTQUFTLEVBQUUsOERBQThEO1lBQ3pFLEtBQUssRUFBRSw4Q0FBOEM7WUFDckQsSUFBSSxFQUFFLGlEQUFpRDtTQUN4RDtRQUNELElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQixFQUFFLEVBQUUscUJBQXFCO1lBQ3pCLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUIsd0NBQXdDO1lBQ3hDLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO1FBQ0QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtRQUM5QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsNENBQTRDLEVBQUU7S0FDN0Q7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsU0FBUztRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxLQUFLO0tBQ2I7Q0FDRixDQUNGLENBQUM7QUFzREYsTUFBTSxPQUFPLGVBQWU7SUFDakIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixPQUFPLEdBQTJCLFNBQVMsQ0FBQztJQUM1QyxJQUFJLEdBQXdCLFNBQVMsQ0FBQztJQUN0QyxLQUFLLEdBQVksS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsSUFBSSxHQUFZLEtBQUssQ0FBQztJQUN0QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRW5DLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLGNBQWMsQ0FBQztZQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixxRUFBcUU7UUFDckUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQ25CLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBckJVLGVBQWU7NEZBQWYsZUFBZSxnTkE5Q2hCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCx1akJBbEJTLFlBQVk7OzRGQStDWCxlQUFlO2tCQWxEM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOzhCQThCUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IGJ1dHRvblZhcmlhbnRzID0gY3ZhKFxuICBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1hbGwgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGFjdGl2ZTpzY2FsZS1bMC45OF1cIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwXCIsXG4gICAgICAgIGRlc3RydWN0aXZlOiBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MFwiLFxuICAgICAgICBvdXRsaW5lOiBcImJvcmRlciBib3JkZXItaW5wdXQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmRcIixcbiAgICAgICAgc2Vjb25kYXJ5OiBcImJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInVuZGVybGluZS1vZmZzZXQtNCBob3Zlcjp1bmRlcmxpbmUgdGV4dC1wcmltYXJ5XCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtMTAgcHgtNCBweS0yXCIsXG4gICAgICAgIHhzOiBcImgtOCBweC0yIHB5LTEgdGV4dC14c1wiLFxuICAgICAgICBzbTogXCJoLTkgcm91bmRlZC1tZCBweC0zXCIsXG4gICAgICAgIGxnOiBcImgtMTEgcm91bmRlZC1tZCBweC04XCIsXG4gICAgICAgIC8vIFJFU1RPUkVEOiBTcXVhcmUgaWNvbiBidXR0b24gdmFyaWFudHNcbiAgICAgICAgXCJpY29uLXhzXCI6IFwiaC04IHctOFwiLFxuICAgICAgICBcImljb24tc21cIjogXCJoLTkgdy05XCIsXG4gICAgICAgIGljb246IFwiaC0xMCB3LTEwXCIsXG4gICAgICAgIFwiaWNvbi1sZ1wiOiBcImgtMTEgdy0xMVwiLFxuICAgICAgfSxcbiAgICAgIGJsb2NrOiB7IHRydWU6IFwidy1mdWxsIGZsZXhcIiB9LFxuICAgICAgYnVzeTogeyB0cnVlOiBcInJlbGF0aXZlICFjdXJzb3Itd2FpdCAhcG9pbnRlci1ldmVudHMtbm9uZVwiIH1cbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgICBzaXplOiBcImRlZmF1bHRcIixcbiAgICAgIGJsb2NrOiBmYWxzZSxcbiAgICB9LFxuICB9XG4pO1xuXG5leHBvcnQgdHlwZSBCdXR0b25Qcm9wcyA9IFZhcmlhbnRQcm9wczx0eXBlb2YgYnV0dG9uVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgYnVzeVwiXG4gICAgICBbYXR0ci5hcmlhLWJ1c3ldPVwiYnVzeVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImJ1c3lcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImFuaW1hdGUtc3BpbiBoLTUgdy01IHRleHQtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwib3BhY2l0eS0yNVwiIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiNFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwib3BhY2l0eS03NVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQgMTJhOCA4IDAgMDE4LThWMEM1LjM3MyAwIDAgNS4zNzMgMCAxMmg0em0yIDUuMjkxQTcuOTYyIDcuOTYyIDAgMDE0IDEySDBjMCAzLjA0MiAxLjEzNSA1LjgyNCAzIDcuOTM4bDMtMi42NDd6XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8c3BhbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctZnVsbCBoLWZ1bGxcIiBbY2xhc3MuaW52aXNpYmxlXT1cImJ1c3lcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICA6aG9zdCgudy1mdWxsKSB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbiAgICAvKiBDZW50ZXJpbmcgYW5kIFJlc2V0dGluZyBmb3IgaWNvbnMgKi9cbiAgICA6aG9zdCA6Om5nLWRlZXAgaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC8qIE1BVENISU5HIFlPVVIgdGhlbWUuY3NzIExPR0lDOiBSZXNwb25zaXZlIGljb24gc2l6aW5nICovXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS14cykgOjpuZy1kZWVwIGksXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS1pY29uLXhzKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLXNtKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWljb24tc20pIDo6bmctZGVlcCBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgLyogMTZweCAqL1xuICAgIH1cblxuICAgIDpob3N0LWNvbnRleHQoLnNpemUtZGVmYXVsdCkgOjpuZy1kZWVwIGksXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS1pY29uKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWxnKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWljb24tbGcpIDo6bmctZGVlcCBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOyAvKiB+MTktMjBweCAqL1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB2YXJpYW50OiBCdXR0b25Qcm9wc1sndmFyaWFudCddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaXplOiBCdXR0b25Qcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBibG9jazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBidXN5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgYnV0dG9uVmFyaWFudHMoe1xuICAgICAgICB2YXJpYW50OiB0aGlzLnZhcmlhbnQsXG4gICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgICAgYmxvY2s6IHRoaXMuYmxvY2ssXG4gICAgICAgIGJ1c3k6IHRoaXMuYnVzeVxuICAgICAgfSksXG4gICAgICAvLyBBZGRzICdzaXplLWljb24tc20nLCAnc2l6ZS14cycsIGV0Yy4gZm9yIHRoZSBDU1Mgc2VsZWN0b3JzIHRvIHdvcmtcbiAgICAgICdzaXplLScgKyB0aGlzLnNpemUsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -16,6 +16,16 @@ export class DataTableComponent {
|
|
|
16
16
|
pageSize = 10;
|
|
17
17
|
expandable = false;
|
|
18
18
|
size = 'default';
|
|
19
|
+
// --- NEW INPUTS FOR COLUMN HIDING ---
|
|
20
|
+
allowColumnHiding = true;
|
|
21
|
+
showSettings = true; // Set to false to hide the gear icon/menu entirely
|
|
22
|
+
// Track visibility state: { 'columnKey': true/false }
|
|
23
|
+
columnVisibility = {};
|
|
24
|
+
showColumnMenu = false;
|
|
25
|
+
// Filter columns based on visibility state
|
|
26
|
+
get activeColumns() {
|
|
27
|
+
return this.columns.filter(col => this.columnVisibility[col.key]);
|
|
28
|
+
}
|
|
19
29
|
// Track which rows are open
|
|
20
30
|
expandedRows = new Set();
|
|
21
31
|
// Use ContentChildren to grab the tolleCell templates from the user's HTML
|
|
@@ -61,11 +71,25 @@ export class DataTableComponent {
|
|
|
61
71
|
if (changes['data']) {
|
|
62
72
|
this.refreshTable();
|
|
63
73
|
}
|
|
74
|
+
if (changes['columns']) {
|
|
75
|
+
this.initializeVisibility();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
initializeVisibility() {
|
|
79
|
+
// Default all columns to visible if not already set
|
|
80
|
+
this.columns.forEach(col => {
|
|
81
|
+
if (this.columnVisibility[col.key] === undefined) {
|
|
82
|
+
this.columnVisibility[col.key] = true;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
64
85
|
}
|
|
65
86
|
// --- Search & Sort & Page Logic ---
|
|
66
87
|
// (Your existing implementation of applySearch, applySort, and updatePage goes here)
|
|
67
88
|
refreshTable() { this.applySearch(); this.applySort(); this.updatePage(); }
|
|
68
89
|
onSearch() { this.currentPage = 1; this.refreshTable(); }
|
|
90
|
+
toggleColumn(key) {
|
|
91
|
+
this.columnVisibility[key] = !this.columnVisibility[key];
|
|
92
|
+
}
|
|
69
93
|
applySearch() {
|
|
70
94
|
if (!this.searchTerm) {
|
|
71
95
|
this.filteredData = [...this.data];
|
|
@@ -123,7 +147,7 @@ export class DataTableComponent {
|
|
|
123
147
|
return this.cellTemplates?.find(t => t.name === key);
|
|
124
148
|
}
|
|
125
149
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataTableComponent, isStandalone: true, selector: "tolle-data-table", inputs: { data: "data", columns: "columns", searchable: "searchable", paginate: "paginate", pageSize: "pageSize", expandable: "expandable", size: "size", expandedTemplate: "expandedTemplate" }, queries: [{ propertyName: "cellTemplates", predicate: TolleCellDirective }], usesOnChanges: true, ngImport: i0, template: `
|
|
150
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataTableComponent, isStandalone: true, selector: "tolle-data-table", inputs: { data: "data", columns: "columns", searchable: "searchable", paginate: "paginate", pageSize: "pageSize", expandable: "expandable", size: "size", allowColumnHiding: "allowColumnHiding", showSettings: "showSettings", expandedTemplate: "expandedTemplate" }, queries: [{ propertyName: "cellTemplates", predicate: TolleCellDirective }], usesOnChanges: true, ngImport: i0, template: `
|
|
127
151
|
<div class="space-y-4">
|
|
128
152
|
<div *ngIf="searchable" class="flex items-center py-2">
|
|
129
153
|
<tolle-input
|
|
@@ -211,7 +235,7 @@ export class DataTableComponent {
|
|
|
211
235
|
(onPageSizeChange)="updatePage()"
|
|
212
236
|
></tolle-pagination>
|
|
213
237
|
</div>
|
|
214
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PaginationComponent, selector: "tolle-pagination", inputs: ["class", "showPageLinks", "showPageOptions", "showCurrentPageInfo", "currentPageInfoTemplate", "totalRecords", "currentPageSize", "currentPage", "pageSizeOptions"], outputs: ["onPageNumberChange", "onPageSizeChange"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["
|
|
238
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PaginationComponent, selector: "tolle-pagination", inputs: ["class", "showPageLinks", "showPageOptions", "showCurrentPageInfo", "currentPageInfoTemplate", "totalRecords", "currentPageSize", "currentPage", "pageSizeOptions"], outputs: ["onPageNumberChange", "onPageSizeChange"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
|
|
215
239
|
}
|
|
216
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataTableComponent, decorators: [{
|
|
217
241
|
type: Component,
|
|
@@ -323,10 +347,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
323
347
|
type: Input
|
|
324
348
|
}], size: [{
|
|
325
349
|
type: Input
|
|
350
|
+
}], allowColumnHiding: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], showSettings: [{
|
|
353
|
+
type: Input
|
|
326
354
|
}], cellTemplates: [{
|
|
327
355
|
type: ContentChildren,
|
|
328
356
|
args: [TolleCellDirective]
|
|
329
357
|
}], expandedTemplate: [{
|
|
330
358
|
type: Input
|
|
331
359
|
}] } });
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUNILGVBQWUsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQXNHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQVUsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUMxRCw0QkFBNEI7SUFDNUIsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFakMsMkVBQTJFO0lBQ3RDLGFBQWEsQ0FBaUM7SUFFbkYsb0RBQW9EO0lBQzNDLGdCQUFnQixDQUFvQjtJQUU3QyxZQUFZLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLFNBQVMsR0FBVSxFQUFFLENBQUM7SUFDdEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixXQUFXLEdBQUcsQ0FBQyxD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RSxtQkFBbUIsZ1NBQUUsY0FBYzs7NEZBMkY3RCxrQkFBa0I7a0JBOUY5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztvQkFDekUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0ZUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSytCLGFBQWE7c0JBQWpELGVBQWU7dUJBQUMsa0JBQWtCO2dCQUcxQixnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7UGFnaW5hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1RvbGxlQ2VsbERpcmVjdGl2ZX0gZnJvbSAnLi90b2xsZS1jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0lucHV0Q29tcG9uZW50fSBmcm9tICcuL2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uIHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRhdGEtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUGFnaW5hdGlvbkNvbXBvbmVudCwgSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hhYmxlXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweS0yXCI+XG4gICAgICAgIDx0b2xsZS1pbnB1dFxuICAgICAgICAgIFtzaXplXT1cInNpemUgPT09ICdsZycgPyAnZGVmYXVsdCcgOiAnc20nXCJcbiAgICAgICAgICBjbGFzcz1cIm1heC13LXNtXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciByZWNvcmRzLi4uXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoKClcIj5cbiAgICAgICAgICA8aSBwcmVmaXggY2xhc3M9XCJyaS1zZWFyY2gtbGluZVwiPjwvaT5cbiAgICAgICAgPC90b2xsZS1pbnB1dD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctc21cIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJib3JkZXItYiBiZy1tdXRlZC8zMFwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGggKm5nSWY9XCJleHBhbmRhYmxlXCIgW2NsYXNzXT1cImNuKCdweC00Jywgc2l6ZSA9PT0gJ3hzJyA/ICd3LVszMnB4XScgOiAndy1bNDhweF0nKVwiPjwvdGg+XG4gICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgJ2ZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWFsbCcsXG4gICAgICAgICAgICAgICAgICBoZWFkZXJQYWRkaW5nQ2xhc3MsXG4gICAgICAgICAgICAgICAgICBmb250U2l6ZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgY29sLmNsYXNzXG4gICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2wuc29ydGFibGU7IGVsc2Ugc2ltcGxlSGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZVNvcnQoY29sLmtleSlcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGN1cnNvci1wb2ludGVyIGhvdmVyOnRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAge3sgY29sLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiZ2V0U29ydEljb24oY29sLmtleSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVIZWFkZXI+e3sgY29sLmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJkaXZpZGUteSBkaXZpZGUtYm9yZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZWREYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhvdmVyOmJnLW11dGVkLzUwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiZXhwYW5kYWJsZVwiIGNsYXNzPVwicHgtNFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlUm93KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGhvdmVyOmJnLWFjY2VudCB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICBzaXplID09PSAneHMnID8gJ2gtNiB3LTYnIDogJ2gtOCB3LTgnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImV4cGFuZGVkUm93cy5oYXMoaSkgPyAncmktYXJyb3ctZG93bi1zLWxpbmUnIDogJ3JpLWFycm93LXJpZ2h0LXMtbGluZSdcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgJ2FsaWduLW1pZGRsZSB0cmFuc2l0aW9uLWFsbCcsXG4gICAgICAgICAgICAgICAgICAgIGNlbGxQYWRkaW5nQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIGNvbC5jbGFzc1xuICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFRlbXBsYXRlKGNvbC5rZXkpIGFzIGNlbGw7IGVsc2UgZGVmYXVsdFZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93W2NvbC5rZXldLCByb3c6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZm9yZWdyb3VuZFwiPnt7IHJvd1tjb2wua2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cblxuICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3MuaGFzKGkpXCIgY2xhc3M9XCJiZy1tdXRlZC8xMFwiPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgKGV4cGFuZGFibGUgPyAxIDogMClcIiBjbGFzcz1cInAtMFwiPlxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTYgYm9yZGVyLWIgYm9yZGVyLWRhc2hlZCBib3JkZXItYm9yZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGVkVGVtcGxhdGU7IGVsc2UgZGVmYXVsdEV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwYW5kZWRUZW1wbGF0ZTsgY29udGV4dDogeyByb3c6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwYW5kZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgaXRhbGljXCI+Tm8gZGV0YWlscyBhdmFpbGFibGUuPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dG9sbGUtcGFnaW5hdGlvblxuICAgICAgICAqbmdJZj1cInBhZ2luYXRlXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJmaWx0ZXJlZERhdGEubGVuZ3RoXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIChvblBhZ2VOdW1iZXJDaGFuZ2UpPVwidXBkYXRlUGFnZSgpXCJcbiAgICAgICAgKG9uUGFnZVNpemVDaGFuZ2UpPVwidXBkYXRlUGFnZSgpXCJcbiAgICAgID48L3RvbGxlLXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBwYWdpbmF0ZSA9IHRydWU7XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICAvLyBUcmFjayB3aGljaCByb3dzIGFyZSBvcGVuXG4gIGV4cGFuZGVkUm93cyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuXG4gIC8vIFVzZSBDb250ZW50Q2hpbGRyZW4gdG8gZ3JhYiB0aGUgdG9sbGVDZWxsIHRlbXBsYXRlcyBmcm9tIHRoZSB1c2VyJ3MgSFRNTFxuICBAQ29udGVudENoaWxkcmVuKFRvbGxlQ2VsbERpcmVjdGl2ZSkgY2VsbFRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUb2xsZUNlbGxEaXJlY3RpdmU+O1xuXG4gIC8vIEtlZXAgdGhpcyBhcyBhbiBJbnB1dCBmb3IgdGhlIG1haW4gZXhwYW5zaW9uIHNsb3RcbiAgQElucHV0KCkgZXhwYW5kZWRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xuICBwYWdlZERhdGE6IGFueVtdID0gW107XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgY3VycmVudFBhZ2UgPSAxO1xuICBzb3J0S2V5ID0gJyc7XG4gIHNvcnREaXI6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gMi4gTWFwIFNpemUgdG8gUGFkZGluZyBmb3IgQ2VsbHNcbiAgZ2V0IGNlbGxQYWRkaW5nQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ3AtMSBweC00JzsgICAgLy8gVWx0cmEtY29tcGFjdFxuICAgICAgY2FzZSAnc20nOiByZXR1cm4gJ3AtMiBweC00JzsgICAgLy8gRGVuc2VcbiAgICAgIGNhc2UgJ2xnJzogcmV0dXJuICdwLTYgcHgtNCc7ICAgIC8vIFNwYWNpb3VzXG4gICAgICBkZWZhdWx0OiAgIHJldHVybiAncC00JzsgICAgICAgICAvLyBTdGFuZGFyZCAoMTZweClcbiAgICB9XG4gIH1cblxuICAvLyAzLiBNYXAgU2l6ZSB0byBQYWRkaW5nIGZvciBIZWFkZXIgKHVzdWFsbHkgc2xpZ2h0bHkgc2hvcnRlciB0aGFuIGNlbGxzKVxuICBnZXQgaGVhZGVyUGFkZGluZ0NsYXNzKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3hzJzogcmV0dXJuICdoLTcgcHgtNCc7XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAnaC05IHB4LTQnO1xuICAgICAgY2FzZSAnbGcnOiByZXR1cm4gJ2gtMTQgcHgtNCc7XG4gICAgICBkZWZhdWx0OiAgIHJldHVybiAnaC0xMiBweC00JztcbiAgICB9XG4gIH1cblxuICAvLyA0LiBNYXAgU2l6ZSB0byBGb250IFNpemVzXG4gIGdldCBmb250U2l6ZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3hzJzogcmV0dXJuICd0ZXh0LVsxMXB4XSc7XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAndGV4dC14cyc7XG4gICAgICBjYXNlICdsZyc6IHJldHVybiAndGV4dC1iYXNlJztcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICd0ZXh0LXNtJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY24gPSBjbjtcblxuICBuZ09uSW5pdCgpIHsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7IHRoaXMucmVmcmVzaFRhYmxlKCk7IH1cbiAgfVxuXG4gIC8vIC0tLSBTZWFyY2ggJiBTb3J0ICYgUGFnZSBMb2dpYyAtLS1cbiAgLy8gKFlvdXIgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gb2YgYXBwbHlTZWFyY2gsIGFwcGx5U29ydCwgYW5kIHVwZGF0ZVBhZ2UgZ29lcyBoZXJlKVxuICByZWZyZXNoVGFibGUoKSB7IHRoaXMuYXBwbHlTZWFyY2goKTsgdGhpcy5hcHBseVNvcnQoKTsgdGhpcy51cGRhdGVQYWdlKCk7IH1cbiAgb25TZWFyY2goKSB7IHRoaXMuY3VycmVudFBhZ2UgPSAxOyB0aGlzLnJlZnJlc2hUYWJsZSgpOyB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkgeyB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFdOyByZXR1cm47IH1cbiAgICBjb25zdCBxID0gdGhpcy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKHJvdyA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhyb3cpLnNvbWUodmFsID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTb3J0KCkge1xuICAgIGlmICghdGhpcy5zb3J0S2V5IHx8ICF0aGlzLnNvcnREaXIpIHJldHVybjtcbiAgICB0aGlzLmZpbHRlcmVkRGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRLZXldOyBjb25zdCB2YWxCID0gYlt0aGlzLnNvcnRLZXldO1xuICAgICAgaWYgKHZhbEEgPCB2YWxCKSByZXR1cm4gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgIGlmICh2YWxBID4gdmFsQikgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnBhZ2luYXRlKSB7IHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGE7IHJldHVybjsgfVxuICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvLyAtLS0gSGVscGVycyAtLS1cbiAgdG9nZ2xlU29ydChrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvcnRLZXkgPT09IGtleSkge1xuICAgICAgdGhpcy5zb3J0RGlyID0gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/ICdkZXNjJyA6IHRoaXMuc29ydERpciA9PT0gJ2Rlc2MnID8gbnVsbCA6ICdhc2MnO1xuICAgIH0gZWxzZSB7IHRoaXMuc29ydEtleSA9IGtleTsgdGhpcy5zb3J0RGlyID0gJ2FzYyc7IH1cbiAgICB0aGlzLnJlZnJlc2hUYWJsZSgpO1xuICB9XG5cbiAgZ2V0U29ydEljb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb3J0S2V5ICE9PSBrZXkgfHwgIXRoaXMuc29ydERpcikgcmV0dXJuICdyaS1hcnJvdy11cC1kb3duLWxpbmUgb3BhY2l0eS0zMCc7XG4gICAgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAncmktYXJyb3ctdXAtbGluZScgOiAncmktYXJyb3ctZG93bi1saW5lJztcbiAgfVxuXG4gIHRvZ2dsZVJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWRSb3dzLmhhcyhpbmRleCkpIHRoaXMuZXhwYW5kZWRSb3dzLmRlbGV0ZShpbmRleCk7XG4gICAgZWxzZSB0aGlzLmV4cGFuZGVkUm93cy5hZGQoaW5kZXgpO1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNlbGwgdGVtcGxhdGVcbiAgZ2V0VGVtcGxhdGUoa2V5OiBzdHJpbmcpOiBUb2xsZUNlbGxEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNlbGxUZW1wbGF0ZXM/LmZpbmQodCA9PiB0Lm5hbWUgPT09IGtleSk7XG4gIH1cbn1cbiJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUNILGVBQWUsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQXNHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQVUsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUUxRCx1Q0FBdUM7SUFDOUIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxtREFBbUQ7SUFFakYsc0RBQXNEO0lBQ3RELGdCQUFnQixHQUE0QixFQUFFLENBQUM7SUFDL0MsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUV2QiwyQ0FBMkM7SUFDM0MsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRWpDLDJFQUEyRTtJQUN0QyxhQUFhLENBQWlDO0lBRW5GLG9EQUFvRDtJQUMzQyxnQkFBZ0IsQ0FBb0I7SUFFN0MsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixTQUFTLEdBQVUsRUFBRSxDQUFDO0lBQ3RCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsT0FBTyxHQUEwQixJQUFJLENBQUM7SUFFdEMsbUNBQW1DO0lBQ25DLElBQUksZ0JBQWdCO1FBQ2xCLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsQ0FBSSxnQkFBZ0I7WUFDakQsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFJLFFBQVE7WUFDekMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFJLFdBQVc7WUFDNUMsT0FBTyxDQUFDLENBQUcsT0FBTyxLQUFLLENBQUMsQ0FBUyxrQkFBa0I7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsSUFBSSxrQkFBa0I7UUFDcEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQztZQUM3QixLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDO1lBQzdCLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxXQUFXLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUcsT0FBTyxXQUFXLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBSSxhQUFhO1FBQ2YsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQztZQUNoQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDO1lBQzVCLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxXQUFXLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUcsT0FBTyxTQUFTLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFUyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWxCLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRW5DLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxxRkFBcUY7SUFDckYsWUFBWSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsUUFBUSxLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RCxZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLEdBQUcsSUFBSTtnQkFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksSUFBSSxHQUFHLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDbkUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDckQsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUYsQ0FBQzthQUFNLENBQUM7WUFBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sa0NBQWtDLENBQUM7UUFDckYsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQzVFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7d0dBN0lVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLGtYQTBCWixrQkFBa0Isa0RBcEh6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdGVCwyREF6RlMsWUFBWSxzYUFBRSxXQUFXLCtWQUFFLG1CQUFtQixnU0FBRSxjQUFjOzs0RkEyRjdELGtCQUFrQjtrQkE5RjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO29CQUN6RSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3RlQ7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFlK0IsYUFBYTtzQkFBakQsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRzFCLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZiwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHtQYWdpbmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7VG9sbGVDZWxsRGlyZWN0aXZlfSBmcm9tICcuL3RvbGxlLWNlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7SW5wdXRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW4ge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBjbGFzcz86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtZGF0YS10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBQYWdpbmF0aW9uQ29tcG9uZW50LCBJbnB1dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInNwYWNlLXktNFwiPlxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaGFibGVcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTJcIj5cbiAgICAgICAgPHRvbGxlLWlucHV0XG4gICAgICAgICAgW3NpemVdPVwic2l6ZSA9PT0gJ2xnJyA/ICdkZWZhdWx0JyA6ICdzbSdcIlxuICAgICAgICAgIGNsYXNzPVwibWF4LXctc21cIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHJlY29yZHMuLi5cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goKVwiPlxuICAgICAgICAgIDxpIHByZWZpeCBjbGFzcz1cInJpLXNlYXJjaC1saW5lXCI+PC9pPlxuICAgICAgICA8L3RvbGxlLWlucHV0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy1zbVwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgICAgIDx0aGVhZCBjbGFzcz1cImJvcmRlci1iIGJnLW11dGVkLzMwXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aCAqbmdJZj1cImV4cGFuZGFibGVcIiBbY2xhc3NdPVwiY24oJ3B4LTQnLCBzaXplID09PSAneHMnID8gJ3ctWzMycHhdJyA6ICd3LVs0OHB4XScpXCI+PC90aD5cbiAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAnZm9udC1tZWRpdW0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tYWxsJyxcbiAgICAgICAgICAgICAgICAgIGhlYWRlclBhZGRpbmdDbGFzcyxcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplQ2xhc3MsXG4gICAgICAgICAgICAgICAgICBjb2wuY2xhc3NcbiAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbC5zb3J0YWJsZTsgZWxzZSBzaW1wbGVIZWFkZXJcIiAoY2xpY2spPVwidG9nZ2xlU29ydChjb2wua2V5KVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgY3Vyc29yLXBvaW50ZXIgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb2wubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJnZXRTb3J0SWNvbihjb2wua2V5KVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZUhlYWRlcj57eyBjb2wubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImRpdmlkZS15IGRpdmlkZS1ib3JkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBwYWdlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiaG92ZXI6YmctbXV0ZWQvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJleHBhbmRhYmxlXCIgY2xhc3M9XCJweC00XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVSb3coaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ2ZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgaG92ZXI6YmctYWNjZW50IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgIHNpemUgPT09ICd4cycgPyAnaC02IHctNicgOiAnaC04IHctOCdcbiAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiZXhwYW5kZWRSb3dzLmhhcyhpKSA/ICdyaS1hcnJvdy1kb3duLXMtbGluZScgOiAncmktYXJyb3ctcmlnaHQtcy1saW5lJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAnYWxpZ24tbWlkZGxlIHRyYW5zaXRpb24tYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgY2VsbFBhZGRpbmdDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgY29sLmNsYXNzXG4gICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0VGVtcGxhdGUoY29sLmtleSkgYXMgY2VsbDsgZWxzZSBkZWZhdWx0VmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbY29sLmtleV0sIHJvdzogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VmFsdWU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1mb3JlZ3JvdW5kXCI+e3sgcm93W2NvbC5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImV4cGFuZGVkUm93cy5oYXMoaSlcIiBjbGFzcz1cImJnLW11dGVkLzEwXCI+XG4gICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAoZXhwYW5kYWJsZSA/IDEgOiAwKVwiIGNsYXNzPVwicC0wXCI+XG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNiBib3JkZXItYiBib3JkZXItZGFzaGVkIGJvcmRlci1ib3JkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5kZWRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHBhbmRlZFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdzogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFeHBhbmRlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBpdGFsaWNcIj5ObyBkZXRhaWxzIGF2YWlsYWJsZS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDx0b2xsZS1wYWdpbmF0aW9uXG4gICAgICAgICpuZ0lmPVwicGFnaW5hdGVcIlxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cImZpbHRlcmVkRGF0YS5sZW5ndGhcIlxuICAgICAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxuICAgICAgICBbY3VycmVudFBhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgKG9uUGFnZU51bWJlckNoYW5nZSk9XCJ1cGRhdGVQYWdlKClcIlxuICAgICAgICAob25QYWdlU2l6ZUNoYW5nZSk9XCJ1cGRhdGVQYWdlKClcIlxuICAgICAgPjwvdG9sbGUtcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgc2VhcmNoYWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHBhZ2luYXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcbiAgQElucHV0KCkgZXhwYW5kYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiAneHMnIHwgJ3NtJyB8ICdkZWZhdWx0JyB8ICdsZycgPSAnZGVmYXVsdCc7XG5cbiAgLy8gLS0tIE5FVyBJTlBVVFMgRk9SIENPTFVNTiBISURJTkcgLS0tXG4gIEBJbnB1dCgpIGFsbG93Q29sdW1uSGlkaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1NldHRpbmdzID0gdHJ1ZTsgLy8gU2V0IHRvIGZhbHNlIHRvIGhpZGUgdGhlIGdlYXIgaWNvbi9tZW51IGVudGlyZWx5XG5cbiAgLy8gVHJhY2sgdmlzaWJpbGl0eSBzdGF0ZTogeyAnY29sdW1uS2V5JzogdHJ1ZS9mYWxzZSB9XG4gIGNvbHVtblZpc2liaWxpdHk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHNob3dDb2x1bW5NZW51ID0gZmFsc2U7XG5cbiAgLy8gRmlsdGVyIGNvbHVtbnMgYmFzZWQgb24gdmlzaWJpbGl0eSBzdGF0ZVxuICBnZXQgYWN0aXZlQ29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gdGhpcy5jb2x1bW5WaXNpYmlsaXR5W2NvbC5rZXldKTtcbiAgfVxuXG4gIC8vIFRyYWNrIHdoaWNoIHJvd3MgYXJlIG9wZW5cbiAgZXhwYW5kZWRSb3dzID0gbmV3IFNldDxudW1iZXI+KCk7XG5cbiAgLy8gVXNlIENvbnRlbnRDaGlsZHJlbiB0byBncmFiIHRoZSB0b2xsZUNlbGwgdGVtcGxhdGVzIGZyb20gdGhlIHVzZXIncyBIVE1MXG4gIEBDb250ZW50Q2hpbGRyZW4oVG9sbGVDZWxsRGlyZWN0aXZlKSBjZWxsVGVtcGxhdGVzITogUXVlcnlMaXN0PFRvbGxlQ2VsbERpcmVjdGl2ZT47XG5cbiAgLy8gS2VlcCB0aGlzIGFzIGFuIElucHV0IGZvciB0aGUgbWFpbiBleHBhbnNpb24gc2xvdFxuICBASW5wdXQoKSBleHBhbmRlZFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmaWx0ZXJlZERhdGE6IGFueVtdID0gW107XG4gIHBhZ2VkRGF0YTogYW55W10gPSBbXTtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBjdXJyZW50UGFnZSA9IDE7XG4gIHNvcnRLZXkgPSAnJztcbiAgc29ydERpcjogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcblxuICAvLyAyLiBNYXAgU2l6ZSB0byBQYWRkaW5nIGZvciBDZWxsc1xuICBnZXQgY2VsbFBhZGRpbmdDbGFzcygpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zaXplKSB7XG4gICAgICBjYXNlICd4cyc6IHJldHVybiAncC0xIHB4LTQnOyAgICAvLyBVbHRyYS1jb21wYWN0XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAncC0yIHB4LTQnOyAgICAvLyBEZW5zZVxuICAgICAgY2FzZSAnbGcnOiByZXR1cm4gJ3AtNiBweC00JzsgICAgLy8gU3BhY2lvdXNcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICdwLTQnOyAgICAgICAgIC8vIFN0YW5kYXJkICgxNnB4KVxuICAgIH1cbiAgfVxuXG4gIC8vIDMuIE1hcCBTaXplIHRvIFBhZGRpbmcgZm9yIEhlYWRlciAodXN1YWxseSBzbGlnaHRseSBzaG9ydGVyIHRoYW4gY2VsbHMpXG4gIGdldCBoZWFkZXJQYWRkaW5nQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ2gtNyBweC00JztcbiAgICAgIGNhc2UgJ3NtJzogcmV0dXJuICdoLTkgcHgtNCc7XG4gICAgICBjYXNlICdsZyc6IHJldHVybiAnaC0xNCBweC00JztcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICdoLTEyIHB4LTQnO1xuICAgIH1cbiAgfVxuXG4gIC8vIDQuIE1hcCBTaXplIHRvIEZvbnQgU2l6ZXNcbiAgZ2V0IGZvbnRTaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ3RleHQtWzExcHhdJztcbiAgICAgIGNhc2UgJ3NtJzogcmV0dXJuICd0ZXh0LXhzJztcbiAgICAgIGNhc2UgJ2xnJzogcmV0dXJuICd0ZXh0LWJhc2UnO1xuICAgICAgZGVmYXVsdDogICByZXR1cm4gJ3RleHQtc20nO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbiA9IGNuO1xuXG4gIG5nT25Jbml0KCkgeyB0aGlzLnJlZnJlc2hUYWJsZSgpOyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuICAgIGlmIChjaGFuZ2VzWydjb2x1bW5zJ10pIHsgdGhpcy5pbml0aWFsaXplVmlzaWJpbGl0eSgpOyB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVWaXNpYmlsaXR5KCkge1xuICAgIC8vIERlZmF1bHQgYWxsIGNvbHVtbnMgdG8gdmlzaWJsZSBpZiBub3QgYWxyZWFkeSBzZXRcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgaWYgKHRoaXMuY29sdW1uVmlzaWJpbGl0eVtjb2wua2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eVtjb2wua2V5XSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0gU2VhcmNoICYgU29ydCAmIFBhZ2UgTG9naWMgLS0tXG4gIC8vIChZb3VyIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIG9mIGFwcGx5U2VhcmNoLCBhcHBseVNvcnQsIGFuZCB1cGRhdGVQYWdlIGdvZXMgaGVyZSlcbiAgcmVmcmVzaFRhYmxlKCkgeyB0aGlzLmFwcGx5U2VhcmNoKCk7IHRoaXMuYXBwbHlTb3J0KCk7IHRoaXMudXBkYXRlUGFnZSgpOyB9XG4gIG9uU2VhcmNoKCkgeyB0aGlzLmN1cnJlbnRQYWdlID0gMTsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuXG4gIHRvZ2dsZUNvbHVtbihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eVtrZXldID0gIXRoaXMuY29sdW1uVmlzaWJpbGl0eVtrZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkgeyB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFdOyByZXR1cm47IH1cbiAgICBjb25zdCBxID0gdGhpcy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKHJvdyA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhyb3cpLnNvbWUodmFsID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTb3J0KCkge1xuICAgIGlmICghdGhpcy5zb3J0S2V5IHx8ICF0aGlzLnNvcnREaXIpIHJldHVybjtcbiAgICB0aGlzLmZpbHRlcmVkRGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRLZXldOyBjb25zdCB2YWxCID0gYlt0aGlzLnNvcnRLZXldO1xuICAgICAgaWYgKHZhbEEgPCB2YWxCKSByZXR1cm4gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgIGlmICh2YWxBID4gdmFsQikgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnBhZ2luYXRlKSB7IHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGE7IHJldHVybjsgfVxuICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvLyAtLS0gSGVscGVycyAtLS1cbiAgdG9nZ2xlU29ydChrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvcnRLZXkgPT09IGtleSkge1xuICAgICAgdGhpcy5zb3J0RGlyID0gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/ICdkZXNjJyA6IHRoaXMuc29ydERpciA9PT0gJ2Rlc2MnID8gbnVsbCA6ICdhc2MnO1xuICAgIH0gZWxzZSB7IHRoaXMuc29ydEtleSA9IGtleTsgdGhpcy5zb3J0RGlyID0gJ2FzYyc7IH1cbiAgICB0aGlzLnJlZnJlc2hUYWJsZSgpO1xuICB9XG5cbiAgZ2V0U29ydEljb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb3J0S2V5ICE9PSBrZXkgfHwgIXRoaXMuc29ydERpcikgcmV0dXJuICdyaS1hcnJvdy11cC1kb3duLWxpbmUgb3BhY2l0eS0zMCc7XG4gICAgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAncmktYXJyb3ctdXAtbGluZScgOiAncmktYXJyb3ctZG93bi1saW5lJztcbiAgfVxuXG4gIHRvZ2dsZVJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWRSb3dzLmhhcyhpbmRleCkpIHRoaXMuZXhwYW5kZWRSb3dzLmRlbGV0ZShpbmRleCk7XG4gICAgZWxzZSB0aGlzLmV4cGFuZGVkUm93cy5hZGQoaW5kZXgpO1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNlbGwgdGVtcGxhdGVcbiAgZ2V0VGVtcGxhdGUoa2V5OiBzdHJpbmcpOiBUb2xsZUNlbGxEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNlbGxUZW1wbGF0ZXM/LmZpbmQodCA9PiB0Lm5hbWUgPT09IGtleSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -139,7 +139,7 @@ export class DateRangePickerComponent {
|
|
|
139
139
|
></tolle-range-calendar>
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
142
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["
|
|
142
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
|
|
143
143
|
}
|
|
144
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
145
145
|
type: Component,
|