@datorama/core 22.13.0-beta.5 → 22.13.8-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/bundle.scss +4833 -5708
  2. package/bundles/datorama-core.umd.js +134 -86
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +56 -56
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.d.ts +1 -0
  7. package/datorama-core.metadata.json +1 -1
  8. package/esm2015/datorama-core.js +2 -1
  9. package/esm2015/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  10. package/esm2015/lib/grid/grid/grid.component.js +5 -5
  11. package/esm2015/lib/grid-v2/grid/grid-v2.component.js +8 -10
  12. package/esm2015/lib/grid-v2/grid/grid-v2.config.js +21 -4
  13. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  14. package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +1 -1
  15. package/esm2015/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +3 -4
  16. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +8 -8
  17. package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +2 -2
  18. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  19. package/esm2015/lib/grid-v2/grid-store/grid.query.js +1 -1
  20. package/esm2015/lib/grid-v2/grid-store/grid.service.js +15 -15
  21. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +13 -1
  22. package/esm2015/lib/rich-text/rich-text.directive.js +20 -38
  23. package/esm2015/lib/rich-text/rich-text.service.js +50 -0
  24. package/esm2015/lib/select/select.component.js +4 -9
  25. package/esm2015/lib/version.js +2 -2
  26. package/esm5/datorama-core.js +2 -1
  27. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  28. package/esm5/lib/grid/grid/grid.component.js +5 -5
  29. package/esm5/lib/grid-v2/grid/grid-v2.component.js +8 -10
  30. package/esm5/lib/grid-v2/grid/grid-v2.config.js +21 -4
  31. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  32. package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +1 -1
  33. package/esm5/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +3 -4
  34. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +8 -8
  35. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +2 -2
  36. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  37. package/esm5/lib/grid-v2/grid-store/grid.query.js +1 -1
  38. package/esm5/lib/grid-v2/grid-store/grid.service.js +15 -15
  39. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +20 -1
  40. package/esm5/lib/rich-text/rich-text.directive.js +21 -39
  41. package/esm5/lib/rich-text/rich-text.service.js +51 -0
  42. package/esm5/lib/select/select.component.js +4 -9
  43. package/esm5/lib/version.js +2 -2
  44. package/fesm2015/datorama-core.js +125 -87
  45. package/fesm2015/datorama-core.js.map +1 -1
  46. package/fesm5/datorama-core.js +134 -88
  47. package/fesm5/datorama-core.js.map +1 -1
  48. package/lib/grid/grid/grid.component.d.ts +2 -2
  49. package/lib/grid-v2/grid/grid-v2.component.d.ts +2 -2
  50. package/lib/grid-v2/grid/grid-v2.config.d.ts +1 -0
  51. package/lib/grid-v2/grid/grid-v2.types.d.ts +1 -0
  52. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +5 -5
  53. package/lib/grid-v2/grid-settings.d.ts +2 -2
  54. package/lib/grid-v2/grid-store/grid.query.d.ts +3 -3
  55. package/lib/grid-v2/grid-store/grid.service.d.ts +6 -2
  56. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +3 -0
  57. package/lib/rich-text/rich-text.directive.d.ts +4 -6
  58. package/lib/rich-text/rich-text.service.d.ts +10 -0
  59. package/package.json +2 -2
  60. package/testing/src/grid/row.ts +1 -1
@@ -147,6 +147,19 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
147
147
  });
148
148
  this.registerGroupListeners();
149
149
  this.subscribeRowsSelectionData();
150
+ this.subscribeUpdateGridActions();
151
+ };
152
+ DatoGridV2ToolbarComponent.prototype.getCellValueChangeEvent = function () {
153
+ var _this = this;
154
+ return this.gridController.gridQuery.waitForGrid(function () {
155
+ return _this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(_this));
156
+ });
157
+ };
158
+ DatoGridV2ToolbarComponent.prototype.getRowDataUpdatedEvent = function () {
159
+ var _this = this;
160
+ return this.gridController.gridQuery.waitForGrid(function () {
161
+ return _this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(_this));
162
+ });
150
163
  };
151
164
  DatoGridV2ToolbarComponent.prototype.onActionClick = function (action) {
152
165
  if (isFunction(action.onClick)) {
@@ -402,6 +415,12 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
402
415
  _this.cdr.detectChanges();
403
416
  });
404
417
  };
418
+ DatoGridV2ToolbarComponent.prototype.subscribeUpdateGridActions = function () {
419
+ var _this = this;
420
+ this.gridService.getUpdateGridActionsStatus().subscribe(function () {
421
+ _this.initGridActions();
422
+ });
423
+ };
405
424
  DatoGridV2ToolbarComponent.prototype.selectAllPages = function () {
406
425
  if (this.gridQuery.isServerSide) {
407
426
  this.gridService.setServerSidePagination({ selectAllRowsEnabled: true, excludedFromSelectAll: [] });
@@ -468,4 +487,4 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
468
487
  return DatoGridV2ToolbarComponent;
469
488
  }());
470
489
  export { DatoGridV2ToolbarComponent };
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsY0FBYyxFQUdmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFD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QjtZQUNoQyw0bVdBQTRDO1lBRTVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO3lDQWdFeUIsMkJBQTJCO1lBQ3JDLGlCQUFpQjtZQUNYLG9CQUFvQjtZQUN0QixXQUFXO1lBQ1QsU0FBUztZQUNQLFdBQVc7T0FwRXZCLDBCQUEwQixDQTJZdEM7SUFBRCxpQ0FBQztDQUFBLEFBM1lELElBMllDO1NBM1lZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVRvb2xiYXJBY3Rpb24sXG4gIEdyaWRBY3Rpb24sXG4gIEdyaWRBY3Rpb25UeXBlLFxuICBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCxcbiAgUm93QWN0aW9uXG59IGZyb20gJy4vZ3JpZC10b29sYmFyLnR5cGVzJztcbmltcG9ydCB7IERhdG9HcmlkQ29udHJvbGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY29udHJvbGxlci9ncmlkLWNvbnRyb2xsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IHVudGlsRGVzdHJveWVkIH0gZnJvbSAnbmd4LXRha2UtdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBQcm9jZXNzQ2VsbEZvckV4cG9ydFBhcmFtcywgUm93R3JvdXBPcGVuZWRFdmVudCwgUm93Tm9kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdG9Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vcG9wb3Zlci9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0b0dyaWRHcm91cHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1ncm91cHMtbWVudS9ncmlkLWdyb3Vwcy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkUXVlcnkgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQucXVlcnknO1xuaW1wb3J0IHsgZ2V0VmlzaWJsZUFjdGlvbnMgfSBmcm9tICcuLi9ncmlkLXYyLnV0aWwnO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9GT1JNQVQgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jb2x1bW5zLWRpc3BsYXktbWVudS9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vZXZlbnQtbG9nZ2VyJztcbmltcG9ydCB7IERhdG9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgR3JpZFJvd3NTZWxlY3Rpb25EYXRhIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXYyLnR5cGVzJztcblxudHlwZSBUYWJsZUFjdGlvbiA9XG4gIHwgJ0F1dG9maXQgdG8gQ29udGVudCdcbiAgfCAnQXV0b2ZpdCB0byBQYWdlJ1xuICB8ICdTaG93IEhpZGUgQ29sdW1uJ1xuICB8ICdSZXNldCBTZXR0aW5ncydcbiAgfCAnUmVzZXQgRmlsdGVycydcbiAgfCAnR3JvdXAgZnJvbSBTZXR0aW5ncydcbiAgfCAnR3JvdXAgZnJvbSBUb29sYmFyJ1xuICB8ICdFeHBvcnQnXG4gIHwgJ0NvbGxhcHNlIEV4cGFuZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdG8tZ3JpZC10b29sYmFyLXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRvR3JpZFYyVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfVklTSUJMRV9ST1dfQUNUSU9OUyA9IDU7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1ZJU0lCTEVfR1JJRF9BQ1RJT05TID0gMjtcbiAgcHJpdmF0ZSBfbWF4Um93QWN0aW9ucyA9IHRoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlM7XG5cbiAgQFZpZXdDaGlsZCgnZ3JvdXBUcmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGdyb3VwVHJpZ2dlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2V0dGluZ3NUcmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHNldHRpbmdzVHJpZ2dlcjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBkaXNwbGF5RXhwb3J0ID0gdHJ1ZTtcbiAgY3JlYXRlQWN0aW9uOiBHcmlkQWN0aW9uO1xuICByb3dBY3Rpb25zOiB7IG1haW5MaXN0OiBSb3dBY3Rpb25bXTsgbW9yZU1lbnU6IFJvd0FjdGlvbltdIH0gPSB7IG1haW5MaXN0OiBbXSwgbW9yZU1lbnU6IFtdIH07XG4gIGdyaWRBY3Rpb25zOiB7IG1haW5MaXN0OiBHcmlkQWN0aW9uW107IG1vcmVNZW51OiBHcmlkQWN0aW9uW10gfSA9IHsgbWFpbkxpc3Q6IFtdLCBtb3JlTWVudTogW10gfTtcblxuICBASW5wdXQoKSBzZXQgbWF4Um93QWN0aW9ucyhtYXhSb3dBY3Rpb25zOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbmFibGVWMl8xKSB7XG4gICAgICB0aGlzLl9tYXhSb3dBY3Rpb25zID0gTWF0aC5taW4obWF4Um93QWN0aW9ucywgdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUyk7XG4gICAgICBpZiAobWF4Um93QWN0aW9ucyA+IHRoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlMgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBEYXRvR3JpZCBWMi4xIC0gbWF4Um93QWN0aW9ucyBjYW5ub3QgYmUgb3ZlciAke3RoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlN9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21heFJvd0FjdGlvbnMgPSBtYXhSb3dBY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGhpZGVHcm91cGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2Zvcm0oJ2NvcmUuc2VhcmNoJyk7XG4gIEBJbnB1dCgpIHJvd0FjdGlvbnNTaG9ydExhYmVsVGhyZXNob2xkOiBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCA9IDE1Mzk7XG4gIEBJbnB1dCgpIGRpc3BsYXlDdXN0b21HcmlkQWN0aW9uc1NlcGFyYXRvciA9IHRydWU7XG5cbiAgb3Blbk1lbnVzID0ge1xuICAgIGdyb3VwOiBmYWxzZSxcbiAgICBzZXR0aW5nczogZmFsc2VcbiAgfTtcbiAgcm93R3JvdXBzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGdyb3Vwc0FsbG93ZWQgPSAhdGhpcy5oaWRlR3JvdXBpbmc7XG4gIGlzU2VsZWN0ZWRSb3cgPSBmYWxzZTtcbiAgaXNUcmVlTW9kZTogYm9vbGVhbiA9IHRoaXMuZ3JpZFNlcnZpY2UudHJlZURhdGE7XG4gIHRvdGFsUm93c0NvdW50ID0gMDtcbiAgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuICBhbGxQYWdlUm93c1NlbGVjdGVkID0gZmFsc2U7XG4gIHdpZHRoVG9IaWRlQWN0aW9uc0xhYmVsczogR3JpZFJvd0FjdGlvbnNTY3JlZW5UaHJlc2hvbGQgPSAxNDM5O1xuXG4gIGdldCBlbmFibGVWMl8xKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZVYyXzE7XG4gIH1cblxuICBnZXQgZW5hYmxlU2VhcmNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZVNlYXJjaDtcbiAgfVxuXG4gIGdldCBlbmFibGVCYWNrZ3JvdW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZUJhY2tncm91bmQ7XG4gIH1cblxuICBnZXQgaXNSb3dBY3Rpb25zVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW5hYmxlVjJfMSB8fCAodGhpcy5lbmFibGVWMl8xICYmIHRoaXMuaXNTZWxlY3RlZFJvdyk7XG4gIH1cblxuICBnZXQgaGFzUm93QWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2l6ZSh0aGlzLnJvd0FjdGlvbnMubWFpbkxpc3QpID4gMCB8fCBzaXplKHRoaXMucm93QWN0aW9ucy5tb3JlTWVudSkgPiAwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGdyaWRDb250cm9sbGVyOiBEYXRvR3JpZENvbnRyb2xsZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBEYXRvVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBvcG92ZXI6IERhdG9Qb3BvdmVyLFxuICAgIHByaXZhdGUgZ3JpZFF1ZXJ5OiBHcmlkUXVlcnksXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldCBoaWRkZW5Db2x1bW5zKCkge1xuICAgIHJldHVybiBgKCR7dGhpcy5ncmlkUXVlcnkuZ2V0QWxsRGlzcGxheWVkQ29sdW1ucygpLmxlbmd0aH0vJHt0aGlzLmdyaWRRdWVyeS5nZXRBbGxDb2x1bW5zKCkubGVuZ3RofSlgO1xuICB9XG5cbiAgZ2V0IGhhc0FjdGl2ZU1vcmVBY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnJvd0FjdGlvbnMubW9yZU1lbnUuc29tZSgoeyB2aXNpYmxlIH0pID0+IHZpc2libGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYXBpKCkge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5hcGk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBkYXRhQ2hhbmdlcyA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LndhaXRGb3JHcmlkKCgpID0+XG4gICAgICBtZXJnZShcbiAgICAgICAgdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jZWxsVmFsdWVDaGFuZ2VkLFxuICAgICAgICB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0RhdGFVcGRhdGVkLFxuICAgICAgICB0aGlzLmdyaWRRdWVyeS5yb3dBY3Rpb25WaXNpYmlsaXR5Q2hhbmdlZCRcbiAgICAgICkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCBncmlkSW5pdCA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWFkeSQucGlwZSh0YWtlKDEpKTtcbiAgICBncmlkSW5pdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ncm91cHNBbGxvd2VkID0gIXRoaXMuaGlkZUdyb3VwaW5nICYmICF0aGlzLmdyaWRRdWVyeS5nZXRWYWx1ZSgpLnNlcnZlclNpZGVQYWdpbmF0aW9uLmVuYWJsZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5pbml0R3JpZEFjdGlvbnMoKTtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCA9IHRoaXMuZ3JpZFF1ZXJ5LnNlbGVjdGVkUm93c0NoYW5nZSQ7XG4gICAgY29uc3QgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQgPSB0aGlzLmdyaWRRdWVyeS5zZWxlY3RJc1NlbGVjdEFsbFJvd3NFbmFibGVkKCk7XG4gICAgbWVyZ2UoZGF0YUNoYW5nZXMsIGdyaWRJbml0LCBzZWxlY3RlZFJvd3NDaGFuZ2VkJCwgaXNTZWxlY3RBbGxSb3dzQ2hhbmdlZCQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5hcGkpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVZpc2libGVBY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJHcm91cExpc3RlbmVycygpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVSb3dzU2VsZWN0aW9uRGF0YSgpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IEJhc2VUb29sYmFyQWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmdldFNlbGVjdGVkUm93c0NvdW50KCk7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICBmcm9tOiAnVG9vbGJhcidcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2VsZWN0QWxsUm93c0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0QWxsRmlsdGVyID0gdGhpcy5ncmlkU2VydmljZS5nZXRGaWx0ZXJGb3JTZXJ2ZXJBY3Rpb25PblNlbGVjdEFsbCgpO1xuICAgICAgICBhY3Rpb24ub25DbGljayhudWxsLCB0cnVlLCBzZWxlY3RBbGxGaWx0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5nZXRTZWxlY3RlZFJvd05vZGVzKCk7XG4gICAgICAgIGFjdGlvbi5vbkNsaWNrKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChhY3Rpb24gYXMgR3JpZEFjdGlvbikuYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuRVhQT1JUKSB7XG4gICAgICB0aGlzLmV4ZWN1dGVUYWJsZUFjdGlvbignRXhwb3J0Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZVZpc2libGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dOb2RlcygpO1xuICAgIHRoaXMuaXNTZWxlY3RlZFJvdyA9IHNlbGVjdGVkLmxlbmd0aCA+IDAgfHwgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZDtcbiAgICBjb25zdCB2aXNpYmxlQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKFxuICAgICAgdGhpcy5ncmlkQ29udHJvbGxlci5yb3dBY3Rpb25zLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZFxuICAgICkuZmlsdGVyKChhY3Rpb246IFJvd0FjdGlvbikgPT4gIXRoaXMuaXNSb3dBY3Rpb25IaWRkZW4oYWN0aW9uKSk7XG4gICAgdGhpcy5yb3dBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IHZpc2libGVBY3Rpb25zLnNsaWNlKDAsIHRoaXMuX21heFJvd0FjdGlvbnMpLFxuICAgICAgbW9yZU1lbnU6IHZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMuX21heFJvd0FjdGlvbnMsIHZpc2libGVBY3Rpb25zLmxlbmd0aClcbiAgICB9O1xuICAgIHRoaXMuaW5pdFdpZHRoVG9IaWRlQWN0aW9uc0xhYmVscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0V2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzKCkge1xuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zQ291bnQgPVxuICAgICAgdGhpcy5yb3dBY3Rpb25zLm1haW5MaXN0Lmxlbmd0aCArXG4gICAgICAodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51Lmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuZ3JpZEFjdGlvbnMubW9yZU1lbnUubGVuZ3RoID4gMCA/IDEgOiAwKSArXG4gICAgICAodGhpcy5jcmVhdGVBY3Rpb24gPyAxIDogMCk7XG5cbiAgICBjb25zdCB3aW5kb3dXaWR0aFRocmVzaG9sZHM6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkW10gPSBbMTIzOSwgMTMzOSwgMTQzOSwgMTUzOV07XG4gICAgdGhpcy53aWR0aFRvSGlkZUFjdGlvbnNMYWJlbHMgPVxuICAgICAgd2luZG93V2lkdGhUaHJlc2hvbGRzW01hdGgubWluKE1hdGgubWF4KHZpc2libGVBY3Rpb25zQ291bnQgLSA1LCAwKSwgd2luZG93V2lkdGhUaHJlc2hvbGRzLmxlbmd0aCAtIDEpXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyaWRBY3Rpb25zKCkge1xuICAgIGNvbnN0IGdyaWRBY3Rpb25zID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkQWN0aW9ucztcbiAgICB0aGlzLmluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnMpO1xuICAgIHRoaXMuaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9ucyk7XG4gICAgbGV0IG1heFZpc2libGVBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9HUklEX0FDVElPTlMgLSAodGhpcy5kaXNwbGF5RXhwb3J0ID8gMSA6IDApO1xuICAgIGlmIChzaXplKGdyaWRBY3Rpb25zKSA9PT0gbWF4VmlzaWJsZUFjdGlvbnMgKyAxKSB7XG4gICAgICBtYXhWaXNpYmxlQWN0aW9ucysrO1xuICAgIH1cbiAgICB0aGlzLmdyaWRBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IGdyaWRBY3Rpb25zLnNsaWNlKDAsIG1heFZpc2libGVBY3Rpb25zKSxcbiAgICAgIG1vcmVNZW51OiBncmlkQWN0aW9ucy5zbGljZShtYXhWaXNpYmxlQWN0aW9ucywgZ3JpZEFjdGlvbnMubGVuZ3RoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnM6IEdyaWRBY3Rpb25bXSkge1xuICAgIGNvbnN0IGNyZWF0ZUFjdGlvbkluZGV4ID0gZ3JpZEFjdGlvbnMuZmluZEluZGV4KCh7IGFjdGlvblR5cGUgfSkgPT4gYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuQ1JFQVRFKTtcbiAgICB0aGlzLmNyZWF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbkluZGV4ID49IDAgPyBncmlkQWN0aW9ucy5zcGxpY2UoY3JlYXRlQWN0aW9uSW5kZXgsIDEpWzBdIDogbnVsbDtcbiAgICBpZiAodGhpcy5jcmVhdGVBY3Rpb24pIHtcbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9uLmxhYmVsID0gdGhpcy5jcmVhdGVBY3Rpb24ubGFiZWwgfHwgJ2NvcmUuY3JlYXRlLW5ldyc7XG4gICAgICB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgPSB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgfHwgJ2NyZWF0ZS1uZXcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9uczogR3JpZEFjdGlvbltdKSB7XG4gICAgY29uc3QgZXhwb3J0QWN0aW9uID0gZ3JpZEFjdGlvbnMuZmluZCgoeyBhY3Rpb25UeXBlIH0pID0+IGFjdGlvblR5cGUgPT09IEdyaWRBY3Rpb25UeXBlLkVYUE9SVCk7XG4gICAgaWYgKGV4cG9ydEFjdGlvbikge1xuICAgICAgY29uc3QgeyBvbkNsaWNrLCBpY29uLCBsYWJlbCwgdG9vbHRpcCwga2V5IH0gPSBleHBvcnRBY3Rpb247XG4gICAgICBleHBvcnRBY3Rpb24ub25DbGljayA9IG9uQ2xpY2sgfHwgKCgpID0+IHRoaXMuZXhlY3V0ZVRhYmxlQWN0aW9uKCdFeHBvcnQnKSk7XG4gICAgICBleHBvcnRBY3Rpb24uaWNvbiA9IGljb24gfHwgJ2V4cG9ydCc7XG4gICAgICBleHBvcnRBY3Rpb24ubGFiZWwgPSBsYWJlbCB8fCAnY29yZS5leHBvcnQtdGFibGUnO1xuICAgICAgZXhwb3J0QWN0aW9uLnRvb2x0aXAgPSB0b29sdGlwIHx8ICdjb3JlLmV4cG9ydC10YWJsZSc7XG4gICAgICBleHBvcnRBY3Rpb24ua2V5ID0ga2V5IHx8ICdleHBvcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZVRhYmxlQWN0aW9uKGFjdGlvbjogVGFibGVBY3Rpb24pIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX0dFTkVSQUxfVEFCTEVfQUNUSU9OLCB7IGFjdGlvbiB9KTtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBDb250ZW50JzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250ZW50Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBQYWdlJzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250YWluZXInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDb2xsYXBzZSBFeHBhbmQnOlxuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXhwb3J0JzpcbiAgICAgICAgdGhpcy5leHBvcnRUYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dyb3VwIGZyb20gU2V0dGluZ3MnOlxuICAgICAgY2FzZSAnR3JvdXAgZnJvbSBUb29sYmFyJzpcbiAgICAgICAgdGhpcy5vcGVuR3JvdXBNZW51KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgRmlsdGVycyc6XG4gICAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgU2V0dGluZ3MnOlxuICAgICAgICB0aGlzLnJlc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTaG93IEhpZGUgQ29sdW1uJzpcbiAgICAgICAgdGhpcy5vcGVuQ29sdW1uTWVudSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA/IHRoaXMuYXBpLmdyaWQuZXhwYW5kQWxsKCkgOiB0aGlzLmFwaS5ncmlkLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSAhdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQ7XG4gIH1cblxuICBnZXQgaGFzR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwaS5jb2x1bW5zLmdldFJvd0dyb3VwQ29sdW1ucygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBleHBvcnRUYWJsZSgpIHtcbiAgICBjb25zdCB7IGdyaWROYW1lLCBleHBvcnRHcmlkIH0gPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zO1xuICAgIGlmIChpc0Z1bmN0aW9uKGV4cG9ydEdyaWQpKSB7XG4gICAgICBleHBvcnRHcmlkKHsgLi4udGhpcy5hcGksIC4uLnRoaXMuZ3JpZFF1ZXJ5LmdldFZhbHVlKCkuc2V0dGluZ3MgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvZGF5ID0gZm9ybWF0KG5ldyBEYXRlKCksIERFRkFVTFRfRk9STUFUKTtcbiAgICAgIHRoaXMuYXBpLmdyaWQuZXhwb3J0RGF0YUFzRXhjZWwoe1xuICAgICAgICBmaWxlTmFtZTogYCR7Z3JpZE5hbWV9IC0gJHt0b2RheX1gLFxuICAgICAgICBwcm9jZXNzQ2VsbENhbGxiYWNrOiAoeyBjb2x1bW4sIHZhbHVlIH06IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gY29sdW1uLmdldENvbERlZigpLnZhbHVlRm9ybWF0dGVyO1xuICAgICAgICAgIC8vIFRPRE86IGZvbGxvd3VwOiBodHRwczovL2FnLWdyaWQuemVuZGVzay5jb20vaGMvZW4tdXMvcmVxdWVzdHMvMTA5NjM/cGFnZT0xXG4gICAgICAgICAgcmV0dXJuIGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldFNldHRpbmdzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UucmVzZXRUYWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBvcGVuQ29sdW1uTWVudSgpIHtcbiAgICB0aGlzLnBvcG92ZXIub3BlbihEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50LCB0aGlzLnNldHRpbmdzVHJpZ2dlci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB3aWR0aDogMjIwLFxuICAgICAgY2xhc3NOYW1lOiAnZGF0by1ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51JyxcbiAgICAgIHBvcHBlcjogeyBwbGFjZW1lbnQ6ICdib3R0b20tZW5kJyB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgICBncmlkU2VydmljZTogdGhpcy5ncmlkU2VydmljZSxcbiAgICAgICAgZ3JpZFF1ZXJ5OiB0aGlzLmdyaWRRdWVyeVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gIH1cblxuICBvcGVuR3JvdXBNZW51KCkge1xuICAgIHRoaXMub3Blbk1lbnVzLmdyb3VwID0gdHJ1ZTtcbiAgICBjb25zdCB3YWl0Rm9yQW5pbWF0aW9uID0gdGhpcy5oYXNHcm91cHMgPyAwIDogMjAwO1xuICAgIC8qKiBXaGVuIGNoYW5naW5nIHRoZSB0YWJsZXMgZ3JvdXBpbmcgYWxsIHRoZSByb3dzIGFyZSBhdXRvbWF0aWNhbGx5IGV4cGFuZGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaWNvbiBzdGF0ZSAqL1xuICAgIGNvbnN0IGV4cGFuZFN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY29sdW1uUm93R3JvdXBDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucG9wb3ZlclxuICAgICAgICAub3BlbihEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQsIHRoaXMuZ3JvdXBUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwNixcbiAgICAgICAgICB3aWR0aDogMjUwLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhdG8tZ3JpZC1ncm91cHMtbWVudScsXG4gICAgICAgICAgcG9wcGVyOiB7IHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmFwaSxcbiAgICAgICAgICAgIGdyaWRTZXJ2aWNlOiB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZXhwYW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5vcGVuTWVudXMuZ3JvdXAgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0sIHdhaXRGb3JBbmltYXRpb24pO1xuICB9XG5cbiAgaXNBY3Rpb25EaXNhYmxlZChyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGU7XG4gIH1cblxuICBpc1Jvd0FjdGlvbkhpZGRlbihyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGUgJiYgdGhpcy5lbmFibGVWMl8xO1xuICB9XG5cbiAgY2xlYXJTZWxlY3RlZFJvd3MoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5kZXNlbGVjdEFsbFJvd3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBwcml2YXRlIGdldENvbGxhcHNlU3RhdGUoeyBub2RlLCBhcGkgfTogUm93R3JvdXBPcGVuZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xsYXBzZWQgPSB0cnVlO1xuICAgIGlmIChub2RlLnJvd0dyb3VwSW5kZXggPT09IDApIHtcbiAgICAgIGFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCgoeyBleHBhbmRlZCwgcm93R3JvdXBJbmRleCB9OiBSb3dOb2RlKSA9PiB7XG4gICAgICAgIGlmIChyb3dHcm91cEluZGV4ID09PSAwICYmIGV4cGFuZGVkKSB7XG4gICAgICAgICAgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlckdyb3VwTGlzdGVuZXJzKCkge1xuICAgIC8qKiBMaXN0ZW4gdG8gYWRkaW5nIG9yIHJlbW92aW5nIHJvdyBncm91cHMgZnJvbSB0aGUgY29sdW1ucyBhbmQgbm90IHRoZSBncm91cHMgbWVudSAqL1xuICAgIHRoaXMuZ3JpZFF1ZXJ5XG4gICAgICAud2FpdEZvckdyaWQoKCkgPT4gdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jb2x1bW5Sb3dHcm91cENoYW5nZWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm9wZW5NZW51cy5ncm91cCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgLyoqIExpc3RlbiB0byByb3cgY29sbGFwc2Ugc3RhdGUgdG8gdXBkYXRlIHRoZSBpY29uICovXG4gICAgdGhpcy5ncmlkUXVlcnlcbiAgICAgIC53YWl0Rm9yR3JpZCgoKSA9PiB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0dyb3VwT3BlbmVkKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogUm93R3JvdXBPcGVuZWRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmdldENvbGxhcHNlU3RhdGUoZXZlbnQpO1xuICAgICAgICBpZiAoY29sbGFwc2VkICE9PSB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCkge1xuICAgICAgICAgIHRoaXMucm93R3JvdXBzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVJvd3NTZWxlY3Rpb25EYXRhKCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5LnJvd3NTZWxlY3Rpb25EYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoe1xuICAgICAgICAgIHRvdGFsUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUGFnZVJvd3NDb3VudCxcbiAgICAgICAgICBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWRcbiAgICAgICAgfTogR3JpZFJvd3NTZWxlY3Rpb25EYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbFJvd3NDb3VudCA9IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSBzZWxlY3RlZFJvd3NDb3VudDtcbiAgICAgICAgICBjb25zdCB7IGVuYWJsZUFsbFBhZ2VzU2VsZWN0aW9uIH0gPSB0aGlzLmdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpO1xuICAgICAgICAgIHRoaXMuYWxsUGFnZVJvd3NTZWxlY3RlZCA9XG4gICAgICAgICAgICBlbmFibGVBbGxQYWdlc1NlbGVjdGlvbiAmJlxuICAgICAgICAgICAgaXNBbGxQYWdlUm93c1NlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA9PT0gc2VsZWN0ZWRQYWdlUm93c0NvdW50ICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA8IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNlbGVjdEFsbFBhZ2VzKCkge1xuICAgIGlmICh0aGlzLmdyaWRRdWVyeS5pc1NlcnZlclNpZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2V0U2VydmVyU2lkZVBhZ2luYXRpb24oeyBzZWxlY3RBbGxSb3dzRW5hYmxlZDogdHJ1ZSwgZXhjbHVkZWRGcm9tU2VsZWN0QWxsOiBbXSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5hcGkuZ3JpZC5zZWxlY3RBbGxGaWx0ZXJlZCgpO1xuICAgIH1cbiAgfVxufVxuIl19
490
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsY0FBYyxFQUdmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFD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cUJBQXFCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNyRzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDL0M7SUFDSCxDQUFDOztnQkFyV3dCLDJCQUEyQjtnQkFDckMsaUJBQWlCO2dCQUNYLG9CQUFvQjtnQkFDdEIsV0FBVztnQkFDVCxTQUFTO2dCQUNQLFdBQVc7O0lBL0Q4QjtRQUEvRCxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7a0NBQWUsVUFBVTtvRUFBQztJQUN0QjtRQUFsRSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztrQ0FBa0IsVUFBVTt1RUFBQztJQUV0RjtRQUFSLEtBQUssRUFBRTs7cUVBQXNCO0lBS3JCO1FBQVIsS0FBSyxFQUFFOzs7bUVBU1A7SUFFUTtRQUFSLEtBQUssRUFBRTs7b0VBQXVCO0lBQ3RCO1FBQVIsS0FBSyxFQUFFOzt5RUFBNkQ7SUFDNUQ7UUFBUixLQUFLLEVBQUU7O3FGQUFxRTtJQUNwRTtRQUFSLEtBQUssRUFBRTs7eUZBQTBDO0lBM0J2QywwQkFBMEI7UUFOdEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyw0bVdBQTRDO1lBRTVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO3lDQWdFeUIsMkJBQTJCO1lBQ3JDLGlCQUFpQjtZQUNYLG9CQUFvQjtZQUN0QixXQUFXO1lBQ1QsU0FBUztZQUNQLFdBQVc7T0FwRXZCLDBCQUEwQixDQXFhdEM7SUFBRCxpQ0FBQztDQUFBLEFBcmFELElBcWFDO1NBcmFZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVRvb2xiYXJBY3Rpb24sXG4gIEdyaWRBY3Rpb24sXG4gIEdyaWRBY3Rpb25UeXBlLFxuICBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCxcbiAgUm93QWN0aW9uXG59IGZyb20gJy4vZ3JpZC10b29sYmFyLnR5cGVzJztcbmltcG9ydCB7IERhdG9HcmlkQ29udHJvbGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY29udHJvbGxlci9ncmlkLWNvbnRyb2xsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IHVudGlsRGVzdHJveWVkIH0gZnJvbSAnbmd4LXRha2UtdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBQcm9jZXNzQ2VsbEZvckV4cG9ydFBhcmFtcywgUm93R3JvdXBPcGVuZWRFdmVudCwgUm93Tm9kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdG9Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vcG9wb3Zlci9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0b0dyaWRHcm91cHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1ncm91cHMtbWVudS9ncmlkLWdyb3Vwcy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkUXVlcnkgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQucXVlcnknO1xuaW1wb3J0IHsgZ2V0VmlzaWJsZUFjdGlvbnMgfSBmcm9tICcuLi9ncmlkLXYyLnV0aWwnO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9GT1JNQVQgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jb2x1bW5zLWRpc3BsYXktbWVudS9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vZXZlbnQtbG9nZ2VyJztcbmltcG9ydCB7IERhdG9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgR3JpZFJvd3NTZWxlY3Rpb25EYXRhIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXYyLnR5cGVzJztcblxudHlwZSBUYWJsZUFjdGlvbiA9XG4gIHwgJ0F1dG9maXQgdG8gQ29udGVudCdcbiAgfCAnQXV0b2ZpdCB0byBQYWdlJ1xuICB8ICdTaG93IEhpZGUgQ29sdW1uJ1xuICB8ICdSZXNldCBTZXR0aW5ncydcbiAgfCAnUmVzZXQgRmlsdGVycydcbiAgfCAnR3JvdXAgZnJvbSBTZXR0aW5ncydcbiAgfCAnR3JvdXAgZnJvbSBUb29sYmFyJ1xuICB8ICdFeHBvcnQnXG4gIHwgJ0NvbGxhcHNlIEV4cGFuZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdG8tZ3JpZC10b29sYmFyLXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRvR3JpZFYyVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfVklTSUJMRV9ST1dfQUNUSU9OUyA9IDU7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1ZJU0lCTEVfR1JJRF9BQ1RJT05TID0gMjtcbiAgcHJpdmF0ZSBfbWF4Um93QWN0aW9ucyA9IHRoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlM7XG5cbiAgQFZpZXdDaGlsZCgnZ3JvdXBUcmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGdyb3VwVHJpZ2dlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2V0dGluZ3NUcmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHNldHRpbmdzVHJpZ2dlcjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBkaXNwbGF5RXhwb3J0ID0gdHJ1ZTtcbiAgY3JlYXRlQWN0aW9uOiBHcmlkQWN0aW9uO1xuICByb3dBY3Rpb25zOiB7IG1haW5MaXN0OiBSb3dBY3Rpb25bXTsgbW9yZU1lbnU6IFJvd0FjdGlvbltdIH0gPSB7IG1haW5MaXN0OiBbXSwgbW9yZU1lbnU6IFtdIH07XG4gIGdyaWRBY3Rpb25zOiB7IG1haW5MaXN0OiBHcmlkQWN0aW9uW107IG1vcmVNZW51OiBHcmlkQWN0aW9uW10gfSA9IHsgbWFpbkxpc3Q6IFtdLCBtb3JlTWVudTogW10gfTtcblxuICBASW5wdXQoKSBzZXQgbWF4Um93QWN0aW9ucyhtYXhSb3dBY3Rpb25zOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbmFibGVWMl8xKSB7XG4gICAgICB0aGlzLl9tYXhSb3dBY3Rpb25zID0gTWF0aC5taW4obWF4Um93QWN0aW9ucywgdGhpcy5NQVhfVklTSUJMRV9ST1dfQUNUSU9OUyk7XG4gICAgICBpZiAobWF4Um93QWN0aW9ucyA+IHRoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlMgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBEYXRvR3JpZCBWMi4xIC0gbWF4Um93QWN0aW9ucyBjYW5ub3QgYmUgb3ZlciAke3RoaXMuTUFYX1ZJU0lCTEVfUk9XX0FDVElPTlN9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21heFJvd0FjdGlvbnMgPSBtYXhSb3dBY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGhpZGVHcm91cGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2Zvcm0oJ2NvcmUuc2VhcmNoJyk7XG4gIEBJbnB1dCgpIHJvd0FjdGlvbnNTaG9ydExhYmVsVGhyZXNob2xkOiBHcmlkUm93QWN0aW9uc1NjcmVlblRocmVzaG9sZCA9IDE1Mzk7XG4gIEBJbnB1dCgpIGRpc3BsYXlDdXN0b21HcmlkQWN0aW9uc1NlcGFyYXRvciA9IHRydWU7XG5cbiAgb3Blbk1lbnVzID0ge1xuICAgIGdyb3VwOiBmYWxzZSxcbiAgICBzZXR0aW5nczogZmFsc2VcbiAgfTtcbiAgcm93R3JvdXBzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGdyb3Vwc0FsbG93ZWQgPSAhdGhpcy5oaWRlR3JvdXBpbmc7XG4gIGlzU2VsZWN0ZWRSb3cgPSBmYWxzZTtcbiAgaXNUcmVlTW9kZTogYm9vbGVhbiA9IHRoaXMuZ3JpZFNlcnZpY2UudHJlZURhdGE7XG4gIHRvdGFsUm93c0NvdW50ID0gMDtcbiAgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuICBhbGxQYWdlUm93c1NlbGVjdGVkID0gZmFsc2U7XG4gIHdpZHRoVG9IaWRlQWN0aW9uc0xhYmVsczogR3JpZFJvd0FjdGlvbnNTY3JlZW5UaHJlc2hvbGQgPSAxNDM5O1xuXG4gIGdldCBlbmFibGVWMl8xKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZVYyXzE7XG4gIH1cblxuICBnZXQgZW5hYmxlU2VhcmNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZVNlYXJjaDtcbiAgfVxuXG4gIGdldCBlbmFibGVCYWNrZ3JvdW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zLmVuYWJsZUJhY2tncm91bmQ7XG4gIH1cblxuICBnZXQgaXNSb3dBY3Rpb25zVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW5hYmxlVjJfMSB8fCAodGhpcy5lbmFibGVWMl8xICYmIHRoaXMuaXNTZWxlY3RlZFJvdyk7XG4gIH1cblxuICBnZXQgaGFzUm93QWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2l6ZSh0aGlzLnJvd0FjdGlvbnMubWFpbkxpc3QpID4gMCB8fCBzaXplKHRoaXMucm93QWN0aW9ucy5tb3JlTWVudSkgPiAwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGdyaWRDb250cm9sbGVyOiBEYXRvR3JpZENvbnRyb2xsZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBEYXRvVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBvcG92ZXI6IERhdG9Qb3BvdmVyLFxuICAgIHByaXZhdGUgZ3JpZFF1ZXJ5OiBHcmlkUXVlcnksXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldCBoaWRkZW5Db2x1bW5zKCkge1xuICAgIHJldHVybiBgKCR7dGhpcy5ncmlkUXVlcnkuZ2V0QWxsRGlzcGxheWVkQ29sdW1ucygpLmxlbmd0aH0vJHt0aGlzLmdyaWRRdWVyeS5nZXRBbGxDb2x1bW5zKCkubGVuZ3RofSlgO1xuICB9XG5cbiAgZ2V0IGhhc0FjdGl2ZU1vcmVBY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnJvd0FjdGlvbnMubW9yZU1lbnUuc29tZSgoeyB2aXNpYmxlIH0pID0+IHZpc2libGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYXBpKCkge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5hcGk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBkYXRhQ2hhbmdlcyA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LndhaXRGb3JHcmlkKCgpID0+XG4gICAgICBtZXJnZShcbiAgICAgICAgdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jZWxsVmFsdWVDaGFuZ2VkLFxuICAgICAgICB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0RhdGFVcGRhdGVkLFxuICAgICAgICB0aGlzLmdyaWRRdWVyeS5yb3dBY3Rpb25WaXNpYmlsaXR5Q2hhbmdlZCRcbiAgICAgICkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgKTtcblxuICAgIGNvbnN0IGdyaWRJbml0ID0gdGhpcy5ncmlkUXVlcnkuZ3JpZFJlYWR5JC5waXBlKHRha2UoMSkpO1xuICAgIGdyaWRJbml0LnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmdyb3Vwc0FsbG93ZWQgPSAhdGhpcy5oaWRlR3JvdXBpbmcgJiYgIXRoaXMuZ3JpZFF1ZXJ5LmdldFZhbHVlKCkuc2VydmVyU2lkZVBhZ2luYXRpb24uZW5hYmxlZDtcbiAgICB9KTtcbiAgICB0aGlzLmluaXRHcmlkQWN0aW9ucygpO1xuICAgIGNvbnN0IHNlbGVjdGVkUm93c0NoYW5nZWQkID0gdGhpcy5ncmlkUXVlcnkuc2VsZWN0ZWRSb3dzQ2hhbmdlJDtcbiAgICBjb25zdCBpc1NlbGVjdEFsbFJvd3NDaGFuZ2VkJCA9IHRoaXMuZ3JpZFF1ZXJ5LnNlbGVjdElzU2VsZWN0QWxsUm93c0VuYWJsZWQoKTtcbiAgICBtZXJnZShkYXRhQ2hhbmdlcywgZ3JpZEluaXQsIHNlbGVjdGVkUm93c0NoYW5nZWQkLCBpc1NlbGVjdEFsbFJvd3NDaGFuZ2VkJClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLmFwaSksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNvbHZlVmlzaWJsZUFjdGlvbnMoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgdGhpcy5yZWdpc3Rlckdyb3VwTGlzdGVuZXJzKCk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVJvd3NTZWxlY3Rpb25EYXRhKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVVcGRhdGVHcmlkQWN0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZWxsVmFsdWVDaGFuZ2VFdmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkUXVlcnkud2FpdEZvckdyaWQoKCkgPT5cbiAgICAgIHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY2VsbFZhbHVlQ2hhbmdlZC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dEYXRhVXBkYXRlZEV2ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS53YWl0Rm9yR3JpZCgoKSA9PlxuICAgICAgdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5yb3dEYXRhVXBkYXRlZC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IEJhc2VUb29sYmFyQWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFF1ZXJ5LmdldFNlbGVjdGVkUm93c0NvdW50KCk7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICBmcm9tOiAnVG9vbGJhcidcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2VsZWN0QWxsUm93c0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0QWxsRmlsdGVyID0gdGhpcy5ncmlkU2VydmljZS5nZXRGaWx0ZXJGb3JTZXJ2ZXJBY3Rpb25PblNlbGVjdEFsbCgpO1xuICAgICAgICBhY3Rpb24ub25DbGljayhudWxsLCB0cnVlLCBzZWxlY3RBbGxGaWx0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRRdWVyeS5nZXRTZWxlY3RlZFJvd05vZGVzKCk7XG4gICAgICAgIGFjdGlvbi5vbkNsaWNrKHNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChhY3Rpb24gYXMgR3JpZEFjdGlvbikuYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuRVhQT1JUKSB7XG4gICAgICB0aGlzLmV4ZWN1dGVUYWJsZUFjdGlvbignRXhwb3J0Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZVZpc2libGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dOb2RlcygpO1xuICAgIHRoaXMuaXNTZWxlY3RlZFJvdyA9IHNlbGVjdGVkLmxlbmd0aCA+IDAgfHwgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZDtcbiAgICBjb25zdCB2aXNpYmxlQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKFxuICAgICAgdGhpcy5ncmlkQ29udHJvbGxlci5yb3dBY3Rpb25zLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgdGhpcy5ncmlkUXVlcnkuaXNTZXJ2ZXJTZWxlY3RBbGxSb3dzRW5hYmxlZFxuICAgICkuZmlsdGVyKChhY3Rpb246IFJvd0FjdGlvbikgPT4gIXRoaXMuaXNSb3dBY3Rpb25IaWRkZW4oYWN0aW9uKSk7XG4gICAgdGhpcy5yb3dBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IHZpc2libGVBY3Rpb25zLnNsaWNlKDAsIHRoaXMuX21heFJvd0FjdGlvbnMpLFxuICAgICAgbW9yZU1lbnU6IHZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMuX21heFJvd0FjdGlvbnMsIHZpc2libGVBY3Rpb25zLmxlbmd0aClcbiAgICB9O1xuICAgIHRoaXMuaW5pdFdpZHRoVG9IaWRlQWN0aW9uc0xhYmVscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0V2lkdGhUb0hpZGVBY3Rpb25zTGFiZWxzKCkge1xuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zQ291bnQgPVxuICAgICAgdGhpcy5yb3dBY3Rpb25zLm1haW5MaXN0Lmxlbmd0aCArXG4gICAgICAodGhpcy5yb3dBY3Rpb25zLm1vcmVNZW51Lmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuZ3JpZEFjdGlvbnMubW9yZU1lbnUubGVuZ3RoID4gMCA/IDEgOiAwKSArXG4gICAgICAodGhpcy5jcmVhdGVBY3Rpb24gPyAxIDogMCk7XG5cbiAgICBjb25zdCB3aW5kb3dXaWR0aFRocmVzaG9sZHM6IEdyaWRSb3dBY3Rpb25zU2NyZWVuVGhyZXNob2xkW10gPSBbMTIzOSwgMTMzOSwgMTQzOSwgMTUzOV07XG4gICAgdGhpcy53aWR0aFRvSGlkZUFjdGlvbnNMYWJlbHMgPVxuICAgICAgd2luZG93V2lkdGhUaHJlc2hvbGRzW01hdGgubWluKE1hdGgubWF4KHZpc2libGVBY3Rpb25zQ291bnQgLSA1LCAwKSwgd2luZG93V2lkdGhUaHJlc2hvbGRzLmxlbmd0aCAtIDEpXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyaWRBY3Rpb25zKCkge1xuICAgIGNvbnN0IGdyaWRBY3Rpb25zID0gdGhpcy5ncmlkQ29udHJvbGxlci5ncmlkQWN0aW9ucztcbiAgICB0aGlzLmluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnMpO1xuICAgIHRoaXMuaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9ucyk7XG4gICAgbGV0IG1heFZpc2libGVBY3Rpb25zID0gdGhpcy5NQVhfVklTSUJMRV9HUklEX0FDVElPTlMgLSAodGhpcy5kaXNwbGF5RXhwb3J0ID8gMSA6IDApO1xuICAgIGlmIChzaXplKGdyaWRBY3Rpb25zKSA9PT0gbWF4VmlzaWJsZUFjdGlvbnMgKyAxKSB7XG4gICAgICBtYXhWaXNpYmxlQWN0aW9ucysrO1xuICAgIH1cbiAgICB0aGlzLmdyaWRBY3Rpb25zID0ge1xuICAgICAgbWFpbkxpc3Q6IGdyaWRBY3Rpb25zLnNsaWNlKDAsIG1heFZpc2libGVBY3Rpb25zKSxcbiAgICAgIG1vcmVNZW51OiBncmlkQWN0aW9ucy5zbGljZShtYXhWaXNpYmxlQWN0aW9ucywgZ3JpZEFjdGlvbnMubGVuZ3RoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXRDcmVhdGVBY3Rpb24oZ3JpZEFjdGlvbnM6IEdyaWRBY3Rpb25bXSkge1xuICAgIGNvbnN0IGNyZWF0ZUFjdGlvbkluZGV4ID0gZ3JpZEFjdGlvbnMuZmluZEluZGV4KCh7IGFjdGlvblR5cGUgfSkgPT4gYWN0aW9uVHlwZSA9PT0gR3JpZEFjdGlvblR5cGUuQ1JFQVRFKTtcbiAgICB0aGlzLmNyZWF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbkluZGV4ID49IDAgPyBncmlkQWN0aW9ucy5zcGxpY2UoY3JlYXRlQWN0aW9uSW5kZXgsIDEpWzBdIDogbnVsbDtcbiAgICBpZiAodGhpcy5jcmVhdGVBY3Rpb24pIHtcbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9uLmxhYmVsID0gdGhpcy5jcmVhdGVBY3Rpb24ubGFiZWwgfHwgJ2NvcmUuY3JlYXRlLW5ldyc7XG4gICAgICB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgPSB0aGlzLmNyZWF0ZUFjdGlvbi5rZXkgfHwgJ2NyZWF0ZS1uZXcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4cG9ydEFjdGlvbihncmlkQWN0aW9uczogR3JpZEFjdGlvbltdKSB7XG4gICAgY29uc3QgZXhwb3J0QWN0aW9uID0gZ3JpZEFjdGlvbnMuZmluZCgoeyBhY3Rpb25UeXBlIH0pID0+IGFjdGlvblR5cGUgPT09IEdyaWRBY3Rpb25UeXBlLkVYUE9SVCk7XG4gICAgaWYgKGV4cG9ydEFjdGlvbikge1xuICAgICAgY29uc3QgeyBvbkNsaWNrLCBpY29uLCBsYWJlbCwgdG9vbHRpcCwga2V5IH0gPSBleHBvcnRBY3Rpb247XG4gICAgICBleHBvcnRBY3Rpb24ub25DbGljayA9IG9uQ2xpY2sgfHwgKCgpID0+IHRoaXMuZXhlY3V0ZVRhYmxlQWN0aW9uKCdFeHBvcnQnKSk7XG4gICAgICBleHBvcnRBY3Rpb24uaWNvbiA9IGljb24gfHwgJ2V4cG9ydCc7XG4gICAgICBleHBvcnRBY3Rpb24ubGFiZWwgPSBsYWJlbCB8fCAnY29yZS5leHBvcnQtdGFibGUnO1xuICAgICAgZXhwb3J0QWN0aW9uLnRvb2x0aXAgPSB0b29sdGlwIHx8ICdjb3JlLmV4cG9ydC10YWJsZSc7XG4gICAgICBleHBvcnRBY3Rpb24ua2V5ID0ga2V5IHx8ICdleHBvcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZVRhYmxlQWN0aW9uKGFjdGlvbjogVGFibGVBY3Rpb24pIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX0dFTkVSQUxfVEFCTEVfQUNUSU9OLCB7IGFjdGlvbiB9KTtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBDb250ZW50JzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250ZW50Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXV0b2ZpdCB0byBQYWdlJzpcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5maXRHcmlkKCdjb250YWluZXInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDb2xsYXBzZSBFeHBhbmQnOlxuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXhwb3J0JzpcbiAgICAgICAgdGhpcy5leHBvcnRUYWJsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dyb3VwIGZyb20gU2V0dGluZ3MnOlxuICAgICAgY2FzZSAnR3JvdXAgZnJvbSBUb29sYmFyJzpcbiAgICAgICAgdGhpcy5vcGVuR3JvdXBNZW51KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgRmlsdGVycyc6XG4gICAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUmVzZXQgU2V0dGluZ3MnOlxuICAgICAgICB0aGlzLnJlc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTaG93IEhpZGUgQ29sdW1uJzpcbiAgICAgICAgdGhpcy5vcGVuQ29sdW1uTWVudSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA/IHRoaXMuYXBpLmdyaWQuZXhwYW5kQWxsKCkgOiB0aGlzLmFwaS5ncmlkLmNvbGxhcHNlQWxsKCk7XG4gICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSAhdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQ7XG4gIH1cblxuICBnZXQgaGFzR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwaS5jb2x1bW5zLmdldFJvd0dyb3VwQ29sdW1ucygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBleHBvcnRUYWJsZSgpIHtcbiAgICBjb25zdCB7IGdyaWROYW1lLCBleHBvcnRHcmlkIH0gPSB0aGlzLmdyaWRDb250cm9sbGVyLmdyaWRPcHRpb25zO1xuICAgIGlmIChpc0Z1bmN0aW9uKGV4cG9ydEdyaWQpKSB7XG4gICAgICBleHBvcnRHcmlkKHsgLi4udGhpcy5hcGksIC4uLnRoaXMuZ3JpZFF1ZXJ5LmdldFZhbHVlKCkuc2V0dGluZ3MgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvZGF5ID0gZm9ybWF0KG5ldyBEYXRlKCksIERFRkFVTFRfRk9STUFUKTtcbiAgICAgIHRoaXMuYXBpLmdyaWQuZXhwb3J0RGF0YUFzRXhjZWwoe1xuICAgICAgICBmaWxlTmFtZTogYCR7Z3JpZE5hbWV9IC0gJHt0b2RheX1gLFxuICAgICAgICBwcm9jZXNzQ2VsbENhbGxiYWNrOiAoeyBjb2x1bW4sIHZhbHVlIH06IFByb2Nlc3NDZWxsRm9yRXhwb3J0UGFyYW1zKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gY29sdW1uLmdldENvbERlZigpLnZhbHVlRm9ybWF0dGVyO1xuICAgICAgICAgIC8vIFRPRE86IGZvbGxvd3VwOiBodHRwczovL2FnLWdyaWQuemVuZGVzay5jb20vaGMvZW4tdXMvcmVxdWVzdHMvMTA5NjM/cGFnZT0xXG4gICAgICAgICAgcmV0dXJuIGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldFNldHRpbmdzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UucmVzZXRUYWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBvcGVuQ29sdW1uTWVudSgpIHtcbiAgICB0aGlzLnBvcG92ZXIub3BlbihEYXRvR3JpZENvbHVtbkRpc3BsYXlNZW51Q29tcG9uZW50LCB0aGlzLnNldHRpbmdzVHJpZ2dlci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB3aWR0aDogMjIwLFxuICAgICAgY2xhc3NOYW1lOiAnZGF0by1ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51JyxcbiAgICAgIHBvcHBlcjogeyBwbGFjZW1lbnQ6ICdib3R0b20tZW5kJyB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgICBncmlkU2VydmljZTogdGhpcy5ncmlkU2VydmljZSxcbiAgICAgICAgZ3JpZFF1ZXJ5OiB0aGlzLmdyaWRRdWVyeVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZENvbnRyb2xsZXIuZ3JpZFNlcnZpY2UuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gIH1cblxuICBvcGVuR3JvdXBNZW51KCkge1xuICAgIHRoaXMub3Blbk1lbnVzLmdyb3VwID0gdHJ1ZTtcbiAgICBjb25zdCB3YWl0Rm9yQW5pbWF0aW9uID0gdGhpcy5oYXNHcm91cHMgPyAwIDogMjAwO1xuICAgIC8qKiBXaGVuIGNoYW5naW5nIHRoZSB0YWJsZXMgZ3JvdXBpbmcgYWxsIHRoZSByb3dzIGFyZSBhdXRvbWF0aWNhbGx5IGV4cGFuZGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaWNvbiBzdGF0ZSAqL1xuICAgIGNvbnN0IGV4cGFuZFN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JpZFF1ZXJ5LmdyaWRSZWYuY29sdW1uUm93R3JvdXBDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucG9wb3ZlclxuICAgICAgICAub3BlbihEYXRvR3JpZEdyb3Vwc01lbnVDb21wb25lbnQsIHRoaXMuZ3JvdXBUcmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwNixcbiAgICAgICAgICB3aWR0aDogMjUwLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2RhdG8tZ3JpZC1ncm91cHMtbWVudScsXG4gICAgICAgICAgcG9wcGVyOiB7IHBsYWNlbWVudDogJ2JvdHRvbS1lbmQnIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXBpOiB0aGlzLmFwaSxcbiAgICAgICAgICAgIGdyaWRTZXJ2aWNlOiB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZXhwYW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5vcGVuTWVudXMuZ3JvdXAgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH0sIHdhaXRGb3JBbmltYXRpb24pO1xuICB9XG5cbiAgaXNBY3Rpb25EaXNhYmxlZChyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGU7XG4gIH1cblxuICBpc1Jvd0FjdGlvbkhpZGRlbihyb3dBY3Rpb246IFJvd0FjdGlvbikge1xuICAgIHJldHVybiAhcm93QWN0aW9uLnZpc2libGUgJiYgdGhpcy5lbmFibGVWMl8xO1xuICB9XG5cbiAgY2xlYXJTZWxlY3RlZFJvd3MoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5kZXNlbGVjdEFsbFJvd3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBwcml2YXRlIGdldENvbGxhcHNlU3RhdGUoeyBub2RlLCBhcGkgfTogUm93R3JvdXBPcGVuZWRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBjb2xsYXBzZWQgPSB0cnVlO1xuICAgIGlmIChub2RlLnJvd0dyb3VwSW5kZXggPT09IDApIHtcbiAgICAgIGFwaS5mb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCgoeyBleHBhbmRlZCwgcm93R3JvdXBJbmRleCB9OiBSb3dOb2RlKSA9PiB7XG4gICAgICAgIGlmIChyb3dHcm91cEluZGV4ID09PSAwICYmIGV4cGFuZGVkKSB7XG4gICAgICAgICAgY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlckdyb3VwTGlzdGVuZXJzKCkge1xuICAgIC8qKiBMaXN0ZW4gdG8gYWRkaW5nIG9yIHJlbW92aW5nIHJvdyBncm91cHMgZnJvbSB0aGUgY29sdW1ucyBhbmQgbm90IHRoZSBncm91cHMgbWVudSAqL1xuICAgIHRoaXMuZ3JpZFF1ZXJ5XG4gICAgICAud2FpdEZvckdyaWQoKCkgPT4gdGhpcy5ncmlkUXVlcnkuZ3JpZFJlZi5jb2x1bW5Sb3dHcm91cENoYW5nZWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm9wZW5NZW51cy5ncm91cCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3dHcm91cHNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgLyoqIExpc3RlbiB0byByb3cgY29sbGFwc2Ugc3RhdGUgdG8gdXBkYXRlIHRoZSBpY29uICovXG4gICAgdGhpcy5ncmlkUXVlcnlcbiAgICAgIC53YWl0Rm9yR3JpZCgoKSA9PiB0aGlzLmdyaWRRdWVyeS5ncmlkUmVmLnJvd0dyb3VwT3BlbmVkKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogUm93R3JvdXBPcGVuZWRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmdldENvbGxhcHNlU3RhdGUoZXZlbnQpO1xuICAgICAgICBpZiAoY29sbGFwc2VkICE9PSB0aGlzLnJvd0dyb3Vwc0NvbGxhcHNlZCkge1xuICAgICAgICAgIHRoaXMucm93R3JvdXBzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVJvd3NTZWxlY3Rpb25EYXRhKCkge1xuICAgIHRoaXMuZ3JpZFF1ZXJ5LnJvd3NTZWxlY3Rpb25EYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoe1xuICAgICAgICAgIHRvdGFsUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgIHNlbGVjdGVkUGFnZVJvd3NDb3VudCxcbiAgICAgICAgICBpc0FsbFBhZ2VSb3dzU2VsZWN0ZWRcbiAgICAgICAgfTogR3JpZFJvd3NTZWxlY3Rpb25EYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbFJvd3NDb3VudCA9IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSBzZWxlY3RlZFJvd3NDb3VudDtcbiAgICAgICAgICBjb25zdCB7IGVuYWJsZUFsbFBhZ2VzU2VsZWN0aW9uIH0gPSB0aGlzLmdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpO1xuICAgICAgICAgIHRoaXMuYWxsUGFnZVJvd3NTZWxlY3RlZCA9XG4gICAgICAgICAgICBlbmFibGVBbGxQYWdlc1NlbGVjdGlvbiAmJlxuICAgICAgICAgICAgaXNBbGxQYWdlUm93c1NlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA9PT0gc2VsZWN0ZWRQYWdlUm93c0NvdW50ICYmXG4gICAgICAgICAgICBzZWxlY3RlZFJvd3NDb3VudCA8IHRvdGFsUm93c0NvdW50O1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVXBkYXRlR3JpZEFjdGlvbnMoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5nZXRVcGRhdGVHcmlkQWN0aW9uc1N0YXR1cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRHcmlkQWN0aW9ucygpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0QWxsUGFnZXMoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2lkZSkge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5zZXRTZXJ2ZXJTaWRlUGFnaW5hdGlvbih7IHNlbGVjdEFsbFJvd3NFbmFibGVkOiB0cnVlLCBleGNsdWRlZEZyb21TZWxlY3RBbGw6IFtdIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLmFwaS5ncmlkLnNlbGVjdEFsbEZpbHRlcmVkKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -9,32 +9,32 @@ import { __assign, __decorate, __extends, __metadata, __param } from "tslib";
9
9
  import { AfterViewInit, Directive, ElementRef, forwardRef, Inject, Input, NgZone, OnDestroy } from '@angular/core';
