monkey-style-guide 2.0.124 → 2.0.127

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.
@@ -186,6 +186,7 @@
186
186
  display: flex;
187
187
  flex-direction: row;
188
188
  justify-content: flex-end;
189
+ align-items: center;
189
190
  width: 100%;
190
191
  right: 0px;
191
192
  bottom: 4px;
@@ -127,31 +127,33 @@ export class MonkeyStyleGuideSnackbarService {
127
127
  buildAction(id) {
128
128
  const { config: { type, action }, } = this;
129
129
  if (action) {
130
- const { style, confirm, cancel } = action;
130
+ const { confirm, cancel } = action;
131
131
  const actionElement = document.createElement('div');
132
132
  let actionCancelElement = null, actionConfirmElement = null;
133
- if (style === 'link') {
134
- if (cancel) {
135
- actionCancelElement = document.createElement('a');
136
- actionCancelElement.href = 'javascript:void(0)';
137
- actionCancelElement.innerText = cancel.label;
138
- }
139
- if (confirm) {
133
+ if (confirm) {
134
+ const { style, label } = confirm;
135
+ if (style === 'link') {
140
136
  actionConfirmElement = document.createElement('a');
141
137
  actionConfirmElement.href = 'javascript:void(0)';
142
- actionConfirmElement.innerText = confirm.label;
138
+ actionConfirmElement.innerText = label;
139
+ }
140
+ else {
141
+ actionConfirmElement = document.createElement('button');
142
+ actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;
143
+ actionConfirmElement.innerText = label;
143
144
  }
144
145
  }
145
- else {
146
- if (cancel) {
146
+ if (cancel) {
147
+ const { style, label } = cancel;
148
+ if (style === 'link') {
149
+ actionCancelElement = document.createElement('a');
150
+ actionCancelElement.href = 'javascript:void(0)';
151
+ actionCancelElement.innerText = label;
152
+ }
153
+ else {
147
154
  actionCancelElement = document.createElement('button');
148
155
  actionCancelElement.className = `mecx-button-tertiary mecx-button-tertiary__${type}`;
149
- actionCancelElement.innerText = cancel.label;
150
- }
151
- if (confirm) {
152
- actionConfirmElement = document.createElement('button');
153
- actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;
154
- actionConfirmElement.innerText = confirm.label;
156
+ actionCancelElement.innerText = label;
155
157
  }
156
158
  }
157
159
  if (actionCancelElement) {
@@ -187,11 +189,6 @@ export class MonkeyStyleGuideSnackbarService {
187
189
  snackbarElement.appendChild(snackbarBodyElement);
188
190
  this.snackbarElements.add(snackbarElement, duration, () => (!keepOpen ? this.close(id) : null), verticalPosition);
189
191
  }
190
- close(id) {
191
- const { snackbarElements } = this;
192
- snackbarElements.remove(id);
193
- this.stopBlinking();
194
- }
195
192
  show(config) {
196
193
  this.config = config;
197
194
  const id = `monkey-snackbar-${MonkeyUtils.getRandomString(30)}`;
@@ -205,15 +202,21 @@ export class MonkeyStyleGuideSnackbarService {
205
202
  if (config?.blinkTab) {
206
203
  this.blinkTab();
207
204
  }
205
+ return id;
208
206
  }
209
207
  closeAll() {
210
208
  const { snackbarElements } = this;
211
209
  snackbarElements.removeAll();
212
210
  }
211
+ close(id) {
212
+ const { snackbarElements } = this;
213
+ snackbarElements.remove(id);
214
+ this.stopBlinking();
215
+ }
213
216
  }
214
217
  MonkeyStyleGuideSnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Injectable });
215
218
  MonkeyStyleGuideSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService });
216
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService, decorators: [{
217
220
  type: Injectable
218
221
  }], ctorParameters: function () { return [{ type: i1.Location }]; } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc25hY2tiYXIvbW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUUxQyxNQUFNLEtBQUssR0FBRztJQUNaLE9BQU8sRUFBRTs7O1dBR0E7SUFDVCxPQUFPLEVBQUU7Ozs7V0FJQTtJQUNULEtBQUssRUFBRTs7OztXQUlFO0lBQ1QsUUFBUSxFQUFFOzs7O1dBSUQ7SUFDVCxPQUFPLEVBQUU7O1NBRUY7Q0FDUixDQUFDO0FBMkJGLE1BQU0sZ0JBQWdCO0lBT3BCO1FBTkEsYUFBUSxHQUdGLEVBQUUsQ0FBQztRQUNULGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVoQixHQUFHLENBQUMsT0FBdUIsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQUUsZ0JBQXdCO1FBQ3pGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7UUFFNUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxRQUFRLENBQUMs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aEIsSUFBSSxNQUFNLEVBQUUsUUFBUSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7OzRIQTFMVSwrQkFBK0I7Z0lBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuY29uc3QgaWNvbnMgPSB7XHJcbiAgc3VjY2VzczogYDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI3XCIgZmlsbD1cIiMwMDg3NUFcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNMTEgNUw3IDExTDQgOC4yNzI3M1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICB3YXJuaW5nOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNi44NTQzMyAyLjYzODE5TDEuMTc5NTcgMTIuMDExNEMxLjA2MjU3IDEyLjIxMTggMS4wMDA2NiAxMi40MzkxIDEuMDAwMDEgMTIuNjcwNkMwLjk5OTM1IDEyLjkwMjEgMS4wNTk5NyAxMy4xMjk3IDEuMTc1ODMgMTMuMzMwOEMxLjI5MTcgMTMuNTMyIDEuNDU4NzcgMTMuNjk5NSAxLjY2MDQyIDEzLjgxNjlDMS44NjIwNyAxMy45MzQzIDIuMDkxMjggMTMuOTk3NSAyLjMyNTI0IDE0SDEzLjY3NDhDMTMuOTA4NyAxMy45OTc1IDE0LjEzNzkgMTMuOTM0MyAxNC4zMzk2IDEzLjgxNjlDMTQuNTQxMiAxMy42OTk1IDE0LjcwODMgMTMuNTMyIDE0LjgyNDIgMTMuMzMwOEMxNC45NCAxMy4xMjk3IDE1LjAwMDYgMTIuOTAyMSAxNSAxMi42NzA2QzE0Ljk5OTMgMTIuNDM5MSAxNC45Mzc0IDEyLjIxMTggMTQuODIwNCAxMi4wMTE0TDkuMTQ1NjcgMi42MzgxOUM5LjAyNjIzIDIuNDQzMzcgOC44NTgwNiAyLjI4MjMgOC42NTczOCAyLjE3MDUxQzguNDU2NzEgMi4wNTg3MyA4LjIzMDMgMiA4IDJDNy43Njk3IDIgNy41NDMyOSAyLjA1ODczIDcuMzQyNjIgMi4xNzA1MUM3LjE0MTk0IDIuMjgyMyA2Ljk3Mzc3IDIuNDQzMzcgNi44NTQzMyAyLjYzODE5WlwiIGZpbGw9XCIjRUZBMzBFXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggNlYxMFwiIHN0cm9rZT1cIiMwMDBGMUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMkg4LjAwNjY3XCIgc3Ryb2tlPVwiIzAwMEYxRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgZXJyb3I6IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk01LjEwMiAxSDEwLjg5OEwxNSA1LjEwMlYxMC44OThMMTAuODk4IDE1SDUuMTAyTDEgMTAuODk4VjUuMTAyTDUuMTAyIDFaXCIgZmlsbD1cIiNGQTM4MzhcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCA1LjMzMzMzVjcuOTk5OTlcIiBzdHJva2U9XCIjRjVGQUZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggMTAuNjY2N0g4LjAwNjY3XCIgc3Ryb2tlPVwiI0Y1RkFGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgcXVlc3Rpb246IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk04LjAwMDA0IDE0LjY2NjhDMTEuNjgxOSAxNC42NjY4IDE0LjY2NjcgMTEuNjgyMSAxNC42NjY3IDguMDAwMTZDMTQuNjY2NyA0LjMxODI2IDExLjY4MTkgMS4zMzM1IDguMDAwMDQgMS4zMzM1QzQuMzE4MTQgMS4zMzM1IDEuMzMzMzcgNC4zMTgyNiAxLjMzMzM3IDguMDAwMTZDMS4zMzMzNyAxMS42ODIxIDQuMzE4MTQgMTQuNjY2OCA4LjAwMDA0IDE0LjY2NjhaXCIgc3Ryb2tlPVwiIzhEMzhGQVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgPHBhdGggZD1cIk02LjA1OTk0IDUuOTk5ODlDNi4yMTY2NyA1LjU1NDM0IDYuNTI2MDQgNS4xNzg2MyA2LjkzMzI0IDQuOTM5MzFDNy4zNDA0NCA0LjcgNy44MTkyIDQuNjEyNTIgOC4yODQ3MiA0LjY5MjM3QzguNzUwMjQgNC43NzIyMiA5LjE3MjQ4IDUuMDE0MjQgOS40NzY2NSA1LjM3NTU4QzkuNzgwODMgNS43MzY5MSA5Ljk0NzMxIDYuMTk0MjQgOS45NDY2IDYuNjY2NTZDOS45NDY2IDcuOTk5ODkgNy45NDY2IDguNjY2NTYgNy45NDY2IDguNjY2NTZWOS40OTk4OVwiIHN0cm9rZT1cIiM4RDM4RkFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMS4zMzM1SDguMDA2NjdcIiBzdHJva2U9XCIjOEQzOEZBXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICBsb2FkaW5nOiBgPHN2ZyBjbGFzcz1cImNpcmN1bGFyLWxvYWRlclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiID5cclxuICAgIDxjaXJjbGUgY2xhc3M9XCJsb2FkZXItcGF0aFwiIGN4PVwiNTBcIiBjeT1cIjUwXCIgcj1cIjIwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjNTc1NzU3XCIgc3Ryb2tlLXdpZHRoPVwiNVwiIC8+XHJcbiAgPC9zdmc+YCxcclxufTtcclxuXHJcbmludGVyZmFjZSBTbmFja2JhckFjdGlvbkNvbmZpZyB7XHJcbiAgc3R5bGU6ICdsaW5rJyB8ICdidXR0b24nO1xyXG4gIGNvbmZpcm0/OiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgYWN0aW9uOiBGdW5jdGlvbjtcclxuICB9O1xyXG4gIGNhbmNlbD86IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBhY3Rpb246IEZ1bmN0aW9uO1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTbmFja2JhckNvbmZpZyB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICB0eXBlPzogJ3RoZW1lJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAncXVlc3Rpb24nIHwgJ2xvYWRpbmcnO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGhvcml6b250YWxQb3NpdGlvbj86ICdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuICB2ZXJ0aWNhbFBvc2l0aW9uPzogJ3RvcCcgfCAnYm90dG9tJztcclxuICBhY3Rpb24/OiBTbmFja2JhckFjdGlvbkNvbmZpZztcclxuICBrZWVwT3Blbj86IGJvb2xlYW47XHJcbiAgYmxpbmtUYWI/OiBib29sZWFuO1xyXG4gIGtlZXBPblVybENoYW5nZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmNsYXNzIFNuYWNrYmFyRWxlbWVudHMge1xyXG4gIGVsZW1lbnRzOiB7XHJcbiAgICBlbGVtZW50PzogSFRNTERpdkVsZW1lbnQ7XHJcbiAgICBpbnRlcnZhbD86IGFueTtcclxuICB9W10gPSBbXTtcclxuICBsYXN0U2Nyb2xsVG9wOiBudW1iZXIgPSAxNTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBhZGQoZWxlbWVudDogSFRNTERpdkVsZW1lbnQsIGR1cmF0aW9uOiBudW1iZXIsIGNhbGxiYWNrOiBGdW5jdGlvbiwgdmVydGljYWxQb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50cyAmJiB0aGlzLmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmxhc3RTY3JvbGxUb3AgPSAxNTtcclxuICAgIH1cclxuICAgIGVsZW1lbnQuc3R5bGVbdmVydGljYWxQb3NpdGlvbl0gPSBgJHt0aGlzLmxhc3RTY3JvbGxUb3B9cHhgO1xyXG5cclxuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICBjYWxsYmFjaygpO1xyXG4gICAgfSwgZHVyYXRpb24pO1xyXG5cclxuICAgIHRoaXMuZWxlbWVudHMucHVzaCh7XHJcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXHJcbiAgICAgIGludGVydmFsOiBpbnRlcnZhbCxcclxuICAgIH0pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgIHRoaXMubGFzdFNjcm9sbFRvcCA9IHRoaXMubGFzdFNjcm9sbFRvcCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQuaWQpLm9mZnNldEhlaWdodCArIDE1O1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKHJlbW92ZUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRzLmZpbmQoKHsgZWxlbWVudDogeyBpZCB9IH0pID0+IGlkID09PSByZW1vdmVJZCk7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICB0aGlzLmVsZW1lbnRzID1cclxuICAgICAgICB0aGlzLmVsZW1lbnRzLmZpbHRlcigoeyBlbGVtZW50OiB7IGlkIH0gfSkgPT4gaWQgIT09IGVsZW1lbnQuZWxlbWVudC5pZCkgfHwgW107XHJcbiAgICAgIGVsZW1lbnQuZWxlbWVudC5jbGFzc05hbWUgPSBgJHtlbGVtZW50LmVsZW1lbnQuY2xhc3NOYW1lfSBmYWRlLW91dCBoaWRlYDtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXN0U2Nyb2xsVG9wID1cclxuICAgICAgICAgIHRoaXMubGFzdFNjcm9sbFRvcCAtIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZW1vdmVJZCkub2Zmc2V0SGVpZ2h0ICsgMTUpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudC5lbGVtZW50KTtcclxuICAgICAgICBjbGVhckludGVydmFsKGVsZW1lbnQuaW50ZXJ2YWwpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUFsbCgpIHtcclxuICAgIHRoaXMuZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQuZWxlbWVudCk7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoZWxlbWVudC5pbnRlcnZhbCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFNjcm9sbFRvcCA9IDE1O1xyXG4gICAgdGhpcy5lbGVtZW50cyA9IFtdO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTW9ua2V5U3R5bGVHdWlkZVNuYWNrYmFyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb25maWc6IFNuYWNrYmFyQ29uZmlnO1xyXG4gIHByaXZhdGUgc25hY2tiYXJFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIHNuYWNrYmFyRWxlbWVudHM6IFNuYWNrYmFyRWxlbWVudHM7XHJcbiAgcHJpdmF0ZSBzbmFja2JhckJvZHlFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIHNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIG9sZFRpdGxlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB0aW1lb3V0QmxpbmtUYWIgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uUm91dGVyOiBMb2NhdGlvbikge1xyXG4gICAgdGhpcy5zbmFja2JhckVsZW1lbnRzID0gbmV3IFNuYWNrYmFyRWxlbWVudHMoKTtcclxuICAgIHRoaXMubG9jYXRpb25Sb3V0ZXIub25VcmxDaGFuZ2UoKCkgPT4ge1xyXG4gICAgICBpZih0aGlzLmNvbmZpZyAmJiAhdGhpcy5jb25maWc/LmtlZXBPblVybENoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5jbG9zZUFsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcEJsaW5raW5nKCkge1xyXG4gICAgaWYgKHRoaXMub2xkVGl0bGUpIHtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSB0aGlzLm9sZFRpdGxlO1xyXG4gICAgICBpZiAodGhpcy5zbmFja2JhckVsZW1lbnRzLmVsZW1lbnRzLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVvdXRCbGlua1RhYik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmxpbmtUYWIoKSB7XHJcbiAgICB0aGlzLm9sZFRpdGxlID0gdGhpcy5vbGRUaXRsZSB8fCBkb2N1bWVudC50aXRsZTtcclxuXHJcbiAgICBjb25zdCBzdGFydEJsaW5raW5nID0gKCkgPT4ge1xyXG4gICAgICBsZXQgbWVzc2FnZSA9IGAoJHt0aGlzLnNuYWNrYmFyRWxlbWVudHMuZWxlbWVudHMubGVuZ3RofSkgJHt0aGlzLm9sZFRpdGxlfWA7XHJcbiAgICAgIGRvY3VtZW50LnRpdGxlID0gZG9jdW1lbnQudGl0bGUgPT09IG1lc3NhZ2UgPyB0aGlzLm9sZFRpdGxlIDogbWVzc2FnZTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMudGltZW91dEJsaW5rVGFiKSBjbGVhckludGVydmFsKHRoaXMudGltZW91dEJsaW5rVGFiKTtcclxuICAgIHRoaXMudGltZW91dEJsaW5rVGFiID0gc2V0SW50ZXJ2YWwoc3RhcnRCbGlua2luZywgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXM7XHJcbiAgICBsZXQgeyBob3Jpem9udGFsUG9zaXRpb24sIHZlcnRpY2FsUG9zaXRpb24sIHR5cGUgfSA9IGNvbmZpZztcclxuICAgIGhvcml6b250YWxQb3NpdGlvbiA9IGhvcml6b250YWxQb3NpdGlvbiB8fCAnY2VudGVyJztcclxuICAgIHZlcnRpY2FsUG9zaXRpb24gPSB2ZXJ0aWNhbFBvc2l0aW9uIHx8ICd0b3AnO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnNuYWNrYmFyRWxlbWVudC5pZCA9IGAke2lkfWA7XHJcbiAgICB0aGlzLnNuYWNrYmFyRWxlbWVudC5jbGFzc05hbWUgPSBgbWVjeC1zbmFja2Jhci1jb250YWluZXIgJHtob3Jpem9udGFsUG9zaXRpb259LSR7dmVydGljYWxQb3NpdGlvbn0gJHt0eXBlfWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQm9keSgpIHtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlFbGVtZW50LmNsYXNzTmFtZSA9ICdtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5JztcclxuXHJcbiAgICB0aGlzLnNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICdtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5LWNvbnRlbnQnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFRpdGxlQW5kTWVzc2FnZSgpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGNvbmZpZzogeyB0aXRsZSwgbWVzc2FnZSwgYWN0aW9uIH0sXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGNvbnN0IHRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgdGl0bGVFbGVtZW50LmlubmVyVGV4dCA9IGAke3RpdGxlfWA7XHJcbiAgICB0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC10aXRsZSc7XHJcblxyXG4gICAgY29uc3QgbWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIG1lc3NhZ2VFbGVtZW50LmlubmVyVGV4dCA9IGAke21lc3NhZ2V9YDtcclxuICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9IGBtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5LWNvbnRlbnQtbWVzc2FnZSAke1xyXG4gICAgICBhY3Rpb24gPyAnd2l0aC1hY3Rpb24nIDogJydcclxuICAgIH1gO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGl0bGVFbGVtZW50KTtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuYXBwZW5kQ2hpbGQobWVzc2FnZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEFjdGlvbihpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNvbmZpZzogeyB0eXBlLCBhY3Rpb24gfSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICBjb25zdCB7IHN0eWxlLCBjb25maXJtLCBjYW5jZWwgfSA9IGFjdGlvbjtcclxuICAgICAgY29uc3QgYWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cclxuICAgICAgbGV0IGFjdGlvbkNhbmNlbEVsZW1lbnQgPSBudWxsLFxyXG4gICAgICAgIGFjdGlvbkNvbmZpcm1FbGVtZW50ID0gbnVsbDtcclxuICAgICAgaWYgKHN0eWxlID09PSAnbGluaycpIHtcclxuICAgICAgICBpZiAoY2FuY2VsKSB7XHJcbiAgICAgICAgICBhY3Rpb25DYW5jZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudC5ocmVmID0gJ2phdmFzY3JpcHQ6dm9pZCgwKSc7XHJcbiAgICAgICAgICBhY3Rpb25DYW5jZWxFbGVtZW50LmlubmVyVGV4dCA9IGNhbmNlbC5sYWJlbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb25maXJtKSB7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgIGFjdGlvbkNvbmZpcm1FbGVtZW50LmhyZWYgPSAnamF2YXNjcmlwdDp2b2lkKDApJztcclxuICAgICAgICAgIGFjdGlvbkNvbmZpcm1FbGVtZW50LmlubmVyVGV4dCA9IGNvbmZpcm0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjYW5jZWwpIHtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXRlcnRpYXJ5IG1lY3gtYnV0dG9uLXRlcnRpYXJ5X18ke3R5cGV9YDtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaW5uZXJUZXh0ID0gY2FuY2VsLmxhYmVsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbmZpcm0pIHtcclxuICAgICAgICAgIGFjdGlvbkNvbmZpcm1FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5jbGFzc05hbWUgPSBgbWVjeC1idXR0b24tcHJpbWFyeSBtZWN4LWJ1dHRvbi1wcmltYXJ5X18ke3R5cGV9YDtcclxuICAgICAgICAgIGFjdGlvbkNvbmZpcm1FbGVtZW50LmlubmVyVGV4dCA9IGNvbmZpcm0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aW9uQ2FuY2VsRWxlbWVudCkge1xyXG4gICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNhbmNlbC5hY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25DYW5jZWxFbGVtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGlvbkNvbmZpcm1FbGVtZW50KSB7XHJcbiAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNvbmZpcm0uYWN0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25Db25maXJtRWxlbWVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1hY3Rpb24nO1xyXG4gICAgICB0aGlzLnNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50LmFwcGVuZENoaWxkKGFjdGlvbkVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEljb24oKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgdHlwZSB9LFxyXG4gICAgfSA9IHRoaXM7XHJcblxyXG4gICAgY29uc3Qgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHNuYWNrYmFyQm9keUljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5LWljb24nO1xyXG4gICAgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gYCR7aWNvbnNbdHlwZV19YDtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5RWxlbWVudC5hcHBlbmRDaGlsZChzbmFja2JhckJvZHlJY29uRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaChpZDogc3RyaW5nKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgZHVyYXRpb24sIGtlZXBPcGVuLCB2ZXJ0aWNhbFBvc2l0aW9uIH0sXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGR1cmF0aW9uID0gZHVyYXRpb24gfHwgNDAwMDtcclxuICAgIGNvbnN0IHsgc25hY2tiYXJCb2R5RWxlbWVudCwgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQsIHNuYWNrYmFyRWxlbWVudCB9ID0gdGhpcztcclxuICAgIHNuYWNrYmFyQm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQoc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQpO1xyXG4gICAgc25hY2tiYXJFbGVtZW50LmFwcGVuZENoaWxkKHNuYWNrYmFyQm9keUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50cy5hZGQoXHJcbiAgICAgIHNuYWNrYmFyRWxlbWVudCxcclxuICAgICAgZHVyYXRpb24sXHJcbiAgICAgICgpID0+ICgha2VlcE9wZW4gPyB0aGlzLmNsb3NlKGlkKSA6IG51bGwpLFxyXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZShpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNuYWNrYmFyRWxlbWVudHMgfSA9IHRoaXM7XHJcbiAgICBzbmFja2JhckVsZW1lbnRzLnJlbW92ZShpZCk7XHJcbiAgICB0aGlzLnN0b3BCbGlua2luZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3coY29uZmlnOiBTbmFja2JhckNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcbiAgICBjb25zdCBpZCA9IGBtb25rZXktc25hY2tiYXItJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMzApfWA7XHJcbiAgICB0aGlzLmNsb3NlQWxsKCk7XHJcbiAgICB0aGlzLmluaXQoaWQpO1xyXG4gICAgdGhpcy5idWlsZEJvZHkoKTtcclxuICAgIHRoaXMuYnVpbGRUaXRsZUFuZE1lc3NhZ2UoKTtcclxuICAgIHRoaXMuYnVpbGRBY3Rpb24oaWQpO1xyXG4gICAgdGhpcy5idWlsZEljb24oKTtcclxuICAgIHRoaXMuZmluaXNoKGlkKTtcclxuICAgIGlmIChjb25maWc/LmJsaW5rVGFiKSB7XHJcbiAgICAgIHRoaXMuYmxpbmtUYWIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFsbCgpIHtcclxuICAgIGNvbnN0IHsgc25hY2tiYXJFbGVtZW50cyB9ID0gdGhpcztcclxuICAgIHNuYWNrYmFyRWxlbWVudHMucmVtb3ZlQWxsKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc25hY2tiYXIvbW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUUxQyxNQUFNLEtBQUssR0FBRztJQUNaLE9BQU8sRUFBRTs7O1dBR0E7SUFDVCxPQUFPLEVBQUU7Ozs7V0FJQTtJQUNULEtBQUssRUFBRTs7OztXQUlFO0lBQ1QsUUFBUSxFQUFFOzs7O1dBSUQ7SUFDVCxPQUFPLEVBQUU7O1NBRUY7Q0FDUixDQUFDO0FBNEJGLE1BQU0sZ0JBQWdCO0lBT3BCO1FBTkEsYUFBUSxHQUdGLEVBQUUsQ0FBQztRQUNULGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVoQixHQUFHLENBQUMsT0FBdUIsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQUUsZ0JBQXdCO1FBQ3pGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7UUFFNUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxRQUFRLENBQUMs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LFFBQVE7UUFDYixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxFQUFVO1FBQ3JCLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNsQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRIQTVMVSwrQkFBK0I7Z0lBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuY29uc3QgaWNvbnMgPSB7XHJcbiAgc3VjY2VzczogYDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI3XCIgZmlsbD1cIiMwMDg3NUFcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNMTEgNUw3IDExTDQgOC4yNzI3M1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICB3YXJuaW5nOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNi44NTQzMyAyLjYzODE5TDEuMTc5NTcgMTIuMDExNEMxLjA2MjU3IDEyLjIxMTggMS4wMDA2NiAxMi40MzkxIDEuMDAwMDEgMTIuNjcwNkMwLjk5OTM1IDEyLjkwMjEgMS4wNTk5NyAxMy4xMjk3IDEuMTc1ODMgMTMuMzMwOEMxLjI5MTcgMTMuNTMyIDEuNDU4NzcgMTMuNjk5NSAxLjY2MDQyIDEzLjgxNjlDMS44NjIwNyAxMy45MzQzIDIuMDkxMjggMTMuOTk3NSAyLjMyNTI0IDE0SDEzLjY3NDhDMTMuOTA4NyAxMy45OTc1IDE0LjEzNzkgMTMuOTM0MyAxNC4zMzk2IDEzLjgxNjlDMTQuNTQxMiAxMy42OTk1IDE0LjcwODMgMTMuNTMyIDE0LjgyNDIgMTMuMzMwOEMxNC45NCAxMy4xMjk3IDE1LjAwMDYgMTIuOTAyMSAxNSAxMi42NzA2QzE0Ljk5OTMgMTIuNDM5MSAxNC45Mzc0IDEyLjIxMTggMTQuODIwNCAxMi4wMTE0TDkuMTQ1NjcgMi42MzgxOUM5LjAyNjIzIDIuNDQzMzcgOC44NTgwNiAyLjI4MjMgOC42NTczOCAyLjE3MDUxQzguNDU2NzEgMi4wNTg3MyA4LjIzMDMgMiA4IDJDNy43Njk3IDIgNy41NDMyOSAyLjA1ODczIDcuMzQyNjIgMi4xNzA1MUM3LjE0MTk0IDIuMjgyMyA2Ljk3Mzc3IDIuNDQzMzcgNi44NTQzMyAyLjYzODE5WlwiIGZpbGw9XCIjRUZBMzBFXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggNlYxMFwiIHN0cm9rZT1cIiMwMDBGMUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMkg4LjAwNjY3XCIgc3Ryb2tlPVwiIzAwMEYxRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgZXJyb3I6IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk01LjEwMiAxSDEwLjg5OEwxNSA1LjEwMlYxMC44OThMMTAuODk4IDE1SDUuMTAyTDEgMTAuODk4VjUuMTAyTDUuMTAyIDFaXCIgZmlsbD1cIiNGQTM4MzhcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCA1LjMzMzMzVjcuOTk5OTlcIiBzdHJva2U9XCIjRjVGQUZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggMTAuNjY2N0g4LjAwNjY3XCIgc3Ryb2tlPVwiI0Y1RkFGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgcXVlc3Rpb246IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk04LjAwMDA0IDE0LjY2NjhDMTEuNjgxOSAxNC42NjY4IDE0LjY2NjcgMTEuNjgyMSAxNC42NjY3IDguMDAwMTZDMTQuNjY2NyA0LjMxODI2IDExLjY4MTkgMS4zMzM1IDguMDAwMDQgMS4zMzM1QzQuMzE4MTQgMS4zMzM1IDEuMzMzMzcgNC4zMTgyNiAxLjMzMzM3IDguMDAwMTZDMS4zMzMzNyAxMS42ODIxIDQuMzE4MTQgMTQuNjY2OCA4LjAwMDA0IDE0LjY2NjhaXCIgc3Ryb2tlPVwiIzhEMzhGQVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgPHBhdGggZD1cIk02LjA1OTk0IDUuOTk5ODlDNi4yMTY2NyA1LjU1NDM0IDYuNTI2MDQgNS4xNzg2MyA2LjkzMzI0IDQuOTM5MzFDNy4zNDA0NCA0LjcgNy44MTkyIDQuNjEyNTIgOC4yODQ3MiA0LjY5MjM3QzguNzUwMjQgNC43NzIyMiA5LjE3MjQ4IDUuMDE0MjQgOS40NzY2NSA1LjM3NTU4QzkuNzgwODMgNS43MzY5MSA5Ljk0NzMxIDYuMTk0MjQgOS45NDY2IDYuNjY2NTZDOS45NDY2IDcuOTk5ODkgNy45NDY2IDguNjY2NTYgNy45NDY2IDguNjY2NTZWOS40OTk4OVwiIHN0cm9rZT1cIiM4RDM4RkFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMS4zMzM1SDguMDA2NjdcIiBzdHJva2U9XCIjOEQzOEZBXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICBsb2FkaW5nOiBgPHN2ZyBjbGFzcz1cImNpcmN1bGFyLWxvYWRlclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiID5cclxuICAgIDxjaXJjbGUgY2xhc3M9XCJsb2FkZXItcGF0aFwiIGN4PVwiNTBcIiBjeT1cIjUwXCIgcj1cIjIwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjNTc1NzU3XCIgc3Ryb2tlLXdpZHRoPVwiNVwiIC8+XHJcbiAgPC9zdmc+YCxcclxufTtcclxuXHJcbmludGVyZmFjZSBTbmFja2JhckFjdGlvbkNvbmZpZyB7XHJcbiAgY29uZmlybT86IHtcclxuICAgIHN0eWxlOiAnbGluaycgfCAnYnV0dG9uJztcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBhY3Rpb246IEZ1bmN0aW9uO1xyXG4gIH07XHJcbiAgY2FuY2VsPzoge1xyXG4gICAgc3R5bGU6ICdsaW5rJyB8ICdidXR0b24nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGFjdGlvbjogRnVuY3Rpb247XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNuYWNrYmFyQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAndGhlbWUnIHwgJ3dhcm5pbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdxdWVzdGlvbicgfCAnbG9hZGluZyc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnO1xyXG4gIHZlcnRpY2FsUG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xyXG4gIGFjdGlvbj86IFNuYWNrYmFyQWN0aW9uQ29uZmlnO1xyXG4gIGtlZXBPcGVuPzogYm9vbGVhbjtcclxuICBibGlua1RhYj86IGJvb2xlYW47XHJcbiAga2VlcE9uVXJsQ2hhbmdlPzogYm9vbGVhbjtcclxufVxyXG5cclxuY2xhc3MgU25hY2tiYXJFbGVtZW50cyB7XHJcbiAgZWxlbWVudHM6IHtcclxuICAgIGVsZW1lbnQ/OiBIVE1MRGl2RWxlbWVudDtcclxuICAgIGludGVydmFsPzogYW55O1xyXG4gIH1bXSA9IFtdO1xyXG4gIGxhc3RTY3JvbGxUb3A6IG51bWJlciA9IDE1O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFkZChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCwgZHVyYXRpb246IG51bWJlciwgY2FsbGJhY2s6IEZ1bmN0aW9uLCB2ZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnRzICYmIHRoaXMuZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMubGFzdFNjcm9sbFRvcCA9IDE1O1xyXG4gICAgfVxyXG4gICAgZWxlbWVudC5zdHlsZVt2ZXJ0aWNhbFBvc2l0aW9uXSA9IGAke3RoaXMubGFzdFNjcm9sbFRvcH1weGA7XHJcblxyXG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9LCBkdXJhdGlvbik7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHtcclxuICAgICAgZWxlbWVudDogZWxlbWVudCxcclxuICAgICAgaW50ZXJ2YWw6IGludGVydmFsLFxyXG4gICAgfSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gdGhpcy5sYXN0U2Nyb2xsVG9wICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudC5pZCkub2Zmc2V0SGVpZ2h0ICsgMTU7XHJcbiAgfVxyXG5cclxuICByZW1vdmUocmVtb3ZlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudHMuZmluZCgoeyBlbGVtZW50OiB7IGlkIH0gfSkgPT4gaWQgPT09IHJlbW92ZUlkKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudHMgPVxyXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZmlsdGVyKCh7IGVsZW1lbnQ6IHsgaWQgfSB9KSA9PiBpZCAhPT0gZWxlbWVudC5lbGVtZW50LmlkKSB8fCBbXTtcclxuICAgICAgZWxlbWVudC5lbGVtZW50LmNsYXNzTmFtZSA9IGAke2VsZW1lbnQuZWxlbWVudC5jbGFzc05hbWV9IGZhZGUtb3V0IGhpZGVgO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxhc3RTY3JvbGxUb3AgPVxyXG4gICAgICAgICAgdGhpcy5sYXN0U2Nyb2xsVG9wIC0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlbW92ZUlkKS5vZmZzZXRIZWlnaHQgKyAxNSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50LmVsZW1lbnQpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZWxlbWVudC5pbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxsKCkge1xyXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudC5lbGVtZW50KTtcclxuICAgICAgY2xlYXJJbnRlcnZhbChlbGVtZW50LmludGVydmFsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gMTU7XHJcbiAgICB0aGlzLmVsZW1lbnRzID0gW107XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlTdHlsZUd1aWRlU25hY2tiYXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbmZpZzogU25hY2tiYXJDb25maWc7XHJcbiAgcHJpdmF0ZSBzbmFja2JhckVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJFbGVtZW50czogU25hY2tiYXJFbGVtZW50cztcclxuICBwcml2YXRlIHNuYWNrYmFyQm9keUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgb2xkVGl0bGU6IHN0cmluZztcclxuICBwcml2YXRlIHRpbWVvdXRCbGlua1RhYiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb25Sb3V0ZXI6IExvY2F0aW9uKSB7XHJcbiAgICB0aGlzLnNuYWNrYmFyRWxlbWVudHMgPSBuZXcgU25hY2tiYXJFbGVtZW50cygpO1xyXG4gICAgdGhpcy5sb2NhdGlvblJvdXRlci5vblVybENoYW5nZSgoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnICYmICF0aGlzLmNvbmZpZz8ua2VlcE9uVXJsQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmNsb3NlQWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdG9wQmxpbmtpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5vbGRUaXRsZSkge1xyXG4gICAgICBkb2N1bWVudC50aXRsZSA9IHRoaXMub2xkVGl0bGU7XHJcbiAgICAgIGlmICh0aGlzLnNuYWNrYmFyRWxlbWVudHMuZWxlbWVudHMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZW91dEJsaW5rVGFiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBibGlua1RhYigpIHtcclxuICAgIHRoaXMub2xkVGl0bGUgPSB0aGlzLm9sZFRpdGxlIHx8IGRvY3VtZW50LnRpdGxlO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0QmxpbmtpbmcgPSAoKSA9PiB7XHJcbiAgICAgIGxldCBtZXNzYWdlID0gYCgke3RoaXMuc25hY2tiYXJFbGVtZW50cy5lbGVtZW50cy5sZW5ndGh9KSAke3RoaXMub2xkVGl0bGV9YDtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSBkb2N1bWVudC50aXRsZSA9PT0gbWVzc2FnZSA/IHRoaXMub2xkVGl0bGUgOiBtZXNzYWdlO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy50aW1lb3V0QmxpbmtUYWIpIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0QmxpbmtUYWIpO1xyXG4gICAgdGhpcy50aW1lb3V0QmxpbmtUYWIgPSBzZXRJbnRlcnZhbChzdGFydEJsaW5raW5nLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gdGhpcztcclxuICAgIGxldCB7IGhvcml6b250YWxQb3NpdGlvbiwgdmVydGljYWxQb3NpdGlvbiwgdHlwZSB9ID0gY29uZmlnO1xyXG4gICAgaG9yaXpvbnRhbFBvc2l0aW9uID0gaG9yaXpvbnRhbFBvc2l0aW9uIHx8ICdjZW50ZXInO1xyXG4gICAgdmVydGljYWxQb3NpdGlvbiA9IHZlcnRpY2FsUG9zaXRpb24gfHwgJ3RvcCc7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmlkID0gYCR7aWR9YDtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmNsYXNzTmFtZSA9IGBtZWN4LXNuYWNrYmFyLWNvbnRhaW5lciAke2hvcml6b250YWxQb3NpdGlvbn0tJHt2ZXJ0aWNhbFBvc2l0aW9ufSAke3R5cGV9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRCb2R5KCkge1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnNuYWNrYmFyQm9keUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHknO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVGl0bGVBbmRNZXNzYWdlKCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgY29uZmlnOiB7IHRpdGxlLCBtZXNzYWdlLCBhY3Rpb24gfSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgdGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aXRsZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7dGl0bGV9YDtcclxuICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAnbWVjeC1zbmFja2Jhci1jb250YWluZXItYm9keS1jb250ZW50LXRpdGxlJztcclxuXHJcbiAgICBjb25zdCBtZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7bWVzc2FnZX1gO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1tZXNzYWdlICR7XHJcbiAgICAgIGFjdGlvbiA/ICd3aXRoLWFjdGlvbicgOiAnJ1xyXG4gICAgfWA7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZChtZXNzYWdlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQWN0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29uZmlnOiB7IHR5cGUsIGFjdGlvbiB9LFxyXG4gICAgfSA9IHRoaXM7XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHsgY29uZmlybSwgY2FuY2VsIH0gPSBhY3Rpb247XHJcbiAgICAgIGNvbnN0IGFjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgIGxldCBhY3Rpb25DYW5jZWxFbGVtZW50ID0gbnVsbCxcclxuICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IG51bGw7XHJcblxyXG4gICAgICBpZihjb25maXJtKXtcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY29uZmlybTtcclxuICAgICAgICBpZiAoc3R5bGUgPT09ICdsaW5rJykge1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5ocmVmID0gJ2phdmFzY3JpcHQ6dm9pZCgwKSc7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXByaW1hcnkgbWVjeC1idXR0b24tcHJpbWFyeV9fJHt0eXBlfWA7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKGNhbmNlbCl7ICAgICAgICBcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY2FuY2VsO1xyXG4gICAgICAgIGlmKHN0eWxlID09PSAnbGluaycpe1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaHJlZiA9ICdqYXZhc2NyaXB0OnZvaWQoMCknO1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXRlcnRpYXJ5IG1lY3gtYnV0dG9uLXRlcnRpYXJ5X18ke3R5cGV9YDtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaW5uZXJUZXh0ID0gbGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aW9uQ2FuY2VsRWxlbWVudCkge1xyXG4gICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNhbmNlbC5hY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25DYW5jZWxFbGVtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGlvbkNvbmZpcm1FbGVtZW50KSB7XHJcbiAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNvbmZpcm0uYWN0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25Db25maXJtRWxlbWVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1hY3Rpb24nO1xyXG4gICAgICB0aGlzLnNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50LmFwcGVuZENoaWxkKGFjdGlvbkVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEljb24oKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgdHlwZSB9LFxyXG4gICAgfSA9IHRoaXM7XHJcblxyXG4gICAgY29uc3Qgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHNuYWNrYmFyQm9keUljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5LWljb24nO1xyXG4gICAgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gYCR7aWNvbnNbdHlwZV19YDtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5RWxlbWVudC5hcHBlbmRDaGlsZChzbmFja2JhckJvZHlJY29uRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaChpZDogc3RyaW5nKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgZHVyYXRpb24sIGtlZXBPcGVuLCB2ZXJ0aWNhbFBvc2l0aW9uIH0sXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGR1cmF0aW9uID0gZHVyYXRpb24gfHwgNDAwMDtcclxuICAgIGNvbnN0IHsgc25hY2tiYXJCb2R5RWxlbWVudCwgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQsIHNuYWNrYmFyRWxlbWVudCB9ID0gdGhpcztcclxuICAgIHNuYWNrYmFyQm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQoc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQpO1xyXG4gICAgc25hY2tiYXJFbGVtZW50LmFwcGVuZENoaWxkKHNuYWNrYmFyQm9keUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50cy5hZGQoXHJcbiAgICAgIHNuYWNrYmFyRWxlbWVudCxcclxuICAgICAgZHVyYXRpb24sXHJcbiAgICAgICgpID0+ICgha2VlcE9wZW4gPyB0aGlzLmNsb3NlKGlkKSA6IG51bGwpLFxyXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3coY29uZmlnOiBTbmFja2JhckNvbmZpZyk6IHN0cmluZyB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcclxuICAgIGNvbnN0IGlkID0gYG1vbmtleS1zbmFja2Jhci0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygzMCl9YDtcclxuICAgIHRoaXMuY2xvc2VBbGwoKTtcclxuICAgIHRoaXMuaW5pdChpZCk7XHJcbiAgICB0aGlzLmJ1aWxkQm9keSgpO1xyXG4gICAgdGhpcy5idWlsZFRpdGxlQW5kTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5idWlsZEFjdGlvbihpZCk7XHJcbiAgICB0aGlzLmJ1aWxkSWNvbigpO1xyXG4gICAgdGhpcy5maW5pc2goaWQpO1xyXG4gICAgaWYgKGNvbmZpZz8uYmxpbmtUYWIpIHtcclxuICAgICAgdGhpcy5ibGlua1RhYigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQWxsKCkge1xyXG4gICAgY29uc3QgeyBzbmFja2JhckVsZW1lbnRzIH0gPSB0aGlzO1xyXG4gICAgc25hY2tiYXJFbGVtZW50cy5yZW1vdmVBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZShpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNuYWNrYmFyRWxlbWVudHMgfSA9IHRoaXM7XHJcbiAgICBzbmFja2JhckVsZW1lbnRzLnJlbW92ZShpZCk7XHJcbiAgICB0aGlzLnN0b3BCbGlua2luZygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -495,31 +495,33 @@ class MonkeyStyleGuideSnackbarService {
495
495
  buildAction(id) {
496
496
  const { config: { type, action }, } = this;
497
497
  if (action) {
498
- const { style, confirm, cancel } = action;
498
+ const { confirm, cancel } = action;
499
499
  const actionElement = document.createElement('div');
500
500
  let actionCancelElement = null, actionConfirmElement = null;
501
- if (style === 'link') {
502
- if (cancel) {
503
- actionCancelElement = document.createElement('a');
504
- actionCancelElement.href = 'javascript:void(0)';
505
- actionCancelElement.innerText = cancel.label;
506
- }
507
- if (confirm) {
501
+ if (confirm) {
502
+ const { style, label } = confirm;
503
+ if (style === 'link') {
508
504
  actionConfirmElement = document.createElement('a');
509
505
  actionConfirmElement.href = 'javascript:void(0)';
510
- actionConfirmElement.innerText = confirm.label;
506
+ actionConfirmElement.innerText = label;
507
+ }
508
+ else {
509
+ actionConfirmElement = document.createElement('button');
510
+ actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;
511
+ actionConfirmElement.innerText = label;
511
512
  }
512
513
  }
513
- else {
514
- if (cancel) {
514
+ if (cancel) {
515
+ const { style, label } = cancel;
516
+ if (style === 'link') {
517
+ actionCancelElement = document.createElement('a');
518
+ actionCancelElement.href = 'javascript:void(0)';
519
+ actionCancelElement.innerText = label;
520
+ }
521
+ else {
515
522
  actionCancelElement = document.createElement('button');
516
523
  actionCancelElement.className = `mecx-button-tertiary mecx-button-tertiary__${type}`;
517
- actionCancelElement.innerText = cancel.label;
518
- }
519
- if (confirm) {
520
- actionConfirmElement = document.createElement('button');
521
- actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;
522
- actionConfirmElement.innerText = confirm.label;
524
+ actionCancelElement.innerText = label;
523
525
  }
524
526
  }
525
527
  if (actionCancelElement) {
@@ -555,11 +557,6 @@ class MonkeyStyleGuideSnackbarService {
555
557
  snackbarElement.appendChild(snackbarBodyElement);
556
558
  this.snackbarElements.add(snackbarElement, duration, () => (!keepOpen ? this.close(id) : null), verticalPosition);
557
559
  }
558
- close(id) {
559
- const { snackbarElements } = this;
560
- snackbarElements.remove(id);
561
- this.stopBlinking();
562
- }
563
560
  show(config) {
564
561
  this.config = config;
565
562
  const id = `monkey-snackbar-${MonkeyUtils.getRandomString(30)}`;
@@ -573,11 +570,17 @@ class MonkeyStyleGuideSnackbarService {
573
570
  if (config === null || config === void 0 ? void 0 : config.blinkTab) {
574
571
  this.blinkTab();
575
572
  }
573
+ return id;
576
574
  }
577
575
  closeAll() {
578
576
  const { snackbarElements } = this;
579
577
  snackbarElements.removeAll();
580
578
  }
579
+ close(id) {
580
+ const { snackbarElements } = this;
581
+ snackbarElements.remove(id);
582
+ this.stopBlinking();
583
+ }
581
584
  }
582
585
  MonkeyStyleGuideSnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService, deps: [{ token: i1$1.Location }], target: i0.ɵɵFactoryTarget.Injectable });
583
586
  MonkeyStyleGuideSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService });