@edm-sdui/sdui 1.0.61 → 1.0.63

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.
@@ -256,35 +256,12 @@ export class UIViewDirective {
256
256
  // marca que esse elemento tem hover
257
257
  this.renderer.addClass(el, 'edm-hover');
258
258
  if (hover.border_color || hover.borderColor) {
259
- console.log(hover.border_color, hover.borderColor);
260
- const token = hover.border_color ?? hover.borderColor;
261
- const style = document.createElement('style');
262
- style.textContent = `
263
- :root {
264
- --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
265
- }
266
- `;
267
- document.head.appendChild(style);
259
+ const token = (hover.border_color ?? hover.borderColor).replace(/_/g, '-');
260
+ el.style.setProperty('--edm-hover-border-color', `var(--${token})`);
268
261
  }
269
262
  if (hover.background_color || hover.backgroundColor) {
270
- const token = hover.background_color ?? hover.backgroundColor;
271
- const style = document.createElement('style');
272
- style.textContent = `
273
- :root {
274
- --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
275
- }
276
- `;
277
- document.head.appendChild(style);
278
- }
279
- if (hover.background_color || hover.backgroundColor) {
280
- const token = hover.background_color ?? hover.backgroundColor;
281
- const style = document.createElement('style');
282
- style.textContent = `
283
- :root {
284
- --edm-hover-bg-color: var(--${token.replace(/_/g, '-')});
285
- }
286
- `;
287
- document.head.appendChild(style);
263
+ const token = (hover.background_color ?? hover.backgroundColor).replace(/_/g, '-');
264
+ el.style.setProperty('--edm-hover-bg-color', `var(--${token})`);
288
265
  }
289
266
  }
