@skyux/progress-indicator 5.0.3 → 5.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/README.md +6 -4
- package/documentation.json +123 -14
- package/esm2015/index.js +18 -0
- package/esm2015/index.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-item/progress-indicator-item.component.js +74 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-item/progress-indicator-item.component.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.js +223 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.js +59 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.js.map +1 -0
- package/esm2015/{modules → lib/modules}/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker.component.js +3 -2
- package/esm2015/lib/modules/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker.component.js.map +1 -0
- package/esm2015/{modules → lib/modules}/progress-indicator/progress-indicator-title/progress-indicator-title.component.js +1 -1
- package/esm2015/lib/modules/progress-indicator/progress-indicator-title/progress-indicator-title.component.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator.component.js +317 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator.component.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator.module.js +65 -0
- package/esm2015/lib/modules/progress-indicator/progress-indicator.module.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-action-click-args.js +2 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-action-click-args.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-action-click-progress-handler.js +14 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-action-click-progress-handler.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-change.js +2 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-change.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-display-mode-type.js +2 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-display-mode-type.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-item-status.js +20 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-item-status.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-message-type.js +28 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-message-type.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-message.js +2 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-message.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-mode.js +16 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-mode.js.map +1 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-nav-button-type.js +2 -0
- package/esm2015/lib/modules/progress-indicator/types/progress-indicator-nav-button-type.js.map +1 -0
- package/esm2015/lib/modules/shared/sky-progress-indicator-resources.module.js +50 -0
- package/esm2015/lib/modules/shared/sky-progress-indicator-resources.module.js.map +1 -0
- package/esm2015/skyux-progress-indicator.js +2 -2
- package/esm2015/skyux-progress-indicator.js.map +1 -0
- package/fesm2015/skyux-progress-indicator.js +1 -1
- package/fesm2015/skyux-progress-indicator.js.map +1 -1
- package/index.d.ts +15 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator-item/progress-indicator-item.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator-status-marker/progress-indicator-status-marker.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator-title/progress-indicator-title.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator.component.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/progress-indicator.module.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-action-click-args.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-action-click-progress-handler.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-change.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-display-mode-type.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-item-status.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-message-type.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-message.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-mode.d.ts +0 -0
- package/{modules → lib/modules}/progress-indicator/types/progress-indicator-nav-button-type.d.ts +0 -0
- package/{modules → lib/modules}/shared/sky-progress-indicator-resources.module.d.ts +0 -0
- package/package.json +18 -4
- package/skyux-progress-indicator.d.ts +1 -1
- package/LICENSE +0 -21
- package/esm2015/modules/progress-indicator/progress-indicator-item/progress-indicator-item.component.js +0 -74
- package/esm2015/modules/progress-indicator/progress-indicator-nav-button/progress-indicator-nav-button.component.js +0 -222
- package/esm2015/modules/progress-indicator/progress-indicator-reset-button/progress-indicator-reset-button.component.js +0 -58
- package/esm2015/modules/progress-indicator/progress-indicator.component.js +0 -316
- package/esm2015/modules/progress-indicator/progress-indicator.module.js +0 -65
- package/esm2015/modules/progress-indicator/types/progress-indicator-action-click-args.js +0 -2
- package/esm2015/modules/progress-indicator/types/progress-indicator-action-click-progress-handler.js +0 -14
- package/esm2015/modules/progress-indicator/types/progress-indicator-change.js +0 -2
- package/esm2015/modules/progress-indicator/types/progress-indicator-display-mode-type.js +0 -2
- package/esm2015/modules/progress-indicator/types/progress-indicator-item-status.js +0 -20
- package/esm2015/modules/progress-indicator/types/progress-indicator-message-type.js +0 -28
- package/esm2015/modules/progress-indicator/types/progress-indicator-message.js +0 -2
- package/esm2015/modules/progress-indicator/types/progress-indicator-mode.js +0 -16
- package/esm2015/modules/progress-indicator/types/progress-indicator-nav-button-type.js +0 -2
- package/esm2015/modules/shared/sky-progress-indicator-resources.module.js +0 -50
- package/esm2015/public-api.js +0 -18
- package/public-api.d.ts +0 -15
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { SkyProgressIndicatorActionClickProgressHandler } from '../types/progress-indicator-action-click-progress-handler';
|
|
5
|
-
import { SkyProgressIndicatorMessageType } from '../types/progress-indicator-message-type';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../progress-indicator.component";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@skyux/theme";
|
|
10
|
-
import * as i4 from "@skyux/i18n";
|
|
11
|
-
/**
|
|
12
|
-
* Displays a button to navigate the steps in modal wizards. We recommend against using it in
|
|
13
|
-
* passive progress indicators and waterfall progress indicators.
|
|
14
|
-
*/
|
|
15
|
-
export class SkyProgressIndicatorNavButtonComponent {
|
|
16
|
-
constructor(changeDetector, parentComponent) {
|
|
17
|
-
this.changeDetector = changeDetector;
|
|
18
|
-
this.parentComponent = parentComponent;
|
|
19
|
-
/**
|
|
20
|
-
* Fires when users select the nav button and emits a `SkyProgressIndicatorActionClickArgs`
|
|
21
|
-
* object that is passed into the callback function to allow consumers to decide whether
|
|
22
|
-
* the button’s action should complete successfully.
|
|
23
|
-
*/
|
|
24
|
-
this.actionClick = new EventEmitter();
|
|
25
|
-
this.ngUnsubscribe = new Subject();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Specifies the type of nav button to include.
|
|
29
|
-
* The valid options are `"finish"`, `"next"`, `"previous"`, and `"reset"`.
|
|
30
|
-
* @default "next"
|
|
31
|
-
*/
|
|
32
|
-
set buttonType(value) {
|
|
33
|
-
this._buttonType = value;
|
|
34
|
-
}
|
|
35
|
-
get buttonType() {
|
|
36
|
-
if (this._buttonType === undefined) {
|
|
37
|
-
return 'next';
|
|
38
|
-
}
|
|
39
|
-
return this._buttonType;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Indicates whether to disable the nav button.
|
|
43
|
-
* @default false
|
|
44
|
-
*/
|
|
45
|
-
set disabled(value) {
|
|
46
|
-
this._disabled = value;
|
|
47
|
-
this.changeDetector.markForCheck();
|
|
48
|
-
}
|
|
49
|
-
get disabled() {
|
|
50
|
-
const buttonType = this.buttonType;
|
|
51
|
-
const activeIndex = this.lastProgressChange.activeIndex;
|
|
52
|
-
const isLastStep = activeIndex === this.lastProgressChange.itemStatuses.length - 1;
|
|
53
|
-
if (buttonType === 'previous' && activeIndex === 0) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
if (buttonType === 'next' && isLastStep) {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
return this._disabled || false;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Specifies the progress indicator component to associate with the nav button.
|
|
63
|
-
* @required
|
|
64
|
-
*/
|
|
65
|
-
set progressIndicator(value) {
|
|
66
|
-
this._progressIndicator = value;
|
|
67
|
-
if (value) {
|
|
68
|
-
if (this.buttonType === 'finish') {
|
|
69
|
-
// The `hasFinishButton` field was added to support legacy API.
|
|
70
|
-
// Some implementations only include a next button; we cannot
|
|
71
|
-
// assume that every implementation includes both a finish button and a next button.
|
|
72
|
-
this._progressIndicator.hasFinishButton = true;
|
|
73
|
-
}
|
|
74
|
-
this._progressIndicator.progressChanges
|
|
75
|
-
.pipe(distinctUntilChanged(), takeUntil(this.ngUnsubscribe))
|
|
76
|
-
.subscribe((change) => {
|
|
77
|
-
this.lastProgressChange = change;
|
|
78
|
-
this.updateButtonVisibility(change);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
if (!this.parentTimeout) {
|
|
83
|
-
this.parentTimeout = window.setTimeout(() => {
|
|
84
|
-
/* istanbul ignore else */
|
|
85
|
-
if (!this.progressIndicator) {
|
|
86
|
-
throw new Error('The `<sky-progress-indicator-nav-button>` component requires a reference to ' +
|
|
87
|
-
'the `<sky-progress-indicator>` component it controls. For example:\n' +
|
|
88
|
-
'<sky-progress-indicator\n' +
|
|
89
|
-
' #myProgressIndicator\n' +
|
|
90
|
-
'>\n' +
|
|
91
|
-
'</sky-progress-indicator>\n' +
|
|
92
|
-
'<sky-progress-indicator-nav-button\n' +
|
|
93
|
-
' [progressIndicator]="myProgressIndicator"\n' +
|
|
94
|
-
'>\n' +
|
|
95
|
-
'</sky-progress-indicator-nav-button>');
|
|
96
|
-
}
|
|
97
|
-
}, 50);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
get progressIndicator() {
|
|
102
|
-
return this._progressIndicator;
|
|
103
|
-
}
|
|
104
|
-
get cssClassNames() {
|
|
105
|
-
const buttonType = this.buttonType;
|
|
106
|
-
const classNames = [`sky-progress-indicator-nav-button-${this.buttonType}`];
|
|
107
|
-
switch (buttonType) {
|
|
108
|
-
case 'next':
|
|
109
|
-
case 'finish':
|
|
110
|
-
classNames.push('sky-btn-primary');
|
|
111
|
-
break;
|
|
112
|
-
case 'reset':
|
|
113
|
-
classNames.push('sky-btn-link');
|
|
114
|
-
break;
|
|
115
|
-
default:
|
|
116
|
-
classNames.push('sky-btn-default');
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
return classNames.join(' ');
|
|
120
|
-
}
|
|
121
|
-
get buttonLabelResourceString() {
|
|
122
|
-
return `skyux_progress_indicator_navigator_${this.buttonType}`;
|
|
123
|
-
}
|
|
124
|
-
set isVisible(value) {
|
|
125
|
-
this._isVisible = value;
|
|
126
|
-
this.changeDetector.markForCheck();
|
|
127
|
-
}
|
|
128
|
-
get isVisible() {
|
|
129
|
-
return this._isVisible || false;
|
|
130
|
-
}
|
|
131
|
-
ngAfterViewInit() {
|
|
132
|
-
if (!this.progressIndicator && this.parentComponent) {
|
|
133
|
-
this.progressIndicator = this.parentComponent;
|
|
134
|
-
}
|
|
135
|
-
else if (!this.progressIndicator) {
|
|
136
|
-
this.progressIndicator = undefined;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
ngOnDestroy() {
|
|
140
|
-
this.ngUnsubscribe.next();
|
|
141
|
-
this.ngUnsubscribe.complete();
|
|
142
|
-
this.actionClick.complete();
|
|
143
|
-
}
|
|
144
|
-
onClick(event) {
|
|
145
|
-
event.preventDefault();
|
|
146
|
-
let type;
|
|
147
|
-
switch (this.buttonType) {
|
|
148
|
-
case 'finish':
|
|
149
|
-
type = SkyProgressIndicatorMessageType.Finish;
|
|
150
|
-
break;
|
|
151
|
-
case 'next':
|
|
152
|
-
type = SkyProgressIndicatorMessageType.Progress;
|
|
153
|
-
break;
|
|
154
|
-
case 'previous':
|
|
155
|
-
type = SkyProgressIndicatorMessageType.Regress;
|
|
156
|
-
break;
|
|
157
|
-
case 'reset':
|
|
158
|
-
type = SkyProgressIndicatorMessageType.Reset;
|
|
159
|
-
break;
|
|
160
|
-
default:
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
// If the consumer has subscribed to the `actionClick` event,
|
|
164
|
-
// allow them to decide when to advance to the next step.
|
|
165
|
-
if (this.actionClick.observers.length > 0) {
|
|
166
|
-
this.actionClick.emit({
|
|
167
|
-
event,
|
|
168
|
-
progressHandler: new SkyProgressIndicatorActionClickProgressHandler(() => {
|
|
169
|
-
this.progressIndicator.sendMessage({ type });
|
|
170
|
-
}),
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
this.progressIndicator.sendMessage({ type });
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
updateButtonVisibility(change) {
|
|
178
|
-
const isLastStep = change.activeIndex === change.itemStatuses.length - 1;
|
|
179
|
-
const buttonType = this.buttonType;
|
|
180
|
-
// Hide the button if all steps are complete
|
|
181
|
-
// (except for the reset button)
|
|
182
|
-
if (buttonType !== 'reset' && change.isComplete) {
|
|
183
|
-
this.isVisible = false;
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
if (buttonType === 'finish') {
|
|
187
|
-
this.isVisible = isLastStep;
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
// Hide the next button on the last step only if a finish button exists.
|
|
191
|
-
if (buttonType === 'next' &&
|
|
192
|
-
isLastStep &&
|
|
193
|
-
this.progressIndicator.hasFinishButton) {
|
|
194
|
-
this.isVisible = false;
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
this.isVisible = true;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
SkyProgressIndicatorNavButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyProgressIndicatorNavButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyProgressIndicatorComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
201
|
-
SkyProgressIndicatorNavButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyProgressIndicatorNavButtonComponent, selector: "sky-progress-indicator-nav-button", inputs: { buttonText: "buttonText", buttonType: "buttonType", disabled: "disabled", progressIndicator: "progressIndicator" }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<button\n *ngIf=\"isVisible\"\n class=\"sky-btn\"\n type=\"button\"\n [disabled]=\"disabled\"\n [ngClass]=\"cssClassNames\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-compact': 'default',\n 'sky-btn-link': 'modern'\n }\"\n (click)=\"onClick($event)\"\n>\n {{ buttonText || (buttonLabelResourceString | skyLibResources) }}\n</button>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i4.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyProgressIndicatorNavButtonComponent, decorators: [{
|
|
203
|
-
type: Component,
|
|
204
|
-
args: [{
|
|
205
|
-
selector: 'sky-progress-indicator-nav-button',
|
|
206
|
-
templateUrl: './progress-indicator-nav-button.component.html',
|
|
207
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
208
|
-
}]
|
|
209
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyProgressIndicatorComponent, decorators: [{
|
|
210
|
-
type: Optional
|
|
211
|
-
}] }]; }, propDecorators: { buttonText: [{
|
|
212
|
-
type: Input
|
|
213
|
-
}], buttonType: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], disabled: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], progressIndicator: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], actionClick: [{
|
|
220
|
-
type: Output
|
|
221
|
-
}] } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3NyYy9tb2R1bGVzL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3ItbmF2LWJ1dHRvbi9wcm9ncmVzcy1pbmRpY2F0b3ItbmF2LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm9ncmVzcy1pbmRpY2F0b3Ivc3JjL21vZHVsZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci1uYXYtYnV0dG9uL3Byb2dyZXNzLWluZGljYXRvci1uYXYtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUkzSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7O0FBTTNGOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxzQ0FBc0M7SUE2SmpELFlBQ1UsY0FBaUMsRUFDckIsZUFBOEM7UUFEMUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUErQjtRQXZEcEU7Ozs7V0FJRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUF1Q3JFLGtCQUFhLEdBQUcsSUFB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O1FBQzVDLGdDQUFnQztRQUNoQyxJQUFJLFVBQVUsS0FBSyxPQUFPLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBRUQsd0VBQXdFO1FBQ3hFLElBQ0UsVUFBVSxLQUFLLE1BQU07WUFDckIsVUFBVTtZQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQ3RDO1lBQ0EsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQzs7b0lBclBVLHNDQUFzQzt3SEFBdEMsc0NBQXNDLGdQQ3JDbkQsK1ZBY0E7NEZEdUJhLHNDQUFzQztrQkFMbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxXQUFXLEVBQUUsZ0RBQWdEO29CQUM3RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWdLSSxRQUFROzRDQXZKSixVQUFVO3NCQURoQixLQUFLO2dCQVNLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBa0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBNEJLLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFtREMsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVByb2dyZXNzSW5kaWNhdG9yQWN0aW9uQ2xpY2tBcmdzIH0gZnJvbSAnLi4vdHlwZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yLWFjdGlvbi1jbGljay1hcmdzJztcblxuaW1wb3J0IHsgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JBY3Rpb25DbGlja1Byb2dyZXNzSGFuZGxlciB9IGZyb20gJy4uL3R5cGVzL3Byb2dyZXNzLWluZGljYXRvci1hY3Rpb24tY2xpY2stcHJvZ3Jlc3MtaGFuZGxlcic7XG5cbmltcG9ydCB7IFNreVByb2dyZXNzSW5kaWNhdG9yQ2hhbmdlIH0gZnJvbSAnLi4vdHlwZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yLWNoYW5nZSc7XG5cbmltcG9ydCB7IFNreVByb2dyZXNzSW5kaWNhdG9yTWVzc2FnZVR5cGUgfSBmcm9tICcuLi90eXBlcy9wcm9ncmVzcy1pbmRpY2F0b3ItbWVzc2FnZS10eXBlJztcblxuaW1wb3J0IHsgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JOYXZCdXR0b25UeXBlIH0gZnJvbSAnLi4vdHlwZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b24tdHlwZSc7XG5cbmltcG9ydCB7IFNreVByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZ3Jlc3MtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRGlzcGxheXMgYSBidXR0b24gdG8gbmF2aWdhdGUgdGhlIHN0ZXBzIGluIG1vZGFsIHdpemFyZHMuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IHVzaW5nIGl0IGluXG4gKiBwYXNzaXZlIHByb2dyZXNzIGluZGljYXRvcnMgYW5kIHdhdGVyZmFsbCBwcm9ncmVzcyBpbmRpY2F0b3JzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JOYXZCdXR0b25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbGFiZWwgdG8gZGlzcGxheSBvbiB0aGUgbmF2IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgXCJOZXh0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBidXR0b25UZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBuYXYgYnV0dG9uIHRvIGluY2x1ZGUuXG4gICAqIFRoZSB2YWxpZCBvcHRpb25zIGFyZSBgXCJmaW5pc2hcImAsIGBcIm5leHRcImAsIGBcInByZXZpb3VzXCJgLCBhbmQgYFwicmVzZXRcImAuXG4gICAqIEBkZWZhdWx0IFwibmV4dFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJ1dHRvblR5cGUodmFsdWU6IFNreVByb2dyZXNzSW5kaWNhdG9yTmF2QnV0dG9uVHlwZSkge1xuICAgIHRoaXMuX2J1dHRvblR5cGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uVHlwZSgpOiBTa3lQcm9ncmVzc0luZGljYXRvck5hdkJ1dHRvblR5cGUge1xuICAgIGlmICh0aGlzLl9idXR0b25UeXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnbmV4dCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2J1dHRvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgbmF2IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJ1dHRvblR5cGUgPSB0aGlzLmJ1dHRvblR5cGU7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmxhc3RQcm9ncmVzc0NoYW5nZS5hY3RpdmVJbmRleDtcbiAgICBjb25zdCBpc0xhc3RTdGVwID1cbiAgICAgIGFjdGl2ZUluZGV4ID09PSB0aGlzLmxhc3RQcm9ncmVzc0NoYW5nZS5pdGVtU3RhdHVzZXMubGVuZ3RoIC0gMTtcblxuICAgIGlmIChidXR0b25UeXBlID09PSAncHJldmlvdXMnICYmIGFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uVHlwZSA9PT0gJ25leHQnICYmIGlzTGFzdFN0ZXApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHByb2dyZXNzIGluZGljYXRvciBjb21wb25lbnQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG5hdiBidXR0b24uXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwcm9ncmVzc0luZGljYXRvcih2YWx1ZTogU2t5UHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQpIHtcbiAgICB0aGlzLl9wcm9ncmVzc0luZGljYXRvciA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5idXR0b25UeXBlID09PSAnZmluaXNoJykge1xuICAgICAgICAvLyBUaGUgYGhhc0ZpbmlzaEJ1dHRvbmAgZmllbGQgd2FzIGFkZGVkIHRvIHN1cHBvcnQgbGVnYWN5IEFQSS5cbiAgICAgICAgLy8gU29tZSBpbXBsZW1lbnRhdGlvbnMgb25seSBpbmNsdWRlIGEgbmV4dCBidXR0b247IHdlIGNhbm5vdFxuICAgICAgICAvLyBhc3N1bWUgdGhhdCBldmVyeSBpbXBsZW1lbnRhdGlvbiBpbmNsdWRlcyBib3RoIGEgZmluaXNoIGJ1dHRvbiBhbmQgYSBuZXh0IGJ1dHRvbi5cbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3IuaGFzRmluaXNoQnV0dG9uID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3IucHJvZ3Jlc3NDaGFuZ2VzXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChjaGFuZ2U6IFNreVByb2dyZXNzSW5kaWNhdG9yQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sYXN0UHJvZ3Jlc3NDaGFuZ2UgPSBjaGFuZ2U7XG4gICAgICAgICAgdGhpcy51cGRhdGVCdXR0b25WaXNpYmlsaXR5KGNoYW5nZSk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMucGFyZW50VGltZW91dCkge1xuICAgICAgICB0aGlzLnBhcmVudFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoIXRoaXMucHJvZ3Jlc3NJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ1RoZSBgPHNreS1wcm9ncmVzcy1pbmRpY2F0b3ItbmF2LWJ1dHRvbj5gIGNvbXBvbmVudCByZXF1aXJlcyBhIHJlZmVyZW5jZSB0byAnICtcbiAgICAgICAgICAgICAgICAndGhlIGA8c2t5LXByb2dyZXNzLWluZGljYXRvcj5gIGNvbXBvbmVudCBpdCBjb250cm9scy4gRm9yIGV4YW1wbGU6XFxuJyArXG4gICAgICAgICAgICAgICAgJzxza3ktcHJvZ3Jlc3MtaW5kaWNhdG9yXFxuJyArXG4gICAgICAgICAgICAgICAgJyAgI215UHJvZ3Jlc3NJbmRpY2F0b3JcXG4nICtcbiAgICAgICAgICAgICAgICAnPlxcbicgK1xuICAgICAgICAgICAgICAgICc8L3NreS1wcm9ncmVzcy1pbmRpY2F0b3I+XFxuJyArXG4gICAgICAgICAgICAgICAgJzxza3ktcHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b25cXG4nICtcbiAgICAgICAgICAgICAgICAnICBbcHJvZ3Jlc3NJbmRpY2F0b3JdPVwibXlQcm9ncmVzc0luZGljYXRvclwiXFxuJyArXG4gICAgICAgICAgICAgICAgJz5cXG4nICtcbiAgICAgICAgICAgICAgICAnPC9za3ktcHJvZ3Jlc3MtaW5kaWNhdG9yLW5hdi1idXR0b24+J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByb2dyZXNzSW5kaWNhdG9yKCk6IFNreVByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fcHJvZ3Jlc3NJbmRpY2F0b3I7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIG5hdiBidXR0b24gYW5kIGVtaXRzIGEgYFNreVByb2dyZXNzSW5kaWNhdG9yQWN0aW9uQ2xpY2tBcmdzYFxuICAgKiBvYmplY3QgdGhhdCBpcyBwYXNzZWQgaW50byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYWxsb3cgY29uc3VtZXJzIHRvIGRlY2lkZSB3aGV0aGVyXG4gICAqIHRoZSBidXR0b27igJlzIGFjdGlvbiBzaG91bGQgY29tcGxldGUgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UHJvZ3Jlc3NJbmRpY2F0b3JBY3Rpb25DbGlja0FyZ3M+KCk7XG5cbiAgcHVibGljIGdldCBjc3NDbGFzc05hbWVzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYnV0dG9uVHlwZSA9IHRoaXMuYnV0dG9uVHlwZTtcblxuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbYHNreS1wcm9ncmVzcy1pbmRpY2F0b3ItbmF2LWJ1dHRvbi0ke3RoaXMuYnV0dG9uVHlwZX1gXTtcblxuICAgIHN3aXRjaCAoYnV0dG9uVHlwZSkge1xuICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICBjYXNlICdmaW5pc2gnOlxuICAgICAgICBjbGFzc05hbWVzLnB1c2goJ3NreS1idG4tcHJpbWFyeScpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICBjbGFzc05hbWVzLnB1c2goJ3NreS1idG4tbGluaycpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCdza3ktYnRuLWRlZmF1bHQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXMuam9pbignICcpO1xuICB9XG5cbiAgcHVibGljIGdldCBidXR0b25MYWJlbFJlc291cmNlU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBza3l1eF9wcm9ncmVzc19pbmRpY2F0b3JfbmF2aWdhdG9yXyR7dGhpcy5idXR0b25UeXBlfWA7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzVmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlIHx8IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBsYXN0UHJvZ3Jlc3NDaGFuZ2U6IFNreVByb2dyZXNzSW5kaWNhdG9yQ2hhbmdlO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHBhcmVudFRpbWVvdXQ6IG51bWJlcjtcblxuICBwcml2YXRlIF9idXR0b25UeXBlOiBTa3lQcm9ncmVzc0luZGljYXRvck5hdkJ1dHRvblR5cGU7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuICBwcml2YXRlIF9pc1Zpc2libGU6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Byb2dyZXNzSW5kaWNhdG9yOiBTa3lQcm9ncmVzc0luZGljYXRvckNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudENvbXBvbmVudDogU2t5UHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnRcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByb2dyZXNzSW5kaWNhdG9yICYmIHRoaXMucGFyZW50Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLnByb2dyZXNzSW5kaWNhdG9yID0gdGhpcy5wYXJlbnRDb21wb25lbnQ7XG4gICAgfSBlbHNlIGlmICghdGhpcy5wcm9ncmVzc0luZGljYXRvcikge1xuICAgICAgdGhpcy5wcm9ncmVzc0luZGljYXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBsZXQgdHlwZTogU2t5UHJvZ3Jlc3NJbmRpY2F0b3JNZXNzYWdlVHlwZTtcblxuICAgIHN3aXRjaCAodGhpcy5idXR0b25UeXBlKSB7XG4gICAgICBjYXNlICdmaW5pc2gnOlxuICAgICAgICB0eXBlID0gU2t5UHJvZ3Jlc3NJbmRpY2F0b3JNZXNzYWdlVHlwZS5GaW5pc2g7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICduZXh0JzpcbiAgICAgICAgdHlwZSA9IFNreVByb2dyZXNzSW5kaWNhdG9yTWVzc2FnZVR5cGUuUHJvZ3Jlc3M7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwcmV2aW91cyc6XG4gICAgICAgIHR5cGUgPSBTa3lQcm9ncmVzc0luZGljYXRvck1lc3NhZ2VUeXBlLlJlZ3Jlc3M7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyZXNldCc6XG4gICAgICAgIHR5cGUgPSBTa3lQcm9ncmVzc0luZGljYXRvck1lc3NhZ2VUeXBlLlJlc2V0O1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvbnN1bWVyIGhhcyBzdWJzY3JpYmVkIHRvIHRoZSBgYWN0aW9uQ2xpY2tgIGV2ZW50LFxuICAgIC8vIGFsbG93IHRoZW0gdG8gZGVjaWRlIHdoZW4gdG8gYWR2YW5jZSB0byB0aGUgbmV4dCBzdGVwLlxuICAgIGlmICh0aGlzLmFjdGlvbkNsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgICBldmVudCxcbiAgICAgICAgcHJvZ3Jlc3NIYW5kbGVyOiBuZXcgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JBY3Rpb25DbGlja1Byb2dyZXNzSGFuZGxlcihcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzSW5kaWNhdG9yLnNlbmRNZXNzYWdlKHsgdHlwZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9ncmVzc0luZGljYXRvci5zZW5kTWVzc2FnZSh7IHR5cGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVCdXR0b25WaXNpYmlsaXR5KGNoYW5nZTogU2t5UHJvZ3Jlc3NJbmRpY2F0b3JDaGFuZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBpc0xhc3RTdGVwID0gY2hhbmdlLmFjdGl2ZUluZGV4ID09PSBjaGFuZ2UuaXRlbVN0YXR1c2VzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgYnV0dG9uVHlwZSA9IHRoaXMuYnV0dG9uVHlwZTtcblxuICAgIC8vIEhpZGUgdGhlIGJ1dHRvbiBpZiBhbGwgc3RlcHMgYXJlIGNvbXBsZXRlXG4gICAgLy8gKGV4Y2VwdCBmb3IgdGhlIHJlc2V0IGJ1dHRvbilcbiAgICBpZiAoYnV0dG9uVHlwZSAhPT0gJ3Jlc2V0JyAmJiBjaGFuZ2UuaXNDb21wbGV0ZSkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uVHlwZSA9PT0gJ2ZpbmlzaCcpIHtcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gaXNMYXN0U3RlcDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHRoZSBuZXh0IGJ1dHRvbiBvbiB0aGUgbGFzdCBzdGVwIG9ubHkgaWYgYSBmaW5pc2ggYnV0dG9uIGV4aXN0cy5cbiAgICBpZiAoXG4gICAgICBidXR0b25UeXBlID09PSAnbmV4dCcgJiZcbiAgICAgIGlzTGFzdFN0ZXAgJiZcbiAgICAgIHRoaXMucHJvZ3Jlc3NJbmRpY2F0b3IuaGFzRmluaXNoQnV0dG9uXG4gICAgKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cImlzVmlzaWJsZVwiXG4gIGNsYXNzPVwic2t5LWJ0blwiXG4gIHR5cGU9XCJidXR0b25cIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbmdDbGFzc109XCJjc3NDbGFzc05hbWVzXCJcbiAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICdza3ktbWFyZ2luLWlubGluZS1jb21wYWN0JzogJ2RlZmF1bHQnLFxuICAgICdza3ktYnRuLWxpbmsnOiAnbW9kZXJuJ1xuICB9XCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIHt7IGJ1dHRvblRleHQgfHwgKGJ1dHRvbkxhYmVsUmVzb3VyY2VTdHJpbmcgfCBza3lMaWJSZXNvdXJjZXMpIH19XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { SkyProgressIndicatorMessageType } from '../types/progress-indicator-message-type';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Displays a button to mark all items in the progress indicator as incomplete and set the
|
|
6
|
-
* first item as the active item. The steps after the active item remain incomplete until
|
|
7
|
-
* users reach them in their sequential order.
|
|
8
|
-
*/
|
|
9
|
-
export class SkyProgressIndicatorResetButtonComponent {
|
|
10
|
-
constructor(changeDetector) {
|
|
11
|
-
this.changeDetector = changeDetector;
|
|
12
|
-
/**
|
|
13
|
-
* Fires when users select the reset button that marks all items as incomplete and sets the
|
|
14
|
-
* first item as the active item.
|
|
15
|
-
*/
|
|
16
|
-
this.resetClick = new EventEmitter();
|
|
17
|
-
console.warn('[Deprecation warning] The `<sky-progress-indicator-reset-button>` component is ' +
|
|
18
|
-
'deprecated. Please use the `<sky-progress-indicator-nav-button>` component instead, with ' +
|
|
19
|
-
'`buttonType` set to "reset".');
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Indicates whether to disable the reset button.
|
|
23
|
-
* @default false
|
|
24
|
-
*/
|
|
25
|
-
set disabled(value) {
|
|
26
|
-
this._disabled = value;
|
|
27
|
-
this.changeDetector.markForCheck();
|
|
28
|
-
}
|
|
29
|
-
get disabled() {
|
|
30
|
-
return this._disabled || false;
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this.resetClick.complete();
|
|
34
|
-
}
|
|
35
|
-
onClick() {
|
|
36
|
-
this.resetClick.emit();
|
|
37
|
-
this.progressIndicator.sendMessage({
|
|
38
|
-
type: SkyProgressIndicatorMessageType.Reset,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
SkyProgressIndicatorResetButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyProgressIndicatorResetButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
SkyProgressIndicatorResetButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyProgressIndicatorResetButtonComponent, selector: "sky-progress-indicator-reset-button", inputs: { disabled: "disabled", progressIndicator: "progressIndicator" }, outputs: { resetClick: "resetClick" }, ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</button>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyProgressIndicatorResetButtonComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{
|
|
47
|
-
selector: 'sky-progress-indicator-reset-button',
|
|
48
|
-
templateUrl: './progress-indicator-reset-button.component.html',
|
|
49
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
50
|
-
}]
|
|
51
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], progressIndicator: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], resetClick: [{
|
|
56
|
-
type: Output
|
|
57
|
-
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtaW5kaWNhdG9yLXJlc2V0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm9ncmVzcy1pbmRpY2F0b3Ivc3JjL21vZHVsZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci1yZXNldC1idXR0b24vcHJvZ3Jlc3MtaW5kaWNhdG9yLXJlc2V0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm9ncmVzcy1pbmRpY2F0b3Ivc3JjL21vZHVsZXMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci1yZXNldC1idXR0b24vcHJvZ3Jlc3MtaW5kaWNhdG9yLXJlc2V0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFJM0Y7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyx3Q0FBd0M7SUErQm5ELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQVRyRDs7O1dBR0c7UUFFSSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUsxQyxPQUFPLENBQUMsSUFBSSxDQUNWLGlGQUFpRjtZQUMvRSwyRkFBMkY7WUFDM0YsOEJBQThCLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBcENEOzs7T0FHRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDakMsQ0FBQztJQTBCTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7WUFDakMsSUFBSSxFQUFFLCtCQUErQixDQUFDLEtBQUs7U0FDNUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0lBakRVLHdDQUF3QzswSEFBeEMsd0NBQXdDLDRMQ3hCckQsK0pBUUE7NEZEZ0JhLHdDQUF3QztrQkFMcEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxXQUFXLEVBQUUsa0RBQWtEO29CQUMvRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d0dBT1ksUUFBUTtzQkFEbEIsS0FBSztnQkFlQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBUUMsVUFBVTtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVByb2dyZXNzSW5kaWNhdG9yTWVzc2FnZVR5cGUgfSBmcm9tICcuLi90eXBlcy9wcm9ncmVzcy1pbmRpY2F0b3ItbWVzc2FnZS10eXBlJztcblxuaW1wb3J0IHsgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50JztcblxuLyoqXG4gKiBEaXNwbGF5cyBhIGJ1dHRvbiB0byBtYXJrIGFsbCBpdGVtcyBpbiB0aGUgcHJvZ3Jlc3MgaW5kaWNhdG9yIGFzIGluY29tcGxldGUgYW5kIHNldCB0aGVcbiAqIGZpcnN0IGl0ZW0gYXMgdGhlIGFjdGl2ZSBpdGVtLiBUaGUgc3RlcHMgYWZ0ZXIgdGhlIGFjdGl2ZSBpdGVtIHJlbWFpbiBpbmNvbXBsZXRlIHVudGlsXG4gKiB1c2VycyByZWFjaCB0aGVtIGluIHRoZWlyIHNlcXVlbnRpYWwgb3JkZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1wcm9ncmVzcy1pbmRpY2F0b3ItcmVzZXQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLWluZGljYXRvci1yZXNldC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UHJvZ3Jlc3NJbmRpY2F0b3JSZXNldEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSByZXNldCBidXR0b24uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwcm9ncmVzcyBpbmRpY2F0b3IgY29tcG9uZW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoZSByZXNldCBidXR0b24uXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHByb2dyZXNzSW5kaWNhdG9yOiBTa3lQcm9ncmVzc0luZGljYXRvckNvbXBvbmVudDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHJlc2V0IGJ1dHRvbiB0aGF0IG1hcmtzIGFsbCBpdGVtcyBhcyBpbmNvbXBsZXRlIGFuZCBzZXRzIHRoZVxuICAgKiBmaXJzdCBpdGVtIGFzIHRoZSBhY3RpdmUgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVzZXRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ1tEZXByZWNhdGlvbiB3YXJuaW5nXSBUaGUgYDxza3ktcHJvZ3Jlc3MtaW5kaWNhdG9yLXJlc2V0LWJ1dHRvbj5gIGNvbXBvbmVudCBpcyAnICtcbiAgICAgICAgJ2RlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdGhlIGA8c2t5LXByb2dyZXNzLWluZGljYXRvci1uYXYtYnV0dG9uPmAgY29tcG9uZW50IGluc3RlYWQsIHdpdGggJyArXG4gICAgICAgICdgYnV0dG9uVHlwZWAgc2V0IHRvIFwicmVzZXRcIi4nXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0Q2xpY2suY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRDbGljay5lbWl0KCk7XG5cbiAgICB0aGlzLnByb2dyZXNzSW5kaWNhdG9yLnNlbmRNZXNzYWdlKHtcbiAgICAgIHR5cGU6IFNreVByb2dyZXNzSW5kaWNhdG9yTWVzc2FnZVR5cGUuUmVzZXQsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGlua1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAoY2xpY2spPVwib25DbGljaygpXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG4iXX0=
|