@skyux/core 4.7.0 → 4.9.1

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/bundles/skyux-core.umd.js +246 -39
  3. package/bundles/skyux-core.umd.js.map +1 -1
  4. package/bundles/skyux-core.umd.min.js +1 -1
  5. package/bundles/skyux-core.umd.min.js.map +1 -1
  6. package/esm2015/modules/dock/dock-dom-adapter.service.js +60 -3
  7. package/esm2015/modules/dock/dock.component.js +13 -4
  8. package/esm2015/modules/numeric/numeric.options.js +6 -1
  9. package/esm2015/modules/numeric/numeric.service.js +2 -2
  10. package/esm2015/modules/scrollable-host/scrollable-host.module.js +16 -0
  11. package/esm2015/modules/scrollable-host/scrollable-host.service.js +89 -0
  12. package/esm2015/modules/shared/number-format/number-format-utility.js +4 -3
  13. package/esm2015/modules/viewkeeper/viewkeeper-host-options.js +1 -1
  14. package/esm2015/modules/viewkeeper/viewkeeper-options.js +1 -1
  15. package/esm2015/modules/viewkeeper/viewkeeper.directive.js +35 -16
  16. package/esm2015/modules/viewkeeper/viewkeeper.js +27 -11
  17. package/esm2015/modules/viewkeeper/viewkeeper.module.js +5 -1
  18. package/esm2015/public_api.js +2 -1
  19. package/esm2015/skyux-core.js +2 -1
  20. package/esm5/modules/dock/dock-dom-adapter.service.js +61 -3
  21. package/esm5/modules/dock/dock.component.js +13 -4
  22. package/esm5/modules/numeric/numeric.options.js +6 -1
  23. package/esm5/modules/numeric/numeric.service.js +2 -2
  24. package/esm5/modules/scrollable-host/scrollable-host.module.js +19 -0
  25. package/esm5/modules/scrollable-host/scrollable-host.service.js +91 -0
  26. package/esm5/modules/shared/number-format/number-format-utility.js +4 -3
  27. package/esm5/modules/viewkeeper/viewkeeper-host-options.js +1 -1
  28. package/esm5/modules/viewkeeper/viewkeeper-options.js +1 -1
  29. package/esm5/modules/viewkeeper/viewkeeper.directive.js +45 -25
  30. package/esm5/modules/viewkeeper/viewkeeper.js +31 -11
  31. package/esm5/modules/viewkeeper/viewkeeper.module.js +5 -1
  32. package/esm5/public_api.js +2 -1
  33. package/esm5/skyux-core.js +2 -1
  34. package/fesm2015/skyux-core.js +226 -32
  35. package/fesm2015/skyux-core.js.map +1 -1
  36. package/fesm5/skyux-core.js +246 -41
  37. package/fesm5/skyux-core.js.map +1 -1
  38. package/modules/dock/dock-dom-adapter.service.d.ts +14 -3
  39. package/modules/numeric/numeric.options.d.ts +5 -0
  40. package/modules/scrollable-host/scrollable-host.module.d.ts +2 -0
  41. package/modules/scrollable-host/scrollable-host.service.d.ts +13 -0
  42. package/modules/shared/number-format/number-format-utility.d.ts +1 -1
  43. package/modules/viewkeeper/viewkeeper-host-options.d.ts +1 -0
  44. package/modules/viewkeeper/viewkeeper-options.d.ts +5 -0
  45. package/modules/viewkeeper/viewkeeper.d.ts +4 -1
  46. package/modules/viewkeeper/viewkeeper.directive.d.ts +4 -1
  47. package/package.json +2 -2
  48. package/public_api.d.ts +1 -0
  49. package/skyux-core.d.ts +1 -0
  50. package/skyux-core.metadata.json +1 -1
@@ -26,11 +26,12 @@ function nextId() {
26
26
  nextIdIndex = (nextIdIndex || 0) + 1;
27
27
  return 'viewkeeper-' + nextIdIndex;
28
28
  }
29
- function getOffset(el) {
29
+ function getOffset(el, scrollableHost) {
30
30
  const rect = el.getBoundingClientRect();
31
+ const parent = scrollableHost ? scrollableHost : document.documentElement;
31
32
  return {
32
- top: rect.top + document.documentElement.scrollTop,
33
- left: rect.left + document.documentElement.scrollLeft
33
+ top: rect.top + parent.scrollTop,
34
+ left: rect.left + parent.scrollLeft
34
35
  };
35
36
  }
36
37
  function px(value) {
@@ -66,6 +67,7 @@ export class SkyViewkeeper {
66
67
  this.id = nextId();
67
68
  this.el = options.el;
68
69
  this.boundaryEl = options.boundaryEl;
70
+ this.scrollableHost = options.scrollableHost;
69
71
  this.verticalOffset = options.verticalOffset || 0;
70
72
  this.verticalOffsetEl = options.verticalOffsetEl;
71
73
  this.viewportMarginTop = options.viewportMarginTop || 0;
@@ -73,12 +75,23 @@ export class SkyViewkeeper {
73
75
  if (this.verticalOffsetEl) {
74
76
  this.verticalOffsetEl.addEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
75
77
  }
76
- window.addEventListener('scroll', this.syncElPositionHandler);
78
+ window.addEventListener('scroll', this.syncElPositionHandler, true);
77
79
  window.addEventListener('resize', this.syncElPositionHandler);
78
80
  window.addEventListener('orientationchange', this.syncElPositionHandler);
79
81
  ensureStyleEl();
80
82
  this.syncElPosition();
81
83
  }
84
+ set viewportMarginTop(margin) {
85
+ this._viewportMarginTop = margin;
86
+ }
87
+ get viewportMarginTop() {
88
+ if (this.scrollableHost) {
89
+ return 0;
90
+ }
91
+ else {
92
+ return this._viewportMarginTop;
93
+ }
94
+ }
82
95
  syncElPosition() {
83
96
  const verticalOffset = this.calculateVerticalOffset();
84
97
  // When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.
@@ -101,7 +114,7 @@ export class SkyViewkeeper {
101
114
  }
102
115
  destroy() {
103
116
  if (!this.isDestroyed) {
104
- window.removeEventListener('scroll', this.syncElPositionHandler);
117
+ window.removeEventListener('scroll', this.syncElPositionHandler, true);
105
118
  window.removeEventListener('resize', this.syncElPositionHandler);
106
119
  window.removeEventListener('orientationchange', this.syncElPositionHandler);
107
120
  this.unfixEl();
@@ -139,16 +152,19 @@ export class SkyViewkeeper {
139
152
  const verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;
140
153
  offset += (this.verticalOffsetEl.offsetHeight + verticalOffsetElTop);
141
154
  }
155
+ else if (this.scrollableHost) {
156
+ offset += this.scrollableHost.getBoundingClientRect().top;
157
+ }
142
158
  return offset;
143
159
  }
144
160
  shouldFixEl(boundaryInfo, verticalOffset) {
145
161
  let anchorTop;
146
162
  let doFixEl;
147
163
  if (boundaryInfo.spacerEl) {
148
- anchorTop = getOffset(boundaryInfo.spacerEl).top;
164
+ anchorTop = getOffset(boundaryInfo.spacerEl, this.scrollableHost).top;
149
165
  }
150
166
  else {
151
- anchorTop = getOffset(this.el).top;
167
+ anchorTop = getOffset(this.el, this.scrollableHost).top;
152
168
  }
153
169
  doFixEl = boundaryInfo.scrollTop + verticalOffset + this.viewportMarginTop > anchorTop;
154
170
  return doFixEl;
@@ -207,11 +223,11 @@ export class SkyViewkeeper {
207
223
  const spacerId = this.getSpacerId();
208
224
  const spacerEl = document.getElementById(spacerId);
209
225
  const boundaryEl = this.boundaryEl;
210
- const boundaryOffset = getOffset(boundaryEl);
226
+ const boundaryOffset = getOffset(boundaryEl, this.scrollableHost);
211
227
  const boundaryTop = boundaryOffset.top;
212
228
  const boundaryBottom = boundaryTop + boundaryEl.getBoundingClientRect().height;
213
- const scrollLeft = document.documentElement.scrollLeft;
214
- const scrollTop = document.documentElement.scrollTop;
229
+ const scrollLeft = this.scrollableHost ? this.scrollableHost.scrollLeft : document.documentElement.scrollLeft;
230
+ const scrollTop = this.scrollableHost ? this.scrollableHost.scrollTop : document.documentElement.scrollTop;
215
231
  const elHeight = getHeightWithMargin(this.el);
216
232
  return {
217
233
  boundaryBottom,
@@ -225,4 +241,4 @@ export class SkyViewkeeper {
225
241
  };
226
242
  }
227
243
  }
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsibW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUFDcEQsTUFBTSx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQztBQUV4RCxJQUFJLE9BQXlCLENBQUM7QUFDOUIsSUFBSSxXQUFtQixDQUFDO0FBRXhCLFNBQVMsYUFBYTtJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztHQUNuQyxvQkFBb0I7Ozs7Ozs7cUJBT0Ysb0JBQW9COzs7O0NBSXhDLENBQ0ksQ0FBQztRQUVGLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDcEM7QUFDSCxDQUFDO0FBRUQsU0FBUyxNQUFNO0lBQ2IsV0FBVyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxPQUFPLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEVBQWU7SUFDaEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFeEMsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUztRQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVU7S0FDdEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLEVBQUUsQ0FB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QyxTQUFTLENBQUM7UUFFckQsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFNBQVM7WUFDVCxRQUFRO1lBQ1IsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvXG59IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzXG59IGZyb20gJy4vdmlld2tlZXBlci1maXhlZC1zdHlsZXMnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT2Zmc2V0XG59IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT3B0aW9uc1xufSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgbGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcbi4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG4gIG9wYWNpdHk6IDAuOTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5za3ktdGhlbWUtbW9kZXJuIC4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBvcGFjaXR5OiBpbml0aWFsO1xufVxuYFxuICAgICk7XG5cbiAgICBzdHlsZUVsLmFwcGVuZENoaWxkKGNzcyk7XG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5leHRJZCgpOiBzdHJpbmcge1xuICBuZXh0SWRJbmRleCA9IChuZXh0SWRJbmRleCB8fCAwKSArIDE7XG5cbiAgcmV0dXJuICd2aWV3a2VlcGVyLScgKyBuZXh0SWRJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsOiBIVE1MRWxlbWVudCk6IFNreVZpZXdrZWVwZXJPZmZzZXQge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IHJlY3QudG9wICsgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgKyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdFxuICB9O1xufVxuXG5mdW5jdGlvbiBweCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHB4VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHB4VmFsdWUgPSB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gcHhWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0RWxQb3NpdGlvbihcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBsZWZ0OiBudW1iZXIgfCBzdHJpbmcsXG4gIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nLFxuICBtYXJnaW5Ub3A6IG51bWJlciB8IHN0cmluZ1xuKTogdm9pZCB7XG4gIGVsLnN0eWxlLnRvcCA9IHB4KHRvcCk7XG4gIGVsLnN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgZWwuc3R5bGUubWFyZ2luVG9wID0gcHgobWFyZ2luVG9wKTtcblxuICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgLyogc2FuaXR5IGNoZWNrICovXG4gIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgIGVsLnN0eWxlLndpZHRoID0gcHgod2lkdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhlaWdodFdpdGhNYXJnaW4oZWw6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gIHJldHVybiBlbC5vZmZzZXRIZWlnaHQgKyBwYXJzZUludChjb21wdXRlZFN0eWxlLm1hcmdpblRvcCwgMTApICsgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ3VzdG9tRXZlbnQobmFtZTogYW55KTogQ3VzdG9tRXZlbnQ8YW55PiB7XG4gIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuXG4gIGV2dC5pbml0Q3VzdG9tRXZlbnQoXG4gICAgbmFtZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZSxcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICByZXR1cm4gZXZ0O1xufVxuXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlciB7XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aDogYm9vbGVhbjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBib3VuZGFyeUVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSB2ZXJ0aWNhbE9mZnNldEVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHZpZXdwb3J0TWFyZ2luVG9wOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZDogYm9vbGVhbjtcblxuICBwcml2YXRlIGN1cnJlbnRFbEZpeGVkVG9wOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZExlZnQ6IG51bWJlcjtcblxuICBwcml2YXRlIGN1cnJlbnRFbEZpeGVkV2lkdGg6IG51bWJlcjtcblxuICBwcml2YXRlIHN5bmNFbFBvc2l0aW9uSGFuZGxlcjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIHt9O1xuXG4gICAgdGhpcy5zZXRXaWR0aCA9IG9wdGlvbnMuc2V0V2lkdGg7XG4gICAgdGhpcy5pZCA9IG5leHRJZCgpO1xuICAgIHRoaXMuZWwgPSBvcHRpb25zLmVsO1xuICAgIHRoaXMuYm91bmRhcnlFbCA9IG9wdGlvbnMuYm91bmRhcnlFbDtcbiAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0ID0gb3B0aW9ucy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICAgIHRoaXMudmVydGljYWxPZmZzZXRFbCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXRFbDtcbiAgICB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wID0gb3B0aW9ucy52aWV3cG9ydE1hcmdpblRvcCB8fCAwO1xuXG4gICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKSA9PiB0aGlzLnN5bmNFbFBvc2l0aW9uKCk7XG5cbiAgICBpZiAodGhpcy52ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyxcbiAgICAgICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcblxuICAgIGVuc3VyZVN0eWxlRWwoKTtcblxuICAgIHRoaXMuc3luY0VsUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jRWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHRoaXMuY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTtcblxuICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSwgaXRzIHNpemUgY2FuJ3QgYmUgY2FsY3VsYXRlZCwgc28gZG9uJ3QgYXR0ZW1wdCBzeW5jaW5nIHBvc2l0aW9uIGluIHRoaXMgY2FzZS5cbiAgICBpZiAodGhpcy5lbC5vZmZzZXRXaWR0aCA9PT0gMCAmJiB0aGlzLmVsLm9mZnNldEhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kYXJ5SW5mbyA9IHRoaXMuZ2V0Qm91bmRhcnlJbmZvKCk7XG4gICAgY29uc3QgZml4ZWRTdHlsZXMgPSB0aGlzLmdldEZpeGVkU3R5bGVzKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZG9GaXhFbCA9IHRoaXMuc2hvdWxkRml4RWwoYm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc1VwZGF0aW5nKGRvRml4RWwsIGZpeGVkU3R5bGVzKSkge1xuICAgICAgaWYgKGRvRml4RWwpIHtcbiAgICAgICAgdGhpcy5maXhFbChib3VuZGFyeUluZm8sIGZpeGVkU3R5bGVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudW5maXhFbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2dCA9IGNyZWF0ZUN1c3RvbUV2ZW50KEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMpO1xuXG4gICAgdGhpcy5lbC5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuXG4gICAgICB0aGlzLnVuZml4RWwoKTtcblxuICAgICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DLFxuICAgICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZWwgPVxuICAgICAgICB0aGlzLmJvdW5kYXJ5RWwgPVxuICAgICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3BhY2VySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCArICctc3BhY2VyJztcbiAgfVxuXG4gIHByaXZhdGUgdW5maXhFbCgpOiB2b2lkIHtcbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0U3BhY2VySWQoKSk7XG5cbiAgICBpZiAoc3BhY2VyRWwpIHtcbiAgICAgIHNwYWNlckVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc3BhY2VyRWwpO1xuICAgIH1cblxuICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShDTFNfVklFV0tFRVBFUl9GSVhFRCk7XG5cbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCA9XG4gICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkVG9wID1cbiAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRXaWR0aCA9IHVuZGVmaW5lZDtcblxuICAgIGxldCB3aWR0aDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMuc2V0V2lkdGgpIHtcbiAgICAgIHdpZHRoID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHNldEVsUG9zaXRpb24odGhpcy5lbCwgJycsICcnLCB3aWR0aCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpOiBudW1iZXIge1xuICAgIGxldCBvZmZzZXQgPSB0aGlzLnZlcnRpY2FsT2Zmc2V0O1xuXG4gICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgY29uc3QgdmVydGljYWxPZmZzZXRFbFRvcFN0eWxlID0gdGhpcy52ZXJ0aWNhbE9mZnNldEVsLnN0eWxlLnRvcDtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3AgPSBwYXJzZUludCh2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUsIDEwKSB8fCAwO1xuXG4gICAgICBvZmZzZXQgKz0gKHRoaXMudmVydGljYWxPZmZzZXRFbC5vZmZzZXRIZWlnaHQgKyB2ZXJ0aWNhbE9mZnNldEVsVG9wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRGaXhFbChib3VuZGFyeUluZm86IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8sIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBsZXQgYW5jaG9yVG9wOiBudW1iZXI7XG4gICAgbGV0IGRvRml4RWw6IGJvb2xlYW47XG5cbiAgICBpZiAoYm91bmRhcnlJbmZvLnNwYWNlckVsKSB7XG4gICAgICBhbmNob3JUb3AgPSBnZXRPZmZzZXQoYm91bmRhcnlJbmZvLnNwYWNlckVsKS50b3A7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuY2hvclRvcCA9IGdldE9mZnNldCh0aGlzLmVsKS50b3A7XG4gICAgfVxuXG4gICAgZG9GaXhFbCA9IGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AgKyB2ZXJ0aWNhbE9mZnNldCArIHRoaXMudmlld3BvcnRNYXJnaW5Ub3AgPiBhbmNob3JUb3A7XG5cbiAgICByZXR1cm4gZG9GaXhFbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rml4ZWRTdHlsZXMoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXJcbiAgKTogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzIHtcbiAgICBsZXQgZWxGaXhlZFRvcDogbnVtYmVyO1xuXG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgbmVlZHMgdG8gYmUgZml4ZWQsIHRoaXMgd2lsbCBjYWxjdWxhdGUgaXRzIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uXG4gICAgLy8gd2lsbCBiZSAwIChmdWxseSB2aXNpYmxlKSB1bmxlc3MgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIHRoZSBib3VuZGFyeSBvdXQgb2Ygdmlldy5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIHRoZSBlbGVtZW50IHNob3VsZCBiZWdpbiB0byBzY3JvbGwgb3V0IG9mIHZpZXcgd2l0aCB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBib3VuZGFyeSBieSBzZXR0aW5nIGl0cyB0b3AgcG9zaXRpb24gdG8gYSBuZWdhdGl2ZSB2YWx1ZS5cbiAgICBlbEZpeGVkVG9wID0gTWF0aC5taW4oXG4gICAgICAoYm91bmRhcnlJbmZvLmJvdW5kYXJ5Qm90dG9tIC0gYm91bmRhcnlJbmZvLmVsSGVpZ2h0KSAtIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AsXG4gICAgICB2ZXJ0aWNhbE9mZnNldFxuICAgICk7XG5cbiAgICBjb25zdCBlbEZpeGVkV2lkdGggPSBib3VuZGFyeUluZm8uYm91bmRhcnlFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBlbEZpeGVkTGVmdCA9IGJvdW5kYXJ5SW5mby5ib3VuZGFyeU9mZnNldC5sZWZ0IC0gYm91bmRhcnlJbmZvLnNjcm9sbExlZnQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxGaXhlZExlZnQsXG4gICAgICBlbEZpeGVkVG9wLFxuICAgICAgZWxGaXhlZFdpZHRoXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNVcGRhdGluZyhkb0ZpeEVsOiBib29sZWFuLCBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgKFxuICAgICAgICBkb0ZpeEVsICYmXG4gICAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkVG9wID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wICYmXG4gICAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRXaWR0aCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoXG4gICAgICApIHx8XG4gICAgICAoXG4gICAgICAgICFkb0ZpeEVsICYmXG4gICAgICAgICEodGhpcy5jdXJyZW50RWxGaXhlZExlZnQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCAhPT0gbnVsbClcbiAgICAgIClcbiAgICApIHtcbiAgICAgIC8vIFRoZSBlbGVtZW50IGlzIGVpdGhlciBjdXJyZW50bHkgZml4ZWQgYW5kIGl0cyBwb3NpdGlvbiBhbmQgd2lkdGggZG8gbm90IG5lZWRcbiAgICAgIC8vIHRvIGNoYW5nZSwgb3IgdGhlIGVsZW1lbnQgaXMgbm90IGN1cnJlbnRseSBmaXhlZCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBmaXhlZC5cbiAgICAgIC8vIE5vIGNoYW5nZXMgYXJlIG5lZWRlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZml4RWwoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXNcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsO1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIC8qIHNhbml0eSBjaGVjayAqL1xuICBpZiAoIWJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgY29uc3Qgc3BhY2VySGVpZ2h0ID0gYm91bmRhcnlJbmZvLmVsSGVpZ2h0O1xuXG4gICAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3BhY2VyRWwuaWQgPSBib3VuZGFyeUluZm8uc3BhY2VySWQ7XG4gICAgICBzcGFjZXJFbC5zdHlsZS5oZWlnaHQgPSBweChzcGFjZXJIZWlnaHQpO1xuXG4gICAgICBlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzcGFjZXJFbCwgZWwubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIGVsLmNsYXNzTGlzdC5hZGQoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3A7XG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG5cbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aDtcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKFxuICAgICAgZWwsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AsXG4gICAgICB3aWR0aCxcbiAgICAgIHRoaXMudmlld3BvcnRNYXJnaW5Ub3BcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb3VuZGFyeUluZm8oKTogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB7XG4gICAgY29uc3Qgc3BhY2VySWQgPSB0aGlzLmdldFNwYWNlcklkKCk7XG5cbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYWNlcklkKTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5RWwgPSB0aGlzLmJvdW5kYXJ5RWw7XG5cbiAgICBjb25zdCBib3VuZGFyeU9mZnNldCA9IGdldE9mZnNldChib3VuZGFyeUVsKTtcbiAgICBjb25zdCBib3VuZGFyeVRvcCA9IGJvdW5kYXJ5T2Zmc2V0LnRvcDtcbiAgICBjb25zdCBib3VuZGFyeUJvdHRvbSA9IGJvdW5kYXJ5VG9wICsgYm91bmRhcnlFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcblxuICAgIGNvbnN0IGVsSGVpZ2h0ID0gZ2V0SGVpZ2h0V2l0aE1hcmdpbih0aGlzLmVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBib3VuZGFyeUJvdHRvbSxcbiAgICAgIGJvdW5kYXJ5T2Zmc2V0LFxuICAgICAgYm91bmRhcnlFbCxcbiAgICAgIGVsSGVpZ2h0LFxuICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcCxcbiAgICAgIHNwYWNlcklkLFxuICAgICAgc3BhY2VyRWxcbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsibW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUFDcEQsTUFBTSx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQztBQUV4RCxJQUFJLE9BQXlCLENBQUM7QUFDOUIsSUFBSSxXQUFtQixDQUFDO0FBRXhCLFNBQVMsYUFBYTtJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztHQUNuQyxvQkFBb0I7Ozs7Ozs7cUJBT0Ysb0JBQW9COzs7O0NBSXhDLENBQ0ksQ0FBQztRQUVGLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDcEM7QUFDSCxDQUFDO0FBRUQsU0FBUyxNQUFNO0lBQ2IsV0FBVyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxPQUFPLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEVBQWUsRUFBRSxjQUE0QjtJQUM5RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUUxRSxPQUFPO1FBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVM7UUFDaEMsSUFBSSxFQUFFLElB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QUFDLFdBQVcsRUFDdkIsV0FBVyxDQUFDLFVBQVUsRUFDdEIsS0FBSyxFQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUN2QyxNQUFNLGNBQWMsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO1FBRS9FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUM5RyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFM0csTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFNBQVM7WUFDVCxRQUFRO1lBQ1IsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvXG59IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzXG59IGZyb20gJy4vdmlld2tlZXBlci1maXhlZC1zdHlsZXMnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT2Zmc2V0XG59IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT3B0aW9uc1xufSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgbGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcbi4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG4gIG9wYWNpdHk6IDAuOTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5za3ktdGhlbWUtbW9kZXJuIC4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBvcGFjaXR5OiBpbml0aWFsO1xufVxuYFxuICAgICk7XG5cbiAgICBzdHlsZUVsLmFwcGVuZENoaWxkKGNzcyk7XG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5leHRJZCgpOiBzdHJpbmcge1xuICBuZXh0SWRJbmRleCA9IChuZXh0SWRJbmRleCB8fCAwKSArIDE7XG5cbiAgcmV0dXJuICd2aWV3a2VlcGVyLScgKyBuZXh0SWRJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZUhvc3Q/OiBIVE1MRWxlbWVudCk6IFNreVZpZXdrZWVwZXJPZmZzZXQge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHBhcmVudCA9IHNjcm9sbGFibGVIb3N0ID8gc2Nyb2xsYWJsZUhvc3QgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IHJlY3QudG9wICsgcGFyZW50LnNjcm9sbFRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgKyBwYXJlbnQuc2Nyb2xsTGVmdFxuICB9O1xufVxuXG5mdW5jdGlvbiBweCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHB4VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHB4VmFsdWUgPSB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gcHhWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0RWxQb3NpdGlvbihcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBsZWZ0OiBudW1iZXIgfCBzdHJpbmcsXG4gIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nLFxuICBtYXJnaW5Ub3A6IG51bWJlciB8IHN0cmluZ1xuKTogdm9pZCB7XG4gIGVsLnN0eWxlLnRvcCA9IHB4KHRvcCk7XG4gIGVsLnN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgZWwuc3R5bGUubWFyZ2luVG9wID0gcHgobWFyZ2luVG9wKTtcblxuICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgLyogc2FuaXR5IGNoZWNrICovXG4gIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgIGVsLnN0eWxlLndpZHRoID0gcHgod2lkdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhlaWdodFdpdGhNYXJnaW4oZWw6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gIHJldHVybiBlbC5vZmZzZXRIZWlnaHQgKyBwYXJzZUludChjb21wdXRlZFN0eWxlLm1hcmdpblRvcCwgMTApICsgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ3VzdG9tRXZlbnQobmFtZTogYW55KTogQ3VzdG9tRXZlbnQ8YW55PiB7XG4gIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuXG4gIGV2dC5pbml0Q3VzdG9tRXZlbnQoXG4gICAgbmFtZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZSxcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICByZXR1cm4gZXZ0O1xufVxuXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlciB7XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aDogYm9vbGVhbjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBib3VuZGFyeUVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSB2ZXJ0aWNhbE9mZnNldEVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHNldCB2aWV3cG9ydE1hcmdpblRvcChtYXJnaW46IG51bWJlcikge1xuICAgIHRoaXMuX3ZpZXdwb3J0TWFyZ2luVG9wID0gbWFyZ2luO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdmlld3BvcnRNYXJnaW5Ub3AoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5zY3JvbGxhYmxlSG9zdCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl92aWV3cG9ydE1hcmdpblRvcDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRGVzdHJveWVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY3VycmVudEVsRml4ZWRUb3A6IG51bWJlcjtcblxuICBwcml2YXRlIGN1cnJlbnRFbEZpeGVkTGVmdDogbnVtYmVyO1xuXG4gIHByaXZhdGUgY3VycmVudEVsRml4ZWRXaWR0aDogbnVtYmVyO1xuXG4gIHByaXZhdGUgc2Nyb2xsYWJsZUhvc3Q6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgc3luY0VsUG9zaXRpb25IYW5kbGVyOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3ZpZXdwb3J0TWFyZ2luVG9wOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2t5Vmlld2tlZXBlck9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyB7fTtcblxuICAgIHRoaXMuc2V0V2lkdGggPSBvcHRpb25zLnNldFdpZHRoO1xuICAgIHRoaXMuaWQgPSBuZXh0SWQoKTtcbiAgICB0aGlzLmVsID0gb3B0aW9ucy5lbDtcbiAgICB0aGlzLmJvdW5kYXJ5RWwgPSBvcHRpb25zLmJvdW5kYXJ5RWw7XG4gICAgdGhpcy5zY3JvbGxhYmxlSG9zdCA9IG9wdGlvbnMuc2Nyb2xsYWJsZUhvc3Q7XG4gICAgdGhpcy52ZXJ0aWNhbE9mZnNldCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXQgfHwgMDtcbiAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwgPSBvcHRpb25zLnZlcnRpY2FsT2Zmc2V0RWw7XG4gICAgdGhpcy52aWV3cG9ydE1hcmdpblRvcCA9IG9wdGlvbnMudmlld3BvcnRNYXJnaW5Ub3AgfHwgMDtcblxuICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyID0gKCkgPT4gdGhpcy5zeW5jRWxQb3NpdGlvbigpO1xuXG4gICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICApO1xuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlciwgdHJ1ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG5cbiAgICBlbnN1cmVTdHlsZUVsKCk7XG5cbiAgICB0aGlzLnN5bmNFbFBvc2l0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgc3luY0VsUG9zaXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgdmVydGljYWxPZmZzZXQgPSB0aGlzLmNhbGN1bGF0ZVZlcnRpY2FsT2Zmc2V0KCk7XG5cbiAgICAvLyBXaGVuIHRoZSBlbGVtZW50IGlzbid0IHZpc2libGUsIGl0cyBzaXplIGNhbid0IGJlIGNhbGN1bGF0ZWQsIHNvIGRvbid0IGF0dGVtcHQgc3luY2luZyBwb3NpdGlvbiBpbiB0aGlzIGNhc2UuXG4gICAgaWYgKHRoaXMuZWwub2Zmc2V0V2lkdGggPT09IDAgJiYgdGhpcy5lbC5vZmZzZXRIZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZGFyeUluZm8gPSB0aGlzLmdldEJvdW5kYXJ5SW5mbygpO1xuICAgIGNvbnN0IGZpeGVkU3R5bGVzID0gdGhpcy5nZXRGaXhlZFN0eWxlcyhib3VuZGFyeUluZm8sIHZlcnRpY2FsT2Zmc2V0KTtcblxuICAgIGNvbnN0IGRvRml4RWwgPSB0aGlzLnNob3VsZEZpeEVsKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMubmVlZHNVcGRhdGluZyhkb0ZpeEVsLCBmaXhlZFN0eWxlcykpIHtcbiAgICAgIGlmIChkb0ZpeEVsKSB7XG4gICAgICAgIHRoaXMuZml4RWwoYm91bmRhcnlJbmZvLCBmaXhlZFN0eWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVuZml4RWwoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBldnQgPSBjcmVhdGVDdXN0b21FdmVudChFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DKTtcblxuICAgIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChldnQpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIsIHRydWUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcblxuICAgICAgdGhpcy51bmZpeEVsKCk7XG5cbiAgICAgIGlmICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyxcbiAgICAgICAgICB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlclxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVsID1cbiAgICAgICAgdGhpcy5ib3VuZGFyeUVsID1cbiAgICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLmlzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNwYWNlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXNwYWNlcic7XG4gIH1cblxuICBwcml2YXRlIHVuZml4RWwoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmdldFNwYWNlcklkKCkpO1xuXG4gICAgaWYgKHNwYWNlckVsKSB7XG4gICAgICBzcGFjZXJFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNwYWNlckVsKTtcbiAgICB9XG5cbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPVxuICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9XG4gICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPSB1bmRlZmluZWQ7XG5cbiAgICBsZXQgd2lkdGg6IHN0cmluZztcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9ICdhdXRvJztcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKHRoaXMuZWwsICcnLCAnJywgd2lkdGgsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTogbnVtYmVyIHtcbiAgICBsZXQgb2Zmc2V0ID0gdGhpcy52ZXJ0aWNhbE9mZnNldDtcblxuICAgIGlmICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3BTdHlsZSA9IHRoaXMudmVydGljYWxPZmZzZXRFbC5zdHlsZS50b3A7XG4gICAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldEVsVG9wID0gcGFyc2VJbnQodmVydGljYWxPZmZzZXRFbFRvcFN0eWxlLCAxMCkgfHwgMDtcblxuICAgICAgb2Zmc2V0ICs9ICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwub2Zmc2V0SGVpZ2h0ICsgdmVydGljYWxPZmZzZXRFbFRvcCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNjcm9sbGFibGVIb3N0KSB7XG4gICAgICBvZmZzZXQgKz0gdGhpcy5zY3JvbGxhYmxlSG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkRml4RWwoYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgbGV0IGFuY2hvclRvcDogbnVtYmVyO1xuICAgIGxldCBkb0ZpeEVsOiBib29sZWFuO1xuXG4gICAgaWYgKGJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGJvdW5kYXJ5SW5mby5zcGFjZXJFbCwgdGhpcy5zY3JvbGxhYmxlSG9zdCkudG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbmNob3JUb3AgPSBnZXRPZmZzZXQodGhpcy5lbCwgdGhpcy5zY3JvbGxhYmxlSG9zdCkudG9wO1xuICAgIH1cblxuICAgIGRvRml4RWwgPSBib3VuZGFyeUluZm8uc2Nyb2xsVG9wICsgdmVydGljYWxPZmZzZXQgKyB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wID4gYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICBwcml2YXRlIGdldEZpeGVkU3R5bGVzKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyXG4gICk6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB7XG4gICAgbGV0IGVsRml4ZWRUb3A6IG51bWJlcjtcblxuICAgIC8vIElmIHRoZSBlbGVtZW50IG5lZWRzIHRvIGJlIGZpeGVkLCB0aGlzIHdpbGwgY2FsY3VsYXRlIGl0cyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvblxuICAgIC8vIHdpbGwgYmUgMCAoZnVsbHkgdmlzaWJsZSkgdW5sZXNzIHRoZSB1c2VyIGlzIHNjcm9sbGluZyB0aGUgYm91bmRhcnkgb3V0IG9mIHZpZXcuXG4gICAgLy8gSW4gdGhhdCBjYXNlLCB0aGUgZWxlbWVudCBzaG91bGQgYmVnaW4gdG8gc2Nyb2xsIG91dCBvZiB2aWV3IHdpdGggdGhlXG4gICAgLy8gcmVzdCBvZiB0aGUgYm91bmRhcnkgYnkgc2V0dGluZyBpdHMgdG9wIHBvc2l0aW9uIHRvIGEgbmVnYXRpdmUgdmFsdWUuXG4gICAgZWxGaXhlZFRvcCA9IE1hdGgubWluKFxuICAgICAgKGJvdW5kYXJ5SW5mby5ib3VuZGFyeUJvdHRvbSAtIGJvdW5kYXJ5SW5mby5lbEhlaWdodCkgLSBib3VuZGFyeUluZm8uc2Nyb2xsVG9wLFxuICAgICAgdmVydGljYWxPZmZzZXRcbiAgICApO1xuXG4gICAgY29uc3QgZWxGaXhlZFdpZHRoID0gYm91bmRhcnlJbmZvLmJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgZWxGaXhlZExlZnQgPSBib3VuZGFyeUluZm8uYm91bmRhcnlPZmZzZXQubGVmdCAtIGJvdW5kYXJ5SW5mby5zY3JvbGxMZWZ0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVsRml4ZWRMZWZ0LFxuICAgICAgZWxGaXhlZFRvcCxcbiAgICAgIGVsRml4ZWRXaWR0aFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5lZWRzVXBkYXRpbmcoZG9GaXhFbDogYm9vbGVhbiwgZml4ZWRTdHlsZXM6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIChcbiAgICAgICAgZG9GaXhFbCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZFRvcCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aFxuICAgICAgKSB8fFxuICAgICAgKFxuICAgICAgICAhZG9GaXhFbCAmJlxuICAgICAgICAhKHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgIT09IG51bGwpXG4gICAgICApXG4gICAgKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBlaXRoZXIgY3VycmVudGx5IGZpeGVkIGFuZCBpdHMgcG9zaXRpb24gYW5kIHdpZHRoIGRvIG5vdCBuZWVkXG4gICAgICAvLyB0byBjaGFuZ2UsIG9yIHRoZSBlbGVtZW50IGlzIG5vdCBjdXJyZW50bHkgZml4ZWQgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgZml4ZWQuXG4gICAgICAvLyBObyBjaGFuZ2VzIGFyZSBuZWVkZWQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGZpeEVsKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbDtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKCFib3VuZGFyeUluZm8uc3BhY2VyRWwpIHtcbiAgICAgIGNvbnN0IHNwYWNlckhlaWdodCA9IGJvdW5kYXJ5SW5mby5lbEhlaWdodDtcblxuICAgICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHNwYWNlckVsLmlkID0gYm91bmRhcnlJbmZvLnNwYWNlcklkO1xuICAgICAgc3BhY2VyRWwuc3R5bGUuaGVpZ2h0ID0gcHgoc3BhY2VySGVpZ2h0KTtcblxuICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhY2VyRWwsIGVsLm5leHRTaWJsaW5nKTtcbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QuYWRkKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuY3VycmVudEVsRml4ZWRUb3AgPSBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wO1xuICAgIHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ID0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQ7XG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZFdpZHRoID0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoO1xuXG4gICAgbGV0IHdpZHRoOiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5zZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihcbiAgICAgIGVsLFxuICAgICAgZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wLFxuICAgICAgd2lkdGgsXG4gICAgICB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm91bmRhcnlJbmZvKCk6IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8ge1xuICAgIGNvbnN0IHNwYWNlcklkID0gdGhpcy5nZXRTcGFjZXJJZCgpO1xuXG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFjZXJJZCk7XG5cbiAgICBjb25zdCBib3VuZGFyeUVsID0gdGhpcy5ib3VuZGFyeUVsO1xuXG4gICAgY29uc3QgYm91bmRhcnlPZmZzZXQgPSBnZXRPZmZzZXQoYm91bmRhcnlFbCwgdGhpcy5zY3JvbGxhYmxlSG9zdCk7XG4gICAgY29uc3QgYm91bmRhcnlUb3AgPSBib3VuZGFyeU9mZnNldC50b3A7XG4gICAgY29uc3QgYm91bmRhcnlCb3R0b20gPSBib3VuZGFyeVRvcCArIGJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsYWJsZUhvc3QgPyB0aGlzLnNjcm9sbGFibGVIb3N0LnNjcm9sbExlZnQgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLnNjcm9sbGFibGVIb3N0ID8gdGhpcy5zY3JvbGxhYmxlSG9zdC5zY3JvbGxUb3AgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgY29uc3QgZWxIZWlnaHQgPSBnZXRIZWlnaHRXaXRoTWFyZ2luKHRoaXMuZWwpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvdW5kYXJ5Qm90dG9tLFxuICAgICAgYm91bmRhcnlPZmZzZXQsXG4gICAgICBib3VuZGFyeUVsLFxuICAgICAgZWxIZWlnaHQsXG4gICAgICBzY3JvbGxMZWZ0LFxuICAgICAgc2Nyb2xsVG9wLFxuICAgICAgc3BhY2VySWQsXG4gICAgICBzcGFjZXJFbFxuICAgIH07XG4gIH1cblxufVxuIl19
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
3
3
  import { SkyViewkeeperDirective } from './viewkeeper.directive';
4
4
  import { SkyViewkeeperService } from './viewkeeper.service';
5
5
  import { MutationObserverService } from '../mutation/mutation-observer-service';
6
+ import { SkyScrollableHostModule } from '../scrollable-host/scrollable-host.module';
6
7
  let SkyViewkeeperModule = class SkyViewkeeperModule {
7
8
  };
8
9
  SkyViewkeeperModule = __decorate([
@@ -10,6 +11,9 @@ SkyViewkeeperModule = __decorate([
10
11
  declarations: [
11
12
  SkyViewkeeperDirective
12
13
  ],
14
+ imports: [
15
+ SkyScrollableHostModule
16
+ ],
13
17
  exports: [
14
18
  SkyViewkeeperDirective
15
19
  ],
@@ -20,4 +24,4 @@ SkyViewkeeperModule = __decorate([
20
24
  })
21
25
  ], SkyViewkeeperModule);
22
26
  export { SkyViewkeeperModule };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSx1Q0FBdUMsQ0FBQztBQWMvQyxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtDQUFJLENBQUE7QUFBdkIsbUJBQW1CO0lBWi9CLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRTtZQUNaLHNCQUFzQjtTQUN2QjtRQUNELE9BQU8sRUFBRTtZQUNQLHNCQUFzQjtTQUN2QjtRQUNELFNBQVMsRUFBRTtZQUNULG9CQUFvQjtZQUNwQix1QkFBdUI7U0FDeEI7S0FDRixDQUFDO0dBQ1csbUJBQW1CLENBQUk7U0FBdkIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbn0gZnJvbSAnLi92aWV3a2VlcGVyLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJTZXJ2aWNlXG59IGZyb20gJy4vdmlld2tlZXBlci5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgTXV0YXRpb25PYnNlcnZlclNlcnZpY2Vcbn0gZnJvbSAnLi4vbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5Vmlld2tlZXBlclNlcnZpY2UsXG4gICAgTXV0YXRpb25PYnNlcnZlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVyTW9kdWxlIHsgfVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQWlCcEYsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7Q0FBSSxDQUFBO0FBQXZCLG1CQUFtQjtJQWYvQixRQUFRLENBQUM7UUFDUixZQUFZLEVBQUU7WUFDWixzQkFBc0I7U0FDdkI7UUFDRCxPQUFPLEVBQUU7WUFDUCx1QkFBdUI7U0FDeEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxzQkFBc0I7U0FDdkI7UUFDRCxTQUFTLEVBQUU7WUFDVCxvQkFBb0I7WUFDcEIsdUJBQXVCO1NBQ3hCO0tBQ0YsQ0FBQztHQUNXLG1CQUFtQixDQUFJO1NBQXZCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyRGlyZWN0aXZlXG59IGZyb20gJy4vdmlld2tlZXBlci5kaXJlY3RpdmUnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyU2VydmljZVxufSBmcm9tICcuL3ZpZXdrZWVwZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlXG59IGZyb20gJy4uL211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5U2Nyb2xsYWJsZUhvc3RNb2R1bGUgfSBmcm9tICcuLi9zY3JvbGxhYmxlLWhvc3Qvc2Nyb2xsYWJsZS1ob3N0Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIFNreVNjcm9sbGFibGVIb3N0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lWaWV3a2VlcGVyRGlyZWN0aXZlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVZpZXdrZWVwZXJTZXJ2aWNlLFxuICAgIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlck1vZHVsZSB7IH1cbiJdfQ==
@@ -28,10 +28,11 @@ export * from './modules/overlay/overlay.module';
28
28
  export * from './modules/overlay/overlay.service';
29
29
  export * from './modules/percent-pipe/percent-pipe.module';
30
30
  export * from './modules/percent-pipe/percent.pipe';
31
+ export * from './modules/scrollable-host/scrollable-host.service';
31
32
  export * from './modules/title/title.service';
32
33
  export * from './modules/ui-config/ui-config.service';
33
34
  export * from './modules/viewkeeper/viewkeeper-host-options';
34
35
  export * from './modules/viewkeeper/viewkeeper.module';
35
36
  export * from './modules/viewkeeper/viewkeeper.service';
36
37
  export * from './modules/window/window-ref';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUM7QUFHMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQVF2RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUd4QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBRXRFLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUc3RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBR2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUdwRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUU3RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZGFwdGVyLXNlcnZpY2UvYWRhcHRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9mb2N1c2FibGUtY2hpbGRyZW4tb3B0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC1hdXRvLWZpdC1jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LWhvcml6b250YWwtYWxpZ25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC1vZmZzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LW9mZnNldC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LXBsYWNlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXgtcGxhY2VtZW50LWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXgtdmVydGljYWwtYWxpZ25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZG9jay9kb2NrLWluc2VydC1jb21wb25lbnQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2staXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZG9jay9kb2NrLWl0ZW0tY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2stbG9jYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2subW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2suc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1sb2NhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2Zvcm1hdC9hcHAtZm9ybWF0JztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2lkL2lkLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9sb2cvbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS1saXN0ZW5lcic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLXNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLXN5bWJvbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9udW1lcmljL251bWVyaWMuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9vdmVybGF5L292ZXJsYXktY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9vdmVybGF5L292ZXJsYXktaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3BlcmNlbnQtcGlwZS9wZXJjZW50LXBpcGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9wZXJjZW50LXBpcGUvcGVyY2VudC5waXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3RpdGxlL3NldC10aXRsZS1hcmdzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90aXRsZS90aXRsZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3VpLWNvbmZpZy91aS1jb25maWcuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXItaG9zdC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvd2luZG93L3dpbmRvdy1yZWYnO1xuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUM7QUFHMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQVF2RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUd4QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBRXRFLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUc3RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBR2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLG1EQUFtRCxDQUFDO0FBR2xFLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWRhcHRlci1zZXJ2aWNlL2FkYXB0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWRhcHRlci1zZXJ2aWNlL2ZvY3VzYWJsZS1jaGlsZHJlbi1vcHRpb25zJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LWF1dG8tZml0LWNvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXgtaG9yaXpvbnRhbC1hbGlnbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LW9mZnNldCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXgtb2Zmc2V0LWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXgtcGxhY2VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC1wbGFjZW1lbnQtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hZmZpeC9hZmZpeC12ZXJ0aWNhbC1hbGlnbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXhlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2staW5zZXJ0LWNvbXBvbmVudC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2staXRlbS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay1sb2NhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZG9jay9kb2NrLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LWxvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZm9ybWF0L2FwcC1mb3JtYXQnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvaWQvaWQubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2xvZy9sb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9sb2cvbG9nLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtYnJlYWtwb2ludHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5LWxpc3RlbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9udW1lcmljL251bWVyaWMtc3ltYm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9udW1lcmljL251bWVyaWMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9udW1lcmljL251bWVyaWMub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvcGVyY2VudC1waXBlL3BlcmNlbnQtcGlwZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3BlcmNlbnQtcGlwZS9wZXJjZW50LnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3RpdGxlL3NldC10aXRsZS1hcmdzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90aXRsZS90aXRsZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3VpLWNvbmZpZy91aS1jb25maWcuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXItaG9zdC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvd2luZG93L3dpbmRvdy1yZWYnO1xuIl19
@@ -9,7 +9,8 @@ export { SkyIdDirective as ɵd } from './modules/id/id.directive';
9
9
  export { SkyOverlayAdapterService as ɵi } from './modules/overlay/overlay-adapter.service';
10
10
  export { SkyOverlayContext as ɵh } from './modules/overlay/overlay-context';
11
11
  export { SkyOverlayComponent as ɵg } from './modules/overlay/overlay.component';
12
+ export { SkyScrollableHostModule as ɵk } from './modules/scrollable-host/scrollable-host.module';
12
13
  export { SkyCoreResourcesModule as ɵe } from './modules/shared/core-resources.module';
13
14
  export { SkyViewkeeperDirective as ɵj } from './modules/viewkeeper/viewkeeper.directive';
14
15
  export { SkyCoreResourcesProvider as ɵf } from './plugin-resources/core-resources-provider';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsic2t5dXgtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7U2t5QWZmaXhEaXJlY3RpdmUgYXMgybVhfSBmcm9tICcuL21vZHVsZXMvYWZmaXgvYWZmaXguZGlyZWN0aXZlJztcbmV4cG9ydCB7U2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9tb2R1bGVzL2RvY2svZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlJztcbmV4cG9ydCB7U2t5RG9ja0NvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2suY29tcG9uZW50JztcbmV4cG9ydCB7U2t5SWREaXJlY3RpdmUgYXMgybVkfSBmcm9tICcuL21vZHVsZXMvaWQvaWQuZGlyZWN0aXZlJztcbmV4cG9ydCB7U2t5T3ZlcmxheUFkYXB0ZXJTZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtTa3lPdmVybGF5Q29udGV4dCBhcyDJtWh9IGZyb20gJy4vbW9kdWxlcy9vdmVybGF5L292ZXJsYXktY29udGV4dCc7XG5leHBvcnQge1NreU92ZXJsYXlDb21wb25lbnQgYXMgybVnfSBmcm9tICcuL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQge1NreUNvcmVSZXNvdXJjZXNNb2R1bGUgYXMgybVlfSBmcm9tICcuL21vZHVsZXMvc2hhcmVkL2NvcmUtcmVzb3VyY2VzLm1vZHVsZSc7XG5leHBvcnQge1NreVZpZXdrZWVwZXJEaXJlY3RpdmUgYXMgybVqfSBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQge1NreUNvcmVSZXNvdXJjZXNQcm92aWRlciBhcyDJtWZ9IGZyb20gJy4vcGx1Z2luLXJlc291cmNlcy9jb3JlLXJlc291cmNlcy1wcm92aWRlcic7Il19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsic2t5dXgtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge1NreUFmZml4RGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9tb2R1bGVzL2FmZml4L2FmZml4LmRpcmVjdGl2ZSc7XG5leHBvcnQge1NreURvY2tEb21BZGFwdGVyU2VydmljZSBhcyDJtWN9IGZyb20gJy4vbW9kdWxlcy9kb2NrL2RvY2stZG9tLWFkYXB0ZXIuc2VydmljZSc7XG5leHBvcnQge1NreURvY2tDb21wb25lbnQgYXMgybVifSBmcm9tICcuL21vZHVsZXMvZG9jay9kb2NrLmNvbXBvbmVudCc7XG5leHBvcnQge1NreUlkRGlyZWN0aXZlIGFzIMm1ZH0gZnJvbSAnLi9tb2R1bGVzL2lkL2lkLmRpcmVjdGl2ZSc7XG5leHBvcnQge1NreU92ZXJsYXlBZGFwdGVyU2VydmljZSBhcyDJtWl9IGZyb20gJy4vbW9kdWxlcy9vdmVybGF5L292ZXJsYXktYWRhcHRlci5zZXJ2aWNlJztcbmV4cG9ydCB7U2t5T3ZlcmxheUNvbnRleHQgYXMgybVofSBmcm9tICcuL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWNvbnRleHQnO1xuZXhwb3J0IHtTa3lPdmVybGF5Q29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0IHtTa3lTY3JvbGxhYmxlSG9zdE1vZHVsZSBhcyDJtWt9IGZyb20gJy4vbW9kdWxlcy9zY3JvbGxhYmxlLWhvc3Qvc2Nyb2xsYWJsZS1ob3N0Lm1vZHVsZSc7XG5leHBvcnQge1NreUNvcmVSZXNvdXJjZXNNb2R1bGUgYXMgybVlfSBmcm9tICcuL21vZHVsZXMvc2hhcmVkL2NvcmUtcmVzb3VyY2VzLm1vZHVsZSc7XG5leHBvcnQge1NreVZpZXdrZWVwZXJEaXJlY3RpdmUgYXMgybVqfSBmcm9tICcuL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQge1NreUNvcmVSZXNvdXJjZXNQcm92aWRlciBhcyDJtWZ9IGZyb20gJy4vcGx1Z2luLXJlc291cmNlcy9jb3JlLXJlc291cmNlcy1wcm92aWRlcic7Il19
@@ -1,19 +1,77 @@
1
1
  import { __decorate } from "tslib";
2
- import { ElementRef, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
2
+ import { ElementRef, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';
3
+ import { fromEvent as observableFromEvent, Subject } from 'rxjs';
4
+ import { debounceTime, takeUntil } from 'rxjs/operators';
5
+ import { MutationObserverService } from '../mutation/mutation-observer-service';
3
6
  /**
4
7
  * @internal
5
8
  */
6
9
  var SkyDockDomAdapterService = /** @class */ (function () {
7
- function SkyDockDomAdapterService(rendererFactory) {
10
+ function SkyDockDomAdapterService(mutationService, rendererFactory) {
11
+ this.mutationService = mutationService;
12
+ this.ngUnsubscribe = new Subject();
8
13
  this.renderer = rendererFactory.createRenderer(undefined, undefined);
9
14
  }
15
+ SkyDockDomAdapterService.prototype.ngOnDestroy = function () {
16
+ if (this.observer) {
17
+ this.observer.disconnect();
18
+ }
19
+ this.ngUnsubscribe.next();
20
+ if (this.styleElement) {
21
+ this.destroyStyleElement();
22
+ }
23
+ this.currentDockHeight =
24
+ this.ngUnsubscribe =
25
+ this.observer =
26
+ this.styleElement = undefined;
27
+ };
28
+ SkyDockDomAdapterService.prototype.setSticky = function (elementRef) {
29
+ this.renderer.addClass(elementRef.nativeElement, 'sky-dock-sticky');
30
+ };
10
31
  SkyDockDomAdapterService.prototype.setZIndex = function (zIndex, elementRef) {
11
32
  this.renderer.setStyle(elementRef.nativeElement, 'z-index', zIndex);
12
33
  };
13
34
  SkyDockDomAdapterService.prototype.unbindDock = function (elementRef) {
14
35
  this.renderer.addClass(elementRef.nativeElement, 'sky-dock-unbound');
15
36
  };
37
+ SkyDockDomAdapterService.prototype.watchDomChanges = function (elementRef) {
38
+ var _this = this;
39
+ this.observer = this.mutationService.create(function () {
40
+ _this.adjustBodyStyles(elementRef);
41
+ });
42
+ this.observer.observe(elementRef.nativeElement, {
43
+ attributes: true,
44
+ childList: true,
45
+ characterData: true,
46
+ subtree: true
47
+ });
48
+ observableFromEvent(window, 'resize')
49
+ .pipe(debounceTime(250), takeUntil(this.ngUnsubscribe))
50
+ .subscribe(function () { return _this.adjustBodyStyles(elementRef); });
51
+ };
52
+ SkyDockDomAdapterService.prototype.adjustBodyStyles = function (elementRef) {
53
+ var dockHeight = elementRef.nativeElement.getBoundingClientRect().height;
54
+ if (dockHeight === this.currentDockHeight) {
55
+ return;
56
+ }
57
+ // Create a style element to avoid overwriting any existing inline body styles.
58
+ var styleElement = this.renderer.createElement('style');
59
+ var textNode = this.renderer.createText("body { margin-bottom: " + dockHeight + "px; }");
60
+ // Apply a `data-` attribute to make unit testing easier.
61
+ this.renderer.setAttribute(styleElement, 'data-test-selector', 'sky-layout-dock-bottom-styles');
62
+ this.renderer.appendChild(styleElement, textNode);
63
+ this.renderer.appendChild(document.head, styleElement);
64
+ if (this.styleElement) {
65
+ this.destroyStyleElement();
66
+ }
67
+ this.currentDockHeight = dockHeight;
68
+ this.styleElement = styleElement;
69
+ };
70
+ SkyDockDomAdapterService.prototype.destroyStyleElement = function () {
71
+ this.renderer.removeChild(document.head, this.styleElement);
72
+ };
16
73
  SkyDockDomAdapterService.ctorParameters = function () { return [
74
+ { type: MutationObserverService },
17
75
  { type: RendererFactory2 }
18
76
  ]; };
19
77
  SkyDockDomAdapterService = __decorate([
@@ -22,4 +80,4 @@ var SkyDockDomAdapterService = /** @class */ (function () {
22
80
  return SkyDockDomAdapterService;
23
81
  }());
24
82
  export { SkyDockDomAdapterService };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL2RvY2svZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCOztHQUVHO0FBRUg7SUFHRSxrQ0FDRSxlQUFpQztRQUVqQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSw0Q0FBUyxHQUFoQixVQUFpQixNQUFjLEVBQUUsVUFBc0I7UUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLDZDQUFVLEdBQWpCLFVBQWtCLFVBQXNCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxDQUFDOztnQkFYa0IsZ0JBQWdCOztJQUp4Qix3QkFBd0I7UUFEcEMsVUFBVSxFQUFFO09BQ0Esd0JBQXdCLENBZ0JwQztJQUFELCtCQUFDO0NBQUEsQUFoQkQsSUFnQkM7U0FoQlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIsIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3otaW5kZXgnLCB6SW5kZXgpO1xuICB9XG5cbiAgcHVibGljIHVuYmluZERvY2soZWxlbWVudFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnc2t5LWRvY2stdW5ib3VuZCcpO1xuICB9XG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL2RvY2svZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsU0FBUyxJQUFJLG1CQUFtQixFQUNoQyxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvQzs7R0FFRztBQUVIO0lBWUUsa0NBQ1UsZUFBd0MsRUFDaEQsZUFBaUM7UUFEekIsb0JBQWUsR0FBZixlQUFlLENBQXlCO1FBVDFDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVkxQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSw4Q0FBVyxHQUFsQjtRQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsaUJBQWlCO1lBQ3RCLElBQUksQ0FBQyxhQUFhO2dCQUNsQixJQUFJLENBQUMsUUFBUTtvQkFDYixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMs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bEdZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBmcm9tRXZlbnQgYXMgb2JzZXJ2YWJsZUZyb21FdmVudCxcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBNdXRhdGlvbk9ic2VydmVyU2VydmljZVxufSBmcm9tICcuLi9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreURvY2tEb21BZGFwdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBjdXJyZW50RG9ja0hlaWdodDogbnVtYmVyO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgcHJpdmF0ZSBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtdXRhdGlvblNlcnZpY2U6IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG5cbiAgICBpZiAodGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudERvY2tIZWlnaHQgPVxuICAgIHRoaXMubmdVbnN1YnNjcmliZSA9XG4gICAgdGhpcy5vYnNlcnZlciA9XG4gICAgdGhpcy5zdHlsZUVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RpY2t5KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3NreS1kb2NrLXN0aWNreScpO1xuICB9XG5cbiAgcHVibGljIHNldFpJbmRleCh6SW5kZXg6IG51bWJlciwgZWxlbWVudFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnei1pbmRleCcsIHpJbmRleCk7XG4gIH1cblxuICBwdWJsaWMgdW5iaW5kRG9jayhlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdza3ktZG9jay11bmJvdW5kJyk7XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hEb21DaGFuZ2VzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyID0gdGhpcy5tdXRhdGlvblNlcnZpY2UuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMuYWRqdXN0Qm9keVN0eWxlcyhlbGVtZW50UmVmKTtcbiAgICB9KTtcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFkanVzdEJvZHlTdHlsZXMoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RCb2R5U3R5bGVzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBkb2NrSGVpZ2h0ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBpZiAoZG9ja0hlaWdodCA9PT0gdGhpcy5jdXJyZW50RG9ja0hlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIHN0eWxlIGVsZW1lbnQgdG8gYXZvaWQgb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIGlubGluZSBib2R5IHN0eWxlcy5cbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgdGV4dE5vZGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQoYGJvZHkgeyBtYXJnaW4tYm90dG9tOiAke2RvY2tIZWlnaHR9cHg7IH1gKTtcblxuICAgIC8vIEFwcGx5IGEgYGRhdGEtYCBhdHRyaWJ1dGUgdG8gbWFrZSB1bml0IHRlc3RpbmcgZWFzaWVyLlxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgc3R5bGVFbGVtZW50LFxuICAgICAgJ2RhdGEtdGVzdC1zZWxlY3RvcicsXG4gICAgICAnc2t5LWxheW91dC1kb2NrLWJvdHRvbS1zdHlsZXMnXG4gICAgKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCB0ZXh0Tm9kZSk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICB0aGlzLmRlc3Ryb3lTdHlsZUVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnREb2NrSGVpZ2h0ID0gZG9ja0hlaWdodDtcbiAgICB0aGlzLnN0eWxlRWxlbWVudCA9IHN0eWxlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVN0eWxlRWxlbWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbGVtZW50KTtcbiAgfVxufVxuIl19
@@ -46,8 +46,17 @@ var SkyDockComponent = /** @class */ (function () {
46
46
  SkyDockComponent.prototype.setOptions = function (options) {
47
47
  var _a, _b;
48
48
  this.options = options;
49
- if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.location) === SkyDockLocation.BeforeElement) {
50
- this.domAdapter.unbindDock(this.elementRef);
49
+ switch ((_a = this.options) === null || _a === void 0 ? void 0 : _a.location) {
50
+ case SkyDockLocation.BeforeElement:
51
+ this.domAdapter.unbindDock(this.elementRef);
52
+ break;
53
+ case SkyDockLocation.ElementBottom:
54
+ this.domAdapter.setSticky(this.elementRef);
55
+ break;
56
+ case SkyDockLocation.BodyBottom:
57
+ default:
58
+ this.domAdapter.watchDomChanges(this.elementRef);
59
+ break;
51
60
  }
52
61
  if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.zIndex) {
53
62
  this.domAdapter.setZIndex(this.options.zIndex, this.elementRef);
@@ -86,10 +95,10 @@ var SkyDockComponent = /** @class */ (function () {
86
95
  SkyDockDomAdapterService
87
96
  ],
88
97
  changeDetection: ChangeDetectionStrategy.OnPush,
89
- styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:sticky;left:0;bottom:0;right:0}"]
98
+ styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:0;bottom:0;right:0}:host.sky-dock-sticky{position:-webkit-sticky;position:sticky}"]
90
99
  })
91
100
  ], SkyDockComponent);
92
101
  return SkyDockComponent;
93
102
  }());
94
103
  export { SkyDockComponent };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvZG9jay9kb2NrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSw0QkFBNEIsQ0FBQztBQVVwQyxPQUFPLEVBQ0wsZUFBZSxFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBTXpCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7R0FFRztBQVVIO0lBWUUsMEJBQ1UsY0FBaUMsRUFDakMsUUFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsVUFBb0M7UUFKcEMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQVB0QyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztJQVEvQyxDQUFDO0lBRUUsMENBQWUsR0FBdEIsVUFDRSxTQUFrQixFQUNsQixNQUF5QztRQUF6Qyx1QkFBQSxFQUFBLFdBQXlDO1FBRXpDLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENB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QUFFLElBQUk7U0FDYixDQUFDO29EQUMrQjtJQVJ0QixnQkFBZ0I7UUFUNUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFVBQVU7WUFDcEIsc0RBQW9DO1lBRXBDLFNBQVMsRUFBRTtnQkFDVCx3QkFBd0I7YUFDekI7WUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDaEQsQ0FBQztPQUNXLGdCQUFnQixDQXFGNUI7SUFBRCx1QkFBQztDQUFBLEFBckZELElBcUZDO1NBckZZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY2tEb21BZGFwdGVyU2VydmljZVxufSBmcm9tICcuL2RvY2stZG9tLWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreURvY2tJbnNlcnRDb21wb25lbnRDb25maWdcbn0gZnJvbSAnLi9kb2NrLWluc2VydC1jb21wb25lbnQtY29uZmlnJztcblxuaW1wb3J0IHtcbiAgU2t5RG9ja0l0ZW1SZWZlcmVuY2Vcbn0gZnJvbSAnLi9kb2NrLWl0ZW0tcmVmZXJlbmNlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9ja0xvY2F0aW9uXG59IGZyb20gJy4vZG9jay1sb2NhdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY2tPcHRpb25zXG59IGZyb20gJy4vZG9jay1vcHRpb25zJztcblxuaW1wb3J0IHtcbiAgc29ydEJ5U3RhY2tPcmRlclxufSBmcm9tICcuL3NvcnQtYnktc3RhY2stb3JkZXInO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZG9jaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jay5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lEb2NrRG9tQWRhcHRlclNlcnZpY2VcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9ja0NvbXBvbmVudCAge1xuXG4gIHByaXZhdGUgb3B0aW9uczogU2t5RG9ja09wdGlvbnM7XG5cbiAgQFZpZXdDaGlsZCgndGFyZ2V0Jywge1xuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgc3RhdGljOiB0cnVlXG4gIH0pXG4gIHByaXZhdGUgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHByaXZhdGUgaXRlbVJlZnM6IFNreURvY2tJdGVtUmVmZXJlbmNlPGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBkb21BZGFwdGVyOiBTa3lEb2NrRG9tQWRhcHRlclNlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgaW5zZXJ0Q29tcG9uZW50PFQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUPixcbiAgICBjb25maWc6IFNreURvY2tJbnNlcnRDb21wb25lbnRDb25maWcgPSB7fVxuICApOiBTa3lEb2NrSXRlbVJlZmVyZW5jZTxUPiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IGNvbmZpZy5wcm92aWRlcnMgfHwgW10sXG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3JcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0LmNyZWF0ZUNvbXBvbmVudDxUPihmYWN0b3J5LCB1bmRlZmluZWQsIGluamVjdG9yKTtcbiAgICBjb25zdCBzdGFja09yZGVyID0gKGNvbmZpZy5zdGFja09yZGVyICE9PSBudWxsICYmIGNvbmZpZy5zdGFja09yZGVyICE9PSB1bmRlZmluZWQpXG4gICAgICA/IGNvbmZpZy5zdGFja09yZGVyXG4gICAgICA6IHRoaXMuZ2V0SGlnaGVzdFN0YWNrT3JkZXIoKTtcblxuICAgIHRoaXMuaXRlbVJlZnMucHVzaCh7XG4gICAgICBjb21wb25lbnRSZWYsXG4gICAgICBzdGFja09yZGVyXG4gICAgfSk7XG5cbiAgICB0aGlzLnNvcnRJdGVtc0J5U3RhY2tPcmRlcigpO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnRSZWYsXG4gICAgICBzdGFja09yZGVyXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJdGVtKGl0ZW06IFNreURvY2tJdGVtUmVmZXJlbmNlPGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3UmVmID0gaXRlbS5jb21wb25lbnRSZWYuaG9zdFZpZXc7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlKHRoaXMudGFyZ2V0LmluZGV4T2Yodmlld1JlZikpO1xuXG4gICAgY29uc3QgZm91bmQgPSB0aGlzLml0ZW1SZWZzLmZpbmQoaSA9PiBpLmNvbXBvbmVudFJlZi5ob3N0VmlldyA9PT0gdmlld1JlZik7XG4gICAgdGhpcy5pdGVtUmVmcy5zcGxpY2UodGhpcy5pdGVtUmVmcy5pbmRleE9mKGZvdW5kKSwgMSk7XG4gIH1cblxuICBwdWJsaWMgc2V0T3B0aW9ucyhvcHRpb25zOiBTa3lEb2NrT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5sb2NhdGlvbiA9PT0gU2t5RG9ja0xvY2F0aW9uLkJlZm9yZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZG9tQWRhcHRlci51bmJpbmREb2NrKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uekluZGV4KSB7XG4gICAgICB0aGlzLmRvbUFkYXB0ZXIuc2V0WkluZGV4KHRoaXMub3B0aW9ucy56SW5kZXgsIHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0SXRlbXNCeVN0YWNrT3JkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtUmVmcy5zb3J0KHNvcnRCeVN0YWNrT3JkZXIpO1xuXG4gICAgLy8gUmVhc3NpZ24gdGhlIGNvcnJlY3QgaW5kZXggZm9yIGVhY2ggdmlldy5cbiAgICB0aGlzLml0ZW1SZWZzLmZvckVhY2goKGl0ZW0sIGkpID0+IHRoaXMudGFyZ2V0Lm1vdmUoaXRlbS5jb21wb25lbnRSZWYuaG9zdFZpZXcsIGkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGlnaGVzdFN0YWNrT3JkZXIoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pdGVtUmVmcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLml0ZW1SZWZzWzBdLnN0YWNrT3JkZXIgKyAxO1xuICB9XG5cbn1cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvZG9jay9kb2NrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSw0QkFBNEIsQ0FBQztBQVVwQyxPQUFPLEVBQ0wsZUFBZSxFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBTXpCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7R0FFRztBQVVIO0lBWUUsMEJBQ1UsY0FBaUMsRUFDakMsUUFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsVUFBb0M7UUFKcEMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQVB0QyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztJQVEvQyxDQUFDO0lBRUUsMENBQWUsR0FBdEIsVUFDRSxTQUFrQixFQUNsQixNQUF5QztRQUF6Qyx1QkFBQSxFQUFBLFdBQXlDO1FBRXpDLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENB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QyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDOztnQkEvRXlCLGlCQUFpQjtnQkFDdkIsd0JBQXdCO2dCQUN0QixVQUFVO2dCQUNaLFFBQVE7Z0JBQ04sd0JBQXdCOztJQVQ5QztRQUpDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7b0RBQytCO0lBUnRCLGdCQUFnQjtRQVQ1QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsVUFBVTtZQUNwQixzREFBb0M7WUFFcEMsU0FBUyxFQUFFO2dCQUNULHdCQUF3QjthQUN6QjtZQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO09BQ1csZ0JBQWdCLENBOEY1QjtJQUFELHVCQUFDO0NBQUEsQUE5RkQsSUE4RkM7U0E5RlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vZG9jay1kb20tYWRhcHRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgU2t5RG9ja0luc2VydENvbXBvbmVudENvbmZpZ1xufSBmcm9tICcuL2RvY2staW5zZXJ0LWNvbXBvbmVudC1jb25maWcnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NrSXRlbVJlZmVyZW5jZVxufSBmcm9tICcuL2RvY2staXRlbS1yZWZlcmVuY2UnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NrTG9jYXRpb25cbn0gZnJvbSAnLi9kb2NrLWxvY2F0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9ja09wdGlvbnNcbn0gZnJvbSAnLi9kb2NrLW9wdGlvbnMnO1xuXG5pbXBvcnQge1xuICBzb3J0QnlTdGFja09yZGVyXG59IGZyb20gJy4vc29ydC1ieS1zdGFjay1vcmRlcic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreURvY2tEb21BZGFwdGVyU2VydmljZVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NrQ29tcG9uZW50IHtcblxuICBwcml2YXRlIG9wdGlvbnM6IFNreURvY2tPcHRpb25zO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZVxuICB9KVxuICBwcml2YXRlIHRhcmdldDogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIGl0ZW1SZWZzOiBTa3lEb2NrSXRlbVJlZmVyZW5jZTxhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgZG9tQWRhcHRlcjogU2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIGluc2VydENvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgY29uZmlnOiBTa3lEb2NrSW5zZXJ0Q29tcG9uZW50Q29uZmlnID0ge31cbiAgKTogU2t5RG9ja0l0ZW1SZWZlcmVuY2U8VD4ge1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBjb25maWcucHJvdmlkZXJzIHx8IFtdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQ8VD4oZmFjdG9yeSwgdW5kZWZpbmVkLCBpbmplY3Rvcik7XG4gICAgY29uc3Qgc3RhY2tPcmRlciA9IChjb25maWcuc3RhY2tPcmRlciAhPT0gbnVsbCAmJiBjb25maWcuc3RhY2tPcmRlciAhPT0gdW5kZWZpbmVkKVxuICAgICAgPyBjb25maWcuc3RhY2tPcmRlclxuICAgICAgOiB0aGlzLmdldEhpZ2hlc3RTdGFja09yZGVyKCk7XG5cbiAgICB0aGlzLml0ZW1SZWZzLnB1c2goe1xuICAgICAgY29tcG9uZW50UmVmLFxuICAgICAgc3RhY2tPcmRlclxuICAgIH0pO1xuXG4gICAgdGhpcy5zb3J0SXRlbXNCeVN0YWNrT3JkZXIoKTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50UmVmLFxuICAgICAgc3RhY2tPcmRlclxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShpdGVtOiBTa3lEb2NrSXRlbVJlZmVyZW5jZTxhbnk+KTogdm9pZCB7XG4gICAgY29uc3Qgdmlld1JlZiA9IGl0ZW0uY29tcG9uZW50UmVmLmhvc3RWaWV3O1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZSh0aGlzLnRhcmdldC5pbmRleE9mKHZpZXdSZWYpKTtcblxuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5pdGVtUmVmcy5maW5kKGkgPT4gaS5jb21wb25lbnRSZWYuaG9zdFZpZXcgPT09IHZpZXdSZWYpO1xuICAgIHRoaXMuaXRlbVJlZnMuc3BsaWNlKHRoaXMuaXRlbVJlZnMuaW5kZXhPZihmb3VuZCksIDEpO1xuICB9XG5cbiAgcHVibGljIHNldE9wdGlvbnMob3B0aW9uczogU2t5RG9ja09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnM/LmxvY2F0aW9uKSB7XG4gICAgICBjYXNlIFNreURvY2tMb2NhdGlvbi5CZWZvcmVFbGVtZW50OlxuICAgICAgICB0aGlzLmRvbUFkYXB0ZXIudW5iaW5kRG9jayh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgIHRoaXMuZG9tQWRhcHRlci5zZXRTdGlja3kodGhpcy5lbGVtZW50UmVmKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreURvY2tMb2NhdGlvbi5Cb2R5Qm90dG9tOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5kb21BZGFwdGVyLndhdGNoRG9tQ2hhbmdlcyh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy56SW5kZXgpIHtcbiAgICAgIHRoaXMuZG9tQWRhcHRlci5zZXRaSW5kZXgodGhpcy5vcHRpb25zLnpJbmRleCwgdGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvcnRJdGVtc0J5U3RhY2tPcmRlcigpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1SZWZzLnNvcnQoc29ydEJ5U3RhY2tPcmRlcik7XG5cbiAgICAvLyBSZWFzc2lnbiB0aGUgY29ycmVjdCBpbmRleCBmb3IgZWFjaCB2aWV3LlxuICAgIHRoaXMuaXRlbVJlZnMuZm9yRWFjaCgoaXRlbSwgaSkgPT4gdGhpcy50YXJnZXQubW92ZShpdGVtLmNvbXBvbmVudFJlZi5ob3N0VmlldywgaSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIaWdoZXN0U3RhY2tPcmRlcigpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLml0ZW1SZWZzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaXRlbVJlZnNbMF0uc3RhY2tPcmRlciArIDE7XG4gIH1cblxufVxuIl19
@@ -13,6 +13,11 @@ var NumericOptions = /** @class */ (function () {
13
13
  * @default "number"
14
14
  */
15
15
  this.format = 'number';
16
+ /**
17
+ * Specifies the format of the currency`.
18
+ * @default "standard"
19
+ */
20
+ this.currencySign = 'standard';
16
21
  /**
17
22
  * Specifies the ISO4217 currency code to use for currency formatting. If you do not specify a
18
23
  * currency code, the component uses the browser's culture to determine the currency unless your
@@ -35,4 +40,4 @@ var NumericOptions = /** @class */ (function () {
35
40
  return NumericOptions;
36
41
  }());
37
42
  export { NumericOptions };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL251bWVyaWMvbnVtZXJpYy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7SUFBQTtRQUVFOzs7V0FHRztRQUNJLFdBQU0sR0FBWSxDQUFDLENBQUM7UUFFM0I7OztXQUdHO1FBQ0ksV0FBTSxHQUFZLFFBQVEsQ0FBQztRQUVsQzs7Ozs7V0FLRztRQUNJLFFBQUcsR0FBWSxLQUFLLENBQUM7UUFjNUI7OztXQUdHO1FBQ0ksYUFBUSxHQUFhLElBQUksQ0FBQztRQUVqQzs7OztXQUlHO1FBQ0ksa0JBQWEsR0FBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUFELHFCQUFDO0FBQUQsQ0FBQyxBQTlDRCxJQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvdmlkZXMgYXJndW1lbnRzIGZvciB0aGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIE51bWVyaWNPcHRpb25zIHtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBwdWJsaWMgZGlnaXRzPzogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyB0byBmb3JtYXQgdGhlIG51bWJlci4gT3B0aW9ucyBhcmUgYGN1cnJlbmN5YCBvciBgbnVtYmVyYC5cbiAgICogQGRlZmF1bHQgXCJudW1iZXJcIlxuICAgKi9cbiAgcHVibGljIGZvcm1hdD86IHN0cmluZyA9ICdudW1iZXInO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIElTTzQyMTcgY3VycmVuY3kgY29kZSB0byB1c2UgZm9yIGN1cnJlbmN5IGZvcm1hdHRpbmcuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhXG4gICAqIGN1cnJlbmN5IGNvZGUsIHRoZSBjb21wb25lbnQgdXNlcyB0aGUgYnJvd3NlcidzIGN1bHR1cmUgdG8gZGV0ZXJtaW5lIHRoZSBjdXJyZW5jeSB1bmxlc3MgeW91clxuICAgKiBTUEEgcHJvdmlkZXMgYSBkaWZmZXJlbnQgY3VsdHVyZSB3aXRoIGBTa3lBcHBMb2NhbGVQcm92aWRlcmAuXG4gICAqIEBkZWZhdWx0ICdVU0QnXG4gICAqL1xuICBwdWJsaWMgaXNvPzogc3RyaW5nID0gJ1VTRCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbG9jYWxlIGNvZGUgdG8gdXNlIHdoZW4gZm9ybWF0dGluZy5cbiAgICovXG4gIHB1YmxpYyBsb2NhbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHNlcGFyYXRvci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXNcbiAgICogd2hlbiB0aGUgYHRydW5jYXRlYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYGZhbHNlYC4gSWYgYGRpZ2l0c2Agc3BlY2lmaWVzIGEgbWF4aW11bSBudW1iZXIgb2ZcbiAgICogZGlnaXRzLCB0aGVuIGBtaW5EaWdpdHNgIG11c3QgYmUgbGVzcyB0aGFuIHRoYXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgbWluRGlnaXRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBzaG9ydGVuIG51bWJlcnMgdG8gcm91bmRlZCBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb24gY2hhcmFjdGVyc1xuICAgKiBzdWNoIGFzIEsgZm9yIHRob3VzYW5kcywgTSBmb3IgbWlsbGlvbnMsIEIgZm9yIGJpbGxpb25zLCBhbmQgVCBmb3IgdHJpbGxpb24uXG4gICAqL1xuICBwdWJsaWMgdHJ1bmNhdGU/OiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzdGFydGluZyBwb2ludCBhZnRlciB3aGljaCBudW1iZXJzIGFyZSBzaG9ydGVuZWQgdG8gcm91bmRlZCBudW1iZXJzXG4gICAqIGFuZCBhYmJyZXZpYXRpb24gY2hhcmFjdGVycy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcHVibGljIHRydW5jYXRlQWZ0ZXI/OiBudW1iZXIgPSAwO1xufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL251bWVyaWMvbnVtZXJpYy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7SUFBQTtRQUVFOzs7V0FHRztRQUNJLFdBQU0sR0FBWSxDQUFDLENBQUM7UUFFM0I7OztXQUdHO1FBQ0ksV0FBTSxHQUFZLFFBQVEsQ0FBQztRQUVsQzs7O1dBR0c7UUFDSSxpQkFBWSxHQUErQixVQUFVLENBQUM7UUFFN0Q7Ozs7O1dBS0c7UUFDSSxRQUFHLEdBQVksS0FBSyxDQUFDO1FBYzVCOzs7V0FHRztRQUNJLGFBQVEsR0FBYSxJQUFJLENBQUM7UUFFakM7Ozs7V0FJRztRQUNJLGtCQUFhLEdBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFBRCxxQkFBQztBQUFELENBQUMsQUFwREQsSUFvREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVzIGFyZ3VtZW50cyBmb3IgdGhlIG51bWJlciB0byBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBOdW1lcmljT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHNlcGFyYXRvci5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcHVibGljIGRpZ2l0cz86IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gZm9ybWF0IHRoZSBudW1iZXIuIE9wdGlvbnMgYXJlIGBjdXJyZW5jeWAgb3IgYG51bWJlcmAuXG4gICAqIEBkZWZhdWx0IFwibnVtYmVyXCJcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQ/OiBzdHJpbmcgPSAnbnVtYmVyJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBmb3JtYXQgb2YgdGhlIGN1cnJlbmN5YC5cbiAgICogQGRlZmF1bHQgXCJzdGFuZGFyZFwiXG4gICAqL1xuICBwdWJsaWMgY3VycmVuY3lTaWduPzogJ2FjY291bnRpbmcnIHwgJ3N0YW5kYXJkJyA9ICdzdGFuZGFyZCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgSVNPNDIxNyBjdXJyZW5jeSBjb2RlIHRvIHVzZSBmb3IgY3VycmVuY3kgZm9ybWF0dGluZy4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFcbiAgICogY3VycmVuY3kgY29kZSwgdGhlIGNvbXBvbmVudCB1c2VzIHRoZSBicm93c2VyJ3MgY3VsdHVyZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbmN5IHVubGVzcyB5b3VyXG4gICAqIFNQQSBwcm92aWRlcyBhIGRpZmZlcmVudCBjdWx0dXJlIHdpdGggYFNreUFwcExvY2FsZVByb3ZpZGVyYC5cbiAgICogQGRlZmF1bHQgJ1VTRCdcbiAgICovXG4gIHB1YmxpYyBpc28/OiBzdHJpbmcgPSAnVVNEJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBsb2NhbGUgY29kZSB0byB1c2Ugd2hlbiBmb3JtYXR0aW5nLlxuICAgKi9cbiAgcHVibGljIGxvY2FsZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllc1xuICAgKiB3aGVuIHRoZSBgdHJ1bmNhdGVgIHByb3BlcnR5IGlzIHNldCB0byBgZmFsc2VgLiBJZiBgZGlnaXRzYCBzcGVjaWZpZXMgYSBtYXhpbXVtIG51bWJlciBvZlxuICAgKiBkaWdpdHMsIHRoZW4gYG1pbkRpZ2l0c2AgbXVzdCBiZSBsZXNzIHRoYW4gdGhhdCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBtaW5EaWdpdHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHNob3J0ZW4gbnVtYmVycyB0byByb3VuZGVkIG51bWJlcnMgYW5kIGFiYnJldmlhdGlvbiBjaGFyYWN0ZXJzXG4gICAqIHN1Y2ggYXMgSyBmb3IgdGhvdXNhbmRzLCBNIGZvciBtaWxsaW9ucywgQiBmb3IgYmlsbGlvbnMsIGFuZCBUIGZvciB0cmlsbGlvbi5cbiAgICovXG4gIHB1YmxpYyB0cnVuY2F0ZT86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0YXJ0aW5nIHBvaW50IGFmdGVyIHdoaWNoIG51bWJlcnMgYXJlIHNob3J0ZW5lZCB0byByb3VuZGVkIG51bWJlcnNcbiAgICogYW5kIGFiYnJldmlhdGlvbiBjaGFyYWN0ZXJzLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBwdWJsaWMgdHJ1bmNhdGVBZnRlcj86IG51bWJlciA9IDA7XG59XG4iXX0=
@@ -84,7 +84,7 @@ var SkyNumericService = /** @class */ (function () {
84
84
  // and the appropriate string value for Angular 5+.
85
85
  // See: https://angular.io/api/common/CurrencyPipe#parameters
86
86
  var symbolDisplay = 'symbol';
87
- output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digits, options.iso, symbolDisplay);
87
+ output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digits, options.iso, symbolDisplay, options.currencySign);
88
88
  break;
89
89
  // The following is a catch-all to ensure that if
90
90
  // anything but currency (or a future option) are entered,
@@ -188,4 +188,4 @@ var SkyNumericService = /** @class */ (function () {
188
188
  return SkyNumericService;
189
189
  }());
190
190
  export { SkyNumericService };
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3ZCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSwrQ0FBK0MsQ0FBQztBQVd2RDtJQTRCRSwyQkFDVSxnQkFBd0M7UUFBeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQVYxQyxnQkFBVyxHQUF1QjtZQUN4QyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUN4RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsRUFBRTtZQUN0RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsRUFBRTtZQUN0RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtTQUN4RSxDQUFDO0lBTUUsQ0FBQztJQXhCTCxzQkFBVyw0Q0FBYTthQUl4QjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUM7UUFDakMsQ0FBQztRQVZEOzs7V0FHRzthQUNILFVBQXlCLEtBQWE7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUF3QkQ7Ozs7T0FJRztJQUNJLHdDQUFZLEdBQW5CLFVBQ0UsS0FBYSxFQUNi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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHtcbiAgU2t5TnVtYmVyRm9ybWF0VXRpbGl0eVxufSBmcm9tICcuLi9zaGFyZWQvbnVtYmVyLWZvcm1hdC9udW1iZXItZm9ybWF0LXV0aWxpdHknO1xuXG5pbXBvcnQge1xuICBOdW1lcmljT3B0aW9uc1xufSBmcm9tICcuL251bWVyaWMub3B0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFNreU51bWVyaWNTeW1ib2xcbn0gZnJvbSAnLi9udW1lcmljLXN5bWJvbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lOdW1lcmljU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBicm93c2VyJ3MgY3VycmVudCBsb2NhbGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBjdXJyZW50TG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGUgfHwgJ2VuLVVTJztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzaG9ydFN5bWJvbDogc3RyaW5nO1xuXG4gIHByaXZhdGUgc3ltYm9sSW5kZXg6IFNreU51bWVyaWNTeW1ib2xbXSA9IFtcbiAgICB7IHZhbHVlOiAxRTEyLCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfdHJpbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgeyB2YWx1ZTogMUU5LCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfYmlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICB7IHZhbHVlOiAxRTYsIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY19taWxsaW9uc19zeW1ib2wnKSB9LFxuICAgIHsgdmFsdWU6IDFFMywgbGFiZWw6IHRoaXMuZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX3Rob3VzYW5kc19zeW1ib2wnKSB9XG4gIF07XG5cbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFNob3J0ZW5zIHdpdGggb3Igd2l0aG91dCBzeW1ib2wgKEsvTS9CL1QpIGRlcGVuZGluZyBvbiB2YWx1ZSBvZiBudW1iZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgRm9ybWF0IG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0TnVtYmVyKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgb3B0aW9uczogTnVtZXJpY09wdGlvbnNcbiAgKTogc3RyaW5nIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbnVsbC1rZXl3b3JkICovXG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2ltYWxQbGFjZVJlZ0V4cCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG5cbiAgICAvLyBHZXQgdGhlIHN5bWJvbCBmb3IgdGhlIG51bWJlciBhZnRlciByb3VuZGluZywgc2luY2Ugcm91bmRpbmcgY291bGQgcHVzaCB0aGUgbnVtYmVyXG4gICAgLy8gaW50byBhIGRpZmZlcmVudCBzeW1ib2wgcmFuZ2UuXG4gICAgbGV0IHJvdW5kZWROdW1iZXIgPSB0aGlzLnJvdW5kTnVtYmVyKHZhbHVlLCBvcHRpb25zLmRpZ2l0cyk7XG4gICAgbGV0IHJvdW5kZWROdW1iZXJBYnMgPSBNYXRoLmFicyhyb3VuZGVkTnVtYmVyKTtcblxuICAgIGxldCBzdWZmaXggPSAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zeW1ib2xJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHN5bWJvbCA9IHRoaXMuc3ltYm9sSW5kZXhbaV07XG5cbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucy50cnVuY2F0ZSAmJlxuICAgICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gb3B0aW9ucy50cnVuY2F0ZUFmdGVyICYmIHJvdW5kZWROdW1iZXJBYnMgPj0gc3ltYm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgcm91bmRlZE51bWJlciA9IHRoaXMucm91bmROdW1iZXIoKHZhbHVlIC8gc3ltYm9sLnZhbHVlKSwgb3B0aW9ucy5kaWdpdHMpO1xuXG4gICAgICAgIGlmIChNYXRoLmFicyhyb3VuZGVkTnVtYmVyKSA9PT0gMTAwMCAmJiBpID4gMCkge1xuICAgICAgICAgIC8vIFJvdW5kaW5nIGNhdXNlZCB0aGUgbnVtYmVyIHRvIGNyb3NzIGludG8gdGhlIHJhbmdlIG9mIHRoZSBuZXh0IHN5bWJvbC5cbiAgICAgICAgICBzeW1ib2wgPSB0aGlzLnN5bWJvbEluZGV4W2kgLSAxXTtcbiAgICAgICAgICByb3VuZGVkTnVtYmVyIC89IDEwMDA7XG4gICAgICAgIH1cblxuICAgICAgICBzdWZmaXggPSBzeW1ib2wubGFiZWw7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG91dHB1dCA9IHJvdW5kZWROdW1iZXIudG9TdHJpbmcoKS5yZXBsYWNlKGRlY2ltYWxQbGFjZVJlZ0V4cCwgJyQxJykgKyBzdWZmaXg7XG5cbiAgICB0aGlzLnN0b3JlU2hvcnRlblN5bWJvbChvdXRwdXQpO1xuXG4gICAgY29uc3QgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5jdXJyZW50TG9jYWxlO1xuXG4gICAgbGV0IGRpZ2l0czogc3RyaW5nO1xuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdD8udG9Mb3dlckNhc2UoKSkge1xuXG4gICAgICAvLyBJbiBhIGNhc2Ugd2hlcmUgYSBkZWNpbWFsIHZhbHVlIHdhcyBub3Qgc2hvcnRlbmVkIGFuZFxuICAgICAgLy8gdGhlIGRpZ2l0IGlucHV0IGlzIDIgb3IgaGlnaGVyLCBpdCBmb3JjZXMgMiBkaWdpdHMuXG4gICAgICAvLyBGb3IgZXhhbXBsZSwgdGhpcyBwcmV2ZW50cyBhIHZhbHVlIGxpa2UgJDE1LjUwIGZyb20gZGlzcGxheWluZyBhcyAkMTUuNS5cbiAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBuZWVkIHRvIGJlIHJldmlld2VkIGlmIHdlIHN1cHBvcnQgY3VycmVuY2llcyB3aXRoXG4gICAgICAvLyB0aHJlZSBkZWNpbWFsIGRpZ2l0cy5cbiAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgY29uc3QgaXNEZWNpbWFsID0gKHZhbHVlICUgMSAhPT0gMCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubWluRGlnaXRzKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLm1pbkRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVjaW1hbCAmJiBvcHRpb25zLmRpZ2l0cyA+PSAyKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMi0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbmd1bGFyIDUrIG5lZWRzIGEgc3RyaW5nIGZvciB0aGlzIHBhcmFtZXRlciwgYnV0IEFuZ3VsYXIgNCBuZWVkcyBhIGJvb2xlYW4uXG4gICAgICAgIC8vIFRvIHN1cHBvcnQgYm90aCB2ZXJzaW9ucyB3ZSBjYW4gc3VwcGx5ICdzeW1ib2wnIHdoaWNoIHdpbGwgZXZhbHVhdGUgdHJ1dGh5IGZvciBBbmd1bGFyIDRcbiAgICAgICAgLy8gYW5kIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgdmFsdWUgZm9yIEFuZ3VsYXIgNSsuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vQ3VycmVuY3lQaXBlI3BhcmFtZXRlcnNcbiAgICAgICAgY29uc3Qgc3ltYm9sRGlzcGxheTogYW55ID0gJ3N5bWJvbCc7XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3ksXG4gICAgICAgICAgZGlnaXRzLFxuICAgICAgICAgIG9wdGlvbnMuaXNvLFxuICAgICAgICAgIHN5bWJvbERpc3BsYXlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBjYXRjaC1hbGwgdG8gZW5zdXJlIHRoYXQgaWZcbiAgICAgIC8vIGFueXRoaW5nIGJ1dCBjdXJyZW5jeSAob3IgYSBmdXR1cmUgb3B0aW9uKSBhcmUgZW50ZXJlZCxcbiAgICAgIC8vIGl0IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgbnVtYmVyLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRW5zdXJlcyBsb2NhbGl6YXRpb24gb2YgdGhlIG51bWJlciB0byBlbnN1cmUgY29tbWEgYW5kXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGlmIChvcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0cyA9IGAxLiR7b3B0aW9ucy5taW5EaWdpdHN9LSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnRydW5jYXRlKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLmRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCxcbiAgICAgICAgICBkaWdpdHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMucmVwbGFjZVNob3J0ZW5TeW1ib2wob3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJvdW5kcyBhIGdpdmVuIG51bWJlclxuICAgKlxuICAgKiBKUydzIGxpbWl0YXRpb24gLSBudW1iZXJzIGJpZ2dlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gICAqIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSByZXByZXNlbnRlZCBvciByb3VuZGVkIGNvcnJlY3RseVxuICAgKiBAcGFyYW0gdmFsdWUgLSB2YWx1ZSB0byByb3VuZFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIC0gd2hhdCBwcmVjaXNpb24gdG8gcm91bmQgd2l0aCwgZGVmYXVsdHMgdG8gMCBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgcHJpdmF0ZSByb3VuZE51bWJlcihcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIHByZWNpc2lvbjogbnVtYmVyID0gMFxuICApOiBudW1iZXIge1xuICAgIGlmIChwcmVjaXNpb24gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NreUludmFsaWRBcmd1bWVudDogcHJlY2lzaW9uIG11c3QgYmUgPj0gMCcpO1xuICAgIH1cblxuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1udWxsLWtleXdvcmQgKi9cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBpZ25vcmluZyBjb3ZlcmFnZSBidXQgc2hvdWxkIG5vdCBpZ25vcmUgaWYgd2UgbWFrZSB0aGlzIG1ldGhvZCBwdWJsaWMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IHNjYWxlZFZhbHVlOiBudW1iZXIgPSB0aGlzLnNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKHZhbHVlLCBwcmVjaXNpb24sIHRydWUpO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICBzY2FsZWRSb3VuZGVkVmFsdWUsXG4gICAgICBwcmVjaXNpb24sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICByZXR1cm4gdW5zY2FsZWRSb3VuZGVkVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGVzIGEgZ2l2ZW4gbnVtYmVyIGJ5IGEgcG93ZXIgb2YgMTBcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gc2NhbGVcbiAgICogQHBhcmFtIHNjYWxhciAtIDEwXnNjYWxhclxuICAgKiBAcGFyYW0gc2NhbGVVcCAtIHdoZXRoZXIgdG8gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IChOdW1iZXIoZXhwKSArIHNjYWxhcikgOiAoTnVtYmVyKGV4cCkgLSBzY2FsYXIpO1xuICAgICAgcmV0dXJuIE51bWJlcihgJHtiYXNlfWUke25ld0V4cH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZSA9IHNjYWxlVXAgPyAnZScgOiAnZS0nO1xuICAgICAgcmV0dXJuIE51bWJlcihgJHt2YWx1ZX0ke2V9JHtzY2FsYXJ9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgc3ltYm9sIGFkZGVkIGZyb20gc2hvcnRlbmluZyB0byByZWFwcGx5IGxhdGVyLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB0byBkZXJpdmUgdGhlIHNob3J0ZW4gc3ltYm9sIGZyb20uXG4gICAqL1xuICBwcml2YXRlIHN0b3JlU2hvcnRlblN5bWJvbCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3ltYm9sczogc3RyaW5nW10gPSB0aGlzLnN5bWJvbEluZGV4Lm1hcChzID0+IHMubGFiZWwpO1xuICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoc3ltYm9scy5qb2luKCd8JyksICdpZycpO1xuICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gocmVnZXhwKTtcbiAgICB0aGlzLnNob3J0U3ltYm9sID0gKG1hdGNoKSA/IG1hdGNoLnRvU3RyaW5nKCkgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGhhdmUgcHJldmlvdXNseSBjYWxsZWQgc3RvcmVTaG9ydGVuU3ltYm9sIHRvIGhhdmUgc29tZXRoaW5nIHRvIHJlcGxhY2UuXG4gICAqIEZpbmRzIHRoZSBsYXN0IG51bWJlciBpbiB0aGUgZm9ybWF0dGVkIG51bWJlciwgZ2V0cyB0aGUgaW5kZXggb2YgdGhlIHBvc2l0aW9uXG4gICAqIGFmdGVyIHRoYXQgY2hhcmFjdGVyIGFuZCByZS1pbnNlcnRzIHRoZSBzeW1ib2wuXG4gICAqIFdvcmtzIHJlZ2FyZGxlc3Mgb2YgY3VycmVuY3kgc3ltYm9sIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB0byBtb2RpZnkuXG4gICAqL1xuICBwcml2YXRlIHJlcGxhY2VTaG9ydGVuU3ltYm9sKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc3VsdCA9IC8oXFxkKSg/IS4qXFxkKS9nLmV4ZWModmFsdWUpO1xuICAgIGNvbnN0IHBvcyA9IHJlc3VsdC5pbmRleCArIHJlc3VsdC5sZW5ndGg7XG4gICAgY29uc3Qgb3V0cHV0ID0gdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2woa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IE5lZWQgdG8gaW1wbGVtZW50IHRoZSBhc3luYyBgZ2V0U3RyaW5nYCBtZXRob2QgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmdGb3JMb2NhbGUoXG4gICAgICB7IGxvY2FsZTogJ2VuX1VTJyB9LFxuICAgICAga2V5XG4gICAgKTtcbiAgfVxufVxuIl19
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3ZCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSwrQ0FBK0MsQ0FBQztBQVd2RDtJQTRCRSwyQkFDVSxnQkFBd0M7UUFBeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQVYxQyxnQkFBVyxHQUF1QjtZQUN4QyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUN4RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsRUFBRTtZQUN0RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsRUFBRTtZQUN0RSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtTQUN4RSxDQUFDO0lBTUUsQ0FBQztJQXhCTCxzQkFBVyw0Q0FBYTthQUl4QjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUM7UUFDakMsQ0FBQztRQVZEOzs7V0FHRzthQUNILFVBQXlCLEtBQWE7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUF3QkQ7Ozs7T0FJRztJQUNJLHdDQUFZLEdBQW5CLFVBQ0UsS0FBYSxFQUNi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U0FoUFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHtcbiAgU2t5TnVtYmVyRm9ybWF0VXRpbGl0eVxufSBmcm9tICcuLi9zaGFyZWQvbnVtYmVyLWZvcm1hdC9udW1iZXItZm9ybWF0LXV0aWxpdHknO1xuXG5pbXBvcnQge1xuICBOdW1lcmljT3B0aW9uc1xufSBmcm9tICcuL251bWVyaWMub3B0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFNreU51bWVyaWNTeW1ib2xcbn0gZnJvbSAnLi9udW1lcmljLXN5bWJvbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lOdW1lcmljU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBicm93c2VyJ3MgY3VycmVudCBsb2NhbGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBjdXJyZW50TG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGUgfHwgJ2VuLVVTJztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzaG9ydFN5bWJvbDogc3RyaW5nO1xuXG4gIHByaXZhdGUgc3ltYm9sSW5kZXg6IFNreU51bWVyaWNTeW1ib2xbXSA9IFtcbiAgICB7IHZhbHVlOiAxRTEyLCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfdHJpbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgeyB2YWx1ZTogMUU5LCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfYmlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICB7IHZhbHVlOiAxRTYsIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY19taWxsaW9uc19zeW1ib2wnKSB9LFxuICAgIHsgdmFsdWU6IDFFMywgbGFiZWw6IHRoaXMuZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX3Rob3VzYW5kc19zeW1ib2wnKSB9XG4gIF07XG5cbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFNob3J0ZW5zIHdpdGggb3Igd2l0aG91dCBzeW1ib2wgKEsvTS9CL1QpIGRlcGVuZGluZyBvbiB2YWx1ZSBvZiBudW1iZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgRm9ybWF0IG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0TnVtYmVyKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgb3B0aW9uczogTnVtZXJpY09wdGlvbnNcbiAgKTogc3RyaW5nIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbnVsbC1rZXl3b3JkICovXG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2ltYWxQbGFjZVJlZ0V4cCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG5cbiAgICAvLyBHZXQgdGhlIHN5bWJvbCBmb3IgdGhlIG51bWJlciBhZnRlciByb3VuZGluZywgc2luY2Ugcm91bmRpbmcgY291bGQgcHVzaCB0aGUgbnVtYmVyXG4gICAgLy8gaW50byBhIGRpZmZlcmVudCBzeW1ib2wgcmFuZ2UuXG4gICAgbGV0IHJvdW5kZWROdW1iZXIgPSB0aGlzLnJvdW5kTnVtYmVyKHZhbHVlLCBvcHRpb25zLmRpZ2l0cyk7XG4gICAgbGV0IHJvdW5kZWROdW1iZXJBYnMgPSBNYXRoLmFicyhyb3VuZGVkTnVtYmVyKTtcblxuICAgIGxldCBzdWZmaXggPSAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zeW1ib2xJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHN5bWJvbCA9IHRoaXMuc3ltYm9sSW5kZXhbaV07XG5cbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucy50cnVuY2F0ZSAmJlxuICAgICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gb3B0aW9ucy50cnVuY2F0ZUFmdGVyICYmIHJvdW5kZWROdW1iZXJBYnMgPj0gc3ltYm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgcm91bmRlZE51bWJlciA9IHRoaXMucm91bmROdW1iZXIoKHZhbHVlIC8gc3ltYm9sLnZhbHVlKSwgb3B0aW9ucy5kaWdpdHMpO1xuXG4gICAgICAgIGlmIChNYXRoLmFicyhyb3VuZGVkTnVtYmVyKSA9PT0gMTAwMCAmJiBpID4gMCkge1xuICAgICAgICAgIC8vIFJvdW5kaW5nIGNhdXNlZCB0aGUgbnVtYmVyIHRvIGNyb3NzIGludG8gdGhlIHJhbmdlIG9mIHRoZSBuZXh0IHN5bWJvbC5cbiAgICAgICAgICBzeW1ib2wgPSB0aGlzLnN5bWJvbEluZGV4W2kgLSAxXTtcbiAgICAgICAgICByb3VuZGVkTnVtYmVyIC89IDEwMDA7XG4gICAgICAgIH1cblxuICAgICAgICBzdWZmaXggPSBzeW1ib2wubGFiZWw7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG91dHB1dCA9IHJvdW5kZWROdW1iZXIudG9TdHJpbmcoKS5yZXBsYWNlKGRlY2ltYWxQbGFjZVJlZ0V4cCwgJyQxJykgKyBzdWZmaXg7XG5cbiAgICB0aGlzLnN0b3JlU2hvcnRlblN5bWJvbChvdXRwdXQpO1xuXG4gICAgY29uc3QgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5jdXJyZW50TG9jYWxlO1xuXG4gICAgbGV0IGRpZ2l0czogc3RyaW5nO1xuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdD8udG9Mb3dlckNhc2UoKSkge1xuXG4gICAgICAvLyBJbiBhIGNhc2Ugd2hlcmUgYSBkZWNpbWFsIHZhbHVlIHdhcyBub3Qgc2hvcnRlbmVkIGFuZFxuICAgICAgLy8gdGhlIGRpZ2l0IGlucHV0IGlzIDIgb3IgaGlnaGVyLCBpdCBmb3JjZXMgMiBkaWdpdHMuXG4gICAgICAvLyBGb3IgZXhhbXBsZSwgdGhpcyBwcmV2ZW50cyBhIHZhbHVlIGxpa2UgJDE1LjUwIGZyb20gZGlzcGxheWluZyBhcyAkMTUuNS5cbiAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBuZWVkIHRvIGJlIHJldmlld2VkIGlmIHdlIHN1cHBvcnQgY3VycmVuY2llcyB3aXRoXG4gICAgICAvLyB0aHJlZSBkZWNpbWFsIGRpZ2l0cy5cbiAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgY29uc3QgaXNEZWNpbWFsID0gKHZhbHVlICUgMSAhPT0gMCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubWluRGlnaXRzKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLm1pbkRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVjaW1hbCAmJiBvcHRpb25zLmRpZ2l0cyA+PSAyKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMi0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbmd1bGFyIDUrIG5lZWRzIGEgc3RyaW5nIGZvciB0aGlzIHBhcmFtZXRlciwgYnV0IEFuZ3VsYXIgNCBuZWVkcyBhIGJvb2xlYW4uXG4gICAgICAgIC8vIFRvIHN1cHBvcnQgYm90aCB2ZXJzaW9ucyB3ZSBjYW4gc3VwcGx5ICdzeW1ib2wnIHdoaWNoIHdpbGwgZXZhbHVhdGUgdHJ1dGh5IGZvciBBbmd1bGFyIDRcbiAgICAgICAgLy8gYW5kIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgdmFsdWUgZm9yIEFuZ3VsYXIgNSsuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vQ3VycmVuY3lQaXBlI3BhcmFtZXRlcnNcbiAgICAgICAgY29uc3Qgc3ltYm9sRGlzcGxheTogYW55ID0gJ3N5bWJvbCc7XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3ksXG4gICAgICAgICAgZGlnaXRzLFxuICAgICAgICAgIG9wdGlvbnMuaXNvLFxuICAgICAgICAgIHN5bWJvbERpc3BsYXksXG4gICAgICAgICAgb3B0aW9ucy5jdXJyZW5jeVNpZ25cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBjYXRjaC1hbGwgdG8gZW5zdXJlIHRoYXQgaWZcbiAgICAgIC8vIGFueXRoaW5nIGJ1dCBjdXJyZW5jeSAob3IgYSBmdXR1cmUgb3B0aW9uKSBhcmUgZW50ZXJlZCxcbiAgICAgIC8vIGl0IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgbnVtYmVyLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRW5zdXJlcyBsb2NhbGl6YXRpb24gb2YgdGhlIG51bWJlciB0byBlbnN1cmUgY29tbWEgYW5kXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGlmIChvcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0cyA9IGAxLiR7b3B0aW9ucy5taW5EaWdpdHN9LSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnRydW5jYXRlKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLmRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCxcbiAgICAgICAgICBkaWdpdHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMucmVwbGFjZVNob3J0ZW5TeW1ib2wob3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJvdW5kcyBhIGdpdmVuIG51bWJlclxuICAgKlxuICAgKiBKUydzIGxpbWl0YXRpb24gLSBudW1iZXJzIGJpZ2dlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gICAqIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSByZXByZXNlbnRlZCBvciByb3VuZGVkIGNvcnJlY3RseVxuICAgKiBAcGFyYW0gdmFsdWUgLSB2YWx1ZSB0byByb3VuZFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIC0gd2hhdCBwcmVjaXNpb24gdG8gcm91bmQgd2l0aCwgZGVmYXVsdHMgdG8gMCBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgcHJpdmF0ZSByb3VuZE51bWJlcihcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIHByZWNpc2lvbjogbnVtYmVyID0gMFxuICApOiBudW1iZXIge1xuICAgIGlmIChwcmVjaXNpb24gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NreUludmFsaWRBcmd1bWVudDogcHJlY2lzaW9uIG11c3QgYmUgPj0gMCcpO1xuICAgIH1cblxuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1udWxsLWtleXdvcmQgKi9cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBpZ25vcmluZyBjb3ZlcmFnZSBidXQgc2hvdWxkIG5vdCBpZ25vcmUgaWYgd2UgbWFrZSB0aGlzIG1ldGhvZCBwdWJsaWMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IHNjYWxlZFZhbHVlOiBudW1iZXIgPSB0aGlzLnNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKHZhbHVlLCBwcmVjaXNpb24sIHRydWUpO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICBzY2FsZWRSb3VuZGVkVmFsdWUsXG4gICAgICBwcmVjaXNpb24sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICByZXR1cm4gdW5zY2FsZWRSb3VuZGVkVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGVzIGEgZ2l2ZW4gbnVtYmVyIGJ5IGEgcG93ZXIgb2YgMTBcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gc2NhbGVcbiAgICogQHBhcmFtIHNjYWxhciAtIDEwXnNjYWxhclxuICAgKiBAcGFyYW0gc2NhbGVVcCAtIHdoZXRoZXIgdG8gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IChOdW1iZXIoZXhwKSArIHNjYWxhcikgOiAoTnVtYmVyKGV4cCkgLSBzY2FsYXIpO1xuICAgICAgcmV0dXJuIE51bWJlcihgJHtiYXNlfWUke25ld0V4cH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZSA9IHNjYWxlVXAgPyAnZScgOiAnZS0nO1xuICAgICAgcmV0dXJuIE51bWJlcihgJHt2YWx1ZX0ke2V9JHtzY2FsYXJ9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgc3ltYm9sIGFkZGVkIGZyb20gc2hvcnRlbmluZyB0byByZWFwcGx5IGxhdGVyLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB0byBkZXJpdmUgdGhlIHNob3J0ZW4gc3ltYm9sIGZyb20uXG4gICAqL1xuICBwcml2YXRlIHN0b3JlU2hvcnRlblN5bWJvbCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3ltYm9sczogc3RyaW5nW10gPSB0aGlzLnN5bWJvbEluZGV4Lm1hcChzID0+IHMubGFiZWwpO1xuICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoc3ltYm9scy5qb2luKCd8JyksICdpZycpO1xuICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gocmVnZXhwKTtcbiAgICB0aGlzLnNob3J0U3ltYm9sID0gKG1hdGNoKSA/IG1hdGNoLnRvU3RyaW5nKCkgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXN0IGhhdmUgcHJldmlvdXNseSBjYWxsZWQgc3RvcmVTaG9ydGVuU3ltYm9sIHRvIGhhdmUgc29tZXRoaW5nIHRvIHJlcGxhY2UuXG4gICAqIEZpbmRzIHRoZSBsYXN0IG51bWJlciBpbiB0aGUgZm9ybWF0dGVkIG51bWJlciwgZ2V0cyB0aGUgaW5kZXggb2YgdGhlIHBvc2l0aW9uXG4gICAqIGFmdGVyIHRoYXQgY2hhcmFjdGVyIGFuZCByZS1pbnNlcnRzIHRoZSBzeW1ib2wuXG4gICAqIFdvcmtzIHJlZ2FyZGxlc3Mgb2YgY3VycmVuY3kgc3ltYm9sIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB0byBtb2RpZnkuXG4gICAqL1xuICBwcml2YXRlIHJlcGxhY2VTaG9ydGVuU3ltYm9sKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc3VsdCA9IC8oXFxkKSg/IS4qXFxkKS9nLmV4ZWModmFsdWUpO1xuICAgIGNvbnN0IHBvcyA9IHJlc3VsdC5pbmRleCArIHJlc3VsdC5sZW5ndGg7XG4gICAgY29uc3Qgb3V0cHV0ID0gdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2woa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IE5lZWQgdG8gaW1wbGVtZW50IHRoZSBhc3luYyBgZ2V0U3RyaW5nYCBtZXRob2QgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmdGb3JMb2NhbGUoXG4gICAgICB7IGxvY2FsZTogJ2VuX1VTJyB9LFxuICAgICAga2V5XG4gICAgKTtcbiAgfVxufVxuIl19