290
267
  isSmallScreen() {
@@ -399,4 +376,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
399
376
  type: HostListener,
400
377
  args: ['click', ['$event']]
401
378
  }] } });
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFhdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01RixNQUFNLE9BQU8sZUFBZTthQUdGLDRCQUF1QixHQUFHLG1CQUFtQixBQUF0QixDQUF1QjthQUM5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TyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQztRQUNoRSxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEQsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBampCVSxlQUFlO21HQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBa0JJLFFBQVE7eUNBaEJGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkErY04sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBVTdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpdmlldyc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSUJhY2tncm91bmQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYmFja2dyb3VuZCc7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlBbGlnbm1lbnQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYWxpZ25tZW50JztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlyYWRpdXMnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNwYWNpbmcnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWp1c3RpZnknO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlkaW1lbnNpb24nO1xuaW1wb3J0IHsgVUlDb250ZW50SW5zZXQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpY29udGVudC1pbnNldCc7XG5pbXBvcnQgeyBzcGFjZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zcGFjZS1tYXBwaW5nJztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgcGFkTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3BhZC1tYXBwaW5nJztcbmltcG9ydCB7IHJhZGl1c01hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9yYWRpdXMtbWFwcGluZyc7XG5pbXBvcnQgeyBhbGlnbm1lbnRNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvYWxpZ25tZW50LW1hcHBpbmcnO1xuaW1wb3J0IHsgZGltZW5zaW9uTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2RpbWVuc2lvbi1tYXBwaW5nJztcbmltcG9ydCB7XG4gIHNoYWRvd09mZnNldE1hcHBpbmcsXG4gIHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nLFxufSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaGFkb3ctbWFwcGluZyc7XG5pbXBvcnQgeyBqdXN0aWZ5TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2p1c3RpZnktbWFwcGluZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlTY3JlZW5WaWV3TW9kZWwgfSBmcm9tICcuLi9jb3JlL3ZpZXctbW9kZWxzL3Vpc2NyZWVuLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBVSUFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3VpLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVJU2l6ZSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXNpemUnO1xuaW1wb3J0IHsgc2l6ZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaXplLW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vY29yZS91aWNvbXBvc2l0aW9uL2VudW1zL3Vpc2NyZWVuLWNvbnRhaW5lci10eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VkbVNkdWlWaWV3XScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBVSVZpZXdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBlZG1TZHVpVmlldz86IFVJVmlldztcbiAgQElucHV0KCkgZGlzYWJsZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9BTkNIT1JfS0VZID0gJ2V4cGxvcmVMYXN0QW5jaG9yJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVkgPSAnZXhwbG9yZUxhc3RSb3dJbmRleCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9ST1dfU0NST0xMX0xFRlRfS0VZID0gJ2V4cGxvcmVMYXN0Um93U2Nyb2xsTGVmdCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9JVEVNX0lEX0tFWSA9ICdleHBsb3JlTGFzdEl0ZW1JZCc7XG5cbiAgcHJpdmF0ZSBsYXN0VWlWaWV3OiBVSVZpZXcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3YXNTbWFsbFNjcmVlbiA9IHRoaXMuaXNTbWFsbFNjcmVlbigpO1xuICBwcml2YXRlIGN1cnJlbnRDb250YWluZXI6IFVJU2NyZWVuQ29udGFpbmVyVHlwZSA9IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogVUlBY3Rpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgc2NyZWVuVmlld01vZGVsOiBVSVNjcmVlblZpZXdNb2RlbFxuICApIHtcbiAgICBpZiAodGhpcy5zY3JlZW5WaWV3TW9kZWwpIHtcbiAgICAgIHRoaXMuc2NyZWVuVmlld01vZGVsLnVpU2NyZWVuJC5zdWJzY3JpYmUoKHNjcmVlbikgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250YWluZXIgPVxuICAgICAgICAgIHNjcmVlbj8uY29uZmlnPy5jb250YWluZXIgPz8gVUlTY3JlZW5Db250YWluZXJUeXBlLkNPTlRBSU5FRDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldykge1xuICAgICAgdGhpcy5sYXN0VWlWaWV3ID0gdGhpcy5lZG1TZHVpVmlldztcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5lZG1TZHVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVN0eWxlcyh1aVZpZXc6IFVJVmlldykge1xuICAgIGlmICh1aVZpZXcuaWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgU3RyaW5nKHVpVmlldy5pZClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5wYWRkaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5UGFkZGluZyh1aVZpZXcucGFkZGluZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5jb250ZW50SW5zZXQpIHtcbiAgICAgIHRoaXMuYXBwbHlDb250ZW50SW5zZXQodWlWaWV3LmNvbnRlbnRJbnNldCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5iYWNrZ3JvdW5kKSB7XG4gICAgICB0aGlzLmFwcGx5QmFja2dyb3VuZCh1aVZpZXcuYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hY3Rpb24pIHtcbiAgICAgIHRoaXMuYXBwbHlBY3Rpb24odWlWaWV3LmFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hbGlnbm1lbnQpIHtcbiAgICAgIHRoaXMuYXBwbHlBbGlnbm1lbnQodWlWaWV3LmFsaWdubWVudCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaGFkb3cpIHtcbiAgICAgIHRoaXMuYXBwbHlTaGFkb3codWlWaWV3LnNoYWRvdyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5yYWRpdXMpIHtcbiAgICAgIHRoaXMuYXBwbHlSYWRpdXModWlWaWV3LnJhZGl1cyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zcGFjaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5U3BhY2luZyh1aVZpZXcuc3BhY2luZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5oZWlnaHQpIHtcbiAgICAgIHRoaXMuYXBwbHlIZWlnaHQodWlWaWV3LmhlaWdodCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy53aWR0aCkge1xuICAgICAgdGhpcy5hcHBseVdpZHRoKHVpVmlldy53aWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJXaWR0aCkge1xuICAgICAgdGhpcy5hcHBseUJvcmRlcldpZHRoKHVpVmlldy5ib3JkZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJDb2xvcikge1xuICAgICAgdGhpcy5hcHBseUJvcmRlckNvbG9yKHVpVmlldy5ib3JkZXJDb2xvcik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5qdXN0aWZ5KSB7XG4gICAgICB0aGlzLmFwcGx5SnVzdGlmeSh1aVZpZXcuanVzdGlmeSk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaXplKSB7XG4gICAgICB0aGlzLmFwcGx5U2l6ZSh1aVZpZXcuc2l6ZSk7XG4gICAgfVxuICAgIGlmICh1aVZpZXcuYXNwZWN0UmF0aW8gIT09IG51bGwgJiYgdWlWaWV3LmFzcGVjdFJhdGlvICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXBwbHlBc3BlY3RSYXRpbyh1aVZpZXcuYXNwZWN0UmF0aW8pO1xuICAgIH1cblxuICAgIGlmKHVpVmlldy5ob3Zlcil7XG4gICAgICB0aGlzLmFwcGx5SG92ZXJWYXJzKHVpVmlldyk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGFwcGx5UGFkZGluZyh1aVBhZGRpbmc6IFVJUGFkZGluZykge1xuICAgIGlmICh1aVBhZGRpbmcudG9wKSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLnRvcF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcubGVmdCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5sZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcucmlnaHQpIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcucmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcuYm90dG9tKSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLmJvdHRvbV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbnRlbnRJbnNldCh1aUNvbnRlbnRJbnNldDogVUlDb250ZW50SW5zZXQpIHtcbiAgICBpZiAodWlDb250ZW50SW5zZXQudG9wKSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LnRvcF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtdG9wJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQubGVmdCkge1xuICAgICAgY29uc3QgaW5zZXRWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aUNvbnRlbnRJbnNldC5sZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtbGVmdCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQ29udGVudEluc2V0LnJpZ2h0KSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LnJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJy0tc2R1aS1jb250ZW50LWluc2V0LXJpZ2h0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQuYm90dG9tKSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LmJvdHRvbV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtYm90dG9tJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QmFja2dyb3VuZCh1aUJhY2tncm91bmQ6IFVJQmFja2dyb3VuZCkge1xuICAgIGlmICh1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmJhY2tncm91bmRDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMSAmJiB1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjIpIHtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IxID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMV07XG4gICAgICBjb25zdCBncmFkaWVudENvbG9yMiA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjJdO1xuICAgICAgY29uc3QgZ3JhZGllbnRTdHlsZXMgPSBgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAke2dyYWRpZW50Q29sb3IxfSwgJHtncmFkaWVudENvbG9yMn0pYFxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdiYWNrZ3JvdW5kJyxcbiAgICAgICAgZ3JhZGllbnRTdHlsZXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFjdGlvbih1aUFjdGlvbjogVUlBY3Rpb24pIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBbGlnbm1lbnQodWlBbGlnbm1lbnQ6IFVJQWxpZ25tZW50KSB7XG4gICAgaWYgKHVpQWxpZ25tZW50LmFsaWdubWVudCkge1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50TWFwcGluZ1t1aUFsaWdubWVudC5hbGlnbm1lbnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhbGlnbi1pdGVtcycsXG4gICAgICAgIGFsaWdubWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2hhZG93KHVpU2hhZG93OiBVSVNoYWRvdykge1xuICAgIGlmICh1aVNoYWRvdy5jb2xvciAmJiB1aVNoYWRvdy5vZmZzZXRYICYmIHVpU2hhZG93Lm9mZnNldFkgJiYgdWlTaGFkb3cuYmx1clJhZGl1cykge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbdWlTaGFkb3cuY29sb3JdO1xuICAgICAgY29uc3Qgb2Zmc2V0WCA9IHNoYWRvd09mZnNldE1hcHBpbmdbdWlTaGFkb3cub2Zmc2V0WF07XG4gICAgICBjb25zdCBvZmZzZXRZID0gc2hhZG93T2Zmc2V0TWFwcGluZ1t1aVNoYWRvdy5vZmZzZXRZXTtcbiAgICAgIGNvbnN0IGJsdXJSYWRpdXMgPSBzaGFkb3dCbHVyUmFkaXVzTWFwcGluZ1t1aVNoYWRvdy5ibHVyUmFkaXVzXTtcbiAgICAgIGNvbnN0IG9wYWNpdHkgPSB1aVNoYWRvdy5vcGFjaXR5ICE9PSB1bmRlZmluZWQgPyB1aVNoYWRvdy5vcGFjaXR5IDogMTtcblxuICAgICAgLy8gRm9ybWF0OiBib3gtc2hhZG93OiBvZmZzZXRYIG9mZnNldFkgYmx1clJhZGl1cyBjb2xvclxuICAgICAgY29uc3Qgc2hhZG93VmFsdWUgPSBgJHtvZmZzZXRYfSAke29mZnNldFl9ICR7Ymx1clJhZGl1c30gJHtjb2xvcn1gO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JveC1zaGFkb3cnLFxuICAgICAgICBzaGFkb3dWYWx1ZVxuICAgICAgKTtcblxuICAgICAgaWYgKG9wYWNpdHkgIT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAnb3BhY2l0eScsXG4gICAgICAgICAgb3BhY2l0eS50b1N0cmluZygpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVJhZGl1cyh1aVJhZGl1czogVUlSYWRpdXMpIHtcbiAgICBpZiAodWlSYWRpdXMudG9wTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy50b3BMZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMudG9wUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMudG9wUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy5ib3R0b21MZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMuYm90dG9tUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTcGFjaW5nKHVpU3BhY2luZzogVUlTcGFjaW5nKSB7XG4gICAgaWYgKHVpU3BhY2luZy5zcGFjaW5nKSB7XG4gICAgICBjb25zdCBzcGFjaW5nVmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlTcGFjaW5nLnNwYWNpbmddO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdnYXAnLFxuICAgICAgICBzcGFjaW5nVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhlaWdodChoZWlnaHQ6IFVJRGltZW5zaW9uKSB7XG4gICAgaWYgKGhlaWdodCkge1xuICAgICAgY29uc3QgaGVpZ2h0VmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW2hlaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgIGhlaWdodFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlXaWR0aCh3aWR0aDogVUlEaW1lbnNpb24pIHtcbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIGNvbnN0IHdpZHRoVmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW3dpZHRoXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnd2lkdGgnLFxuICAgICAgICB3aWR0aFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCb3JkZXJXaWR0aChib3JkZXJXaWR0aDogbnVtYmVyKSB7XG4gICAgaWYgKGJvcmRlcldpZHRoICE9PSBudWxsICYmIGJvcmRlcldpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXdpZHRoJyxcbiAgICAgICAgYCR7Ym9yZGVyV2lkdGh9cHhgXG4gICAgICApO1xuXG4gICAgICAvLyBFbnN1cmUgYm9yZGVyIHN0eWxlIGlzIHNldCwgb3RoZXJ3aXNlIGJvcmRlci13aWR0aCB3b24ndCBiZSB2aXNpYmxlXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1zdHlsZScsXG4gICAgICAgICdzb2xpZCdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJvcmRlckNvbG9yKGJvcmRlckNvbG9yOiBVSUNvbG9yKSB7XG4gICAgaWYgKGJvcmRlckNvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1tib3JkZXJDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1jb2xvcicsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlKdXN0aWZ5KGp1c3RpZnk6IFVJSnVzdGlmeSkge1xuICAgIGlmIChqdXN0aWZ5KSB7XG4gICAgICBjb25zdCBqdXN0aWZ5VmFsdWUgPSBqdXN0aWZ5TWFwcGluZ1tqdXN0aWZ5XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnanVzdGlmeS1jb250ZW50JyxcbiAgICAgICAganVzdGlmeVZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBc3BlY3RSYXRpbyhhc3BlY3RSYXRpbzogbnVtYmVyKSB7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2l6ZShzaXplOiBVSVNpemUpIHtcbiAgICBjb25zdCBjb25maWcgPSBzaXplTWFwcGluZ1tzaXplXTtcbiAgICBpZiAoIWNvbmZpZykgcmV0dXJuO1xuXG4gICAgbGV0IHsgd2lkdGg6IHdpZHRoVmFsdWUsIGhlaWdodDogaGVpZ2h0VmFsdWUgfSA9IGNvbmZpZztcblxuICAgIGlmIChcbiAgICAgIGNvbmZpZy5zY2FsYWJsZSAmJlxuICAgICAgdGhpcy5pc1NtYWxsU2NyZWVuKCkgJiZcbiAgICAgIHRoaXMuY3VycmVudENvbnRhaW5lciA9PT0gVUlTY3JlZW5Db250YWluZXJUeXBlLkZMVUlEXG4gICAgKSB7XG4gICAgICB3aWR0aFZhbHVlID0gdGhpcy5zY2FsZVBpeGVsVmFsdWUod2lkdGhWYWx1ZSwgMS4xKTtcbiAgICAgIGhlaWdodFZhbHVlID0gdGhpcy5zY2FsZVBpeGVsVmFsdWUoaGVpZ2h0VmFsdWUsIDEuMSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgd2lkdGhWYWx1ZSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGhlaWdodFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlIb3ZlclZhcnModWlWaWV3OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBob3ZlciA9IHVpVmlldz8uaG92ZXIgPz8gdWlWaWV3Py5lbGVtZW50Py5ob3ZlcjtcbiAgICBpZiAoIWhvdmVyKSByZXR1cm47XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLy8gbWFyY2EgcXVlIGVzc2UgZWxlbWVudG8gdGVtIGhvdmVyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ2VkbS1ob3ZlcicpO1xuXG4gICAgaWYgKGhvdmVyLmJvcmRlcl9jb2xvciB8fCBob3Zlci5ib3JkZXJDb2xvcikge1xuICAgICAgY29uc29sZS5sb2coaG92ZXIuYm9yZGVyX2NvbG9yLCBob3Zlci5ib3JkZXJDb2xvcik7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJvcmRlcl9jb2xvciA/PyBob3Zlci5ib3JkZXJDb2xvcjtcblxuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLSR7dG9rZW4ucmVwbGFjZSgvXy9nLCAnLScpfSk7XG4gICAgICAgIH1cbiAgICAgIGA7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgIH1cblxuICAgIGlmIChob3Zlci5iYWNrZ3JvdW5kX2NvbG9yIHx8IGhvdmVyLmJhY2tncm91bmRDb2xvcikge1xuICAgICAgY29uc3QgdG9rZW4gPSBob3Zlci5iYWNrZ3JvdW5kX2NvbG9yID8/IGhvdmVyLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gYFxuICAgICAgICA6cm9vdCB7XG4gICAgICAgICAgLS1lZG0taG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS0ke3Rva2VuLnJlcGxhY2UoL18vZywgJy0nKX0pO1xuICAgICAgICB9XG4gICAgICBgO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyLmJhY2tncm91bmRfY29sb3IgfHwgaG92ZXIuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJhY2tncm91bmRfY29sb3IgPz8gaG92ZXIuYmFja2dyb3VuZENvbG9yO1xuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1iZy1jb2xvcjogdmFyKC0tJHt0b2tlbi5yZXBsYWNlKC9fL2csICctJyl9KTtcbiAgICAgICAgfVxuICAgICAgYDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNTbWFsbFNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPj0gNTY1O1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FsZVBpeGVsVmFsdWUodmFsdWU6IHN0cmluZywgZGl2aXNvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXRjaCA9IC9eKFxcZCsoPzpcXC5cXGQrKT8pcHgkLy5leGVjKHZhbHVlKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gICAgY29uc3Qgc2NhbGVkID0gbnVtICogZGl2aXNvcjtcbiAgICByZXR1cm4gYCR7c2NhbGVkfXB4YDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgaWYgKHRoaXMubGFzdFVpVmlldyAmJiBpc1NtYWxsICE9PSB0aGlzLndhc1NtYWxsU2NyZWVuKSB7XG4gICAgICB0aGlzLmFwcGx5U3R5bGVzKHRoaXMubGFzdFVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gaXNTbWFsbDtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsaWNrKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldz8uYWN0aW9uKSB7XG4gICAgICB0aGlzLmNhcHR1cmVFeHBsb3JlU2Nyb2xsQ29udGV4dCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZXhlY3V0ZSh0aGlzLmVkbVNkdWlWaWV3LmFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYXB0dXJlRXhwbG9yZVNjcm9sbENvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9leHBsb3JhcicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnLnNjcm9sbGFibGUtcm93JykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKCFzY3JvbGxSb3cpIHtcbiAgICAgIHRoaXMuY2xlYXJFeHBsb3JlSG9yaXpvbnRhbFNjcm9sbENvbnRleHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5yZXNvbHZlRXhwbG9yZVNlY3Rpb24oZWxlbWVudCwgc2Nyb2xsUm93KTtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uPy5pZCB8fCBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSk7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLnJlc29sdmVSb3dJbmRleChzY3JvbGxSb3csIHNlY3Rpb24pO1xuICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVzb2x2ZUNsaWNrZWRJdGVtSWQoZWxlbWVudCwgc2VjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHNlY3Rpb25JZCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSwgc2VjdGlvbklkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJvd0luZGV4ID49IDApIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVksIFN0cmluZyhyb3dJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVksXG4gICAgICAgIFN0cmluZyhNYXRoLnJvdW5kKHNjcm9sbFJvdy5zY3JvbGxMZWZ0KSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChpdGVtSWQpIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZLCBpdGVtSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXhwbG9yZUhvcml6b250YWxTY3JvbGxDb250ZXh0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUV4cGxvcmVTZWN0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzY3JvbGxSb3c6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJy5jb2x1bW5baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgZWxlbWVudC5jbG9zZXN0KCcuY29sdW1uW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dJbmRleChzY3JvbGxSb3c6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjb3BlID0gc2VjdGlvbiA/PyAoc2Nyb2xsUm93LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKTtcbiAgICBpZiAoIXNjb3BlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oc2NvcGUucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5zY3JvbGxhYmxlLXJvdycpKS5pbmRleE9mKHNjcm9sbFJvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVDbGlja2VkSXRlbUlkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5pZCAmJiBlbGVtZW50LmlkICE9PSBzZWN0aW9uPy5pZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQuaWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuZGlkYXRlID0gZWxlbWVudC5jbG9zZXN0KCdbaWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmIChjYW5kaWRhdGU/LmlkICYmIGNhbmRpZGF0ZS5pZCAhPT0gc2VjdGlvbj8uaWQpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFhdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01RixNQUFNLE9BQU8sZUFBZTthQUdGLDRCQUF1QixHQUFHLG1CQUFtQixBQUF0QixDQUF1QjthQUM5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Q3pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBYyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFvQixFQUFFLE9BQTJCO1FBQzVFLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUF1QixDQUFDO1FBQ2hFLElBQUksU0FBUyxFQUFFLEVBQUUsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNsRCxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0F2aEJVLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFrQkksUUFBUTt5Q0FoQkYsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQXFiTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFVN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJVmlldyB9IGZyb20gJy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWl2aWV3JztcbmltcG9ydCB7IFVJUGFkZGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlwYWRkaW5nJztcbmltcG9ydCB7IFVJQmFja2dyb3VuZCB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJQWN0aW9uIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aWFjdGlvbic7XG5pbXBvcnQgeyBVSUFsaWdubWVudCB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhbGlnbm1lbnQnO1xuaW1wb3J0IHsgVUlTaGFkb3cgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3Vpc2hhZG93JztcbmltcG9ydCB7IFVJUmFkaXVzIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXJhZGl1cyc7XG5pbXBvcnQgeyBVSVNwYWNpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3Vpc3BhY2luZyc7XG5pbXBvcnQgeyBVSUNvbG9yIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3VpY29sb3InO1xuaW1wb3J0IHsgVUlKdXN0aWZ5IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3VpanVzdGlmeSc7XG5pbXBvcnQgeyBVSURpbWVuc2lvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWRpbWVuc2lvbic7XG5pbXBvcnQgeyBVSUNvbnRlbnRJbnNldCB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWljb250ZW50LWluc2V0JztcbmltcG9ydCB7IHNwYWNlTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3NwYWNlLW1hcHBpbmcnO1xuaW1wb3J0IHsgY29sb3JNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvY29sb3ItbWFwcGluZyc7XG5pbXBvcnQgeyBwYWRNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvcGFkLW1hcHBpbmcnO1xuaW1wb3J0IHsgcmFkaXVzTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3JhZGl1cy1tYXBwaW5nJztcbmltcG9ydCB7IGFsaWdubWVudE1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9hbGlnbm1lbnQtbWFwcGluZyc7XG5pbXBvcnQgeyBkaW1lbnNpb25NYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvZGltZW5zaW9uLW1hcHBpbmcnO1xuaW1wb3J0IHtcbiAgc2hhZG93T2Zmc2V0TWFwcGluZyxcbiAgc2hhZG93Qmx1clJhZGl1c01hcHBpbmcsXG59IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3NoYWRvdy1tYXBwaW5nJztcbmltcG9ydCB7IGp1c3RpZnlNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvanVzdGlmeS1tYXBwaW5nJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVSVNjcmVlblZpZXdNb2RlbCB9IGZyb20gJy4uL2NvcmUvdmlldy1tb2RlbHMvdWlzY3JlZW4udmlld21vZGVsJztcbmltcG9ydCB7IFVJQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvdWktYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVUlTaXplIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3Vpc2l6ZSc7XG5pbXBvcnQgeyBzaXplTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3NpemUtbWFwcGluZyc7XG5pbXBvcnQgeyBVSVNjcmVlbkNvbnRhaW5lclR5cGUgfSBmcm9tICcuLi9jb3JlL3VpY29tcG9zaXRpb24vZW51bXMvdWlzY3JlZW4tY29udGFpbmVyLXR5cGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWRtU2R1aVZpZXddJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFVJVmlld0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGVkbVNkdWlWaWV3PzogVUlWaWV3O1xuICBASW5wdXQoKSBkaXNhYmxlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX0FOQ0hPUl9LRVkgPSAnZXhwbG9yZUxhc3RBbmNob3InO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSA9ICdleHBsb3JlTGFzdFJvd0luZGV4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVkgPSAnZXhwbG9yZUxhc3RSb3dTY3JvbGxMZWZ0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZID0gJ2V4cGxvcmVMYXN0SXRlbUlkJztcblxuICBwcml2YXRlIGxhc3RVaVZpZXc6IFVJVmlldyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHdhc1NtYWxsU2NyZWVuID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gIHByaXZhdGUgY3VycmVudENvbnRhaW5lcjogVUlTY3JlZW5Db250YWluZXJUeXBlID0gVUlTY3JlZW5Db250YWluZXJUeXBlLkNPTlRBSU5FRDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBVSUFjdGlvblNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzY3JlZW5WaWV3TW9kZWw6IFVJU2NyZWVuVmlld01vZGVsXG4gICkge1xuICAgIGlmICh0aGlzLnNjcmVlblZpZXdNb2RlbCkge1xuICAgICAgdGhpcy5zY3JlZW5WaWV3TW9kZWwudWlTY3JlZW4kLnN1YnNjcmliZSgoc2NyZWVuKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudENvbnRhaW5lciA9XG4gICAgICAgICAgc2NyZWVuPy5jb25maWc/LmNvbnRhaW5lciA/PyBVSVNjcmVlbkNvbnRhaW5lclR5cGUuQ09OVEFJTkVEO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3KSB7XG4gICAgICB0aGlzLmxhc3RVaVZpZXcgPSB0aGlzLmVkbVNkdWlWaWV3O1xuICAgICAgdGhpcy5hcHBseVN0eWxlcyh0aGlzLmVkbVNkdWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3R5bGVzKHVpVmlldzogVUlWaWV3KSB7XG4gICAgaWYgKHVpVmlldy5pZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaWQnLFxuICAgICAgICBTdHJpbmcodWlWaWV3LmlkKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnBhZGRpbmcpIHtcbiAgICAgIHRoaXMuYXBwbHlQYWRkaW5nKHVpVmlldy5wYWRkaW5nKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmNvbnRlbnRJbnNldCkge1xuICAgICAgdGhpcy5hcHBseUNvbnRlbnRJbnNldCh1aVZpZXcuY29udGVudEluc2V0KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJhY2tncm91bmQpIHtcbiAgICAgIHRoaXMuYXBwbHlCYWNrZ3JvdW5kKHVpVmlldy5iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmFjdGlvbikge1xuICAgICAgdGhpcy5hcHBseUFjdGlvbih1aVZpZXcuYWN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmFsaWdubWVudCkge1xuICAgICAgdGhpcy5hcHBseUFsaWdubWVudCh1aVZpZXcuYWxpZ25tZW50KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNoYWRvdykge1xuICAgICAgdGhpcy5hcHBseVNoYWRvdyh1aVZpZXcuc2hhZG93KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnJhZGl1cykge1xuICAgICAgdGhpcy5hcHBseVJhZGl1cyh1aVZpZXcucmFkaXVzKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNwYWNpbmcpIHtcbiAgICAgIHRoaXMuYXBwbHlTcGFjaW5nKHVpVmlldy5zcGFjaW5nKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmhlaWdodCkge1xuICAgICAgdGhpcy5hcHBseUhlaWdodCh1aVZpZXcuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LndpZHRoKSB7XG4gICAgICB0aGlzLmFwcGx5V2lkdGgodWlWaWV3LndpZHRoKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJvcmRlcldpZHRoKSB7XG4gICAgICB0aGlzLmFwcGx5Qm9yZGVyV2lkdGgodWlWaWV3LmJvcmRlcldpZHRoKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJvcmRlckNvbG9yKSB7XG4gICAgICB0aGlzLmFwcGx5Qm9yZGVyQ29sb3IodWlWaWV3LmJvcmRlckNvbG9yKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3Lmp1c3RpZnkpIHtcbiAgICAgIHRoaXMuYXBwbHlKdXN0aWZ5KHVpVmlldy5qdXN0aWZ5KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNpemUpIHtcbiAgICAgIHRoaXMuYXBwbHlTaXplKHVpVmlldy5zaXplKTtcbiAgICB9XG4gICAgaWYgKHVpVmlldy5hc3BlY3RSYXRpbyAhPT0gbnVsbCAmJiB1aVZpZXcuYXNwZWN0UmF0aW8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hcHBseUFzcGVjdFJhdGlvKHVpVmlldy5hc3BlY3RSYXRpbyk7XG4gICAgfVxuXG4gICAgaWYodWlWaWV3LmhvdmVyKXtcbiAgICAgIHRoaXMuYXBwbHlIb3ZlclZhcnModWlWaWV3KTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlQYWRkaW5nKHVpUGFkZGluZzogVUlQYWRkaW5nKSB7XG4gICAgaWYgKHVpUGFkZGluZy50b3ApIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcudG9wXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy10b3AnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5sZWZ0KSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLmxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5yaWdodCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5yaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5ib3R0b20pIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcuYm90dG9tXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1ib3R0b20nLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29udGVudEluc2V0KHVpQ29udGVudEluc2V0OiBVSUNvbnRlbnRJbnNldCkge1xuICAgIGlmICh1aUNvbnRlbnRJbnNldC50b3ApIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQudG9wXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy10b3AnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC10b3AnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUNvbnRlbnRJbnNldC5sZWZ0KSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LmxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC1sZWZ0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQucmlnaHQpIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQucmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtcmlnaHQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUNvbnRlbnRJbnNldC5ib3R0b20pIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQuYm90dG9tXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1ib3R0b20nLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC1ib3R0b20nLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCYWNrZ3JvdW5kKHVpQmFja2dyb3VuZDogVUlCYWNrZ3JvdW5kKSB7XG4gICAgaWYgKHVpQmFja2dyb3VuZC5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmRDb2xvciA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxICYmIHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMikge1xuICAgICAgY29uc3QgZ3JhZGllbnRDb2xvcjEgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxXTtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IyID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMl07XG4gICAgICBjb25zdCBncmFkaWVudFN0eWxlcyA9IGBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7Z3JhZGllbnRDb2xvcjF9LCAke2dyYWRpZW50Q29sb3IyfSlgXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQnLFxuICAgICAgICBncmFkaWVudFN0eWxlc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QWN0aW9uKHVpQWN0aW9uOiBVSUFjdGlvbikge1xuICAgIGlmICh0aGlzLmRpc2FibGVDbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjdXJzb3InLCAncG9pbnRlcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFsaWdubWVudCh1aUFsaWdubWVudDogVUlBbGlnbm1lbnQpIHtcbiAgICBpZiAodWlBbGlnbm1lbnQuYWxpZ25tZW50KSB7XG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBhbGlnbm1lbnRNYXBwaW5nW3VpQWxpZ25tZW50LmFsaWdubWVudF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2FsaWduLWl0ZW1zJyxcbiAgICAgICAgYWxpZ25tZW50XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaGFkb3codWlTaGFkb3c6IFVJU2hhZG93KSB7XG4gICAgaWYgKHVpU2hhZG93LmNvbG9yICYmIHVpU2hhZG93Lm9mZnNldFggJiYgdWlTaGFkb3cub2Zmc2V0WSAmJiB1aVNoYWRvdy5ibHVyUmFkaXVzKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1t1aVNoYWRvdy5jb2xvcl07XG4gICAgICBjb25zdCBvZmZzZXRYID0gc2hhZG93T2Zmc2V0TWFwcGluZ1t1aVNoYWRvdy5vZmZzZXRYXTtcbiAgICAgIGNvbnN0IG9mZnNldFkgPSBzaGFkb3dPZmZzZXRNYXBwaW5nW3VpU2hhZG93Lm9mZnNldFldO1xuICAgICAgY29uc3QgYmx1clJhZGl1cyA9IHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nW3VpU2hhZG93LmJsdXJSYWRpdXNdO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IHVpU2hhZG93Lm9wYWNpdHkgIT09IHVuZGVmaW5lZCA/IHVpU2hhZG93Lm9wYWNpdHkgOiAxO1xuXG4gICAgICAvLyBGb3JtYXQ6IGJveC1zaGFkb3c6IG9mZnNldFggb2Zmc2V0WSBibHVyUmFkaXVzIGNvbG9yXG4gICAgICBjb25zdCBzaGFkb3dWYWx1ZSA9IGAke29mZnNldFh9ICR7b2Zmc2V0WX0gJHtibHVyUmFkaXVzfSAke2NvbG9yfWA7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm94LXNoYWRvdycsXG4gICAgICAgIHNoYWRvd1ZhbHVlXG4gICAgICApO1xuXG4gICAgICBpZiAob3BhY2l0eSAhPT0gMSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgICBvcGFjaXR5LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5UmFkaXVzKHVpUmFkaXVzOiBVSVJhZGl1cykge1xuICAgIGlmICh1aVJhZGl1cy50b3BMZWZ0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLnRvcExlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy50b3BSaWdodCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy50b3BSaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy5ib3R0b21MZWZ0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLmJvdHRvbUxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy5ib3R0b21SaWdodCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy5ib3R0b21SaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwYWNpbmcodWlTcGFjaW5nOiBVSVNwYWNpbmcpIHtcbiAgICBpZiAodWlTcGFjaW5nLnNwYWNpbmcpIHtcbiAgICAgIGNvbnN0IHNwYWNpbmdWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aVNwYWNpbmcuc3BhY2luZ107XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2dhcCcsXG4gICAgICAgIHNwYWNpbmdWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SGVpZ2h0KGhlaWdodDogVUlEaW1lbnNpb24pIHtcbiAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICBjb25zdCBoZWlnaHRWYWx1ZSA9IGRpbWVuc2lvbk1hcHBpbmdbaGVpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgaGVpZ2h0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVdpZHRoKHdpZHRoOiBVSURpbWVuc2lvbikge1xuICAgIGlmICh3aWR0aCkge1xuICAgICAgY29uc3Qgd2lkdGhWYWx1ZSA9IGRpbWVuc2lvbk1hcHBpbmdbd2lkdGhdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICd3aWR0aCcsXG4gICAgICAgIHdpZHRoVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJvcmRlcldpZHRoKGJvcmRlcldpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoYm9yZGVyV2lkdGggIT09IG51bGwgJiYgYm9yZGVyV2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItd2lkdGgnLFxuICAgICAgICBgJHtib3JkZXJXaWR0aH1weGBcbiAgICAgICk7XG5cbiAgICAgIC8vIEVuc3VyZSBib3JkZXIgc3R5bGUgaXMgc2V0LCBvdGhlcndpc2UgYm9yZGVyLXdpZHRoIHdvbid0IGJlIHZpc2libGVcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXN0eWxlJyxcbiAgICAgICAgJ3NvbGlkJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Qm9yZGVyQ29sb3IoYm9yZGVyQ29sb3I6IFVJQ29sb3IpIHtcbiAgICBpZiAoYm9yZGVyQ29sb3IpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JNYXBwaW5nW2JvcmRlckNvbG9yXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWNvbG9yJyxcbiAgICAgICAgY29sb3JcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUp1c3RpZnkoanVzdGlmeTogVUlKdXN0aWZ5KSB7XG4gICAgaWYgKGp1c3RpZnkpIHtcbiAgICAgIGNvbnN0IGp1c3RpZnlWYWx1ZSA9IGp1c3RpZnlNYXBwaW5nW2p1c3RpZnldO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAgICAgICBqdXN0aWZ5VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFzcGVjdFJhdGlvKGFzcGVjdFJhdGlvOiBudW1iZXIpIHtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaXplKHNpemU6IFVJU2l6ZSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHNpemVNYXBwaW5nW3NpemVdO1xuICAgIGlmICghY29uZmlnKSByZXR1cm47XG5cbiAgICBsZXQgeyB3aWR0aDogd2lkdGhWYWx1ZSwgaGVpZ2h0OiBoZWlnaHRWYWx1ZSB9ID0gY29uZmlnO1xuXG4gICAgaWYgKFxuICAgICAgY29uZmlnLnNjYWxhYmxlICYmXG4gICAgICB0aGlzLmlzU21hbGxTY3JlZW4oKSAmJlxuICAgICAgdGhpcy5jdXJyZW50Q29udGFpbmVyID09PSBVSVNjcmVlbkNvbnRhaW5lclR5cGUuRkxVSURcbiAgICApIHtcbiAgICAgIHdpZHRoVmFsdWUgPSB0aGlzLnNjYWxlUGl4ZWxWYWx1ZSh3aWR0aFZhbHVlLCAxLjEpO1xuICAgICAgaGVpZ2h0VmFsdWUgPSB0aGlzLnNjYWxlUGl4ZWxWYWx1ZShoZWlnaHRWYWx1ZSwgMS4xKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aFZhbHVlKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgaGVpZ2h0VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhvdmVyVmFycyh1aVZpZXc6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGhvdmVyID0gdWlWaWV3Py5ob3ZlciA/PyB1aVZpZXc/LmVsZW1lbnQ/LmhvdmVyO1xuICAgIGlmICghaG92ZXIpIHJldHVybjtcblxuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBtYXJjYSBxdWUgZXNzZSBlbGVtZW50byB0ZW0gaG92ZXJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCAnZWRtLWhvdmVyJyk7XG5cbiAgICBpZiAoaG92ZXIuYm9yZGVyX2NvbG9yIHx8IGhvdmVyLmJvcmRlckNvbG9yKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IChob3Zlci5ib3JkZXJfY29sb3IgPz8gaG92ZXIuYm9yZGVyQ29sb3IpLnJlcGxhY2UoL18vZywgJy0nKTtcbiAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KCctLWVkbS1ob3Zlci1ib3JkZXItY29sb3InLCBgdmFyKC0tJHt0b2tlbn0pYCk7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyLmJhY2tncm91bmRfY29sb3IgfHwgaG92ZXIuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IChob3Zlci5iYWNrZ3JvdW5kX2NvbG9yID8/IGhvdmVyLmJhY2tncm91bmRDb2xvcikucmVwbGFjZSgvXy9nLCAnLScpO1xuICAgICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0tZWRtLWhvdmVyLWJnLWNvbG9yJywgYHZhcigtLSR7dG9rZW59KWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNTbWFsbFNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPj0gNTY1O1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FsZVBpeGVsVmFsdWUodmFsdWU6IHN0cmluZywgZGl2aXNvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXRjaCA9IC9eKFxcZCsoPzpcXC5cXGQrKT8pcHgkLy5leGVjKHZhbHVlKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gICAgY29uc3Qgc2NhbGVkID0gbnVtICogZGl2aXNvcjtcbiAgICByZXR1cm4gYCR7c2NhbGVkfXB4YDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgaWYgKHRoaXMubGFzdFVpVmlldyAmJiBpc1NtYWxsICE9PSB0aGlzLndhc1NtYWxsU2NyZWVuKSB7XG4gICAgICB0aGlzLmFwcGx5U3R5bGVzKHRoaXMubGFzdFVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gaXNTbWFsbDtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsaWNrKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldz8uYWN0aW9uKSB7XG4gICAgICB0aGlzLmNhcHR1cmVFeHBsb3JlU2Nyb2xsQ29udGV4dCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZXhlY3V0ZSh0aGlzLmVkbVNkdWlWaWV3LmFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYXB0dXJlRXhwbG9yZVNjcm9sbENvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9leHBsb3JhcicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnLnNjcm9sbGFibGUtcm93JykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKCFzY3JvbGxSb3cpIHtcbiAgICAgIHRoaXMuY2xlYXJFeHBsb3JlSG9yaXpvbnRhbFNjcm9sbENvbnRleHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5yZXNvbHZlRXhwbG9yZVNlY3Rpb24oZWxlbWVudCwgc2Nyb2xsUm93KTtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uPy5pZCB8fCBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSk7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLnJlc29sdmVSb3dJbmRleChzY3JvbGxSb3csIHNlY3Rpb24pO1xuICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVzb2x2ZUNsaWNrZWRJdGVtSWQoZWxlbWVudCwgc2VjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHNlY3Rpb25JZCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSwgc2VjdGlvbklkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJvd0luZGV4ID49IDApIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVksIFN0cmluZyhyb3dJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVksXG4gICAgICAgIFN0cmluZyhNYXRoLnJvdW5kKHNjcm9sbFJvdy5zY3JvbGxMZWZ0KSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChpdGVtSWQpIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZLCBpdGVtSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXhwbG9yZUhvcml6b250YWxTY3JvbGxDb250ZXh0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUV4cGxvcmVTZWN0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzY3JvbGxSb3c6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJy5jb2x1bW5baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgZWxlbWVudC5jbG9zZXN0KCcuY29sdW1uW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dJbmRleChzY3JvbGxSb3c6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjb3BlID0gc2VjdGlvbiA/PyAoc2Nyb2xsUm93LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKTtcbiAgICBpZiAoIXNjb3BlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oc2NvcGUucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5zY3JvbGxhYmxlLXJvdycpKS5pbmRleE9mKHNjcm9sbFJvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVDbGlja2VkSXRlbUlkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5pZCAmJiBlbGVtZW50LmlkICE9PSBzZWN0aW9uPy5pZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQuaWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuZGlkYXRlID0gZWxlbWVudC5jbG9zZXN0KCdbaWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmIChjYW5kaWRhdGU/LmlkICYmIGNhbmRpZGF0ZS5pZCAhPT0gc2VjdGlvbj8uaWQpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -470,11 +470,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
470
470
 