10
10
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
11
11
  import { BaseCustomControl } from '../custom-control/base-custom-control';
12
- import { HttpClient } from '@angular/common/http';
13
- import { appendScript, appendStyle } from '../internal/helpers';
14
12
  import { fromEvent } from 'rxjs';
15
13
  import { untilDestroyed } from 'ngx-take-until-destroy';
16
14
  import { DATO_CORE_CONFIG } from '../config';
17
15
  import { isNil, isString } from '../utils/validators';
16
+ import { RichTextService } from './rich-text.service';
17
+ import { appendScript, appendStyle } from '../internal/helpers';
18
18
  var getTinymce = function () {
19
19
  return window && window.tinymce ? window.tinymce : null;
20
20
  };
21
21
  var ɵ0 = getTinymce;
22
22
  var DatoRichTextDirective = /** @class */ (function (_super) {
23
23
  __extends(DatoRichTextDirective, _super);
24
- function DatoRichTextDirective(ngZone, http, host, config) {
24
+ function DatoRichTextDirective(ngZone, richTextService, config, host) {
25
25
  var _this = _super.call(this) || this;
26
26
  _this.ngZone = ngZone;
27
- _this.http = http;
28
- _this.host = host;
27
+ _this.richTextService = richTextService;
29
28
  _this.config = config;
29
+ _this.host = host;
30
30
  _this.autocompleteOptions = {};
31
31
  _this.forcePlainTextPasting = false;
32
32
  _this.format = 'html';
33
33
  _this.isOneLine = false;
34
34
  _this.initialValue = '';
35
- _this.defaultPlugins = 'link fullscreen textcolor colorpicker image lists table textpattern autocomplete';
35
+ _this.defaultPlugins = 'link fullscreen image lists table autocomplete';
36
36
  _this.defaultToolbar = [
37
- 'fontselect fontsizeselect forecolor backcolor bold italic underline link',
37
+ 'fontfamily fontsize forecolor backcolor bold italic underline link',
38
38
  'alignleft aligncenter alignright alignjustify outdent indent | table numlist bullist | image fullscreen'
39
39
  ];
40
40
  return _this;
@@ -60,28 +60,11 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
60
60
  base: this.config.paths.richText,
61
61
  query: ''
62
62
  };
63
- /**
64
- * We support only one instance in load time
65
- */
66
- if (window.tinymce) {
67
- this.init.call(this);
68
- }
69
- else {
70
- this.loadLib().subscribe(function (lib) {
71
- appendScript(lib, 'rich-text-editor');
72
- _this.init.call(_this);
73
- _this.loadAutoCompleteStyle();
74
- });
75
- }
76
- };
77
- DatoRichTextDirective.prototype.loadLib = function () {
78
- return this.http.get(this.config.paths.richText + "/index.js", { responseType: 'text' });
79
- };
80
- DatoRichTextDirective.prototype.loadAutoCompleteStyle = function () {
81
- this.http
82
- .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
83
- .subscribe(function (style) {
84
- appendStyle(style, 'tinymce-autocomplete');
63
+ this.richTextService
64
+ .getLib(appendScript, appendStyle)
65
+ .pipe(untilDestroyed(this))
66
+ .subscribe(function () {
67
+ _this.init.call(_this);
85
68
  });
86
69
  };
87
70
  DatoRichTextDirective.prototype.initEditor = function (_, editor) {
@@ -105,8 +88,6 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
105
88
  target: this.host.nativeElement,
106
89
  width: this.width || 600,
107
90
  height: this.height || 300,
108
- force_br_newlines: true,
109
- force_p_newlines: false,
110
91
  resize: 'both',
111
92
  branding: false,
112
93
  inline: this.inline,
@@ -114,10 +95,12 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
114
95
  readonly: this.disabled,
115
96
  plugins: this.plugins || this.defaultPlugins,
116
97
  toolbar: isNil(this.toolbar) ? this.defaultToolbar : this.toolbar,
117
- fontsize_formats: '8px 10px 12px 14px 18px 24px 36px',
98
+ font_size_formats: '8px 10px 12px 14px 18px 24px 36px',
118
99
  min_width: 480,
119
100
  menubar: false,
120
101
  autocomplete: this.autocompleteOptions,
102
+ suffix: '.min',
103
+ skin: 'tinymce-5',
121
104
  setup: function (editor) {
122
105
  _this.editor = editor;
123
106
  editor.on('init', function (e) {
@@ -174,9 +157,9 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
174
157
  var DatoRichTextDirective_1;
175
158
  DatoRichTextDirective.ctorParameters = function () { return [
176
159
  { type: NgZone },
177
- { type: HttpClient },
178
- { type: ElementRef },
179
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
160
+ { type: RichTextService },
161
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
162
+ { type: ElementRef }
180
163
  ]; };
181
164
  __decorate([
182
165
  Input(),
@@ -242,13 +225,12 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
242
225
  }
243
226
  ]
244
227
  }),
245
- __param(3, Inject(DATO_CORE_CONFIG)),
228
+ __param(2, Inject(DATO_CORE_CONFIG)),
246
229
  __metadata("design:paramtypes", [NgZone,
247
- HttpClient,
248
- ElementRef, Object])
230
+ RichTextService, Object, ElementRef])
249
231
  ], DatoRichTextDirective);
250
232
  return DatoRichTextDirective;
251
233
  }(BaseCustomControl));
