@skyux/lists 8.0.0-alpha.2 → 8.0.0-alpha.21
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/documentation.json +1921 -453
- package/esm2020/lib/modules/filter/filter-button.component.mjs +13 -13
- package/esm2020/lib/modules/filter/filter-inline-item.component.mjs +3 -3
- package/esm2020/lib/modules/filter/filter-inline.component.mjs +3 -3
- package/esm2020/lib/modules/filter/filter-summary-item.component.mjs +3 -3
- package/esm2020/lib/modules/filter/filter-summary.component.mjs +3 -3
- package/esm2020/lib/modules/filter/filter.module.mjs +4 -4
- package/esm2020/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.mjs +3 -3
- package/esm2020/lib/modules/infinite-scroll/infinite-scroll.component.mjs +23 -23
- package/esm2020/lib/modules/infinite-scroll/infinite-scroll.module.mjs +4 -4
- package/esm2020/lib/modules/paging/paging.component.mjs +4 -4
- package/esm2020/lib/modules/paging/paging.module.mjs +4 -4
- package/esm2020/lib/modules/repeater/repeater-adapter.service.mjs +3 -3
- package/esm2020/lib/modules/repeater/repeater-auto-scroll-options.mjs +2 -0
- package/esm2020/lib/modules/repeater/repeater-auto-scroll.service.mjs +17 -0
- package/esm2020/lib/modules/repeater/repeater-auto-scroller.mjs +2 -0
- package/esm2020/lib/modules/repeater/repeater-item-content.component.mjs +3 -3
- package/esm2020/lib/modules/repeater/repeater-item-context-menu.component.mjs +3 -3
- package/esm2020/lib/modules/repeater/repeater-item-title.component.mjs +3 -3
- package/esm2020/lib/modules/repeater/repeater-item.component.mjs +88 -86
- package/esm2020/lib/modules/repeater/repeater.component.mjs +109 -65
- package/esm2020/lib/modules/repeater/repeater.module.mjs +4 -4
- package/esm2020/lib/modules/repeater/repeater.service.mjs +4 -4
- package/esm2020/lib/modules/shared/sky-lists-resources.module.mjs +9 -7
- package/esm2020/lib/modules/sort/sort-item.component.mjs +5 -5
- package/esm2020/lib/modules/sort/sort-menu-heading.component.mjs +3 -3
- package/esm2020/lib/modules/sort/sort.component.mjs +3 -3
- package/esm2020/lib/modules/sort/sort.module.mjs +4 -4
- package/esm2020/lib/modules/sort/sort.service.mjs +3 -3
- package/esm2020/testing/filter/filter-testing.module.mjs +4 -4
- package/esm2020/testing/infinite-scroll/infinite-scroll-testing.module.mjs +4 -4
- package/esm2020/testing/paging/paging-fixture.mjs +9 -9
- package/esm2020/testing/paging/paging-testing.module.mjs +4 -4
- package/esm2020/testing/repeater/repeater-harness.mjs +1 -2
- package/esm2020/testing/repeater/repeater-item-harness.mjs +84 -4
- package/esm2020/testing/sort/sort-fixture.mjs +8 -8
- package/esm2020/testing/sort/sort-testing.module.mjs +4 -4
- package/fesm2015/skyux-lists-testing.mjs +133 -35
- package/fesm2015/skyux-lists-testing.mjs.map +1 -1
- package/fesm2015/skyux-lists.mjs +321 -259
- package/fesm2015/skyux-lists.mjs.map +1 -1
- package/fesm2020/skyux-lists-testing.mjs +114 -35
- package/fesm2020/skyux-lists-testing.mjs.map +1 -1
- package/fesm2020/skyux-lists.mjs +320 -259
- package/fesm2020/skyux-lists.mjs.map +1 -1
- package/lib/modules/repeater/repeater-auto-scroll-options.d.ts +9 -0
- package/lib/modules/repeater/repeater-auto-scroll.service.d.ts +11 -0
- package/lib/modules/repeater/repeater-auto-scroller.d.ts +6 -0
- package/lib/modules/repeater/repeater-expand-mode-type.d.ts +1 -1
- package/lib/modules/repeater/repeater-item-roles.type.d.ts +1 -1
- package/lib/modules/repeater/repeater-item.component.d.ts +2 -1
- package/lib/modules/repeater/repeater-role.type.d.ts +1 -1
- package/lib/modules/repeater/repeater.component.d.ts +6 -8
- package/lib/modules/repeater/repeater.service.d.ts +2 -2
- package/package.json +18 -16
- package/testing/filter/lists-filter-fixture-button.d.ts +1 -1
- package/testing/repeater/repeater-harness.d.ts +0 -1
- package/testing/repeater/repeater-item-harness.d.ts +37 -2
|
@@ -1,22 +1,50 @@
|
|
|
1
|
-
var _SkyRepeaterComponent_instances, _SkyRepeaterComponent_adapterService, _SkyRepeaterComponent_changeDetector, _SkyRepeaterComponent_dragulaService, _SkyRepeaterComponent_elementRef, _SkyRepeaterComponent_renderer, _SkyRepeaterComponent_repeaterService,
|
|
1
|
+
var _SkyRepeaterComponent_instances, _SkyRepeaterComponent_autoScroller, _SkyRepeaterComponent_ngUnsubscribe, _SkyRepeaterComponent_itemNameWarned, _SkyRepeaterComponent_adapterService, _SkyRepeaterComponent_changeDetector, _SkyRepeaterComponent_dragulaService, _SkyRepeaterComponent_elementRef, _SkyRepeaterComponent_renderer, _SkyRepeaterComponent_repeaterService, _SkyRepeaterComponent_autoScrollSvc, _SkyRepeaterComponent_scrollableHostSvc, _SkyRepeaterComponent_logSvc, _SkyRepeaterComponent_updateForExpandMode, _SkyRepeaterComponent_initializeDragAndDrop, _SkyRepeaterComponent_destroyDragAndDrop, _SkyRepeaterComponent_destroyAutoScroll, _SkyRepeaterComponent_emitTags, _SkyRepeaterComponent_everyItemHasTag, _SkyRepeaterComponent_updateRole, _SkyRepeaterComponent_updateReorderability, _SkyRepeaterComponent_validateTags;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, Renderer2, inject, } from '@angular/core';
|
|
4
|
+
import { SkyLogService } from '@skyux/core';
|
|
5
|
+
import { SkyScrollableHostService } from '@skyux/core';
|
|
6
|
+
import { DragulaService } from 'ng2-dragula';
|
|
4
7
|
import { Subject } from 'rxjs';
|
|
5
8
|
import { takeUntil } from 'rxjs/operators';
|
|
6
9
|
import { SkyRepeaterAdapterService } from './repeater-adapter.service';
|
|
10
|
+
import { SkyRepeaterAutoScrollService } from './repeater-auto-scroll.service';
|
|
7
11
|
import { SkyRepeaterItemComponent } from './repeater-item.component';
|
|
8
12
|
import { SkyRepeaterService } from './repeater.service';
|
|
9
13
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "
|
|
13
|
-
import * as i4 from "@angular/cdk/observers";
|
|
14
|
-
import * as i5 from "@skyux/i18n";
|
|
14
|
+
import * as i1 from "ng2-dragula";
|
|
15
|
+
import * as i2 from "@angular/cdk/observers";
|
|
16
|
+
import * as i3 from "@skyux/i18n";
|
|
15
17
|
/**
|
|
16
18
|
* Creates a container to display repeater items.
|
|
17
19
|
*/
|
|
18
20
|
export class SkyRepeaterComponent {
|
|
19
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The layout that determines which repeater items are expanded by default and whether
|
|
23
|
+
* repeater items are expandable and collapsible. Collapsed items display titles only.
|
|
24
|
+
* The valid options are `multiple`, `none`, and `single`.
|
|
25
|
+
* - `multiple` loads repeater items in an expanded state unless `isExpanded` is set to
|
|
26
|
+
* `false` for a repeater item. This layout allows users to expand and collapse
|
|
27
|
+
* as many repeater items as necessary. It is best-suited to repeater items where body
|
|
28
|
+
* content is important but users don't always need to see it.
|
|
29
|
+
* - `none` loads all repeater items in an expanded state and does not allow users to
|
|
30
|
+
* collapse them. This default layout provides the quickest access to the details in the
|
|
31
|
+
* repeater items. It is best-suited to repeater items with concise content
|
|
32
|
+
* that users need to view frequently.
|
|
33
|
+
* - `single` loads one repeater item in an expanded state and collapses all others.
|
|
34
|
+
* The expanded repeater item is the first one where `isExpanded` is set to `true`. This layout
|
|
35
|
+
* allows users to expand one item at a time. It provides the most compact view and is
|
|
36
|
+
* best-suited to repeater items where the most important information is in the titles
|
|
37
|
+
* and users only occasionally need to view the body content.
|
|
38
|
+
* @default "none"
|
|
39
|
+
*/
|
|
40
|
+
set expandMode(value) {
|
|
41
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode = value;
|
|
42
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this);
|
|
43
|
+
}
|
|
44
|
+
get expandMode() {
|
|
45
|
+
return __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode;
|
|
46
|
+
}
|
|
47
|
+
constructor() {
|
|
20
48
|
_SkyRepeaterComponent_instances.add(this);
|
|
21
49
|
/**
|
|
22
50
|
* Whether users can change the order of items in the repeater list.
|
|
@@ -33,19 +61,18 @@ export class SkyRepeaterComponent {
|
|
|
33
61
|
* This event emits an ordered array of the `tag` properties that the consumer provides for each repeater item.
|
|
34
62
|
*/
|
|
35
63
|
this.orderChange = new EventEmitter();
|
|
36
|
-
|
|
37
|
-
_SkyRepeaterComponent_changeDetector.set(this, void 0);
|
|
38
|
-
_SkyRepeaterComponent_dragulaService.set(this, void 0);
|
|
39
|
-
_SkyRepeaterComponent_elementRef.set(this, void 0);
|
|
40
|
-
_SkyRepeaterComponent_renderer.set(this, void 0);
|
|
41
|
-
_SkyRepeaterComponent_repeaterService.set(this, void 0);
|
|
64
|
+
_SkyRepeaterComponent_autoScroller.set(this, void 0);
|
|
42
65
|
_SkyRepeaterComponent_ngUnsubscribe.set(this, new Subject());
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
_SkyRepeaterComponent_itemNameWarned.set(this, false);
|
|
67
|
+
_SkyRepeaterComponent_adapterService.set(this, inject(SkyRepeaterAdapterService));
|
|
68
|
+
_SkyRepeaterComponent_changeDetector.set(this, inject(ChangeDetectorRef));
|
|
69
|
+
_SkyRepeaterComponent_dragulaService.set(this, inject(DragulaService));
|
|
70
|
+
_SkyRepeaterComponent_elementRef.set(this, inject(ElementRef));
|
|
71
|
+
_SkyRepeaterComponent_renderer.set(this, inject(Renderer2));
|
|
72
|
+
_SkyRepeaterComponent_repeaterService.set(this, inject(SkyRepeaterService));
|
|
73
|
+
_SkyRepeaterComponent_autoScrollSvc.set(this, inject(SkyRepeaterAutoScrollService));
|
|
74
|
+
_SkyRepeaterComponent_scrollableHostSvc.set(this, inject(SkyScrollableHostService));
|
|
75
|
+
_SkyRepeaterComponent_logSvc.set(this, inject(SkyLogService));
|
|
49
76
|
this.dragulaGroupName = `sky-repeater-dragula-${__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").repeaterGroupId}`;
|
|
50
77
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").itemCollapseStateChange
|
|
51
78
|
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f")))
|
|
@@ -77,55 +104,28 @@ export class SkyRepeaterComponent {
|
|
|
77
104
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").setRepeaterHost(__classPrivateFieldGet(this, _SkyRepeaterComponent_elementRef, "f"));
|
|
78
105
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_initializeDragAndDrop).call(this);
|
|
79
106
|
}
|
|
80
|
-
/**
|
|
81
|
-
* The layout that determines which repeater items are expanded by default and whether
|
|
82
|
-
* repeater items are expandable and collapsible. Collapsed items display titles only.
|
|
83
|
-
* The valid options are `multiple`, `none`, and `single`.
|
|
84
|
-
* - `multiple` loads repeater items in an expanded state unless `isExpanded` is set to
|
|
85
|
-
* `false` for a repeater item. This layout allows users to expand and collapse
|
|
86
|
-
* as many repeater items as necessary. It is best-suited to repeater items where body
|
|
87
|
-
* content is important but users don't always need to see it.
|
|
88
|
-
* - `none` loads all repeater items in an expanded state and does not allow users to
|
|
89
|
-
* collapse them. This default layout provides the quickest access to the details in the
|
|
90
|
-
* repeater items. It is best-suited to repeater items with concise content
|
|
91
|
-
* that users need to view frequently.
|
|
92
|
-
* - `single` loads one repeater item in an expanded state and collapses all others.
|
|
93
|
-
* The expanded repeater item is the first one where `isExpanded` is set to `true`. This layout
|
|
94
|
-
* allows users to expand one item at a time. It provides the most compact view and is
|
|
95
|
-
* best-suited to repeater items where the most important information is in the titles
|
|
96
|
-
* and users only occasionally need to view the body content.
|
|
97
|
-
* @default "none"
|
|
98
|
-
*/
|
|
99
|
-
// TODO: Remove 'string' as a valid type in a breaking change.
|
|
100
|
-
set expandMode(value) {
|
|
101
|
-
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode = value;
|
|
102
|
-
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this);
|
|
103
|
-
}
|
|
104
|
-
get expandMode() {
|
|
105
|
-
return __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").expandMode;
|
|
106
|
-
}
|
|
107
107
|
ngAfterContentInit() {
|
|
108
108
|
// If activeIndex has been set on init, call service to activate the appropriate item.
|
|
109
109
|
setTimeout(() => {
|
|
110
110
|
if (this.activeIndex || this.activeIndex === 0) {
|
|
111
111
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activateItemByIndex(this.activeIndex);
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
console.warn('Please supply tag properties for each repeater item when reordering functionality is enabled.');
|
|
115
|
-
}
|
|
113
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_validateTags).call(this);
|
|
116
114
|
});
|
|
117
115
|
// HACK: Not updating for expand mode in a timeout causes an error.
|
|
118
116
|
// https://github.com/angular/angular/issues/6005
|
|
119
117
|
this.items?.changes.pipe(takeUntil(__classPrivateFieldGet(this, _SkyRepeaterComponent_ngUnsubscribe, "f"))).subscribe(() => {
|
|
120
118
|
setTimeout(() => {
|
|
121
|
-
if (this.items?.
|
|
119
|
+
if (this.items?.length) {
|
|
122
120
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateForExpandMode).call(this, this.items.last);
|
|
123
|
-
this
|
|
121
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateReorderability).call(this);
|
|
122
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").items = this.items.toArray();
|
|
124
123
|
}
|
|
125
124
|
if (this.activeIndex !== undefined) {
|
|
126
125
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").activateItemByIndex(this.activeIndex);
|
|
127
126
|
}
|
|
128
127
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
|
|
128
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_validateTags).call(this);
|
|
129
129
|
});
|
|
130
130
|
});
|
|
131
131
|
setTimeout(() => {
|
|
@@ -136,6 +136,15 @@ export class SkyRepeaterComponent {
|
|
|
136
136
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
|
|
137
137
|
}, 0);
|
|
138
138
|
}
|
|
139
|
+
ngAfterViewChecked() {
|
|
140
|
+
if (!__classPrivateFieldGet(this, _SkyRepeaterComponent_itemNameWarned, "f") && this.items?.some((item) => !item.itemName)) {
|
|
141
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_logSvc, "f")?.deprecated('SkyRepeaterItemComponent without `itemName`', {
|
|
142
|
+
deprecationMajorVersion: 8,
|
|
143
|
+
replacementRecommendation: 'Always specify an `itemName` property.',
|
|
144
|
+
});
|
|
145
|
+
__classPrivateFieldSet(this, _SkyRepeaterComponent_itemNameWarned, true, "f");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
139
148
|
ngOnChanges(changes) {
|
|
140
149
|
if (changes['activeIndex']) {
|
|
141
150
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").enableActiveState = true;
|
|
@@ -146,7 +155,7 @@ export class SkyRepeaterComponent {
|
|
|
146
155
|
}
|
|
147
156
|
if (changes.reorderable) {
|
|
148
157
|
if (this.items) {
|
|
149
|
-
this
|
|
158
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateReorderability).call(this);
|
|
150
159
|
}
|
|
151
160
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
|
|
152
161
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_changeDetector, "f").markForCheck();
|
|
@@ -164,7 +173,7 @@ export class SkyRepeaterComponent {
|
|
|
164
173
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
|
-
_SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_changeDetector = new WeakMap(), _SkyRepeaterComponent_dragulaService = new WeakMap(), _SkyRepeaterComponent_elementRef = new WeakMap(), _SkyRepeaterComponent_renderer = new WeakMap(), _SkyRepeaterComponent_repeaterService = new WeakMap(),
|
|
176
|
+
_SkyRepeaterComponent_autoScroller = new WeakMap(), _SkyRepeaterComponent_ngUnsubscribe = new WeakMap(), _SkyRepeaterComponent_itemNameWarned = new WeakMap(), _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_changeDetector = new WeakMap(), _SkyRepeaterComponent_dragulaService = new WeakMap(), _SkyRepeaterComponent_elementRef = new WeakMap(), _SkyRepeaterComponent_renderer = new WeakMap(), _SkyRepeaterComponent_repeaterService = new WeakMap(), _SkyRepeaterComponent_autoScrollSvc = new WeakMap(), _SkyRepeaterComponent_scrollableHostSvc = new WeakMap(), _SkyRepeaterComponent_logSvc = new WeakMap(), _SkyRepeaterComponent_instances = new WeakSet(), _SkyRepeaterComponent_updateForExpandMode = function _SkyRepeaterComponent_updateForExpandMode(itemAdded) {
|
|
168
177
|
if (this.items) {
|
|
169
178
|
let foundExpanded = false;
|
|
170
179
|
const isCollapsible = this.expandMode !== 'none';
|
|
@@ -173,15 +182,18 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
173
182
|
if (itemAdded && itemAdded.isExpanded) {
|
|
174
183
|
foundExpanded = true;
|
|
175
184
|
}
|
|
176
|
-
this.items
|
|
185
|
+
for (const item of this.items) {
|
|
177
186
|
item.isCollapsible = isCollapsible && !!item.hasItemContent;
|
|
187
|
+
// Collapse any items that aren't the item that was just added.
|
|
178
188
|
if (item !== itemAdded && isSingle && item.isExpanded) {
|
|
179
189
|
if (foundExpanded) {
|
|
180
|
-
item
|
|
190
|
+
// If this item is being collapsed because a new item was
|
|
191
|
+
// added, animate it.
|
|
192
|
+
item.updateForExpanded(false, !!itemAdded);
|
|
181
193
|
}
|
|
182
194
|
foundExpanded = true;
|
|
183
195
|
}
|
|
184
|
-
}
|
|
196
|
+
}
|
|
185
197
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_updateRole).call(this);
|
|
186
198
|
}
|
|
187
199
|
}, _SkyRepeaterComponent_initializeDragAndDrop = function _SkyRepeaterComponent_initializeDragAndDrop() {
|
|
@@ -189,9 +201,9 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
189
201
|
/* istanbul ignore else */
|
|
190
202
|
if (!__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").find(this.dragulaGroupName)) {
|
|
191
203
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").createGroup(this.dragulaGroupName, {
|
|
192
|
-
moves: (el,
|
|
204
|
+
moves: (el, _container, handle) => {
|
|
193
205
|
const target = el?.querySelector('.sky-repeater-item-grab-handle');
|
|
194
|
-
return !!this.reorderable &&
|
|
206
|
+
return !!(this.reorderable && target?.contains(handle));
|
|
195
207
|
},
|
|
196
208
|
});
|
|
197
209
|
}
|
|
@@ -202,6 +214,13 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
202
214
|
.subscribe((args) => {
|
|
203
215
|
/* istanbul ignore else */
|
|
204
216
|
if (args.name === this.dragulaGroupName) {
|
|
217
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_destroyAutoScroll).call(this);
|
|
218
|
+
__classPrivateFieldSet(this, _SkyRepeaterComponent_autoScroller, __classPrivateFieldGet(this, _SkyRepeaterComponent_autoScrollSvc, "f").autoScroll([__classPrivateFieldGet(this, _SkyRepeaterComponent_scrollableHostSvc, "f").getScrollableHost(__classPrivateFieldGet(this, _SkyRepeaterComponent_elementRef, "f"))], {
|
|
219
|
+
margin: 20,
|
|
220
|
+
maxSpeed: 10,
|
|
221
|
+
scrollWhenOutside: true,
|
|
222
|
+
autoScroll: () => true,
|
|
223
|
+
}), "f");
|
|
205
224
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_renderer, "f").addClass(args.el, 'sky-repeater-item-dragging');
|
|
206
225
|
draggedItemIndex = __classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").getRepeaterItemIndex(args.el);
|
|
207
226
|
}
|
|
@@ -212,6 +231,7 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
212
231
|
.subscribe((args) => {
|
|
213
232
|
/* istanbul ignore else */
|
|
214
233
|
if (args.name === this.dragulaGroupName) {
|
|
234
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_destroyAutoScroll).call(this);
|
|
215
235
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_renderer, "f").removeClass(args.el, 'sky-repeater-item-dragging');
|
|
216
236
|
const newItemIndex = __classPrivateFieldGet(this, _SkyRepeaterComponent_adapterService, "f").getRepeaterItemIndex(args.el);
|
|
217
237
|
/* sanity check */
|
|
@@ -229,6 +249,12 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
229
249
|
if (__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").find(this.dragulaGroupName)) {
|
|
230
250
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_dragulaService, "f").destroy(this.dragulaGroupName);
|
|
231
251
|
}
|
|
252
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_destroyAutoScroll).call(this);
|
|
253
|
+
}, _SkyRepeaterComponent_destroyAutoScroll = function _SkyRepeaterComponent_destroyAutoScroll() {
|
|
254
|
+
if (__classPrivateFieldGet(this, _SkyRepeaterComponent_autoScroller, "f")) {
|
|
255
|
+
__classPrivateFieldGet(this, _SkyRepeaterComponent_autoScroller, "f").destroy();
|
|
256
|
+
__classPrivateFieldSet(this, _SkyRepeaterComponent_autoScroller, undefined, "f");
|
|
257
|
+
}
|
|
232
258
|
}, _SkyRepeaterComponent_emitTags = function _SkyRepeaterComponent_emitTags() {
|
|
233
259
|
const tags = __classPrivateFieldGet(this, _SkyRepeaterComponent_repeaterService, "f").items.map((item) => item.tag);
|
|
234
260
|
this.orderChange.emit(tags);
|
|
@@ -288,13 +314,31 @@ _SkyRepeaterComponent_adapterService = new WeakMap(), _SkyRepeaterComponent_chan
|
|
|
288
314
|
this.role = `${autoRole}`;
|
|
289
315
|
__classPrivateFieldGet(this, _SkyRepeaterComponent_changeDetector, "f").markForCheck();
|
|
290
316
|
}
|
|
317
|
+
}, _SkyRepeaterComponent_updateReorderability = function _SkyRepeaterComponent_updateReorderability() {
|
|
318
|
+
if (this.items) {
|
|
319
|
+
for (const item of this.items) {
|
|
320
|
+
item.reorderable = this.reorderable;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}, _SkyRepeaterComponent_validateTags = function _SkyRepeaterComponent_validateTags() {
|
|
324
|
+
if (this.reorderable && !__classPrivateFieldGet(this, _SkyRepeaterComponent_instances, "m", _SkyRepeaterComponent_everyItemHasTag).call(this)) {
|
|
325
|
+
console.warn('Please supply tag properties for each repeater item when reordering functionality is enabled.');
|
|
326
|
+
}
|
|
291
327
|
};
|
|
292
|
-
SkyRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
293
|
-
SkyRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
294
|
-
|
|
328
|
+
SkyRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
329
|
+
SkyRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyRepeaterComponent, selector: "sky-repeater", inputs: { activeIndex: "activeIndex", ariaLabel: "ariaLabel", reorderable: "reorderable", expandMode: "expandMode" }, outputs: { activeIndexChange: "activeIndexChange", orderChange: "orderChange" }, providers: [
|
|
330
|
+
SkyRepeaterService,
|
|
331
|
+
SkyRepeaterAdapterService,
|
|
332
|
+
SkyRepeaterAutoScrollService,
|
|
333
|
+
], queries: [{ propertyName: "items", predicate: SkyRepeaterItemComponent }], usesOnChanges: true, ngImport: i0, template: "<ng-container #repeaterHost>\n <div\n class=\"sky-repeater\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel || ('skyux_repeater_label' | skyLibResources)\"\n [dragula]=\"dragulaGroupName\"\n (cdkObserveContent)=\"onCdkObserveContent()\"\n >\n <ng-content></ng-content>\n </div>\n</ng-container>\n", styles: [".sky-repeater{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.DragulaDirective, selector: "[dragula]", inputs: ["dragula", "dragulaModel"], outputs: ["dragulaModelChange"] }, { kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterComponent, decorators: [{
|
|
295
335
|
type: Component,
|
|
296
|
-
args: [{ selector: 'sky-repeater', providers: [
|
|
297
|
-
|
|
336
|
+
args: [{ selector: 'sky-repeater', providers: [
|
|
337
|
+
SkyRepeaterService,
|
|
338
|
+
SkyRepeaterAdapterService,
|
|
339
|
+
SkyRepeaterAutoScrollService,
|
|
340
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #repeaterHost>\n <div\n class=\"sky-repeater\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel || ('skyux_repeater_label' | skyLibResources)\"\n [dragula]=\"dragulaGroupName\"\n (cdkObserveContent)=\"onCdkObserveContent()\"\n >\n <ng-content></ng-content>\n </div>\n</ng-container>\n", styles: [".sky-repeater{padding:0}\n"] }]
|
|
341
|
+
}], ctorParameters: function () { return []; }, propDecorators: { activeIndex: [{
|
|
298
342
|
type: Input
|
|
299
343
|
}], ariaLabel: [{
|
|
300
344
|
type: Input
|
|
@@ -310,4 +354,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
|
310
354
|
type: ContentChildren,
|
|
311
355
|
args: [SkyRepeaterItemComponent]
|
|
312
356
|
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRXhEOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjtJQXdGL0IsWUFDRSxjQUFpQyxFQUNqQyxlQUFtQyxFQUNuQyxjQUF5QyxFQUN6QyxjQUE4QixFQUM5QixVQUFzQixFQUN0QixRQUFtQjs7UUF4RXJCOzs7O1dBSUc7UUFFSSxnQkFBVyxHQUF3QixLQUFLLENBQUM7UUFnQ2hEOztXQUVHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RDs7O1dBR0c7UUFFSSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFTL0MsdURBQTJDO1FBQzNDLHVEQUFtQztRQUNuQyx1REFBZ0M7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ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB9IGZyb20gJy4vcmVwZWF0ZXItZXhwYW5kLW1vZGUtdHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Sb2xlc1R5cGUgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tcm9sZXMudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVyUm9sZVR5cGUgfSBmcm9tICcuL3JlcGVhdGVyLXJvbGUudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb250YWluZXIgdG8gZGlzcGxheSByZXBlYXRlciBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJlcGVhdGVyJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5UmVwZWF0ZXJTZXJ2aWNlLCBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoZSByZXBlYXRlciBpdGVtIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCBhcyBhY3RpdmUuXG4gICAqIEZvciBleGFtcGxlLCB1c2UgdGhpcyBwcm9wZXJ0eSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgKiBbc3BsaXQgdmlldyBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9zcGxpdC12aWV3KVxuICAgKiB0byBoaWdobGlnaHQgYSByZXBlYXRlciBpdGVtIHdoaWxlIHVzZXJzIGVkaXQgaXQuIE9ubHkgb25lIGl0ZW0gY2FuIGJlIGFjdGl2ZSBhdCBhIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBUaGlzIHNldHMgdGhlIHJlcGVhdGVyIGxpc3QncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVmYXVsdCBcIkxpc3Qgb2YgaXRlbXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIG9yZGVyIG9mIGl0ZW1zIGluIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBFYWNoIHJlcGVhdGVyIGl0ZW0gYWxzbyBoYXMgYHJlb3JkZXJhYmxlYCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB3aGV0aGVyXG4gICAqIHVzZXJzIGNhbiBjaGFuZ2UgaXRzIG9yZGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlb3JkZXJhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXlvdXQgdGhhdCBkZXRlcm1pbmVzIHdoaWNoIHJlcGVhdGVyIGl0ZW1zIGFyZSBleHBhbmRlZCBieSBkZWZhdWx0IGFuZCB3aGV0aGVyXG4gICAqIHJlcGVhdGVyIGl0ZW1zIGFyZSBleHBhbmRhYmxlIGFuZCBjb2xsYXBzaWJsZS4gQ29sbGFwc2VkIGl0ZW1zIGRpc3BsYXkgdGl0bGVzIG9ubHkuXG4gICAqIFRoZSB2YWxpZCBvcHRpb25zIGFyZSBgbXVsdGlwbGVgLCBgbm9uZWAsIGFuZCBgc2luZ2xlYC5cbiAgICogLSBgbXVsdGlwbGVgIGxvYWRzIHJlcGVhdGVyIGl0ZW1zIGluIGFuIGV4cGFuZGVkIHN0YXRlIHVubGVzcyBgaXNFeHBhbmRlZGAgaXMgc2V0IHRvXG4gICAqIGBmYWxzZWAgZm9yIGEgcmVwZWF0ZXIgaXRlbS4gVGhpcyBsYXlvdXQgYWxsb3dzIHVzZXJzIHRvIGV4cGFuZCBhbmQgY29sbGFwc2VcbiAgICogYXMgbWFueSByZXBlYXRlciBpdGVtcyBhcyBuZWNlc3NhcnkuIEl0IGlzIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdoZXJlIGJvZHlcbiAgICogY29udGVudCBpcyBpbXBvcnRhbnQgYnV0IHVzZXJzIGRvbid0IGFsd2F5cyBuZWVkIHRvIHNlZSBpdC5cbiAgICogLSBgbm9uZWAgbG9hZHMgYWxsIHJlcGVhdGVyIGl0ZW1zIGluIGFuIGV4cGFuZGVkIHN0YXRlIGFuZCBkb2VzIG5vdCBhbGxvdyB1c2VycyB0b1xuICAgKiBjb2xsYXBzZSB0aGVtLiBUaGlzIGRlZmF1bHQgbGF5b3V0IHByb3ZpZGVzIHRoZSBxdWlja2VzdCBhY2Nlc3MgdG8gdGhlIGRldGFpbHMgaW4gdGhlXG4gICAqIHJlcGVhdGVyIGl0ZW1zLiBJdCBpcyBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aXRoIGNvbmNpc2UgY29udGVudFxuICAgKiB0aGF0IHVzZXJzIG5lZWQgdG8gdmlldyBmcmVxdWVudGx5LlxuICAgKiAtIGBzaW5nbGVgIGxvYWRzIG9uZSByZXBlYXRlciBpdGVtIGluIGFuIGV4cGFuZGVkIHN0YXRlIGFuZCBjb2xsYXBzZXMgYWxsIG90aGVycy5cbiAgICogVGhlIGV4cGFuZGVkIHJlcGVhdGVyIGl0ZW0gaXMgdGhlIGZpcnN0IG9uZSB3aGVyZSBgaXNFeHBhbmRlZGAgaXMgc2V0IHRvIGB0cnVlYC4gVGhpcyBsYXlvdXRcbiAgICogYWxsb3dzIHVzZXJzIHRvIGV4cGFuZCBvbmUgaXRlbSBhdCBhIHRpbWUuIEl0IHByb3ZpZGVzIHRoZSBtb3N0IGNvbXBhY3QgdmlldyBhbmQgaXNcbiAgICogYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2hlcmUgdGhlIG1vc3QgaW1wb3J0YW50IGluZm9ybWF0aW9uIGlzIGluIHRoZSB0aXRsZXNcbiAgICogYW5kIHVzZXJzIG9ubHkgb2NjYXNpb25hbGx5IG5lZWQgdG8gdmlldyB0aGUgYm9keSBjb250ZW50LlxuICAgKiBAZGVmYXVsdCBcIm5vbmVcIlxuICAgKi9cbiAgLy8gVE9ETzogUmVtb3ZlICdzdHJpbmcnIGFzIGEgdmFsaWQgdHlwZSBpbiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBleHBhbmRNb2RlKHZhbHVlOiBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGUgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGFuZE1vZGUoKTogU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI3JlcGVhdGVyU2VydmljZS5leHBhbmRNb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFjdGl2ZSByZXBlYXRlciBpdGVtIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFjdGl2ZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBvcmRlciBvZiByZXBlYXRlciBpdGVtcy5cbiAgICogVGhpcyBldmVudCBlbWl0cyBhbiBvcmRlcmVkIGFycmF5IG9mIHRoZSBgdGFnYCBwcm9wZXJ0aWVzIHRoYXQgdGhlIGNvbnN1bWVyIHByb3ZpZGVzIGZvciBlYWNoIHJlcGVhdGVyIGl0ZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVJlcGVhdGVySXRlbUNvbXBvbmVudClcbiAgcHVibGljIGl0ZW1zOiBRdWVyeUxpc3Q8U2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZHJhZ3VsYUdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyByb2xlOiBTa3lSZXBlYXRlclJvbGVUeXBlIHwgdW5kZWZpbmVkO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2RyYWd1bGFTZXJ2aWNlOiBEcmFndWxhU2VydmljZTtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjcmVwZWF0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlclNlcnZpY2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcmVwZWF0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlclNlcnZpY2UsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZSA9IHJlcGVhdGVyU2VydmljZTtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlID0gZHJhZ3VsYVNlcnZpY2U7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcblxuICAgIHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSA9IGBza3ktcmVwZWF0ZXItZHJhZ3VsYS0ke1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlcGVhdGVyR3JvdXBJZFxuICAgIH1gO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZScgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaCgob3RoZXJJdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG90aGVySXRlbSAhPT0gaXRlbSAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNFeHBhbmRlZCAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNDb2xsYXBzaWJsZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2ZUl0ZW1JbmRleENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLm9yZGVyQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jZW1pdFRhZ3MoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdXBkYXRlRm9yRXhwYW5kTW9kZSgpO1xuXG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UmVwZWF0ZXJIb3N0KHRoaXMuI2VsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIGFjdGl2ZUluZGV4IGhhcyBiZWVuIHNldCBvbiBpbml0LCBjYWxsIHNlcnZpY2UgdG8gYWN0aXZhdGUgdGhlIGFwcHJvcHJpYXRlIGl0ZW0uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCB8fCB0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZW9yZGVyYWJsZSAmJiAhdGhpcy4jZXZlcnlJdGVtSGFzVGFnKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQbGVhc2Ugc3VwcGx5IHRhZyBwcm9wZXJ0aWVzIGZvciBlYWNoIHJlcGVhdGVyIGl0ZW0gd2hlbiByZW9yZGVyaW5nIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIQUNLOiBOb3QgdXBkYXRpbmcgZm9yIGV4cGFuZCBtb2RlIGluIGEgdGltZW91dCBjYXVzZXMgYW4gZXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjAwNVxuICAgIHRoaXMuaXRlbXM/LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXM/Lmxhc3QpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKHRoaXMuaXRlbXMubGFzdCk7XG4gICAgICAgICAgdGhpcy5pdGVtcy5sYXN0LnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuYWN0aXZhdGVJdGVtQnlJbmRleCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaXRlbS5yZW9yZGVyYWJsZSA9IHRoaXMucmVvcmRlcmFibGU7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aXZlSW5kZXgnXSkge1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmVuYWJsZUFjdGl2ZVN0YXRlID0gdHJ1ZTtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlc1snYWN0aXZlSW5kZXgnXS5jdXJyZW50VmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXNbJ2FjdGl2ZUluZGV4J10ucHJldmlvdXNWYWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlb3JkZXJhYmxlKSB7XG4gICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2Rlc3Ryb3lEcmFnQW5kRHJvcCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNka09ic2VydmVDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgfVxuXG4gICN1cGRhdGVGb3JFeHBhbmRNb2RlKGl0ZW1BZGRlZD86IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICBsZXQgZm91bmRFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgaXNDb2xsYXBzaWJsZSA9IHRoaXMuZXhwYW5kTW9kZSAhPT0gJ25vbmUnO1xuICAgICAgY29uc3QgaXNTaW5nbGUgPSB0aGlzLmV4cGFuZE1vZGUgPT09ICdzaW5nbGUnO1xuXG4gICAgICAvLyBLZWVwIGFueSBuZXdseS1hZGRlZCBleHBhbmRlZCBpdGVtIGV4cGFuZGVkIGFuZCBjb2xsYXBzZSB0aGUgcmVzdC5cbiAgICAgIGlmIChpdGVtQWRkZWQgJiYgaXRlbUFkZGVkLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgZm91bmRFeHBhbmRlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2libGUgPSBpc0NvbGxhcHNpYmxlICYmICEhaXRlbS5oYXNJdGVtQ29udGVudDtcblxuICAgICAgICBpZiAoaXRlbSAhPT0gaXRlbUFkZGVkICYmIGlzU2luZ2xlICYmIGl0ZW0uaXNFeHBhbmRlZCkge1xuICAgICAgICAgIGlmIChmb3VuZEV4cGFuZGVkKSB7XG4gICAgICAgICAgICBpdGVtLnVwZGF0ZUZvckV4cGFuZGVkKGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgICB9XG4gIH1cblxuICAjaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGhhdmVuJ3QgYWxyZWFkeSBzZXQgdXAgZHJhZ2dpbmcgYWJpbGl0aWVzICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI2RyYWd1bGFTZXJ2aWNlLmZpbmQodGhpcy5kcmFndWxhR3JvdXBOYW1lKSkge1xuICAgICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2UuY3JlYXRlR3JvdXAodGhpcy5kcmFndWxhR3JvdXBOYW1lLCB7XG4gICAgICAgIG1vdmVzOiAoZWwsIGNvbnRhaW5lciwgaGFuZGxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWw/LnF1ZXJ5U2VsZWN0b3IoJy5za3ktcmVwZWF0ZXItaXRlbS1ncmFiLWhhbmRsZScpO1xuICAgICAgICAgIHJldHVybiAhIXRoaXMucmVvcmRlcmFibGUgJiYgISF0YXJnZXQgJiYgdGFyZ2V0LmNvbnRhaW5zKGhhbmRsZSEpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGRyYWdnZWRJdGVtSW5kZXggPSAtMTtcblxuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJhZyh0aGlzLmRyYWd1bGFHcm91cE5hbWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChhcmdzLm5hbWUgPT09IHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkge1xuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGRyYWdnZWRJdGVtSW5kZXggPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRSZXBlYXRlckl0ZW1JbmRleChcbiAgICAgICAgICAgIGFyZ3MuZWwgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJhZ2VuZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChhcmdzLm5hbWUgPT09IHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkge1xuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1JbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFJlcGVhdGVySXRlbUluZGV4KFxuICAgICAgICAgICAgYXJncy5lbCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChkcmFnZ2VkSXRlbUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZW9yZGVySXRlbShkcmFnZ2VkSXRlbUluZGV4LCBuZXdJdGVtSW5kZXgpO1xuICAgICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IC0xO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2VtaXRUYWdzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2Rlc3Ryb3lEcmFnQW5kRHJvcCgpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBoYXZlIHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNkcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlLmRlc3Ryb3kodGhpcy5kcmFndWxhR3JvdXBOYW1lKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFRhZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udGFnKTtcbiAgICB0aGlzLm9yZGVyQ2hhbmdlLmVtaXQodGFncyk7XG4gIH1cblxuICAjZXZlcnlJdGVtSGFzVGFnKCk6IGJvb2xlYW4ge1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdGVtcy50b0FycmF5KCkuZXZlcnkoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnRhZyAhPT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgI3VwZGF0ZVJvbGUoKTogdm9pZCB7XG4gICAgLy8gRGV0ZXJtaW5lIGEgcm9sZSB1c2luZyBhIGhpZXJhcmNoeSBiYXNlZCBvbiBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS9cbiAgICAvLyAgIDEuIElmIHRoZXJlIGFyZSBvbmUgb3IgbW9yZSBpbnRlcmFjdGlvbnMgaW4gdGhlIHJlcGVhdGVyIGl0ZW0gcHJvamVjdGVkIGNvbnRlbnQsIHVzZSBncmlkLlxuICAgIC8vICAgMi4gSWYgdGhlcmUgYXJlIHNlbGVjdGFibGUgcmVwZWF0ZXIgaXRlbXMgYW5kIG5vIG90aGVyIGludGVyYWN0aW9ucywgdXNlIGxpc3Rib3guXG4gICAgLy8gICAzLiBJZiB0aGVyZSBhcmUgbm8gaW50ZXJhY3Rpb25zLCB1c2UgbGlzdC5cblxuICAgIC8vIERlZmF1bHQgdG8gbGlzdCByb2xlLlxuICAgIGxldCBhdXRvUm9sZTogU2t5UmVwZWF0ZXJSb2xlVHlwZSA9ICdsaXN0JztcblxuICAgIGNvbnN0IHJvbGVNYXA6IFJlY29yZDxTa3lSZXBlYXRlclJvbGVUeXBlLCBTa3lSZXBlYXRlckl0ZW1Sb2xlc1R5cGU+ID0ge1xuICAgICAgbGlzdDogeyBpdGVtOiAnbGlzdGl0ZW0nLCB0aXRsZTogdW5kZWZpbmVkLCBjb250ZW50OiB1bmRlZmluZWQgfSxcbiAgICAgIGxpc3Rib3g6IHsgaXRlbTogJ29wdGlvbicsIHRpdGxlOiB1bmRlZmluZWQsIGNvbnRlbnQ6IHVuZGVmaW5lZCB9LFxuICAgICAgZ3JpZDogeyBpdGVtOiAncm93JywgdGl0bGU6ICdyb3doZWFkZXInLCBjb250ZW50OiAnZ3JpZGNlbGwnIH0sXG4gICAgfTtcblxuICAgIC8vIEJhc2VkIG9uIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2ludGVyYWN0aXZlLWNvbnRlbnRcbiAgICBjb25zdCBpbnRlcmFjdGlvblNlbGVjdG9yID0gW1xuICAgICAgJ2FbaHJlZl0nLFxuICAgICAgJ2F1ZGlvW2NvbnRyb2xzXScsXG4gICAgICAnYnV0dG9uJyxcbiAgICAgICdkZXRhaWxzJyxcbiAgICAgICdlbWJlZCcsXG4gICAgICAnaWZyYW1lJyxcbiAgICAgICdpbWdbdXNlbWFwXScsXG4gICAgICAnaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKScsXG4gICAgICAnbGFiZWwnLFxuICAgICAgJ3NlbGVjdCcsXG4gICAgICAndGV4dGFyZWEnLFxuICAgICAgJ3ZpZGVvW2NvbnRyb2xzXScsXG4gICAgICAnW2NvbnRlbnRlZGl0YWJsZV0nLFxuICAgICAgJy5za3ktcmVwZWF0ZXJbcm9sZT1cImdyaWRcIl0nLFxuICAgIF1cbiAgICAgIC5tYXAoXG4gICAgICAgIChzZWxlY3RvcikgPT5cbiAgICAgICAgICBgc2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGUgJHtzZWxlY3Rvcn06bm90KFtoaWRkZW5dKSwgc2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudCAke3NlbGVjdG9yfTpub3QoW2hpZGRlbl0pYFxuICAgICAgKVxuICAgICAgLmNvbmNhdChbYHNreXV4LWRyb3Bkb3duYF0pXG4gICAgICAuam9pbignLCAnKTtcblxuICAgIGNvbnN0IGhhc0ludGVyYWN0aW9uID1cbiAgICAgIHRoaXMucmVvcmRlcmFibGUgfHxcbiAgICAgIHRoaXMuaXRlbXM/LnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNDb2xsYXBzaWJsZSkgfHxcbiAgICAgIHRoaXMuaXRlbXM/LnNvbWUoKGl0ZW0pID0+ICEhaXRlbS5zZWxlY3RhYmxlKSB8fFxuICAgICAgISEodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBpbnRlcmFjdGlvblNlbGVjdG9yXG4gICAgICApO1xuXG4gICAgaWYgKGhhc0ludGVyYWN0aW9uKSB7XG4gICAgICAvLyBJZiB0aGUgcmVwZWF0ZXIgbWF0Y2hlcyBpbnRlcmFjdGlvbiBzZWxlY3RvciBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS8jZ3JpZFxuICAgICAgYXV0b1JvbGUgPSAnZ3JpZCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm9sZSAhPT0gYXV0b1JvbGUpIHtcbiAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtUm9sZS5uZXh0KHtcbiAgICAgICAgLi4ucm9sZU1hcFthdXRvUm9sZV0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMucm9sZSA9IGAke2F1dG9Sb2xlfWA7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3JlcGVhdGVySG9zdD5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyXCJcbiAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8ICgnc2t5dXhfcmVwZWF0ZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVwiXG4gICAgW2RyYWd1bGFdPVwiZHJhZ3VsYUdyb3VwTmFtZVwiXG4gICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ2RrT2JzZXJ2ZUNvbnRlbnQoKVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUVULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQUV4RDs7R0FFRztBQVlILE1BQU0sT0FBTyxvQkFBb0I7SUE4Qi9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSCxJQUNXLFVBQVUsQ0FB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O1FBQ2xCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7S0FDN0IsZ0RBNEVnQix3QkFBd0Isa0RDMUgzQyx1VUFXQTsyRkRzQ2Esb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGNBQWMsYUFHYjt3QkFDVCxrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTswRUFZeEMsV0FBVztzQkFEakIsS0FBSztnQkFXQyxTQUFTO3NCQURmLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkF1QkssVUFBVTtzQkFEcEIsS0FBSztnQkFjQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBU0EsV0FBVztzQkFGakIsTUFBTTtnQkFLQSxLQUFLO3NCQURYLGVBQWU7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJBdXRvU2Nyb2xsU2VydmljZSB9IGZyb20gJy4vcmVwZWF0ZXItYXV0by1zY3JvbGwuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckF1dG9TY3JvbGxlciB9IGZyb20gJy4vcmVwZWF0ZXItYXV0by1zY3JvbGxlcic7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlIH0gZnJvbSAnLi9yZXBlYXRlci1leHBhbmQtbW9kZS10eXBlJztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbVJvbGVzVHlwZSB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS1yb2xlcy50eXBlJztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJSb2xlVHlwZSB9IGZyb20gJy4vcmVwZWF0ZXItcm9sZS50eXBlJztcbmltcG9ydCB7IFNreVJlcGVhdGVyU2VydmljZSB9IGZyb20gJy4vcmVwZWF0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbnRhaW5lciB0byBkaXNwbGF5IHJlcGVhdGVyIGl0ZW1zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmVwZWF0ZXInLFxuICBzdHlsZVVybHM6IFsnLi9yZXBlYXRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwZWF0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lSZXBlYXRlclNlcnZpY2UsXG4gICAgU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBTa3lSZXBlYXRlckF1dG9TY3JvbGxTZXJ2aWNlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmVwZWF0ZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhlIHJlcGVhdGVyIGl0ZW0gdG8gdmlzdWFsbHkgaGlnaGxpZ2h0IGFzIGFjdGl2ZS5cbiAgICogRm9yIGV4YW1wbGUsIHVzZSB0aGlzIHByb3BlcnR5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlXG4gICAqIFtzcGxpdCB2aWV3IGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3NwbGl0LXZpZXcpXG4gICAqIHRvIGhpZ2hsaWdodCBhIHJlcGVhdGVyIGl0ZW0gd2hpbGUgdXNlcnMgZWRpdCBpdC4gT25seSBvbmUgaXRlbSBjYW4gYmUgYWN0aXZlIGF0IGEgdGltZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3RpdmVJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIHJlcGVhdGVyIGxpc3QuXG4gICAqIFRoaXMgc2V0cyB0aGUgcmVwZWF0ZXIgbGlzdCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZWZhdWx0IFwiTGlzdCBvZiBpdGVtc1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlcnMgY2FuIGNoYW5nZSB0aGUgb3JkZXIgb2YgaXRlbXMgaW4gdGhlIHJlcGVhdGVyIGxpc3QuXG4gICAqIEVhY2ggcmVwZWF0ZXIgaXRlbSBhbHNvIGhhcyBgcmVvcmRlcmFibGVgIHByb3BlcnR5IHRvIGluZGljYXRlIHdoZXRoZXJcbiAgICogdXNlcnMgY2FuIGNoYW5nZSBpdHMgb3JkZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVvcmRlcmFibGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGxheW91dCB0aGF0IGRldGVybWluZXMgd2hpY2ggcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGVkIGJ5IGRlZmF1bHQgYW5kIHdoZXRoZXJcbiAgICogcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGFibGUgYW5kIGNvbGxhcHNpYmxlLiBDb2xsYXBzZWQgaXRlbXMgZGlzcGxheSB0aXRsZXMgb25seS5cbiAgICogVGhlIHZhbGlkIG9wdGlvbnMgYXJlIGBtdWx0aXBsZWAsIGBub25lYCwgYW5kIGBzaW5nbGVgLlxuICAgKiAtIGBtdWx0aXBsZWAgbG9hZHMgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgdW5sZXNzIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG9cbiAgICogYGZhbHNlYCBmb3IgYSByZXBlYXRlciBpdGVtLiBUaGlzIGxheW91dCBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIGFuZCBjb2xsYXBzZVxuICAgKiBhcyBtYW55IHJlcGVhdGVyIGl0ZW1zIGFzIG5lY2Vzc2FyeS4gSXQgaXMgYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2hlcmUgYm9keVxuICAgKiBjb250ZW50IGlzIGltcG9ydGFudCBidXQgdXNlcnMgZG9uJ3QgYWx3YXlzIG5lZWQgdG8gc2VlIGl0LlxuICAgKiAtIGBub25lYCBsb2FkcyBhbGwgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGRvZXMgbm90IGFsbG93IHVzZXJzIHRvXG4gICAqIGNvbGxhcHNlIHRoZW0uIFRoaXMgZGVmYXVsdCBsYXlvdXQgcHJvdmlkZXMgdGhlIHF1aWNrZXN0IGFjY2VzcyB0byB0aGUgZGV0YWlscyBpbiB0aGVcbiAgICogcmVwZWF0ZXIgaXRlbXMuIEl0IGlzIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdpdGggY29uY2lzZSBjb250ZW50XG4gICAqIHRoYXQgdXNlcnMgbmVlZCB0byB2aWV3IGZyZXF1ZW50bHkuXG4gICAqIC0gYHNpbmdsZWAgbG9hZHMgb25lIHJlcGVhdGVyIGl0ZW0gaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGNvbGxhcHNlcyBhbGwgb3RoZXJzLlxuICAgKiBUaGUgZXhwYW5kZWQgcmVwZWF0ZXIgaXRlbSBpcyB0aGUgZmlyc3Qgb25lIHdoZXJlIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG8gYHRydWVgLiBUaGlzIGxheW91dFxuICAgKiBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIG9uZSBpdGVtIGF0IGEgdGltZS4gSXQgcHJvdmlkZXMgdGhlIG1vc3QgY29tcGFjdCB2aWV3IGFuZCBpc1xuICAgKiBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aGVyZSB0aGUgbW9zdCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gaXMgaW4gdGhlIHRpdGxlc1xuICAgKiBhbmQgdXNlcnMgb25seSBvY2Nhc2lvbmFsbHkgbmVlZCB0byB2aWV3IHRoZSBib2R5IGNvbnRlbnQuXG4gICAqIEBkZWZhdWx0IFwibm9uZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGV4cGFuZE1vZGUodmFsdWU6IFNreVJlcGVhdGVyRXhwYW5kTW9kZVR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuZXhwYW5kTW9kZSA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZUZvckV4cGFuZE1vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kTW9kZSgpOiBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGU7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWN0aXZlIHJlcGVhdGVyIGl0ZW0gY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjaGFuZ2UgdGhlIG9yZGVyIG9mIHJlcGVhdGVyIGl0ZW1zLlxuICAgKiBUaGlzIGV2ZW50IGVtaXRzIGFuIG9yZGVyZWQgYXJyYXkgb2YgdGhlIGB0YWdgIHByb3BlcnRpZXMgdGhhdCB0aGUgY29uc3VtZXIgcHJvdmlkZXMgZm9yIGVhY2ggcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgb3JkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KVxuICBwdWJsaWMgaXRlbXM6IFF1ZXJ5TGlzdDxTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBkcmFndWxhR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgcHVibGljIHJvbGU6IFNreVJlcGVhdGVyUm9sZVR5cGUgfCB1bmRlZmluZWQ7XG5cbiAgI2F1dG9TY3JvbGxlcjogU2t5UmVwZWF0ZXJBdXRvU2Nyb2xsZXIgfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2l0ZW1OYW1lV2FybmVkID0gZmFsc2U7XG5cbiAgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UpO1xuICAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjZHJhZ3VsYVNlcnZpY2UgPSBpbmplY3QoRHJhZ3VsYVNlcnZpY2UpO1xuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgI3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICNyZXBlYXRlclNlcnZpY2UgPSBpbmplY3QoU2t5UmVwZWF0ZXJTZXJ2aWNlKTtcbiAgI2F1dG9TY3JvbGxTdmMgPSBpbmplY3QoU2t5UmVwZWF0ZXJBdXRvU2Nyb2xsU2VydmljZSk7XG4gICNzY3JvbGxhYmxlSG9zdFN2YyA9IGluamVjdChTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2UpO1xuICAjbG9nU3ZjID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSA9IGBza3ktcmVwZWF0ZXItZHJhZ3VsYS0ke1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlcGVhdGVyR3JvdXBJZFxuICAgIH1gO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZScgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaCgob3RoZXJJdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG90aGVySXRlbSAhPT0gaXRlbSAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNFeHBhbmRlZCAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNDb2xsYXBzaWJsZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2ZUl0ZW1JbmRleENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLm9yZGVyQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jZW1pdFRhZ3MoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdXBkYXRlRm9yRXhwYW5kTW9kZSgpO1xuXG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UmVwZWF0ZXJIb3N0KHRoaXMuI2VsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIGFjdGl2ZUluZGV4IGhhcyBiZWVuIHNldCBvbiBpbml0LCBjYWxsIHNlcnZpY2UgdG8gYWN0aXZhdGUgdGhlIGFwcHJvcHJpYXRlIGl0ZW0uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCB8fCB0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiN2YWxpZGF0ZVRhZ3MoKTtcbiAgICB9KTtcblxuICAgIC8vIEhBQ0s6IE5vdCB1cGRhdGluZyBmb3IgZXhwYW5kIG1vZGUgaW4gYSB0aW1lb3V0IGNhdXNlcyBhbiBlcnJvci5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy82MDA1XG4gICAgdGhpcy5pdGVtcz8uY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlRm9yRXhwYW5kTW9kZSh0aGlzLml0ZW1zLmxhc3QpO1xuXG4gICAgICAgICAgdGhpcy4jdXBkYXRlUmVvcmRlcmFiaWxpdHkoKTtcblxuICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtcyA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuXG4gICAgICAgIHRoaXMuI3ZhbGlkYXRlVGFncygpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI3VwZGF0ZUZvckV4cGFuZE1vZGUoKTtcblxuICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLiN1cGRhdGVSb2xlKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jaXRlbU5hbWVXYXJuZWQgJiYgdGhpcy5pdGVtcz8uc29tZSgoaXRlbSkgPT4gIWl0ZW0uaXRlbU5hbWUpKSB7XG4gICAgICB0aGlzLiNsb2dTdmM/LmRlcHJlY2F0ZWQoJ1NreVJlcGVhdGVySXRlbUNvbXBvbmVudCB3aXRob3V0IGBpdGVtTmFtZWAnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA4LFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiAnQWx3YXlzIHNwZWNpZnkgYW4gYGl0ZW1OYW1lYCBwcm9wZXJ0eS4nLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI2l0ZW1OYW1lV2FybmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVJbmRleCddKSB7XG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuZW5hYmxlQWN0aXZlU3RhdGUgPSB0cnVlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGFuZ2VzWydhY3RpdmVJbmRleCddLmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snYWN0aXZlSW5kZXgnXS5wcmV2aW91c1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMucmVvcmRlcmFibGUpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVJlb3JkZXJhYmlsaXR5KCk7XG4gICAgICB9XG4gICAgICB0aGlzLiN1cGRhdGVSb2xlKCk7XG5cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZGVzdHJveURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2RrT2JzZXJ2ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICB9XG5cbiAgI3VwZGF0ZUZvckV4cGFuZE1vZGUoaXRlbUFkZGVkPzogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgIGxldCBmb3VuZEV4cGFuZGVkID0gZmFsc2U7XG4gICAgICBjb25zdCBpc0NvbGxhcHNpYmxlID0gdGhpcy5leHBhbmRNb2RlICE9PSAnbm9uZSc7XG4gICAgICBjb25zdCBpc1NpbmdsZSA9IHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZSc7XG5cbiAgICAgIC8vIEtlZXAgYW55IG5ld2x5LWFkZGVkIGV4cGFuZGVkIGl0ZW0gZXhwYW5kZWQgYW5kIGNvbGxhcHNlIHRoZSByZXN0LlxuICAgICAgaWYgKGl0ZW1BZGRlZCAmJiBpdGVtQWRkZWQuaXNFeHBhbmRlZCkge1xuICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgaXRlbS5pc0NvbGxhcHNpYmxlID0gaXNDb2xsYXBzaWJsZSAmJiAhIWl0ZW0uaGFzSXRlbUNvbnRlbnQ7XG5cbiAgICAgICAgLy8gQ29sbGFwc2UgYW55IGl0ZW1zIHRoYXQgYXJlbid0IHRoZSBpdGVtIHRoYXQgd2FzIGp1c3QgYWRkZWQuXG4gICAgICAgIGlmIChpdGVtICE9PSBpdGVtQWRkZWQgJiYgaXNTaW5nbGUgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgaWYgKGZvdW5kRXhwYW5kZWQpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXRlbSBpcyBiZWluZyBjb2xsYXBzZWQgYmVjYXVzZSBhIG5ldyBpdGVtIHdhc1xuICAgICAgICAgICAgLy8gYWRkZWQsIGFuaW1hdGUgaXQuXG4gICAgICAgICAgICBpdGVtLnVwZGF0ZUZvckV4cGFuZGVkKGZhbHNlLCAhIWl0ZW1BZGRlZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm91bmRFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICAgIH1cbiAgfVxuXG4gICNpbml0aWFsaXplRHJhZ0FuZERyb3AoKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBhbHJlYWR5IHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy4jZHJhZ3VsYVNlcnZpY2UuZmluZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpKSB7XG4gICAgICB0aGlzLiNkcmFndWxhU2VydmljZS5jcmVhdGVHcm91cCh0aGlzLmRyYWd1bGFHcm91cE5hbWUsIHtcbiAgICAgICAgbW92ZXM6IChlbCwgX2NvbnRhaW5lciwgaGFuZGxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWw/LnF1ZXJ5U2VsZWN0b3IoJy5za3ktcmVwZWF0ZXItaXRlbS1ncmFiLWhhbmRsZScpO1xuICAgICAgICAgIHJldHVybiAhIShcbiAgICAgICAgICAgIHRoaXMucmVvcmRlcmFibGUgJiYgdGFyZ2V0Py5jb250YWlucyhoYW5kbGUgYXMgRWxlbWVudCB8IG51bGwpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBkcmFnZ2VkSXRlbUluZGV4ID0gLTE7XG5cbiAgICB0aGlzLiNkcmFndWxhU2VydmljZVxuICAgICAgLmRyYWcodGhpcy5kcmFndWxhR3JvdXBOYW1lKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoYXJncykgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoYXJncy5uYW1lID09PSB0aGlzLmRyYWd1bGFHcm91cE5hbWUpIHtcbiAgICAgICAgICB0aGlzLiNkZXN0cm95QXV0b1Njcm9sbCgpO1xuXG4gICAgICAgICAgdGhpcy4jYXV0b1Njcm9sbGVyID0gdGhpcy4jYXV0b1Njcm9sbFN2Yy5hdXRvU2Nyb2xsKFxuICAgICAgICAgICAgW3RoaXMuI3Njcm9sbGFibGVIb3N0U3ZjLmdldFNjcm9sbGFibGVIb3N0KHRoaXMuI2VsZW1lbnRSZWYpXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWFyZ2luOiAyMCxcbiAgICAgICAgICAgICAgbWF4U3BlZWQ6IDEwLFxuICAgICAgICAgICAgICBzY3JvbGxXaGVuT3V0c2lkZTogdHJ1ZSxcbiAgICAgICAgICAgICAgYXV0b1Njcm9sbDogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoYXJncy5lbCwgJ3NreS1yZXBlYXRlci1pdGVtLWRyYWdnaW5nJyk7XG4gICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFJlcGVhdGVySXRlbUluZGV4KFxuICAgICAgICAgICAgYXJncy5lbCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcmFnZW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFyZ3MpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGFyZ3MubmFtZSA9PT0gdGhpcy5kcmFndWxhR3JvdXBOYW1lKSB7XG4gICAgICAgICAgdGhpcy4jZGVzdHJveUF1dG9TY3JvbGwoKTtcblxuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1JbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFJlcGVhdGVySXRlbUluZGV4KFxuICAgICAgICAgICAgYXJncy5lbCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChkcmFnZ2VkSXRlbUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZW9yZGVySXRlbShkcmFnZ2VkSXRlbUluZGV4LCBuZXdJdGVtSW5kZXgpO1xuICAgICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IC0xO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2VtaXRUYWdzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2Rlc3Ryb3lEcmFnQW5kRHJvcCgpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBoYXZlIHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNkcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlLmRlc3Ryb3kodGhpcy5kcmFndWxhR3JvdXBOYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLiNkZXN0cm95QXV0b1Njcm9sbCgpO1xuICB9XG5cbiAgI2Rlc3Ryb3lBdXRvU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNhdXRvU2Nyb2xsZXIpIHtcbiAgICAgIHRoaXMuI2F1dG9TY3JvbGxlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLiNhdXRvU2Nyb2xsZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2VtaXRUYWdzKCk6IHZvaWQge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnRhZyk7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5lbWl0KHRhZ3MpO1xuICB9XG5cbiAgI2V2ZXJ5SXRlbUhhc1RhZygpOiBib29sZWFuIHtcbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMudG9BcnJheSgpLmV2ZXJ5KChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS50YWcgIT09IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgfVxuXG4gICN1cGRhdGVSb2xlKCk6IHZvaWQge1xuICAgIC8vIERldGVybWluZSBhIHJvbGUgdXNpbmcgYSBoaWVyYXJjaHkgYmFzZWQgb24gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvXG4gICAgLy8gICAxLiBJZiB0aGVyZSBhcmUgb25lIG9yIG1vcmUgaW50ZXJhY3Rpb25zIGluIHRoZSByZXBlYXRlciBpdGVtIHByb2plY3RlZCBjb250ZW50LCB1c2UgZ3JpZC5cbiAgICAvLyAgIDIuIElmIHRoZXJlIGFyZSBzZWxlY3RhYmxlIHJlcGVhdGVyIGl0ZW1zIGFuZCBubyBvdGhlciBpbnRlcmFjdGlvbnMsIHVzZSBsaXN0Ym94LlxuICAgIC8vICAgMy4gSWYgdGhlcmUgYXJlIG5vIGludGVyYWN0aW9ucywgdXNlIGxpc3QuXG5cbiAgICAvLyBEZWZhdWx0IHRvIGxpc3Qgcm9sZS5cbiAgICBsZXQgYXV0b1JvbGU6IFNreVJlcGVhdGVyUm9sZVR5cGUgPSAnbGlzdCc7XG5cbiAgICBjb25zdCByb2xlTWFwOiBSZWNvcmQ8U2t5UmVwZWF0ZXJSb2xlVHlwZSwgU2t5UmVwZWF0ZXJJdGVtUm9sZXNUeXBlPiA9IHtcbiAgICAgIGxpc3Q6IHsgaXRlbTogJ2xpc3RpdGVtJywgdGl0bGU6IHVuZGVmaW5lZCwgY29udGVudDogdW5kZWZpbmVkIH0sXG4gICAgICBsaXN0Ym94OiB7IGl0ZW06ICdvcHRpb24nLCB0aXRsZTogdW5kZWZpbmVkLCBjb250ZW50OiB1bmRlZmluZWQgfSxcbiAgICAgIGdyaWQ6IHsgaXRlbTogJ3JvdycsIHRpdGxlOiAncm93aGVhZGVyJywgY29udGVudDogJ2dyaWRjZWxsJyB9LFxuICAgIH07XG5cbiAgICAvLyBCYXNlZCBvbiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNpbnRlcmFjdGl2ZS1jb250ZW50XG4gICAgY29uc3QgaW50ZXJhY3Rpb25TZWxlY3RvciA9IFtcbiAgICAgICdhW2hyZWZdJyxcbiAgICAgICdhdWRpb1tjb250cm9sc10nLFxuICAgICAgJ2J1dHRvbicsXG4gICAgICAnZGV0YWlscycsXG4gICAgICAnZW1iZWQnLFxuICAgICAgJ2lmcmFtZScsXG4gICAgICAnaW1nW3VzZW1hcF0nLFxuICAgICAgJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSknLFxuICAgICAgJ2xhYmVsJyxcbiAgICAgICdzZWxlY3QnLFxuICAgICAgJ3RleHRhcmVhJyxcbiAgICAgICd2aWRlb1tjb250cm9sc10nLFxuICAgICAgJ1tjb250ZW50ZWRpdGFibGVdJyxcbiAgICAgICcuc2t5LXJlcGVhdGVyW3JvbGU9XCJncmlkXCJdJyxcbiAgICBdXG4gICAgICAubWFwKFxuICAgICAgICAoc2VsZWN0b3IpID0+XG4gICAgICAgICAgYHNreS1yZXBlYXRlci1pdGVtLXRpdGxlICR7c2VsZWN0b3J9Om5vdChbaGlkZGVuXSksIHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQgJHtzZWxlY3Rvcn06bm90KFtoaWRkZW5dKWBcbiAgICAgIClcbiAgICAgIC5jb25jYXQoW2Bza3l1eC1kcm9wZG93bmBdKVxuICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICBjb25zdCBoYXNJbnRlcmFjdGlvbiA9XG4gICAgICB0aGlzLnJlb3JkZXJhYmxlIHx8XG4gICAgICB0aGlzLml0ZW1zPy5zb21lKChpdGVtKSA9PiBpdGVtLmlzQ29sbGFwc2libGUpIHx8XG4gICAgICB0aGlzLml0ZW1zPy5zb21lKChpdGVtKSA9PiAhIWl0ZW0uc2VsZWN0YWJsZSkgfHxcbiAgICAgICEhKHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcbiAgICAgICAgaW50ZXJhY3Rpb25TZWxlY3RvclxuICAgICAgKTtcblxuICAgIGlmIChoYXNJbnRlcmFjdGlvbikge1xuICAgICAgLy8gSWYgdGhlIHJlcGVhdGVyIG1hdGNoZXMgaW50ZXJhY3Rpb24gc2VsZWN0b3IgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvI2dyaWRcbiAgICAgIGF1dG9Sb2xlID0gJ2dyaWQnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJvbGUgIT09IGF1dG9Sb2xlKSB7XG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbVJvbGUubmV4dCh7XG4gICAgICAgIC4uLnJvbGVNYXBbYXV0b1JvbGVdLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnJvbGUgPSBgJHthdXRvUm9sZX1gO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVJlb3JkZXJhYmlsaXR5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgICBpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjdmFsaWRhdGVUYWdzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlb3JkZXJhYmxlICYmICF0aGlzLiNldmVyeUl0ZW1IYXNUYWcoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnUGxlYXNlIHN1cHBseSB0YWcgcHJvcGVydGllcyBmb3IgZWFjaCByZXBlYXRlciBpdGVtIHdoZW4gcmVvcmRlcmluZyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3JlcGVhdGVySG9zdD5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyXCJcbiAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8ICgnc2t5dXhfcmVwZWF0ZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVwiXG4gICAgW2RyYWd1bGFdPVwiZHJhZ3VsYUdyb3VwTmFtZVwiXG4gICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ2RrT2JzZXJ2ZUNvbnRlbnQoKVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -14,8 +14,8 @@ import { SkyRepeaterComponent } from './repeater.component';
|
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class SkyRepeaterModule {
|
|
16
16
|
}
|
|
17
|
-
SkyRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
18
|
-
SkyRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
17
|
+
SkyRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
SkyRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterModule, declarations: [SkyRepeaterComponent,
|
|
19
19
|
SkyRepeaterItemComponent,
|
|
20
20
|
SkyRepeaterItemContentComponent,
|
|
21
21
|
SkyRepeaterItemContextMenuComponent,
|
|
@@ -31,7 +31,7 @@ SkyRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
31
31
|
SkyRepeaterItemContentComponent,
|
|
32
32
|
SkyRepeaterItemContextMenuComponent,
|
|
33
33
|
SkyRepeaterItemTitleComponent] });
|
|
34
|
-
SkyRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
34
|
+
SkyRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterModule, providers: [DragulaService], imports: [CommonModule,
|
|
35
35
|
DragulaModule,
|
|
36
36
|
ObserversModule,
|
|
37
37
|
SkyChevronModule,
|
|
@@ -39,7 +39,7 @@ SkyRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
|
|
|
39
39
|
SkyIconModule,
|
|
40
40
|
SkyInlineFormModule,
|
|
41
41
|
SkyListsResourcesModule] });
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
declarations: [
|
|
@@ -80,9 +80,9 @@ export class SkyRepeaterService {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
_SkyRepeaterService__expandMode = new WeakMap();
|
|
83
|
-
SkyRepeaterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
84
|
-
SkyRepeaterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
83
|
+
SkyRepeaterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
84
|
+
SkyRepeaterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterService });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyRepeaterService, decorators: [{
|
|
86
86
|
type: Injectable
|
|
87
87
|
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy9zcmMvbGliL21vZHVsZXMvcmVwZWF0ZXIvcmVwZWF0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXZDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUNqQixNQUFNLG1CQUFtQixHQUE4QixNQUFNLENBQUM7QUFFOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRVMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBRU4sMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQ2hELFNBQVMsQ0FDVixDQUFDO1FBRUssc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBVTFCLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBRXZFLFVBQUssR0FBK0IsRUFBRSxDQUFDO1FBRTlCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBMkI7WUFDdkUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDLENBQUM7UUFFSSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELG9CQUFlLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFFcEMsMENBQWUsbUJBQW1CLEVBQUM7S0F1RHBDO0lBN0VDLDhEQUE4RDtJQUM5RCxJQUFXLFVBQVU7UUFDbkIsT0FBTyx1QkFBQSxJQUFJLHVDQUFhLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLEtBQTRDO1FBQ2hFLHVCQUFBLElBQUksbUNBQWdCLEtBQUssSUFBSSxtQkFBbUIsTUFBQSxDQUFDO0lBQ25ELENBQUM7SUFrQk0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE4QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQiwwQkFBMEI7WUFDMUIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBeUI7UUFDbEQsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTSxZQUFZLENBQUMsSUFBOEI7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUE4QjtRQUNsRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRU0seUJBQXlCLENBQUMsSUFBOEI7UUFDN0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7OytHQXZGVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVJlcGVhdGVyRXhwYW5kTW9kZVR5cGUgfSBmcm9tICcuL3JlcGVhdGVyLWV4cGFuZC1tb2RlLXR5cGUnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtUm9sZXNUeXBlIH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLXJvbGVzLnR5cGUnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLmNvbXBvbmVudCc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5jb25zdCBERUZBVUxUX0VYUEFORF9NT0RFOiBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlID0gJ25vbmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5UmVwZWF0ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIGFjdGl2ZUl0ZW1DaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIGFjdGl2ZUl0ZW1JbmRleENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICBwdWJsaWMgZW5hYmxlQWN0aXZlU3RhdGUgPSBmYWxzZTtcblxuICAvLyBUT0RPOiBSZW1vdmUgJ3N0cmluZycgYXMgYSB2YWxpZCB0eXBlIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICBwdWJsaWMgZ2V0IGV4cGFuZE1vZGUoKTogU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI19leHBhbmRNb2RlO1xuICB9XG4gIHB1YmxpYyBzZXQgZXhwYW5kTW9kZSh2YWx1ZTogU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19leHBhbmRNb2RlID0gdmFsdWUgPz8gREVGQVVMVF9FWFBBTkRfTU9ERTtcbiAgfVxuXG4gIHB1YmxpYyBpdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50PigpO1xuXG4gIHB1YmxpYyBpdGVtczogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50W10gPSBbXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXRlbVJvbGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreVJlcGVhdGVySXRlbVJvbGVzVHlwZT4oe1xuICAgIGNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICBpdGVtOiB1bmRlZmluZWQsXG4gICAgdGl0bGU6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgcHVibGljIG9yZGVyQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyByZXBlYXRlckdyb3VwSWQgPSArK3VuaXF1ZUlkO1xuXG4gICNfZXhwYW5kTW9kZSA9IERFRkFVTFRfRVhQQU5EX01PREU7XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlSXRlbUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuaXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLm9yZGVyQ2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVJdGVtKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZUFjdGl2ZVN0YXRlKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGl0ZW0gJiYgIWl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleCgoaSkgPT4gaSA9PT0gaXRlbSk7XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbUluZGV4Q2hhbmdlLm5leHQoaW5kZXgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1DaGFuZ2UubmV4dChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVJdGVtQnlJbmRleChpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5lbmFibGVBY3RpdmVTdGF0ZSkge1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLm5leHQodW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLml0ZW1zW2luZGV4XTtcbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0gJiYgIWFjdGl2ZUl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1DaGFuZ2UubmV4dChhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlckl0ZW0oaXRlbTogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIHVucmVnaXN0ZXJJdGVtKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4T2ZEZXN0cm95ZWRJdGVtID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleE9mRGVzdHJveWVkSXRlbSA+IC0xKSB7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleE9mRGVzdHJveWVkSXRlbSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2UoaXRlbTogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZS5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT3JkZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVvcmRlckl0ZW0ob2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMuc3BsaWNlKG5ld0luZGV4LCAwLCB0aGlzLml0ZW1zLnNwbGljZShvbGRJbmRleCwgMSlbMF0pO1xuICB9XG59XG4iXX0=
|
|
@@ -18,8 +18,10 @@ const RESOURCES = {
|
|
|
18
18
|
skyux_paging_page_link_aria_label: { message: 'Page {0}' },
|
|
19
19
|
skyux_paging_previous: { message: 'Previous' },
|
|
20
20
|
skyux_repeater_label: { message: 'List of items' },
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
skyux_repeater_item_collapse: { message: 'Collapse {0}' },
|
|
22
|
+
skyux_repeater_item_collapse_default: { message: 'Collapse' },
|
|
23
|
+
skyux_repeater_item_expand: { message: 'Expand {0}' },
|
|
24
|
+
skyux_repeater_item_expand_default: { message: 'Expand' },
|
|
23
25
|
skyux_repeater_item_checkbox_label: { message: 'Select {0}' },
|
|
24
26
|
skyux_repeater_item_checkbox_label_default: { message: 'Select row' },
|
|
25
27
|
skyux_repeater_item_reorder_cancel: {
|
|
@@ -56,16 +58,16 @@ export class SkyListsResourcesProvider {
|
|
|
56
58
|
*/
|
|
57
59
|
export class SkyListsResourcesModule {
|
|
58
60
|
}
|
|
59
|
-
SkyListsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
60
|
-
SkyListsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
61
|
-
SkyListsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
61
|
+
SkyListsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
62
|
+
SkyListsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyListsResourcesModule, exports: [SkyI18nModule] });
|
|
63
|
+
SkyListsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListsResourcesModule, providers: [
|
|
62
64
|
{
|
|
63
65
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
64
66
|
useClass: SkyListsResourcesProvider,
|
|
65
67
|
multi: true,
|
|
66
68
|
},
|
|
67
69
|
], imports: [SkyI18nModule] });
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyListsResourcesModule, decorators: [{
|
|
69
71
|
type: NgModule,
|
|
70
72
|
args: [{
|
|
71
73
|
exports: [SkyI18nModule],
|
|
@@ -78,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
|
78
80
|
],
|
|
79
81
|
}]
|
|
80
82
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWxpc3RzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktbGlzdHMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ2hELDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUN4RCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDbEQsc0NBQXNDLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ2hFLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUM3QyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDdEMsaUNBQWlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzFELHFCQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUM5QyxvQkFBb0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUU7UUFDbEQsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ3pELG9DQUFvQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUM3RCwwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFDckQsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ3pELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUM3RCwwQ0FBMEMsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFDckUsa0NBQWtDLEVBQUU7WUFDbEMsT0FBTyxFQUNMLCtFQUErRTtTQUNsRjtRQUNELGtDQUFrQyxFQUFFO1lBQ2xDLE9BQU8sRUFBRSw4QkFBOEI7U0FDeEM7UUFDRCx3Q0FBd0MsRUFBRTtZQUN4QyxPQUFPLEVBQ0wsaUpBQWlKO1NBQ3BKO1FBQ0QsaUNBQWlDLEVBQUU7WUFDakMsT0FBTyxFQUFFLDRCQUE0QjtTQUN0QztRQUNELHlDQUF5QyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNqRSxpQ0FBaUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7UUFDN0QscUNBQXFDLEVBQUU7WUFDckMsT0FBTyxFQUFFLDZDQUE2QztTQUN2RDtRQUNELCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUNuRCxxQ0FBcUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRTtRQUNyRSw2Q0FBNkMsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7UUFDekUsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQzVDLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtLQUNoRDtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8seUJBQXlCO0lBQzdCLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixZQVR4QixhQUFhO3FIQVNaLHVCQUF1QixhQVJ2QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGFBQWE7MkZBU1osdUJBQXVCO2tCQVZuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSx5QkFBeUI7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktbGlzdHMnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogeyBbbG9jYWxlOiBzdHJpbmddOiBTa3lMaWJSZXNvdXJjZXMgfSA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2ZpbHRlcl9idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ0ZpbHRlcicgfSxcbiAgICBza3l1eF9maWx0ZXJfc3VtbWFyeV9jbG9zZTogeyBtZXNzYWdlOiAnUmVtb3ZlIGZpbHRlcicgfSxcbiAgICBza3l1eF9maWx0ZXJfc3VtbWFyeV9oZWFkZXI6IHsgbWVzc2FnZTogJ0ZpbHRlcicgfSxcbiAgICBza3l1eF9pbmZpbml0ZV9zY3JvbGxfbG9hZF9tb3JlX2J1dHRvbjogeyBtZXNzYWdlOiAnTG9hZCBtb3JlJyB9LFxuICAgIHNreXV4X3BhZ2luZ19sYWJlbDogeyBtZXNzYWdlOiAnUGFnaW5hdGlvbicgfSxcbiAgICBza3l1eF9wYWdpbmdfbmV4dDogeyBtZXNzYWdlOiAnTmV4dCcgfSxcbiAgICBza3l1eF9wYWdpbmdfcGFnZV9saW5rX2FyaWFfbGFiZWw6IHsgbWVzc2FnZTogJ1BhZ2UgezB9JyB9LFxuICAgIHNreXV4X3BhZ2luZ19wcmV2aW91czogeyBtZXNzYWdlOiAnUHJldmlvdXMnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfbGFiZWw6IHsgbWVzc2FnZTogJ0xpc3Qgb2YgaXRlbXMnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9jb2xsYXBzZTogeyBtZXNzYWdlOiAnQ29sbGFwc2UgezB9JyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fY29sbGFwc2VfZGVmYXVsdDogeyBtZXNzYWdlOiAnQ29sbGFwc2UnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9leHBhbmQ6IHsgbWVzc2FnZTogJ0V4cGFuZCB7MH0nIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9leHBhbmRfZGVmYXVsdDogeyBtZXNzYWdlOiAnRXhwYW5kJyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fY2hlY2tib3hfbGFiZWw6IHsgbWVzc2FnZTogJ1NlbGVjdCB7MH0nIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9jaGVja2JveF9sYWJlbF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdTZWxlY3Qgcm93JyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9jYW5jZWw6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICdJdGVtIHJlb3JkZXJpbmcgd2FzIGNhbmNlbGVkLiBUaGUgaXRlbSB3YXMgcmV0dXJuZWQgdG8gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfZmluaXNoOiB7XG4gICAgICBtZXNzYWdlOiAnRHJvcHBlZCB0aGUgaXRlbSBpbiBwb3NpdGlvbicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfaW5zdHJ1Y3Rpb25zOiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnSXRlbSBncmFiYmVkLiBQcmVzcyB0aGUgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBjaGFuZ2UgcG9zaXRpb24uIFByZXNzIHRoZSBzcGFjZWJhciBvciBlbnRlciBrZXkgdG8gZHJvcC4gQW5kIHByZXNzIHRoZSBlc2NhcGUga2V5IHRvIGNhbmNlbC4nLFxuICAgIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX21vdmVkOiB7XG4gICAgICBtZXNzYWdlOiAnTW92ZWQgdGhlIGl0ZW0gdG8gcG9zaXRpb24nLFxuICAgIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2xhYmVsX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ1Jlb3JkZXInIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2xhYmVsOiB7IG1lc3NhZ2U6ICdSZW9yZGVyIHswfScgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfb3BlcmF0aW9uOiB7XG4gICAgICBtZXNzYWdlOiAnUHJlc3MgdGhlIHNwYWNlYmFyIG9yIGVudGVyIGtleSB0byByZW9yZGVyLicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfdG9wOiB7IG1lc3NhZ2U6ICdUb3AnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX3RvcF9sYWJlbDogeyBtZXNzYWdlOiAnTW92ZSB7MH0gdG8gdG9wJyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3BfbGFiZWxfZGVmYXVsdDogeyBtZXNzYWdlOiAnTW92ZSB0byB0b3AnIH0sXG4gICAgc2t5dXhfc29ydF9idXR0b25fbGFiZWw6IHsgbWVzc2FnZTogJ1NvcnQnIH0sXG4gICAgc2t5dXhfc29ydF9tZW51X2hlYWRpbmc6IHsgbWVzc2FnZTogJ1NvcnQgYnknIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY2xhc3MgU2t5TGlzdHNSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreUxpc3RzUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0c1Jlc291cmNlc01vZHVsZSB7fVxuIl19
|