471
471
  class UINavigationComponent {
472
472
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UINavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
473
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UINavigationComponent, isStandalone: false, selector: "edm-sdui-navigation", inputs: { uiNavigation: "uiNavigation" }, ngImport: i0, template: "<div class=\"nav-main\" *ngIf=\"uiNavigation\">\n <h2 *ngIf=\"uiNavigation.title\">{{ uiNavigation.title }}</h2>\n\n <edm-sdui-component\n [uiComponent]=\"uiNavigation.titleComponent\"\n *ngIf=\"uiNavigation.titleComponent\"\n ></edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.nav-main{position:sticky;top:0;z-index:110;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background-color:color-mix(in srgb,var(--bg) 60%,transparent)}.nav-main h2{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }] }); }
473
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UINavigationComponent, isStandalone: false, selector: "edm-sdui-navigation", inputs: { uiNavigation: "uiNavigation" }, ngImport: i0, template: "<div class=\"nav-main\" *ngIf=\"uiNavigation\">\n <h2 *ngIf=\"uiNavigation.title\">{{ uiNavigation.title }}</h2>\n\n <edm-sdui-component\n [uiComponent]=\"uiNavigation.titleComponent\"\n *ngIf=\"uiNavigation.titleComponent\"\n ></edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.nav-main{position:sticky;top:0}.nav-main h2{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }] }); }
474
474
  }