252
234
  export { DatoRichTextDirective };
253
235
  export { ɵ0 };
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3JpY2gtdGV4dC9yaWNoLXRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFTdEQsSUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzFELENBQUMsQ0FBQzs7QUFZRjtJQUEyQyx5Q0FBaUI7SUErQzFELCtCQUNVLE1BQWMsRUFDZCxJQUFnQixFQUNoQixJQUE2QixFQUNILE1BQWtCO1FBSnRELFlBTUUsaUJBQU8sU0FDUjtRQU5TLFlBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxV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QUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7OztnQkF4SmlCLE1BQU07Z0JBQ1IsVUFBVTtnQkFDVixVQUFVO2dEQUN2QixNQUFNLFNBQUMsZ0JBQWdCOztJQWpEMUI7UUFEQyxLQUFLLEVBQUU7OzBEQUNvQjtJQUU1QjtRQURDLEtBQUssRUFBRTs7MERBQ21CO0lBRTNCO1FBREMsS0FBSyxFQUFFOzswREFDMEI7SUFFbEM7UUFEQyxLQUFLLEVBQUU7O3lEQUNvQjtJQUU1QjtRQURDLEtBQUssRUFBRTs7MERBQ29DO0lBRTVDO1FBREMsS0FBSyxFQUFFOzt3REFDTTtJQUVkO1FBREMsS0FBSyxFQUFFOzt5REFDTztJQUdmO1FBREMsS0FBSyxFQUFFOztzRUFDaUI7SUFHekI7UUFEQyxLQUFLLEVBQUU7Ozt5REFNUDtJQUVRO1FBQVIsS0FBSyxFQUFFOzt3RUFBK0I7SUFDOUI7UUFBUixLQUFLLEVBQUU7OzhEQUFxQjtJQUVwQjtRQUFSLEtBQUssRUFBRTs7eURBQWlCO0lBQ2hCO1FBQVIsS0FBSyxFQUFFOzs0REFBbUI7SUEvQmhCLHFCQUFxQjtRQVZqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSx1QkFBcUIsRUFBckIsQ0FBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7UUFvREcsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTt5Q0FIVCxNQUFNO1lBQ1IsVUFBVTtZQUNWLFVBQVU7T0FsRGYscUJBQXFCLENBeU1qQztJQUFELDRCQUFDO0NBQUEsQUF6TUQsQ0FBMkMsaUJBQWlCLEdBeU0zRDtTQXpNWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgRGF0b3JhbWEuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gQXBhY2hlIExpY2Vuc2UgMi4wIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2RhdG9yYW1hL2NsaWVudC1jb3JlL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlQ3VzdG9tQ29udHJvbCB9IGZyb20gJy4uL2N1c3RvbS1jb250cm9sL2Jhc2UtY3VzdG9tLWNvbnRyb2wnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGFwcGVuZFNjcmlwdCwgYXBwZW5kU3R5bGUgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICduZ3gtdGFrZS11bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IENvcmVDb25maWcsIERBVE9fQ09SRV9DT05GSUcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgaXNOaWwsIGlzU3RyaW5nIH0gZnJvbSAnLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgdGlueW1jZTogYW55O1xuICAgIHRpbnlNQ0VQcmVJbml0OiBhbnk7XG4gIH1cbn1cblxuY29uc3QgZ2V0VGlueW1jZSA9ICgpID0+IHtcbiAgcmV0dXJuIHdpbmRvdyAmJiB3aW5kb3cudGlueW1jZSA/IHdpbmRvdy50aW55bWNlIDogbnVsbDtcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYXRvUmljaFRleHRdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRvUmljaFRleHREaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0b1JpY2hUZXh0RGlyZWN0aXZlIGV4dGVuZHMgQmFzZUN1c3RvbUNvbnRyb2wgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgcGx1Z2luczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKVxuICB0b29sYmFyOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KClcbiAgbWVudWJhcjogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsO1xuICBASW5wdXQoKVxuICBpbmxpbmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIGhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9jb21wbGV0ZU9wdGlvbnMgPSB7fTtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgaWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmVkaXRvci5zZXRNb2RlKHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgZm9yY2VQbGFpblRleHRQYXN0aW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb250OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZm9ybWF0ID0gJ2h0bWwnO1xuICBASW5wdXQoKSBpc09uZUxpbmUgPSBmYWxzZTtcblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlID0gJyc7XG4gIHByaXZhdGUgZWRpdG9yO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFBsdWdpbnMgPSAnbGluayBmdWxsc2NyZWVuIHRleHRjb2xvciBjb2xvcnBpY2tlciBpbWFnZSBsaXN0cyB0YWJsZSB0ZXh0cGF0dGVybiBhdXRvY29tcGxldGUnO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRUb29sYmFyID0gW1xuICAgICdmb250c2VsZWN0IGZvbnRzaXplc2VsZWN0IGZvcmVjb2xvciBiYWNrY29sb3IgYm9sZCBpdGFsaWMgdW5kZXJsaW5lIGxpbmsnLFxuICAgICdhbGlnbmxlZnQgYWxpZ25jZW50ZXIgYWxpZ25yaWdodCBhbGlnbmp1c3RpZnkgb3V0ZGVudCBpbmRlbnQgfCB0YWJsZSBudW1saXN0IGJ1bGxpc3QgIHwgaW1hZ2UgZnVsbHNjcmVlbidcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoREFUT19DT1JFX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IENvcmVDb25maWdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB3aW5kb3cudGlueU1DRVByZUluaXQgPSB7XG4gICAgICBzdWZmaXg6ICcnLFxuICAgICAgYmFzZTogdGhpcy5jb25maWcucGF0aHMucmljaFRleHQsXG4gICAgICBxdWVyeTogJydcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogV2Ugc3VwcG9ydCBvbmx5IG9uZSBpbnN0YW5jZSBpbiBsb2FkIHRpbWVcbiAgICAgKi9cbiAgICBpZiAod2luZG93LnRpbnltY2UpIHtcbiAgICAgIHRoaXMuaW5pdC5jYWxsKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRMaWIoKS5zdWJzY3JpYmUobGliID0+IHtcbiAgICAgICAgYXBwZW5kU2NyaXB0KGxpYiwgJ3JpY2gtdGV4dC1lZGl0b3InKTtcbiAgICAgICAgdGhpcy5pbml0LmNhbGwodGhpcyk7XG4gICAgICAgIHRoaXMubG9hZEF1dG9Db21wbGV0ZVN0eWxlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRMaWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jb25maWcucGF0aHMucmljaFRleHR9L2luZGV4LmpzYCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEF1dG9Db21wbGV0ZVN0eWxlKCkge1xuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZy5wYXRocy5yaWNoVGV4dH0vcGx1Z2lucy9hdXRvY29tcGxldGUvcGx1Z2luLmNzc2AsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcbiAgICAgIC5zdWJzY3JpYmUoc3R5bGUgPT4ge1xuICAgICAgICBhcHBlbmRTdHlsZShzdHlsZSwgJ3RpbnltY2UtYXV0b2NvbXBsZXRlJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEVkaXRvcihfLCBlZGl0b3IpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gZWRpdG9yLnNldENvbnRlbnQodGhpcy5pbml0aWFsVmFsdWUpKTtcblxuICAgIGZyb21FdmVudChlZGl0b3IsICdzZXRjb250ZW50JylcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoeyBjb250ZW50LCBmb3JtYXQgfSkgPT4ge1xuICAgICAgICBmb3JtYXQgPT09ICdodG1sJyAmJiBjb250ZW50ICYmIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uQ2hhbmdlKGNvbnRlbnQpKTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50KGVkaXRvciwgJ2NoYW5nZSBrZXl1cCB1bmRvIHJlZG8nKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25DaGFuZ2UoZWRpdG9yLmdldENvbnRlbnQoeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCB8fCA2MDAsXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0IHx8IDMwMCxcbiAgICAgIGZvcmNlX2JyX25ld2xpbmVzOiB0cnVlLFxuICAgICAgZm9yY2VfcF9uZXdsaW5lczogZmFsc2UsXG4gICAgICByZXNpemU6ICdib3RoJyxcbiAgICAgIGJyYW5kaW5nOiBmYWxzZSxcbiAgICAgIGlubGluZTogdGhpcy5pbmxpbmUsXG4gICAgICBlbGVtZW50cGF0aDogZmFsc2UsXG4gICAgICByZWFkb25seTogdGhpcy5kaXNhYmxlZCxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyB8fCB0aGlzLmRlZmF1bHRQbHVnaW5zLFxuICAgICAgdG9vbGJhcjogaXNOaWwodGhpcy50b29sYmFyKSA/IHRoaXMuZGVmYXVsdFRvb2xiYXIgOiB0aGlzLnRvb2xiYXIsXG4gICAgICBmb250c2l6ZV9mb3JtYXRzOiAnOHB4IDEwcHggMTJweCAxNHB4IDE4cHggMjRweCAzNnB4JyxcbiAgICAgIG1pbl93aWR0aDogNDgwLFxuICAgICAgbWVudWJhcjogZmFsc2UsXG4gICAgICBhdXRvY29tcGxldGU6IHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucyxcbiAgICAgIHNldHVwOiBlZGl0b3IgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICAgICAgZWRpdG9yLm9uKCdpbml0JywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0RWRpdG9yKGUsIGVkaXRvcik7XG4gICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEZvbnQpIHtcbiAgICAgICAgICAgIGVkaXRvci5lZGl0b3JDb21tYW5kcy5leGVjQ29tbWFuZCgnZm9udE5hbWUnLCBmYWxzZSwgdGhpcy5kZWZhdWx0Rm9udCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvKiogUHJldmVudCBmcm9tIGVudGVyIGEgbmV3IGxpbmUgaWYgd2Ugd2FudCBvbmx5IDEgbGluZSBlZGl0b3IgKi9cbiAgICAgICAgZWRpdG9yLm9uKCdrZXlkb3duJywgZSA9PiAhdGhpcy5pc09uZUxpbmUgfHwgZS5jb2RlICE9PSAnRW50ZXInKTtcblxuICAgICAgICBpZiAodGhpcy5mb3JjZVBsYWluVGV4dFBhc3RpbmcpIHtcbiAgICAgICAgICAvKiogTGlzdGVuIGZvciBwYXN0ZSBldmVudCwgYWRkIFwiUGFzdGUgYXMgcGxhaW4gdGV4dFwiIGNhbGxiYWNrICoqL1xuICAgICAgICAgIGVkaXRvci5vbigncGFzdGUnLCBlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJFZGl0b3JDb250ZW50U3R5bGluZyhlZGl0b3IsIGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29udGVudF9zdHlsZTogdGhpcy5pc09uZUxpbmVcbiAgICAgICAgPyBgXG4gICAgICAgIGh0bWwgeyBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgYm9keSB7XG4gICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICBjb2xvcjogcmdiKDU1LCA1NiwgNTgpO1xuICAgICAgICAgbWFyZ2luOiAwIDI1cHggMCAxMHB4O1xuICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBwIHsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9XG4gICAgICBgXG4gICAgICAgIDogJydcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLmRlZmF1bHRPcHRpb25zKCksXG4gICAgICAuLi50aGlzLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZ2V0VGlueW1jZSgpLmluaXQob3B0aW9ucykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5lZGl0b3Iub2ZmKCdwYXN0ZScpO1xuICAgICAgZ2V0VGlueW1jZSgpLnJlbW92ZSh0aGlzLmVkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdmFsdWUgfHwgdGhpcy5pbml0aWFsVmFsdWU7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5lZGl0b3IuaW5pdGlhbGl6ZWQgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnNldE1vZGUoaXNEaXNhYmxlZCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJFZGl0b3JDb250ZW50U3R5bGluZyhlZGl0b3IsIGV2ZW50KSB7XG4gICAgLyoqIFByZXZlbnQgZGVmYXVsdCBwYXN0ZSBiZWhhdmlvciovXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8qKiBDaGVjayBmb3IgY2xpcGJvYXJkIGRhdGEgaW4gdmFyaW91cyBwbGFjZXMgZm9yIGNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eS5cbiAgICAgKiBHZXQgdGhhdCBkYXRhIGFzIHRleHQuXG4gICAgICovXG4gICAgY29uc3QgY29udGVudCA9IChldmVudC5vcmlnaW5hbEV2ZW50IHx8IGV2ZW50KS5jbGlwYm9hcmREYXRhLmdldERhdGEoJ1RleHQnKTtcblxuICAgIC8qKiBMZXQgVGlueU1DRSBkbyB0aGUgaGVhdnkgbGlmdGluZyBmb3IgaW5zZXJ0aW5nIHRoYXQgY29udGVudCBpbnRvIHRoZSBlZGl0b3IuICovXG4gICAgZWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIGNvbnRlbnQpO1xuICB9XG59XG4iXX0=
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3JpY2gtdGV4dC9yaWNoLXRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFTaEUsSUFBTSxVQUFVLEdBQUc7SUFDakIsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzFELENBQUMsQ0FBQzs7QUFZRjtJQUEyQyx5Q0FBaUI7SUErQzFELCtCQUNVLE1BQWMsRUFDZCxlQUFnQyxFQUNOLE1BQWtCLEVBQzVDLElBQTZCO1FBSnZDLFlBTUUsaUJBQU8sU0FDUjtRQU5TLFlBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxx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Q1QsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsdUJBQXFCLEVBQXJCLENBQXFCLENBQUM7b0JBQ3BELEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO1FBbURHLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7eUNBRlQsTUFBTTtZQUNHLGVBQWUsVUFFMUIsVUFBVTtPQW5EZixxQkFBcUIsQ0FzTGpDO0lBQUQsNEJBQUM7Q0FBQSxBQXRMRCxDQUEyQyxpQkFBaUIsR0FzTDNEO1NBdExZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VDdXN0b21Db250cm9sIH0gZnJvbSAnLi4vY3VzdG9tLWNvbnRyb2wvYmFzZS1jdXN0b20tY29udHJvbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHVudGlsRGVzdHJveWVkIH0gZnJvbSAnbmd4LXRha2UtdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBDb3JlQ29uZmlnLCBEQVRPX0NPUkVfQ09ORklHIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGlzTmlsLCBpc1N0cmluZyB9IGZyb20gJy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgUmljaFRleHRTZXJ2aWNlIH0gZnJvbSAnLi9yaWNoLXRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBlbmRTY3JpcHQsIGFwcGVuZFN0eWxlIH0gZnJvbSAnLi4vaW50ZXJuYWwvaGVscGVycyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgdGlueW1jZTogYW55O1xuICAgIHRpbnlNQ0VQcmVJbml0OiBhbnk7XG4gIH1cbn1cblxuY29uc3QgZ2V0VGlueW1jZSA9ICgpID0+IHtcbiAgcmV0dXJuIHdpbmRvdyAmJiB3aW5kb3cudGlueW1jZSA/IHdpbmRvdy50aW55bWNlIDogbnVsbDtcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYXRvUmljaFRleHRdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRvUmljaFRleHREaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0b1JpY2hUZXh0RGlyZWN0aXZlIGV4dGVuZHMgQmFzZUN1c3RvbUNvbnRyb2wgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgcGx1Z2luczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKVxuICB0b29sYmFyOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KClcbiAgbWVudWJhcjogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsO1xuICBASW5wdXQoKVxuICBpbmxpbmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIGhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9jb21wbGV0ZU9wdGlvbnMgPSB7fTtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgaWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmVkaXRvci5zZXRNb2RlKHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgZm9yY2VQbGFpblRleHRQYXN0aW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb250OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZm9ybWF0ID0gJ2h0bWwnO1xuICBASW5wdXQoKSBpc09uZUxpbmUgPSBmYWxzZTtcblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlID0gJyc7XG4gIHByaXZhdGUgZWRpdG9yO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFBsdWdpbnMgPSAnbGluayBmdWxsc2NyZWVuIGltYWdlIGxpc3RzIHRhYmxlIGF1dG9jb21wbGV0ZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFRvb2xiYXIgPSBbXG4gICAgJ2ZvbnRmYW1pbHkgZm9udHNpemUgZm9yZWNvbG9yIGJhY2tjb2xvciBib2xkIGl0YWxpYyB1bmRlcmxpbmUgbGluaycsXG4gICAgJ2FsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0IGFsaWduanVzdGlmeSBvdXRkZW50IGluZGVudCB8IHRhYmxlIG51bWxpc3QgYnVsbGlzdCAgfCBpbWFnZSBmdWxsc2NyZWVuJ1xuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByaWNoVGV4dFNlcnZpY2U6IFJpY2hUZXh0U2VydmljZSxcbiAgICBASW5qZWN0KERBVE9fQ09SRV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDb3JlQ29uZmlnLFxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB3aW5kb3cudGlueU1DRVByZUluaXQgPSB7XG4gICAgICBzdWZmaXg6ICcnLFxuICAgICAgYmFzZTogdGhpcy5jb25maWcucGF0aHMucmljaFRleHQsXG4gICAgICBxdWVyeTogJydcbiAgICB9O1xuICAgIHRoaXMucmljaFRleHRTZXJ2aWNlXG4gICAgICAuZ2V0TGliKGFwcGVuZFNjcmlwdCwgYXBwZW5kU3R5bGUpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXQuY2FsbCh0aGlzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RWRpdG9yKF8sIGVkaXRvcikge1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiBlZGl0b3Iuc2V0Q29udGVudCh0aGlzLmluaXRpYWxWYWx1ZSkpO1xuXG4gICAgZnJvbUV2ZW50KGVkaXRvciwgJ3NldGNvbnRlbnQnKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCh7IGNvbnRlbnQsIGZvcm1hdCB9KSA9PiB7XG4gICAgICAgIGZvcm1hdCA9PT0gJ2h0bWwnICYmIGNvbnRlbnQgJiYgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25DaGFuZ2UoY29udGVudCkpO1xuICAgICAgfSk7XG5cbiAgICBmcm9tRXZlbnQoZWRpdG9yLCAnY2hhbmdlIGtleXVwIHVuZG8gcmVkbycpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vbkNoYW5nZShlZGl0b3IuZ2V0Q29udGVudCh7IGZvcm1hdDogdGhpcy5mb3JtYXQgfSkpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0T3B0aW9ucygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCxcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoIHx8IDYwMCxcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQgfHwgMzAwLFxuICAgICAgcmVzaXplOiAnYm90aCcsXG4gICAgICBicmFuZGluZzogZmFsc2UsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgZWxlbWVudHBhdGg6IGZhbHNlLFxuICAgICAgcmVhZG9ubHk6IHRoaXMuZGlzYWJsZWQsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMgfHwgdGhpcy5kZWZhdWx0UGx1Z2lucyxcbiAgICAgIHRvb2xiYXI6IGlzTmlsKHRoaXMudG9vbGJhcikgPyB0aGlzLmRlZmF1bHRUb29sYmFyIDogdGhpcy50b29sYmFyLFxuICAgICAgZm9udF9zaXplX2Zvcm1hdHM6ICc4cHggMTBweCAxMnB4IDE0cHggMThweCAyNHB4IDM2cHgnLFxuICAgICAgbWluX3dpZHRoOiA0ODAsXG4gICAgICBtZW51YmFyOiBmYWxzZSxcbiAgICAgIGF1dG9jb21wbGV0ZTogdGhpcy5hdXRvY29tcGxldGVPcHRpb25zLFxuICAgICAgc3VmZml4OiAnLm1pbicsXG4gICAgICBza2luOiAndGlueW1jZS01JyxcbiAgICAgIHNldHVwOiBlZGl0b3IgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICAgICAgZWRpdG9yLm9uKCdpbml0JywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0RWRpdG9yKGUsIGVkaXRvcik7XG4gICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEZvbnQpIHtcbiAgICAgICAgICAgIGVkaXRvci5lZGl0b3JDb21tYW5kcy5leGVjQ29tbWFuZCgnZm9udE5hbWUnLCBmYWxzZSwgdGhpcy5kZWZhdWx0Rm9udCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvKiogUHJldmVudCBmcm9tIGVudGVyIGEgbmV3IGxpbmUgaWYgd2Ugd2FudCBvbmx5IDEgbGluZSBlZGl0b3IgKi9cbiAgICAgICAgZWRpdG9yLm9uKCdrZXlkb3duJywgZSA9PiAhdGhpcy5pc09uZUxpbmUgfHwgZS5jb2RlICE9PSAnRW50ZXInKTtcblxuICAgICAgICBpZiAodGhpcy5mb3JjZVBsYWluVGV4dFBhc3RpbmcpIHtcbiAgICAgICAgICAvKiogTGlzdGVuIGZvciBwYXN0ZSBldmVudCwgYWRkIFwiUGFzdGUgYXMgcGxhaW4gdGV4dFwiIGNhbGxiYWNrICoqL1xuICAgICAgICAgIGVkaXRvci5vbigncGFzdGUnLCBlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJFZGl0b3JDb250ZW50U3R5bGluZyhlZGl0b3IsIGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29udGVudF9zdHlsZTogdGhpcy5pc09uZUxpbmVcbiAgICAgICAgPyBgXG4gICAgICAgIGh0bWwgeyBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgYm9keSB7XG4gICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICBjb2xvcjogcmdiKDU1LCA1NiwgNTgpO1xuICAgICAgICAgbWFyZ2luOiAwIDI1cHggMCAxMHB4O1xuICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBwIHsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9XG4gICAgICBgXG4gICAgICAgIDogJydcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLmRlZmF1bHRPcHRpb25zKCksXG4gICAgICAuLi50aGlzLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZ2V0VGlueW1jZSgpLmluaXQob3B0aW9ucykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5lZGl0b3Iub2ZmKCdwYXN0ZScpO1xuICAgICAgZ2V0VGlueW1jZSgpLnJlbW92ZSh0aGlzLmVkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdmFsdWUgfHwgdGhpcy5pbml0aWFsVmFsdWU7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5lZGl0b3IuaW5pdGlhbGl6ZWQgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnNldE1vZGUoaXNEaXNhYmxlZCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJFZGl0b3JDb250ZW50U3R5bGluZyhlZGl0b3IsIGV2ZW50KSB7XG4gICAgLyoqIFByZXZlbnQgZGVmYXVsdCBwYXN0ZSBiZWhhdmlvciovXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8qKiBDaGVjayBmb3IgY2xpcGJvYXJkIGRhdGEgaW4gdmFyaW91cyBwbGFjZXMgZm9yIGNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eS5cbiAgICAgKiBHZXQgdGhhdCBkYXRhIGFzIHRleHQuXG4gICAgICovXG4gICAgY29uc3QgY29udGVudCA9IChldmVudC5vcmlnaW5hbEV2ZW50IHx8IGV2ZW50KS5jbGlwYm9hcmREYXRhLmdldERhdGEoJ1RleHQnKTtcblxuICAgIC8qKiBMZXQgVGlueU1DRSBkbyB0aGUgaGVhdnkgbGlmdGluZyBmb3IgaW5zZXJ0aW5nIHRoYXQgY29udGVudCBpbnRvIHRoZSBlZGl0b3IuICovXG4gICAgZWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIGNvbnRlbnQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ /**
3
+ * @license
4
+ * Copyright Datorama. All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an Apache License 2.0 license that can be
7
+ * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
8
+ */
9
+ import { Inject, Injectable } from '@angular/core';
10
+ import { combineLatest } from 'rxjs';
11
+ import { HttpClient } from '@angular/common/http';
12
+ import { shareReplay, tap } from 'rxjs/operators';
13
+ import { DATO_CORE_CONFIG } from '../config';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/common/http";
16
+ import * as i2 from "../config";
17
+ var RichTextService = /** @class */ (function () {
18
+ function RichTextService(http, config) {
19
+ this.http = http;
20
+ this.config = config;
21
+ }
22
+ RichTextService.prototype.getLib = function (appendScriptFunc, appendStyleFunc) {
23
+ if (!this.richTextScript$) {
24
+ this.initLib(appendScriptFunc, appendStyleFunc);
25
+ }
26
+ return this.richTextScript$;
27
+ };
28
+ RichTextService.prototype.initLib = function (appendScriptFunc, appendStyleFunc) {
29
+ this.richTextScript$ = combineLatest([
30
+ this.http
31
+ .get(this.config.paths.richText + "/index.js", { responseType: 'text' })
32
+ .pipe(tap(function (lib) { return appendScriptFunc(lib, 'rich-text-editor'); })),
33
+ this.http
34
+ .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
35
+ .pipe(tap(function (style) { return appendStyleFunc(style, 'tinymce-autocomplete'); }))
36
+ ]).pipe(shareReplay(1));
37
+ };
38
+ RichTextService.ctorParameters = function () { return [
39
+ { type: HttpClient },
40
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
41
+ ]; };
42
+ RichTextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
43
+ RichTextService = __decorate([
44
+ Injectable({ providedIn: 'root' }),
45
+ __param(1, Inject(DATO_CORE_CONFIG)),
46
+ __metadata("design:paramtypes", [HttpClient, Object])
47
+ ], RichTextService);
48
+ return RichTextService;
49
+ }());
50
+ export { RichTextService };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9yaWNoLXRleHQvcmljaC10ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBR3pEO0lBR0UseUJBQW9CLElBQWdCLEVBQW9DLE1BQWtCO1FBQXRFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBb0MsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUFHLENBQUM7SUFFOUYsZ0NBQU0sR0FBTixVQUFPLGdCQUFnQixFQUFFLGVBQWU7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRU8saUNBQU8sR0FBZixVQUFnQixnQkFBZ0IsRUFBRSxlQUFlO1FBQy9DLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJO2lCQUNOLEdBQUcsQ0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLGNBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztpQkFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxFQUF6QyxDQUF5QyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLElBQUk7aUJBQ04sR0FBRyxDQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEscUNBQWtDLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7aUJBQzlGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxlQUFlLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEVBQTlDLENBQThDLENBQUMsQ0FBQztTQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7O2dCQWxCeUIsVUFBVTtnREFBRyxNQUFNLFNBQUMsZ0JBQWdCOzs7SUFIbkQsZUFBZTtRQUQzQixVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFJTSxXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO3lDQUFyQyxVQUFVO09BSHpCLGVBQWUsQ0FzQjNCOzBCQXBDRDtDQW9DQyxBQXRCRCxJQXNCQztTQXRCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb3JlQ29uZmlnLCBEQVRPX0NPUkVfQ09ORklHIH0gZnJvbSAnLi4vY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSaWNoVGV4dFNlcnZpY2Uge1xuICByaWNoVGV4dFNjcmlwdCQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBASW5qZWN0KERBVE9fQ09SRV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDb3JlQ29uZmlnKSB7fVxuXG4gIGdldExpYihhcHBlbmRTY3JpcHRGdW5jLCBhcHBlbmRTdHlsZUZ1bmMpIHtcbiAgICBpZiAoIXRoaXMucmljaFRleHRTY3JpcHQkKSB7XG4gICAgICB0aGlzLmluaXRMaWIoYXBwZW5kU2NyaXB0RnVuYywgYXBwZW5kU3R5bGVGdW5jKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmljaFRleHRTY3JpcHQkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0TGliKGFwcGVuZFNjcmlwdEZ1bmMsIGFwcGVuZFN0eWxlRnVuYykge1xuICAgIHRoaXMucmljaFRleHRTY3JpcHQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldChgJHt0aGlzLmNvbmZpZy5wYXRocy5yaWNoVGV4dH0vaW5kZXguanNgLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXG4gICAgICAgIC5waXBlKHRhcChsaWIgPT4gYXBwZW5kU2NyaXB0RnVuYyhsaWIsICdyaWNoLXRleHQtZWRpdG9yJykpKSxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0KGAke3RoaXMuY29uZmlnLnBhdGhzLnJpY2hUZXh0fS9wbHVnaW5zL2F1dG9jb21wbGV0ZS9wbHVnaW4uY3NzYCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KVxuICAgICAgICAucGlwZSh0YXAoc3R5bGUgPT4gYXBwZW5kU3R5bGVGdW5jKHN0eWxlLCAndGlueW1jZS1hdXRvY29tcGxldGUnKSkpXG4gICAgXSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cbn1cbiJdfQ==