ngx-form-draft 2.2.11 → 2.2.12
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/LICENSE +21 -21
- package/README.md +206 -206
- package/esm2020/form-draft-banner.component.mjs +84 -84
- package/esm2020/form-draft.directive.mjs +267 -267
- package/esm2020/form-draft.service.mjs +92 -92
- package/esm2020/index.mjs +4 -4
- package/esm2020/ngx-form-draft.mjs +4 -4
- package/esm2020/ngx-form-draft.module.mjs +19 -19
- package/fesm2015/ngx-form-draft.mjs +446 -446
- package/fesm2015/ngx-form-draft.mjs.map +1 -1
- package/fesm2020/ngx-form-draft.mjs +439 -439
- package/fesm2020/ngx-form-draft.mjs.map +1 -1
- package/form-draft-banner.component.d.ts +14 -14
- package/form-draft.directive.d.ts +56 -56
- package/form-draft.service.d.ts +35 -35
- package/index.d.ts +4 -4
- package/ngx-form-draft.module.d.ts +9 -9
- package/package.json +1 -1
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class FormDraftBannerComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.visible = false;
|
|
7
|
-
this.timeLabel = '';
|
|
8
|
-
this.isRestored = false;
|
|
9
|
-
this.restoredText = 'Draft restored';
|
|
10
|
-
this.savedText = 'Draft saved';
|
|
11
|
-
this.savedLabel = 'saved';
|
|
12
|
-
this.discardText = 'Discard';
|
|
13
|
-
this.discard = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
FormDraftBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
FormDraftBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FormDraftBannerComponent, selector: "ngx-form-draft-banner", inputs: { visible: "visible", timeLabel: "timeLabel", isRestored: "isRestored", restoredText: "restoredText", savedText: "savedText", savedLabel: "savedLabel", discardText: "discardText" }, outputs: { discard: "discard" }, ngImport: i0, template: `
|
|
18
|
-
<div class="form-draft-banner" *ngIf="visible">
|
|
19
|
-
<div class="form-draft-banner__icon">
|
|
20
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
21
|
-
<path d="M12 8V12L14.5 14.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
22
|
-
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="2"/>
|
|
23
|
-
</svg>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="form-draft-banner__content">
|
|
26
|
-
<span class="form-draft-banner__text">
|
|
27
|
-
<span *ngIf="isRestored">{{ restoredText }}</span>
|
|
28
|
-
<span *ngIf="!isRestored">{{ savedText }}</span>
|
|
29
|
-
<span class="form-draft-banner__time" *ngIf="timeLabel && isRestored">
|
|
30
|
-
· {{ savedLabel }} {{ timeLabel }}
|
|
31
|
-
</span>
|
|
32
|
-
</span>
|
|
33
|
-
</div>
|
|
34
|
-
<div class="form-draft-banner__actions">
|
|
35
|
-
<button class="form-draft-banner__btn form-draft-banner__btn--discard" (click)="discard.emit()" type="button">
|
|
36
|
-
✕ {{ discardText }}
|
|
37
|
-
</button>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
`, isInline: true, styles: [":host{display:block;width:100%}.form-draft-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:8px;background:linear-gradient(135deg,#eef6ff 0%,#f0f4ff 100%);border:1px solid #c5ddf8;box-shadow:0 2px 8px #128ad614;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-draft-banner__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#128ad6,#22b9ff);color:#fff;flex-shrink:0}.form-draft-banner__content{flex:1;min-width:0}.form-draft-banner__text{font-size:13px;font-weight:600;color:#1a3a5c}.form-draft-banner__time{font-weight:400;color:#6b8aaa;font-size:12px}.form-draft-banner__actions{flex-shrink:0}.form-draft-banner__btn{border:none;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.form-draft-banner__btn--discard{background:transparent;color:#8899a6;border:1px solid #d0dce6}.form-draft-banner__btn--discard:hover{background:#fef2f2;color:#e62e43;border-color:#e62e43}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftBannerComponent, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'ngx-form-draft-banner', template: `
|
|
44
|
-
<div class="form-draft-banner" *ngIf="visible">
|
|
45
|
-
<div class="form-draft-banner__icon">
|
|
46
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
47
|
-
<path d="M12 8V12L14.5 14.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
48
|
-
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="2"/>
|
|
49
|
-
</svg>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="form-draft-banner__content">
|
|
52
|
-
<span class="form-draft-banner__text">
|
|
53
|
-
<span *ngIf="isRestored">{{ restoredText }}</span>
|
|
54
|
-
<span *ngIf="!isRestored">{{ savedText }}</span>
|
|
55
|
-
<span class="form-draft-banner__time" *ngIf="timeLabel && isRestored">
|
|
56
|
-
· {{ savedLabel }} {{ timeLabel }}
|
|
57
|
-
</span>
|
|
58
|
-
</span>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="form-draft-banner__actions">
|
|
61
|
-
<button class="form-draft-banner__btn form-draft-banner__btn--discard" (click)="discard.emit()" type="button">
|
|
62
|
-
✕ {{ discardText }}
|
|
63
|
-
</button>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%}.form-draft-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:8px;background:linear-gradient(135deg,#eef6ff 0%,#f0f4ff 100%);border:1px solid #c5ddf8;box-shadow:0 2px 8px #128ad614;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-draft-banner__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#128ad6,#22b9ff);color:#fff;flex-shrink:0}.form-draft-banner__content{flex:1;min-width:0}.form-draft-banner__text{font-size:13px;font-weight:600;color:#1a3a5c}.form-draft-banner__time{font-weight:400;color:#6b8aaa;font-size:12px}.form-draft-banner__actions{flex-shrink:0}.form-draft-banner__btn{border:none;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.form-draft-banner__btn--discard{background:transparent;color:#8899a6;border:1px solid #d0dce6}.form-draft-banner__btn--discard:hover{background:#fef2f2;color:#e62e43;border-color:#e62e43}\n"] }]
|
|
67
|
-
}], propDecorators: { visible: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], timeLabel: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], isRestored: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], restoredText: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], savedText: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], savedLabel: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], discardText: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], discard: [{
|
|
82
|
-
type: Output
|
|
83
|
-
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class FormDraftBannerComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.visible = false;
|
|
7
|
+
this.timeLabel = '';
|
|
8
|
+
this.isRestored = false;
|
|
9
|
+
this.restoredText = 'Draft restored';
|
|
10
|
+
this.savedText = 'Draft saved';
|
|
11
|
+
this.savedLabel = 'saved';
|
|
12
|
+
this.discardText = 'Discard';
|
|
13
|
+
this.discard = new EventEmitter();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
FormDraftBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
FormDraftBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FormDraftBannerComponent, selector: "ngx-form-draft-banner", inputs: { visible: "visible", timeLabel: "timeLabel", isRestored: "isRestored", restoredText: "restoredText", savedText: "savedText", savedLabel: "savedLabel", discardText: "discardText" }, outputs: { discard: "discard" }, ngImport: i0, template: `
|
|
18
|
+
<div class="form-draft-banner" *ngIf="visible">
|
|
19
|
+
<div class="form-draft-banner__icon">
|
|
20
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
21
|
+
<path d="M12 8V12L14.5 14.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
22
|
+
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="2"/>
|
|
23
|
+
</svg>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="form-draft-banner__content">
|
|
26
|
+
<span class="form-draft-banner__text">
|
|
27
|
+
<span *ngIf="isRestored">{{ restoredText }}</span>
|
|
28
|
+
<span *ngIf="!isRestored">{{ savedText }}</span>
|
|
29
|
+
<span class="form-draft-banner__time" *ngIf="timeLabel && isRestored">
|
|
30
|
+
· {{ savedLabel }} {{ timeLabel }}
|
|
31
|
+
</span>
|
|
32
|
+
</span>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="form-draft-banner__actions">
|
|
35
|
+
<button class="form-draft-banner__btn form-draft-banner__btn--discard" (click)="discard.emit()" type="button">
|
|
36
|
+
✕ {{ discardText }}
|
|
37
|
+
</button>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
`, isInline: true, styles: [":host{display:block;width:100%}.form-draft-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:8px;background:linear-gradient(135deg,#eef6ff 0%,#f0f4ff 100%);border:1px solid #c5ddf8;box-shadow:0 2px 8px #128ad614;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-draft-banner__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#128ad6,#22b9ff);color:#fff;flex-shrink:0}.form-draft-banner__content{flex:1;min-width:0}.form-draft-banner__text{font-size:13px;font-weight:600;color:#1a3a5c}.form-draft-banner__time{font-weight:400;color:#6b8aaa;font-size:12px}.form-draft-banner__actions{flex-shrink:0}.form-draft-banner__btn{border:none;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.form-draft-banner__btn--discard{background:transparent;color:#8899a6;border:1px solid #d0dce6}.form-draft-banner__btn--discard:hover{background:#fef2f2;color:#e62e43;border-color:#e62e43}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormDraftBannerComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'ngx-form-draft-banner', template: `
|
|
44
|
+
<div class="form-draft-banner" *ngIf="visible">
|
|
45
|
+
<div class="form-draft-banner__icon">
|
|
46
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
47
|
+
<path d="M12 8V12L14.5 14.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
48
|
+
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="2"/>
|
|
49
|
+
</svg>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="form-draft-banner__content">
|
|
52
|
+
<span class="form-draft-banner__text">
|
|
53
|
+
<span *ngIf="isRestored">{{ restoredText }}</span>
|
|
54
|
+
<span *ngIf="!isRestored">{{ savedText }}</span>
|
|
55
|
+
<span class="form-draft-banner__time" *ngIf="timeLabel && isRestored">
|
|
56
|
+
· {{ savedLabel }} {{ timeLabel }}
|
|
57
|
+
</span>
|
|
58
|
+
</span>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="form-draft-banner__actions">
|
|
61
|
+
<button class="form-draft-banner__btn form-draft-banner__btn--discard" (click)="discard.emit()" type="button">
|
|
62
|
+
✕ {{ discardText }}
|
|
63
|
+
</button>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%}.form-draft-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border-radius:8px;background:linear-gradient(135deg,#eef6ff 0%,#f0f4ff 100%);border:1px solid #c5ddf8;box-shadow:0 2px 8px #128ad614;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-draft-banner__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#128ad6,#22b9ff);color:#fff;flex-shrink:0}.form-draft-banner__content{flex:1;min-width:0}.form-draft-banner__text{font-size:13px;font-weight:600;color:#1a3a5c}.form-draft-banner__time{font-weight:400;color:#6b8aaa;font-size:12px}.form-draft-banner__actions{flex-shrink:0}.form-draft-banner__btn{border:none;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.form-draft-banner__btn--discard{background:transparent;color:#8899a6;border:1px solid #d0dce6}.form-draft-banner__btn--discard:hover{background:#fef2f2;color:#e62e43;border-color:#e62e43}\n"] }]
|
|
67
|
+
}], propDecorators: { visible: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], timeLabel: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], isRestored: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], restoredText: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], savedText: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], savedLabel: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], discardText: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], discard: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kcmFmdC1iYW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm0tZHJhZnQtYmFubmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF5RGhHLE1BQU0sT0FBTyx3QkFBd0I7SUF2RHJDO1FBd0RXLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNoQyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBQzFCLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDdkIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FDOUM7O3FIQVRZLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDRSQXJEekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUOzJGQThCVSx3QkFBd0I7a0JBdkRwQyxTQUFTOytCQUNFLHVCQUF1QixZQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQsbUJBNEJnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZm9ybS1kcmFmdC1iYW5uZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWRyYWZ0LWJhbm5lclwiICpuZ0lmPVwidmlzaWJsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZHJhZnQtYmFubmVyX19pY29uXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgOFYxMkwxNC41IDE0LjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcmFmdC1iYW5uZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWRyYWZ0LWJhbm5lcl9fdGV4dFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNSZXN0b3JlZFwiPnt7IHJlc3RvcmVkVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc1Jlc3RvcmVkXCI+e3sgc2F2ZWRUZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1kcmFmdC1iYW5uZXJfX3RpbWVcIiAqbmdJZj1cInRpbWVMYWJlbCAmJiBpc1Jlc3RvcmVkXCI+XG4gICAgICAgICAgICAmbWlkZG90OyB7eyBzYXZlZExhYmVsIH19IHt7IHRpbWVMYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kcmFmdC1iYW5uZXJfX2FjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZvcm0tZHJhZnQtYmFubmVyX19idG4gZm9ybS1kcmFmdC1iYW5uZXJfX2J0bi0tZGlzY2FyZFwiIChjbGljayk9XCJkaXNjYXJkLmVtaXQoKVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICDinJUge3sgZGlzY2FyZFRleHQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDpob3N0IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyB9XG4gICAgLmZvcm0tZHJhZnQtYmFubmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgcGFkZGluZzogMTBweCAxNHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWVmNmZmIDAlLCAjZjBmNGZmIDEwMCUpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2M1ZGRmODsgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTgsIDEzOCwgMjE0LCAwLjA4KTtcbiAgICAgIGFuaW1hdGlvbjogc2xpZGVEb3duIDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cbiAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgfVxuICAgIC5mb3JtLWRyYWZ0LWJhbm5lcl9faWNvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6IDMycHg7IGhlaWdodDogMzJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEyOGFkNiwgIzIyYjlmZik7IGNvbG9yOiAjZmZmOyBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLmZvcm0tZHJhZnQtYmFubmVyX19jb250ZW50IHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4gICAgLmZvcm0tZHJhZnQtYmFubmVyX190ZXh0IHsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzFhM2E1YzsgfVxuICAgIC5mb3JtLWRyYWZ0LWJhbm5lcl9fdGltZSB7IGZvbnQtd2VpZ2h0OiA0MDA7IGNvbG9yOiAjNmI4YWFhOyBmb250LXNpemU6IDEycHg7IH1cbiAgICAuZm9ybS1kcmFmdC1iYW5uZXJfX2FjdGlvbnMgeyBmbGV4LXNocmluazogMDsgfVxuICAgIC5mb3JtLWRyYWZ0LWJhbm5lcl9fYnRuIHtcbiAgICAgIGJvcmRlcjogbm9uZTsgcGFkZGluZzogNXB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDZweDsgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIH1cbiAgICAuZm9ybS1kcmFmdC1iYW5uZXJfX2J0bi0tZGlzY2FyZCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogIzg4OTlhNjsgYm9yZGVyOiAxcHggc29saWQgI2QwZGNlNjsgfVxuICAgIC5mb3JtLWRyYWZ0LWJhbm5lcl9fYnRuLS1kaXNjYXJkOmhvdmVyIHsgYmFja2dyb3VuZDogI2ZlZjJmMjsgY29sb3I6ICNlNjJlNDM7IGJvcmRlci1jb2xvcjogI2U2MmU0MzsgfVxuICBgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EcmFmdEJhbm5lckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGltZUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGlzUmVzdG9yZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzdG9yZWRUZXh0ID0gJ0RyYWZ0IHJlc3RvcmVkJztcbiAgQElucHV0KCkgc2F2ZWRUZXh0ID0gJ0RyYWZ0IHNhdmVkJztcbiAgQElucHV0KCkgc2F2ZWRMYWJlbCA9ICdzYXZlZCc7XG4gIEBJbnB1dCgpIGRpc2NhcmRUZXh0ID0gJ0Rpc2NhcmQnO1xuICBAT3V0cHV0KCkgZGlzY2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiJdfQ==
|