475
475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UINavigationComponent, decorators: [{
476
476
  type: Component,
477
- args: [{ selector: 'edm-sdui-navigation', standalone: false, template: "<div class=\"nav-main\" *ngIf=\"uiNavigation\">\n <h2 *ngIf=\"uiNavigation.title\">{{ uiNavigation.title }}</h2>\n\n <edm-sdui-component\n [uiComponent]=\"uiNavigation.titleComponent\"\n *ngIf=\"uiNavigation.titleComponent\"\n ></edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.nav-main{position:sticky;top:0;z-index:110;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background-color:color-mix(in srgb,var(--bg) 60%,transparent)}.nav-main h2{text-align:center}\n"] }]
477
+ args: [{ selector: 'edm-sdui-navigation', standalone: false, template: "<div class=\"nav-main\" *ngIf=\"uiNavigation\">\n <h2 *ngIf=\"uiNavigation.title\">{{ uiNavigation.title }}</h2>\n\n <edm-sdui-component\n [uiComponent]=\"uiNavigation.titleComponent\"\n *ngIf=\"uiNavigation.titleComponent\"\n ></edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.nav-main{position:sticky;top:0}.nav-main h2{text-align:center}\n"] }]
478
478
  }], propDecorators: { uiNavigation: [{
479
479
  type: Input
480
480
  }] } });
