@worktile/theia 15.0.15 → 15.0.17

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.
@@ -25,21 +25,23 @@ export class TheContextService {
25
25
  }
26
26
  initialize(options) {
27
27
  this.options = options;
28
- this.containerElement =
29
- this.options.nativeElement.closest(this.options.theOptions?.scrollContainer) ||
30
- this.options.nativeElement.querySelector(this.options.theOptions?.scrollContainer);
31
28
  this.rebindContainerScroll();
32
29
  this.bindContainerResize();
33
30
  this.bindTheEditorResize();
34
31
  this.bindWindowResize();
35
32
  }
33
+ getScrollContainer() {
34
+ return (this.options.nativeElement.closest(this.options.theOptions?.scrollContainer) ||
35
+ this.options.nativeElement.querySelector(this.options.theOptions?.scrollContainer));
36
+ }
36
37
  rebindContainerScroll() {
37
38
  this.scrollSubscription?.unsubscribe();
38
39
  if (this.options.theOptions?.scrollContainer) {
39
- if (this.containerElement) {
40
+ const containerElement = this.getScrollContainer();
41
+ if (containerElement) {
40
42
  this.ngZone.runOutsideAngular(() => {
41
43
  let previousContainerScroll = { x: 0, y: 0 };
42
- this.scrollSubscription = fromEvent(this.containerElement, 'scroll').subscribe(event => {
44
+ this.scrollSubscription = fromEvent(containerElement, 'scroll').subscribe(event => {
43
45
  const entires = { event, direction: ScrollDirection.Y };
44
46
  const target = event.target;
45
47
  const [x, y] = [target.scrollLeft, target.scrollTop];
@@ -57,8 +59,9 @@ export class TheContextService {
57
59
  }
58
60
  }
59
61
  bindContainerResize() {
60
- if (this.containerElement) {
61
- this.containerResizeObserver = this.elementResize(this.containerElement, this.containerResized$);
62
+ const containerElement = this.getScrollContainer();
63
+ if (containerElement) {
64
+ this.containerResizeObserver = this.elementResize(containerElement, this.containerResized$);
62
65
  }
63
66
  }
64
67
  bindTheEditorResize() {
@@ -129,4 +132,4 @@ TheContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
129
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TheContextService, decorators: [{
130
133
  type: Injectable
131
134
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBYSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFzQzFCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbkMxQixhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNekMsbUJBQWMsR0FBa0MsRUFBRSxDQUFDO1FBRW5ELHNCQUFpQixHQUFzQjtZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztRQVFLLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFnRCxDQUFDO1FBRWpGLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFMUMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBaUYsQ0FBQztRQVNqSCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJ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QUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OzhHQXBLUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaGVPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lZGl0b3InO1xuaW1wb3J0IHsgRm9udFNpemVzLCBNYXJrVHlwZXMsIFNjcm9sbERpcmVjdGlvbiB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBUaGVDb250ZXh0T3B0aW9ucyB7XG4gICAgdGhlT3B0aW9uczogVGhlT3B0aW9ucztcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIHdpZHRoPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUGFpbnRGb3JtYXRTdGF0dXMge1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgIG1hcmtzOiB7IFtrZXkgaW4gTWFya1R5cGVzXT86IGFueSB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlQ29udGV4dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgc2Nyb2xsU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnM6IFRoZUNvbnRleHRPcHRpb25zO1xuXG4gICAgcHJpdmF0ZSBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIHB1YmxpYyB1cGxvYWRpbmdGaWxlczogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWludEZvcm1hdFN0YXR1czogUGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWFya3M6IHt9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbk1vdXNlVXAkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VNb3ZlJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlRG93biQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgY29udGFpbmVyU2Nyb2xsZWQkID0gbmV3IFN1YmplY3Q8eyBldmVudDogRXZlbnQ7IGRpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uIH0+KCk7XG5cbiAgICBwdWJsaWMgdXBsb2FkaW5nU3RhdHVzJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwdWJsaWMgY29udGFpbmVyUmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHB1YmxpYyB0aGVFZGl0b3JSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHVibGljIHdpbmRvd1Jlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwcml2YXRlIGNvbnRhaW5lclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHByaXZhdGUgdGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSB3aW5kb3dSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZXVwYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTW92ZSQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vtb3ZlYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vkb3duYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQgPVxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCh0aGlzLm9wdGlvbnMudGhlT3B0aW9ucz8uc2Nyb2xsQ29udGFpbmVyKSB8fFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLm9wdGlvbnMudGhlT3B0aW9ucz8uc2Nyb2xsQ29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5yZWJpbmRDb250YWluZXJTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyUmVzaXplKCk7XG4gICAgICAgIHRoaXMuYmluZFRoZUVkaXRvclJlc2l6ZSgpO1xuICAgICAgICB0aGlzLmJpbmRXaW5kb3dSZXNpemUoKTtcbiAgICB9XG5cbiAgICByZWJpbmRDb250YWluZXJTY3JvbGwoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnRoZU9wdGlvbnM/LnNjcm9sbENvbnRhaW5lcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzQ29udGFpbmVyU2Nyb2xsID0geyB4OiAwLCB5OiAwIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PEV2ZW50Pih0aGlzLmNvbnRhaW5lckVsZW1lbnQsICdzY3JvbGwnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50aXJlcyA9IHsgZXZlbnQsIGRpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uLlkgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IFt0YXJnZXQuc2Nyb2xsTGVmdCwgdGFyZ2V0LnNjcm9sbFRvcF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCAhPT0gcHJldmlvdXNDb250YWluZXJTY3JvbGwueCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZXMuZGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLlg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeSAhPT0gcHJldmlvdXNDb250YWluZXJTY3JvbGwueSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZXMuZGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLlk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeCwgeSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJTY3JvbGxlZCQubmV4dChlbnRpcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kQ29udGFpbmVyUmVzaXplKCkge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZU9ic2VydmVyID0gdGhpcy5lbGVtZW50UmVzaXplKHRoaXMuY29udGFpbmVyRWxlbWVudCwgdGhpcy5jb250YWluZXJSZXNpemVkJCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kVGhlRWRpdG9yUmVzaXplKCkge1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZU9ic2VydmVyID0gdGhpcy5lbGVtZW50UmVzaXplKHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LCB0aGlzLnRoZUVkaXRvclJlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBiaW5kV2luZG93UmVzaXplKCkge1xuICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZU9ic2VydmVyID0gdGhpcy5lbGVtZW50UmVzaXplKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgdGhpcy53aW5kb3dSZXNpemVkJCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVzaXplKFxuICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgc3ViamVjdDogU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT5cbiAgICApIHtcbiAgICAgICAgbGV0IHByZXZpb3VzQ29udGFpbmVyUmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudGlyZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJlY3QgPSBlbnRpcmVzWzBdLmNvbnRlbnRSZWN0O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBlbnRyeTogZW50aXJlc1swXSwgd2lkdGhDaGFuZ2VkOiBmYWxzZSwgaGVpZ2h0Q2hhbmdlZDogZmFsc2UgfTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UmVjdC53aWR0aCAhPT0gcHJldmlvdXNDb250YWluZXJSZWN0LndpZHRoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LndpZHRoQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFJlY3QuaGVpZ2h0ICE9PSBwcmV2aW91c0NvbnRhaW5lclJlY3QuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmhlaWdodENoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXJSZWN0ID0gY3VycmVudFJlY3Q7XG4gICAgICAgICAgICBzdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiByZXNpemVPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMud2lkdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudENoaWxkID0gdGhpcy5nZXRGaXJzdEVsZW1lbnRDaGlsZCgpO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLndpZHRoID0gZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGhlT3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aGVPcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZWZhdWx0Rm9udFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudGhlT3B0aW9ucz8uZm9udFNpemUgfHwgRm9udFNpemVzLmZvbnRTaXplMTQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVkaXRhYmxlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aGUtZWRpdG9yLXR5cG8nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoKSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IHRoaXMuZ2V0RWRpdGFibGVFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiBlZGl0YWJsZUVsZW1lbnQ/LmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIGFkZFVwbG9hZGluZ0ZpbGVzKGZpbGU6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfSkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLnB1c2goZmlsZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVXBsb2FkRmlsZShmaWxlOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIH0pIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdGaWxlcy5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0udXJsID09PSBmaWxlLnVybCksXG4gICAgICAgICAgICAxXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nU3RhdHVzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy50aGVFZGl0b3JSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplZCQ/LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBYSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFvQzFCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakMxQixhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsbUJBQWMsR0FBa0MsRUFBRSxDQUFDO1FBRW5ELHNCQUFpQixHQUFzQjtZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztRQVFLLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFnRCxDQUFDO1FBRWpGLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFMUMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBaUYsQ0FBQztRQVNqSCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJ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RSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs4R0F4S1EsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGhlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRpdG9yJztcbmltcG9ydCB7IEZvbnRTaXplcywgTWFya1R5cGVzLCBTY3JvbGxEaXJlY3Rpb24gfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlQ29udGV4dE9wdGlvbnMge1xuICAgIHRoZU9wdGlvbnM6IFRoZU9wdGlvbnM7XG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbiAgICB3aWR0aD86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFBhaW50Rm9ybWF0U3RhdHVzIHtcbiAgICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgICBtYXJrczogeyBba2V5IGluIE1hcmtUeXBlc10/OiBhbnkgfTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZUNvbnRleHRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucztcblxuICAgIHB1YmxpYyB1cGxvYWRpbmdGaWxlczogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWludEZvcm1hdFN0YXR1czogUGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWFya3M6IHt9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbk1vdXNlVXAkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VNb3ZlJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlRG93biQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgY29udGFpbmVyU2Nyb2xsZWQkID0gbmV3IFN1YmplY3Q8eyBldmVudDogRXZlbnQ7IGRpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uIH0+KCk7XG5cbiAgICBwdWJsaWMgdXBsb2FkaW5nU3RhdHVzJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwdWJsaWMgY29udGFpbmVyUmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHB1YmxpYyB0aGVFZGl0b3JSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHVibGljIHdpbmRvd1Jlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwcml2YXRlIGNvbnRhaW5lclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHByaXZhdGUgdGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSB3aW5kb3dSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZXVwYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTW92ZSQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vtb3ZlYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vkb3duYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlYmluZENvbnRhaW5lclNjcm9sbCgpO1xuICAgICAgICB0aGlzLmJpbmRDb250YWluZXJSZXNpemUoKTtcbiAgICAgICAgdGhpcy5iaW5kVGhlRWRpdG9yUmVzaXplKCk7XG4gICAgICAgIHRoaXMuYmluZFdpbmRvd1Jlc2l6ZSgpO1xuICAgIH1cblxuICAgIGdldFNjcm9sbENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5jbG9zZXN0KHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpIHx8XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmViaW5kQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeDogMCwgeTogMCB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxFdmVudD4oY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpcmVzID0geyBldmVudCwgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24uWSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3gsIHldID0gW3RhcmdldC5zY3JvbGxMZWZ0LCB0YXJnZXQuc2Nyb2xsVG9wXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC54KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29udGFpbmVyU2Nyb2xsID0geyB4LCB5IH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJC5uZXh0KGVudGlyZXMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRDb250YWluZXJSZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlciA9IHRoaXMuZWxlbWVudFJlc2l6ZShjb250YWluZXJFbGVtZW50LCB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRUaGVFZGl0b3JSZXNpemUoKSB7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUodGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGhlRWRpdG9yUmVzaXplZCQpO1xuICAgIH1cblxuICAgIGJpbmRXaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB0aGlzLndpbmRvd1Jlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZXNpemUoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBzdWJqZWN0OiBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PlxuICAgICkge1xuICAgICAgICBsZXQgcHJldmlvdXNDb250YWluZXJSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50aXJlcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmVjdCA9IGVudGlyZXNbMF0uY29udGVudFJlY3Q7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGVudHJ5OiBlbnRpcmVzWzBdLCB3aWR0aENoYW5nZWQ6IGZhbHNlLCBoZWlnaHRDaGFuZ2VkOiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRSZWN0LndpZHRoICE9PSBwcmV2aW91c0NvbnRhaW5lclJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQud2lkdGhDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50UmVjdC5oZWlnaHQgIT09IHByZXZpb3VzQ29udGFpbmVyUmVjdC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaGVpZ2h0Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lclJlY3QgPSBjdXJyZW50UmVjdDtcbiAgICAgICAgICAgIHN1YmplY3QubmV4dChyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIHJlc2l6ZU9ic2VydmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy53aWR0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50Q2hpbGQgPSB0aGlzLmdldEZpcnN0RWxlbWVudENoaWxkKCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMud2lkdGggPSBmaXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRoZU9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRGb250U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5mb250U2l6ZSB8fCBGb250U2l6ZXMuZm9udFNpemUxNDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RWRpdGFibGVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1lZGl0b3ItdHlwbycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaXJzdEVsZW1lbnRDaGlsZCgpIHtcbiAgICAgICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5nZXRFZGl0YWJsZUVsZW1lbnQoKTtcbiAgICAgICAgcmV0dXJuIGVkaXRhYmxlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgYWRkVXBsb2FkaW5nRmlsZXMoZmlsZTogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9KSB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMucHVzaChmaWxlKTtcbiAgICB9XG5cbiAgICByZW1vdmVVcGxvYWRGaWxlKGZpbGU6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfSkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLnNwbGljZShcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS51cmwgPT09IGZpbGUudXJsKSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdGF0dXMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyU2Nyb2xsZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -3161,24 +3161,26 @@ class TheContextService {
3161
3161
  });
3162
3162
  }
3163
3163
  initialize(options) {
3164
- var _a, _b;
3165
3164
  this.options = options;
3166
- this.containerElement =
3167
- this.options.nativeElement.closest((_a = this.options.theOptions) === null || _a === void 0 ? void 0 : _a.scrollContainer) ||
3168
- this.options.nativeElement.querySelector((_b = this.options.theOptions) === null || _b === void 0 ? void 0 : _b.scrollContainer);
3169
3165
  this.rebindContainerScroll();
3170
3166
  this.bindContainerResize();
3171
3167
  this.bindTheEditorResize();
3172
3168
  this.bindWindowResize();
3173
3169
  }
3170
+ getScrollContainer() {
3171
+ var _a, _b;
3172
+ return (this.options.nativeElement.closest((_a = this.options.theOptions) === null || _a === void 0 ? void 0 : _a.scrollContainer) ||
3173
+ this.options.nativeElement.querySelector((_b = this.options.theOptions) === null || _b === void 0 ? void 0 : _b.scrollContainer));
3174
+ }
3174
3175
  rebindContainerScroll() {
3175
3176
  var _a, _b;
3176
3177
  (_a = this.scrollSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
3177
3178
  if ((_b = this.options.theOptions) === null || _b === void 0 ? void 0 : _b.scrollContainer) {
3178
- if (this.containerElement) {
3179
+ const containerElement = this.getScrollContainer();
3180
+ if (containerElement) {
3179
3181
  this.ngZone.runOutsideAngular(() => {
3180
3182
  let previousContainerScroll = { x: 0, y: 0 };
3181
- this.scrollSubscription = fromEvent(this.containerElement, 'scroll').subscribe(event => {
3183
+ this.scrollSubscription = fromEvent(containerElement, 'scroll').subscribe(event => {
3182
3184
  const entires = { event, direction: ScrollDirection.Y };
3183
3185
  const target = event.target;
3184
3186
  const [x, y] = [target.scrollLeft, target.scrollTop];
@@ -3196,8 +3198,9 @@ class TheContextService {
3196
3198
  }
3197
3199
  }
3198
3200
  bindContainerResize() {
3199
- if (this.containerElement) {
3200
- this.containerResizeObserver = this.elementResize(this.containerElement, this.containerResized$);
3201
+ const containerElement = this.getScrollContainer();
3202
+ if (containerElement) {
3203
+ this.containerResizeObserver = this.elementResize(containerElement, this.containerResized$);
3201
3204
  }
3202
3205
  }
3203
3206
  bindTheEditorResize() {
@@ -6212,27 +6215,9 @@ const TableEditor = {
6212
6215
  }
6213
6216
  return null;
6214
6217
  },
6215
- isAlignActive(editor, alignment) {
6216
- const cells = TableEditor.getSelectedCells(editor);
6217
- if (cells) {
6218
- const lastCell = cells[cells.length - 1];
6219
- const tableNode = getAboveByType(editor, ElementKinds.table);
6220
- const cellPath = [...tableNode[1], lastCell.row, lastCell.col];
6221
- const cell = Node.get(editor, cellPath);
6222
- const { align } = cell;
6223
- if (!align && alignment === Alignment.left) {
6224
- return true;
6225
- }
6226
- return align === alignment;
6227
- }
6228
- return null;
6229
- },
6230
6218
  setAlign(editor, alignment) {
6231
- return TableEditor.handleSelectedCells(editor, (cellPath, cellRange) => {
6219
+ return TableEditor.handleSelectedCells(editor, (_, cellRange) => {
6232
6220
  Transforms.setNodes(editor, { align: alignment }, {
6233
- at: cellPath
6234
- });
6235
- Transforms.setNodes(editor, { align: undefined }, {
6236
6221
  at: cellRange,
6237
6222
  match: (n) => ALIGN_BLOCK_TYPES.includes(n.type)
6238
6223
  });
@@ -6396,10 +6381,6 @@ const AlignEditor = {
6396
6381
  if (!(editor === null || editor === void 0 ? void 0 : editor.selection)) {
6397
6382
  return;
6398
6383
  }
6399
- const tableCellAlign = TableEditor.isAlignActive(editor, alignment);
6400
- if (tableCellAlign !== null) {
6401
- return tableCellAlign;
6402
- }
6403
6384
  const blockElement = anchorBlock(editor);
6404
6385
  if (blockElement) {
6405
6386
  const { align } = blockElement;
@@ -7785,7 +7766,6 @@ const withMoveSelection = (editor) => {
7785
7766
  timer(81).subscribe(() => {
7786
7767
  Transforms.select(editor, changedRange);
7787
7768
  });
7788
- return;
7789
7769
  }
7790
7770
  }
7791
7771
  onClick(event);
@@ -14908,7 +14888,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
14908
14888
  }], ctorParameters: function () { return [{ type: i1$1.ThyPopover }, { type: i2$1.Overlay }]; } });
14909
14889
 
14910
14890
  const withTable = (editor) => {
14911
- const { deleteBackward, deleteForward, onKeydown, setFragmentData, insertData, normalizeNode, isBlockCard, renderElement, deleteCutData, isContainer, onChange } = editor;
14891
+ const { deleteBackward, deleteForward, onKeydown, setFragmentData, insertData, normalizeNode, isBlockCard, renderElement, deleteCutData, isContainer, onChange, onClick } = editor;
14912
14892
  editor.deleteBackward = unit => {
14913
14893
  const opts = new TableOptions();
14914
14894
  if (!isSelectionInTable(opts, editor)) {
@@ -14941,6 +14921,24 @@ const withTable = (editor) => {
14941
14921
  }
14942
14922
  deleteForward(unit);
14943
14923
  };
14924
+ editor.onClick = (event) => {
14925
+ if (event.detail === 3) {
14926
+ const isMergedCell = isSelectedCellMerged(editor);
14927
+ const domSelection = window.getSelection();
14928
+ if (domSelection && !domSelection.isCollapsed && editor.selection) {
14929
+ const slateSelection = AngularEditor.toSlateRange(editor, domSelection);
14930
+ const opts = new TableOptions();
14931
+ const startPosition = TablePosition.create(opts, editor, slateSelection.anchor.path);
14932
+ const endPosition = TablePosition.create(opts, editor, slateSelection.focus.path);
14933
+ if (isMergedCell && startPosition.cell !== endPosition.cell) {
14934
+ timer(81).subscribe(() => {
14935
+ Transforms.select(editor, slateSelection.anchor.path);
14936
+ });
14937
+ }
14938
+ }
14939
+ }
14940
+ onClick(event);
14941
+ };
14944
14942
  editor.onKeydown = (event) => {
14945
14943
  const opts = new TableOptions();
14946
14944
  const isMoveUp = hotkeys.isMoveUp(event);