@@ -1709,6 +1709,9 @@ var UIColor;
1709
1709
  UIColor["BT_EXPLORER_MAIN"] = "bt_explorer_main";
1710
1710
  UIColor["BT_EXPLORER_RANKING"] = "bt_explorer_ranking";
1711
1711
  UIColor["FONT_BT_EXPLORER_RANKING"] = "font_bt_explorer_ranking";
1712
+ UIColor["BG_CARD_EXPLORER"] = "bg_card_explorer";
1713
+ UIColor["BG_CARD_EXPLORER_MAIN"] = "bg_card_explorer_main";
1714
+ UIColor["BORDER_CARD_EXPLORER"] = "border_card_explorer";
1712
1715
  })(UIColor || (UIColor = {}));
1713
1716
 
1714
1717
  const colorMapping = {
@@ -1862,6 +1865,9 @@ const colorMapping = {
1862
1865
  [UIColor.BT_EXPLORER_MAIN]: 'var(--bt-explorer-main)',
1863
1866
  [UIColor.BT_EXPLORER_RANKING]: 'var(--bt-explorer-ranking)',
1864
1867
  [UIColor.FONT_BT_EXPLORER_RANKING]: 'var(--font-bt-explorer-ranking)',
1868
+ [UIColor.BG_CARD_EXPLORER]: 'var(--bg-card-explorer)',
1869
+ [UIColor.BG_CARD_EXPLORER_MAIN]: 'var(--bg-card-explorer-main)',
1870
+ [UIColor.BORDER_CARD_EXPLORER]: 'var(--border-card-explorer)',
1865
1871
  };
1866
1872
 
1867
1873
  var UIPaddingLevel;
@@ -2070,6 +2076,7 @@ var UISize;
2070
2076
  UISize["ASSET_10"] = "asset_10";
2071
2077
  UISize["CARD_1"] = "card_1";
2072
2078
  UISize["CARD_2"] = "card_2";
2079
+ UISize["CARD_3"] = "card_3";
2073
2080
  UISize["CARD_4"] = "card_4";
2074
2081
  })(UISize || (UISize = {}));
2075
2082
 
@@ -2090,6 +2097,7 @@ const sizeMapping = {
2090
2097
  [UISize.ASSET_10]: { width: '30px', height: '30px', scalable: false },
2091
2098
  [UISize.CARD_1]: { width: '210px', height: '201px', scalable: true },
2092
2099
  [UISize.CARD_2]: { width: '300px', height: '311px', scalable: true },
2100
+ [UISize.CARD_3]: { width: '300px', height: '390px', scalable: false },
2093
2101
  [UISize.CARD_4]: { width: '210px', height: '100%', scalable: true },
2094
2102
  };
2095
2103
  /** @deprecated Use `sizeMapping[size].height` */
@@ -2337,35 +2345,12 @@ class UIViewDirective {
2337
2345
  // marca que esse elemento tem hover
2338
2346
  this.renderer.addClass(el, 'edm-hover');
2339
2347
  if (hover.border_color || hover.borderColor) {
2340
- console.log(hover.border_color, hover.borderColor);
2341
- const token = hover.border_color ?? hover.borderColor;
2342
- const style = document.createElement('style');
2343
- style.textContent = `
2344
- :root {
2345
- --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
2346
- }
2347
- `;
2348
- document.head.appendChild(style);
2349
- }
2350
- if (hover.background_color || hover.backgroundColor) {
2351
- const token = hover.background_color ?? hover.backgroundColor;
2352
- const style = document.createElement('style');
2353
- style.textContent = `
2354
- :root {
2355
- --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
2356
- }
2357
- `;
2358
- document.head.appendChild(style);
2348
+ const token = (hover.border_color ?? hover.borderColor).replace(/_/g, '-');
2349
+ el.style.setProperty('--edm-hover-border-color', `var(--${token})`);
2359
2350
  }
2360
2351
  if (hover.background_color || hover.backgroundColor) {
2361
- const token = hover.background_color ?? hover.backgroundColor;
2362
- const style = document.createElement('style');
2363
- style.textContent = `
2364
- :root {
2365
- --edm-hover-bg-color: var(--${token.replace(/_/g, '-')});
2366
- }
2367
- `;
2368
- document.head.appendChild(style);
2352
+ const token = (hover.background_color ?? hover.backgroundColor).replace(/_/g, '-');
2353
+ el.style.setProperty('--edm-hover-bg-color', `var(--${token})`);
2369
2354
  }
2370
2355
  }
2371
2356
  isSmallScreen() {
@@ -4082,6 +4067,9 @@ class PickerComponent {
4082
4067
  this.selectedLabel = label;
4083
4068
  this.open = false;
4084
4069
  }
4070
+ trackByFn(index, _item) {
4071
+ return index;
4072
+ }
4085
4073
  createInjector(item) {
4086
4074
  return Injector.create({
4087
4075
  providers: [
@@ -4427,6 +4415,7 @@ class TagsRowComponent {
4427
4415
  ngOnDestroy() {
4428
4416
  this.resizeObserver?.disconnect();
4429
4417
  this.resizeObserver = undefined;
4418
+ document.body.classList.remove('sdui-tags-fixed');
4430
4419
  }
4431
4420
  onWindowScroll() {
4432
4421
  this.updateFixedState();
@@ -4437,7 +4426,9 @@ class TagsRowComponent {
4437
4426
  // Height spacer: keep the host reserving space so the content below doesn’t jump
4438
4427
  if (tagsEl) {
4439
4428
  const h = tagsEl.getBoundingClientRect().height;
4440
- if (force || !this.lastMeasuredHeight || Math.abs(h - this.lastMeasuredHeight) > 0.5) {
4429
+ if (force ||
4430
+ !this.lastMeasuredHeight ||
4431
+ Math.abs(h - this.lastMeasuredHeight) > 0.5) {
4441
4432
  this.lastMeasuredHeight = h;
4442
4433
  this.hostMinHeight = h;
4443
4434
  }
@@ -4446,7 +4437,9 @@ class TagsRowComponent {
4446
4437
  if (!this.isFixed) {
4447
4438
  const rect = hostEl.getBoundingClientRect();
4448
4439
  const docTop = rect.top + window.scrollY;
4449
- if (force || !this.lastMeasuredDocTop || Math.abs(docTop - this.lastMeasuredDocTop) > 0.5) {
4440
+ if (force ||
4441
+ !this.lastMeasuredDocTop ||
4442
+ Math.abs(docTop - this.lastMeasuredDocTop) > 0.5) {
4450
4443
  this.lastMeasuredDocTop = docTop;
4451
4444
  this.initialTop = docTop;
4452
4445
  }
@@ -4455,12 +4448,11 @@ class TagsRowComponent {
4455
4448
  updateFixedState() {
4456
4449
  this.measureLayout();
4457
4450
  const offset = this.getStickyOffset();
4458
- const isMobile = window.matchMedia('(max-width: 565px)').matches;
4459
- const targetTop = isMobile ? 60 : offset;
4460
- const plusTarget = isMobile ? 8 : 0;
4461
- const triggerPoint = (this.initialTop ?? 0) - offset + plusTarget;
4451
+ const targetTop = offset;
4452
+ const triggerPoint = (this.initialTop ?? 0) - offset;
4462
4453
  const shouldFix = window.scrollY >= triggerPoint;
4463
4454
  this.canFix = shouldFix;
4455
+ document.body.classList.toggle('sdui-tags-fixed', shouldFix);
4464
4456
  if (shouldFix) {
4465
4457
  if (!this.isFixed) {
4466
4458
  this.isFixed = true;
@@ -4484,11 +4476,18 @@ class TagsRowComponent {
4484
4476
  }
4485
4477
  }
4486
4478
  getStickyOffset() {
4479
+ // 1) Honour the explicit CSS custom-property if set
4487
4480
  const variable = getComputedStyle(document.documentElement).getPropertyValue('--sdui-sticky-offset');
4488
4481
  const parsed = parseInt(variable || '', 10);
4489
4482
  if (!isNaN(parsed))
4490
4483
  return parsed;
4491
- return 74; // fallback to navbar height
4484
+ // 2) Dynamically measure the fixed app header (nb-layout-header)
4485
+ // so the tags-row sits right below it regardless of screen size.
4486
+ const appHeader = document.querySelector('nb-layout-header');
4487
+ if (appHeader) {
4488
+ return appHeader.offsetHeight;
4489
+ }
4490
+ return 74; // ultimate fallback
4492
4491
  }
4493
4492
  setTagsRowTop(value) {
4494
4493
  const el = this.tagsRowRef?.nativeElement;
@@ -4496,16 +4495,19 @@ class TagsRowComponent {
4496
4495
  return;
4497
4496
  if (value === undefined || value === null) {
4498
4497
  this.renderer.removeStyle(el, 'top');
4498
+ this.hostRef.nativeElement.style.removeProperty('--tags-row-bottom');
4499
4499
  return;
4500
4500
  }
4501
4501
  this.renderer.setStyle(el, 'top', `${value}px`);
4502
+ const height = el.getBoundingClientRect().height;
4503
+ this.hostRef.nativeElement.style.setProperty('--tags-row-bottom', `${value + height}px`);
4502
4504
  }
4503
4505
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TagsRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
4504
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TagsRowComponent, isStandalone: false, selector: "edm-sdui-tags-row", host: { listeners: { "window:scroll": "onWindowScroll()" }, properties: { "class.tags-row--fixed": "this.isFixed", "class.tags-row--can-fix": "this.canFix", "style.min-height.px": "this.hostMinHeight" } }, viewQueries: [{ propertyName: "tagsRowRef", first: true, predicate: ["tagsRowElement"], descendants: true }], ngImport: i0, template: "<div class=\"tags-row\" #tagsRowElement [class.tags-row-fixed]=\"isFixed\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <ng-container *ngFor=\"let tag of tags; let i = index; trackBy: trackByLabel\">\n <ng-container\n *ngComponentOutlet=\"tagComponent; injector: createInjector(tag, i)\"\n ></ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;margin-top:var(--sdui-header-margin-top, 12px)}.tags-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 0 6px 16px;background-color:inherit;justify-content:flex-start;box-sizing:border-box;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-padding-left:16px;scroll-padding-right:16px;padding-bottom:8px!important}:host .tags-row>*{flex:0 0 auto}.tags-row:after{content:\"\";flex:0 0 16px}:host.tags-row--fixed{box-sizing:border-box}:host.tags-row--fixed .tags-row{position:fixed;top:var(--sdui-tags-row-top, 78px);left:var(--sdui-tags-row-left, 32px);right:0;z-index:120;transition:top .16s ease;will-change:top;padding:6px 0 6px 16px}@media (max-width: 565px){:host.tags-row--fixed .tags-row{left:var(--sdui-tags-row-left-mobile, 0);top:var(--sdui-tags-row-top-mobile, var(--sdui-tags-row-top, 78px))}}:host.tags-row--can-fix .tags-row{background-color:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
4506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TagsRowComponent, isStandalone: false, selector: "edm-sdui-tags-row", host: { listeners: { "window:scroll": "onWindowScroll()" }, properties: { "class.tags-row--fixed": "this.isFixed", "class.tags-row--can-fix": "this.canFix", "style.min-height.px": "this.hostMinHeight" } }, viewQueries: [{ propertyName: "tagsRowRef", first: true, predicate: ["tagsRowElement"], descendants: true }], ngImport: i0, template: "<div class=\"tags-row\" #tagsRowElement [class.tags-row-fixed]=\"isFixed\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <ng-container *ngFor=\"let tag of tags; let i = index; trackBy: trackByLabel\">\n <ng-container\n *ngComponentOutlet=\"tagComponent; injector: createInjector(tag, i)\"\n ></ng-container>\n </ng-container>\n <span class=\"tags-row-spacer\" aria-hidden=\"true\"></span>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;margin-top:var(--sdui-header-margin-top, 12px)}.tags-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 0;padding-left:var(--sdui-tags-row-padding-x, 16px);background-color:inherit;justify-content:flex-start;box-sizing:border-box;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-padding-left:var(--sdui-tags-row-padding-x, 16px);scroll-padding-right:var(--sdui-tags-row-padding-x, 16px);scrollbar-width:none;padding-bottom:8px!important}:host .tags-row>*{flex:0 0 auto}.tags-row-spacer{flex:0 0 var(--sdui-tags-row-padding-x, 16px);min-width:var(--sdui-tags-row-padding-x, 16px);height:1px;pointer-events:none}:host.tags-row--fixed{box-sizing:border-box}:host.tags-row--fixed .tags-row{position:fixed;top:var(--sdui-tags-row-top, 78px);left:var(--sdui-tags-row-left, 32px);right:0;z-index:120;transition:top .16s ease;will-change:top;padding:6px 0;padding-left:var(--sdui-tags-row-padding-x, 16px);padding-right:var(--sdui-tags-row-padding-x, 32px)}@media (max-width: 565px){:host.tags-row--fixed .tags-row{left:var(--sdui-tags-row-left-mobile, 0);top:var(--sdui-tags-row-top-mobile, var(--sdui-tags-row-top, 78px));padding-left:var(--sdui-tags-row-padding-x, 16px);padding-right:var(--sdui-tags-row-padding-x, 32px)}}:host.tags-row--can-fix:before{content:\"\";position:fixed;top:0;left:0;right:0;height:var(--tags-row-bottom, 120px);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background-color:color-mix(in srgb,var(--bg) 60%,transparent);pointer-events:none;z-index:119}\n"], dependencies: [{ kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
4505
4507
  }
4506
4508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TagsRowComponent, decorators: [{
4507
4509
  type: Component,
4508
- args: [{ selector: 'edm-sdui-tags-row', standalone: false, template: "<div class=\"tags-row\" #tagsRowElement [class.tags-row-fixed]=\"isFixed\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <ng-container *ngFor=\"let tag of tags; let i = index; trackBy: trackByLabel\">\n <ng-container\n *ngComponentOutlet=\"tagComponent; injector: createInjector(tag, i)\"\n ></ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;margin-top:var(--sdui-header-margin-top, 12px)}.tags-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 0 6px 16px;background-color:inherit;justify-content:flex-start;box-sizing:border-box;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-padding-left:16px;scroll-padding-right:16px;padding-bottom:8px!important}:host .tags-row>*{flex:0 0 auto}.tags-row:after{content:\"\";flex:0 0 16px}:host.tags-row--fixed{box-sizing:border-box}:host.tags-row--fixed .tags-row{position:fixed;top:var(--sdui-tags-row-top, 78px);left:var(--sdui-tags-row-left, 32px);right:0;z-index:120;transition:top .16s ease;will-change:top;padding:6px 0 6px 16px}@media (max-width: 565px){:host.tags-row--fixed .tags-row{left:var(--sdui-tags-row-left-mobile, 0);top:var(--sdui-tags-row-top-mobile, var(--sdui-tags-row-top, 78px))}}:host.tags-row--can-fix .tags-row{background-color:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:none}\n"] }]
4510
+ args: [{ selector: 'edm-sdui-tags-row', standalone: false, template: "<div class=\"tags-row\" #tagsRowElement [class.tags-row-fixed]=\"isFixed\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <ng-container *ngFor=\"let tag of tags; let i = index; trackBy: trackByLabel\">\n <ng-container\n *ngComponentOutlet=\"tagComponent; injector: createInjector(tag, i)\"\n ></ng-container>\n </ng-container>\n <span class=\"tags-row-spacer\" aria-hidden=\"true\"></span>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;margin-top:var(--sdui-header-margin-top, 12px)}.tags-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 0;padding-left:var(--sdui-tags-row-padding-x, 16px);background-color:inherit;justify-content:flex-start;box-sizing:border-box;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-padding-left:var(--sdui-tags-row-padding-x, 16px);scroll-padding-right:var(--sdui-tags-row-padding-x, 16px);scrollbar-width:none;padding-bottom:8px!important}:host .tags-row>*{flex:0 0 auto}.tags-row-spacer{flex:0 0 var(--sdui-tags-row-padding-x, 16px);min-width:var(--sdui-tags-row-padding-x, 16px);height:1px;pointer-events:none}:host.tags-row--fixed{box-sizing:border-box}:host.tags-row--fixed .tags-row{position:fixed;top:var(--sdui-tags-row-top, 78px);left:var(--sdui-tags-row-left, 32px);right:0;z-index:120;transition:top .16s ease;will-change:top;padding:6px 0;padding-left:var(--sdui-tags-row-padding-x, 16px);padding-right:var(--sdui-tags-row-padding-x, 32px)}@media (max-width: 565px){:host.tags-row--fixed .tags-row{left:var(--sdui-tags-row-left-mobile, 0);top:var(--sdui-tags-row-top-mobile, var(--sdui-tags-row-top, 78px));padding-left:var(--sdui-tags-row-padding-x, 16px);padding-right:var(--sdui-tags-row-padding-x, 32px)}}:host.tags-row--can-fix:before{content:\"\";position:fixed;top:0;left:0;right:0;height:var(--tags-row-bottom, 120px);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background-color:color-mix(in srgb,var(--bg) 60%,transparent);pointer-events:none;z-index:119}\n"] }]
4509
4511
  }], ctorParameters: () => [{ type: undefined, decorators: [{
4510
4512
  type: Inject,
4511
4513
  args: ['uiComponent']