@bizdoc/core 2.6.2 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,7 +34,7 @@ export class ReportViewerComponent {
34
34
  if (changes['report']) {
35
35
  this._destroy.next();
36
36
  this._reportRef && this._reportRef._destroy();
37
- this._reportRef = new ReportRef(this.report, this.args, this._hub, this._dim());
37
+ this._reportRef = new ReportRef(this.report, this.args, this._hub, this._http, this._dim());
38
38
  if (this.report.template)
39
39
  this._createView();
40
40
  else
@@ -46,10 +46,10 @@ export class ReportViewerComponent {
46
46
  if (this.progress > 0)
47
47
  this.progress = i.progress;
48
48
  });
49
- this._resizing.pipe(debounceTime(150)).subscribe(() => this._reportRef._resize.next(this._dim()));
49
+ this._resizing.pipe(debounceTime(150)).subscribe(() => this._reportRef._resize$.next(this._dim()));
50
50
  }
51
51
  if (changes['args'])
52
- this._reportRef._args.next(this.args);
52
+ this._reportRef._args$.next(this.args);
53
53
  }
54
54
  /** */
55
55
  _createView() {
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
153
153
  type: HostListener,
154
154
  args: ['window:resize']
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFJaEYsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFNMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU9sRSw0QkFBNEI7QUFDNUIsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFRRCx3QkFBd0I7SUFDeEIsWUFDVSxLQUFpQixFQUNqQixHQUFrQixFQUNsQixTQUFtQixFQUNuQixJQUFnQixFQUNoQixVQUE0QixFQUM1QixRQUF3QixFQUN4QixnQkFBZ0Q7UUFOaEQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsU0FBSSxHQUFKLElB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LENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYSxDQUFBLENBQUM7b0JBQ3BGLElBQUk7aUJBQ1E7YUFDZjtTQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTNJVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw4T0FPTyxnQkFBZ0IsbUVBQzVDLGtCQUFrQixxRUM5Qi9CLDBOQUVBOzsyRkRvQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHNCQUFzQjtvUUFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLcUQsYUFBYTtzQkFBdkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUIsS0FBSztzQkFBbkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBaUQ3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIEluamVjdG9yLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdvcmtib29rLCBXb3Jrc2hlZXQsIFJvdywgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFJlcG9ydCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUGFyYW1NYXAgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYsIEV4cG9ydEV2ZW50QXJncyB9IGZyb20gJy4vcmVwb3J0LXJlZic7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyJztcclxuaW1wb3J0IHsgVGFibGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS12aWV3LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1yZXBvcnQtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwb3J0LXZpZXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiByZXBvcnR2aWV3ZXIgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSByZXBvcnQhOiBSZXBvcnQ7XHJcbiAgQElucHV0KCkgYXJnczogUGFyYW1NYXA7XHJcbiAgcHJvZ3Jlc3MgPSAtMTtcclxuICBwdWJsaWMgZ2V0IHJlcG9ydFJlZigpOiBSZXBvcnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcG9ydFJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndmMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoVGFibGVWaWV3Q29tcG9uZW50KSB0YWJsZTogVGFibGVWaWV3Q29tcG9uZW50O1xyXG4gIHByaXZhdGUgX2RhdGE6IGFueVtdO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIHByaXZhdGUgX3JlcG9ydFJlZjogUmVwb3J0UmVmO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6aW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIHJlcG9ydHZpZXdlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9odWI6IEh1YlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZhY3RvcnlSZXNvbHZlcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydyZXBvcnQnXSkge1xyXG4gICAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmICYmIHRoaXMuX3JlcG9ydFJlZi5fZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgPSBuZXcgUmVwb3J0UmVmKHRoaXMucmVwb3J0LCB0aGlzLmFyZ3MsIHRoaXMuX2h1YiwgdGhpcy5fZGltKCkpO1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnQudGVtcGxhdGUpXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlVmlldygpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLnRhYmxlO1xyXG4gICAgICAvLyBsaXN0ZW4gdG8gcHJvZ3Jlc3NcclxuICAgICAgdGhpcy5faHViLnJlcG9ydFByb2dyZXNzJC5cclxuICAgICAgICBwaXBlKGZpbHRlcihlID0+XHJcbiAgICAgICAgICBlLm5hbWUgPT09IHRoaXMucmVwb3J0Lm5hbWUpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMucHJvZ3Jlc3MgPiAwKSB0aGlzLnByb2dyZXNzID0gaS5wcm9ncmVzcztcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5fcmVzaXppbmcucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlcG9ydFJlZi5fcmVzaXplLm5leHQodGhpcy5fZGltKCkpKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhcmdzJ10pXHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZi5fYXJncy5uZXh0KHRoaXMuYXJncyk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZVZpZXcoKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIuY29tcG9uZW50KHRoaXMucmVwb3J0LnRlbXBsYXRlKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJlcG9ydFJlZiwgdXNlVmFsdWU6IHRoaXMuX3JlcG9ydFJlZiB9XSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG5cclxuICAgIHRoaXMuX2luc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlcG9ydENvbXBvbmVudDxhbnksIGFueT47XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLm5leHQoe30pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaW0oKTogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gKHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4geyB3aWR0aDogTWF0aC5mbG9vcih3aWR0aCAtIDIpLCBoZWlnaHQ6IE1hdGguZmxvb3IoaGVpZ2h0KSB9O1xyXG4gIH1cclxuICAvKiogKi9cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PGFueVtdPihgL2FwaS9yZXBvcnQvJHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5yZXBvcnQubmFtZSl9YCwgdGhpcy5hcmdzKS5cclxuICAgICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlLm9uQmluZChyLCB0aGlzLmFyZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAsIGNvbXBsZXRlOiAoKSA9PlxyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gLTFcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgYXJncyA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMucmVwb3J0LmZpZWxkcy5maWx0ZXIoYyA9PiBjLmZsYWdzPy5pbmRleE9mKCdLZXknKSA+IC0xKTtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgdGhyb3cgYHJlcG9ydCAke3RoaXMucmVwb3J0Lm5hbWV9IGl0ZW0gbW9kZWwgbWlzc2luZyBrZXkgYXR0cmlidXRlYDtcclxuICAgIGtleXMuZm9yRWFjaChmID0+IGFyZ3NbZi5uYW1lXSA9IGl0ZW1bZi5uYW1lXSk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5faHR0cC5wdXQ8YW55W10+KGAvYXBpL3JlcG9ydC8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnJlcG9ydC5uYW1lKX1gLCBhcmdzKSk7XHJcbiAgfVxyXG5cclxuICAvKiogKi9cclxuICBleHBvcnRFeGNlbCgpIHtcclxuICAgIGlmICh0aGlzLl9pbnN0YW5jZS5vbkV4cG9ydCkge1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZS5vbkV4cG9ydCh0aGlzLl9kYXRhLm1hcChyID0+IHsgcmV0dXJuIHsgLi4uciB9IH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgIGluZGV4OiAxLFxyXG4gICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogYy5sYWJlbCB8fCBjLm5hbWUsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWUsXHJcbiAgICAgICAgICBoQWxpZ246IGMuY29udHJvbFR5cGUgPT09ICdudW1iZXInID8gJ3JpZ2h0JyA6ICdnZW5lcmFsJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSlcclxuICAgIH1dIGFzIFJvd1tdO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChyLCBpKSA9PiByb3dzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgY2VsbHM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChjLCBqKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogcltjLm5hbWVdLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgaEFsaWduOiBjLmNvbnRyb2xUeXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnZ2VuZXJhbCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfSBhcyBSb3cpKTtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIFttb2RlXT1cInByb2dyZXNzID09PSAwID8gJ3F1ZXJ5JyA6ICdidWZmZXInXCIgW3ZhbHVlXT1wcm9ncmVzcyBbYnVmZmVyVmFsdWVdPTAgW3N0eWxlLnZpc2liaWxpdHldPVwicHJvZ3Jlc3MgPiAtMSA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFJaEYsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFNMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU9sRSw0QkFBNEI7QUFDNUIsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFRRCx3QkFBd0I7SUFDeEIsWUFDVSxLQUFpQixFQUNqQixHQUFrQixFQUNsQixTQUFtQixFQUNuQixJQUFnQixFQUNoQixVQUE0QixFQUM1QixRQUF3QixFQUN4QixnQkFBZ0Q7UUFOaEQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsU0FBSSxHQUFKLElB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LENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFhLENBQUEsQ0FBQztvQkFDcEYsSUFBSTtpQkFDUTthQUNmO1NBQ0YsRUFDRCxNQUFNLENBQ1AsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBM0lVLHFCQUFxQjtrR0FBckIscUJBQXFCLDhPQU9PLGdCQUFnQixtRUFDNUMsa0JBQWtCLHFFQzlCL0IsME5BRUE7OzJGRG9CYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usc0JBQXNCO29RQU12QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUtxRCxhQUFhO3NCQUF2RSxTQUFTO3VCQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUMxQixLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFpRDdCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0b3IsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgUmVwb3J0IH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiwgRXhwb3J0RXZlbnRBcmdzIH0gZnJvbSAnLi9yZXBvcnQtcmVmJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXInO1xyXG5pbXBvcnQgeyBUYWJsZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLXZpZXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlcG9ydC12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIHJlcG9ydHZpZXdlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlcG9ydCE6IFJlcG9ydDtcclxuICBASW5wdXQoKSBhcmdzOiBQYXJhbU1hcDtcclxuICBwcm9ncmVzcyA9IC0xO1xyXG4gIHB1YmxpYyBnZXQgcmVwb3J0UmVmKCk6IFJlcG9ydFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVwb3J0UmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd2YycsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZChUYWJsZVZpZXdDb21wb25lbnQpIHRhYmxlOiBUYWJsZVZpZXdDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBfZGF0YTogYW55W107XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IFJlcG9ydENvbXBvbmVudDxhbnksIGFueT47XHJcbiAgcHJpdmF0ZSBfcmVwb3J0UmVmOiBSZXBvcnRSZWY7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXppbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogcmVwb3J0dmlld2VyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3JlcG9ydCddKSB7XHJcbiAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgJiYgdGhpcy5fcmVwb3J0UmVmLl9kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZiA9IG5ldyBSZXBvcnRSZWYodGhpcy5yZXBvcnQsIHRoaXMuYXJncywgdGhpcy5faHViLHRoaXMuX2h0dHAsIHRoaXMuX2RpbSgpKTtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0LnRlbXBsYXRlKVxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZVZpZXcoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX2luc3RhbmNlID0gdGhpcy50YWJsZTtcclxuICAgICAgLy8gbGlzdGVuIHRvIHByb2dyZXNzXHJcbiAgICAgIHRoaXMuX2h1Yi5yZXBvcnRQcm9ncmVzcyQuXHJcbiAgICAgICAgcGlwZShmaWx0ZXIoZSA9PlxyXG4gICAgICAgICAgZS5uYW1lID09PSB0aGlzLnJlcG9ydC5uYW1lKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MCkpLlxyXG4gICAgICAgIHN1YnNjcmliZShpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnByb2dyZXNzID4gMCkgdGhpcy5wcm9ncmVzcyA9IGkucHJvZ3Jlc3M7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX3Jlc2l6aW5nLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXBvcnRSZWYuX3Jlc2l6ZSQubmV4dCh0aGlzLl9kaW0oKSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2FyZ3MnXSlcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmLl9hcmdzJC5uZXh0KHRoaXMuYXJncyk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZVZpZXcoKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIuY29tcG9uZW50KHRoaXMucmVwb3J0LnRlbXBsYXRlKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJlcG9ydFJlZiwgdXNlVmFsdWU6IHRoaXMuX3JlcG9ydFJlZiB9XSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG5cclxuICAgIHRoaXMuX2luc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlcG9ydENvbXBvbmVudDxhbnksIGFueT47XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLm5leHQoe30pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaW0oKTogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gKHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4geyB3aWR0aDogTWF0aC5mbG9vcih3aWR0aCAtIDIpLCBoZWlnaHQ6IE1hdGguZmxvb3IoaGVpZ2h0KSB9O1xyXG4gIH1cclxuICAvKiogKi9cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PGFueVtdPihgL2FwaS9yZXBvcnQvJHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5yZXBvcnQubmFtZSl9YCwgdGhpcy5hcmdzKS5cclxuICAgICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlLm9uQmluZChyLCB0aGlzLmFyZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAsIGNvbXBsZXRlOiAoKSA9PlxyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gLTFcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgYXJncyA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMucmVwb3J0LmZpZWxkcy5maWx0ZXIoYyA9PiBjLmZsYWdzPy5pbmRleE9mKCdLZXknKSA+IC0xKTtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgdGhyb3cgYHJlcG9ydCAke3RoaXMucmVwb3J0Lm5hbWV9IGl0ZW0gbW9kZWwgbWlzc2luZyBrZXkgYXR0cmlidXRlYDtcclxuICAgIGtleXMuZm9yRWFjaChmID0+IGFyZ3NbZi5uYW1lXSA9IGl0ZW1bZi5uYW1lXSk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5faHR0cC5wdXQ8YW55W10+KGAvYXBpL3JlcG9ydC8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnJlcG9ydC5uYW1lKX1gLCBhcmdzKSk7XHJcbiAgfVxyXG5cclxuICAvKiogKi9cclxuICBleHBvcnRFeGNlbCgpIHtcclxuICAgIGlmICh0aGlzLl9pbnN0YW5jZS5vbkV4cG9ydCkge1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZS5vbkV4cG9ydCh0aGlzLl9kYXRhLm1hcChyID0+IHsgcmV0dXJuIHsgLi4uciB9IH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgIGluZGV4OiAxLFxyXG4gICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogYy5sYWJlbCB8fCBjLm5hbWUsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWUsXHJcbiAgICAgICAgICBoQWxpZ246IGMuY29udHJvbFR5cGUgPT09ICdudW1iZXInID8gJ3JpZ2h0JyA6ICdnZW5lcmFsJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSlcclxuICAgIH1dIGFzIFJvd1tdO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChyLCBpKSA9PiByb3dzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgY2VsbHM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChjLCBqKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogcltjLm5hbWVdLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgaEFsaWduOiBjLmNvbnRyb2xUeXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnZ2VuZXJhbCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfSBhcyBSb3cpKTtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIFttb2RlXT1cInByb2dyZXNzID09PSAwID8gJ3F1ZXJ5JyA6ICdidWZmZXInXCIgW3ZhbHVlXT1wcm9ncmVzcyBbYnVmZmVyVmFsdWVdPTAgW3N0eWxlLnZpc2liaWxpdHldPVwicHJvZ3Jlc3MgPiAtMSA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -79,7 +79,7 @@ import * as i6$1 from '@angular/material/divider';
79
79
  import * as i10$1 from '@angular/material/menu';
80
80
  import { MatMenuModule } from '@angular/material/menu';
81
81
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
82
- import * as i5$4 from '@angular/cdk/layout';
82
+ import * as i7$4 from '@angular/cdk/layout';
83
83
  import { LayoutModule, Breakpoints } from '@angular/cdk/layout';
84
84
  import * as i11$1 from '@angular/material/expansion';
85
85
  import { MatExpansionModule } from '@angular/material/expansion';
@@ -89,7 +89,7 @@ import * as i6$2 from '@angular/material/sort';
89
89
  import { MatSortModule, MatSort } from '@angular/material/sort';
90
90
  import * as i7$2 from '@angular/material/paginator';
91
91
  import { MatPaginatorIntl, MatPaginatorModule, MatPaginator } from '@angular/material/paginator';
92
- import * as i7$4 from '@angular/material/tabs';
92
+ import * as i7$5 from '@angular/material/tabs';
93
93
  import { MatTabsModule } from '@angular/material/tabs';
94
94
  import * as i2$a from '@angular/material/bottom-sheet';
95
95
  import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
@@ -113,7 +113,7 @@ import * as i2$b from '@angular/material/radio';
113
113
  import { MatRadioModule, MatRadioButton } from '@angular/material/radio';
114
114
  import * as i7$1 from '@angular/material/progress-spinner';
115
115
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
116
- import * as i5$5 from '@angular/cdk/scrolling';
116
+ import * as i5$4 from '@angular/cdk/scrolling';
117
117
  import { CdkScrollableModule, ScrollingModule } from '@angular/cdk/scrolling';
118
118
  import { Platform } from '@angular/cdk/platform';
119
119
  import customParseFormat from 'dayjs/plugin/customParseFormat';
@@ -947,7 +947,7 @@ class HubService {
947
947
  }
948
948
  this._connection = new HubConnectionBuilder().withUrl('/chub', {
949
949
  // logger: LogLevel.Debug,
950
- accessTokenFactory: this._auth.getAuthToken.bind(this),
950
+ accessTokenFactory: () => this._auth.getAuthToken(), // arrow call, 'this' bug
951
951
  //skipNegotiation: true,
952
952
  }).withAutomaticReconnect().build();
953
953
  this._connection.on('newMail', (data) => this._newMail.next(data));
@@ -6420,7 +6420,7 @@ class GuideService {
6420
6420
  content: this._translate.get('MailboxHelp'),
6421
6421
  title: this._translate.get('Mailbox')
6422
6422
  });
6423
- if (!this._config || this._config.chating !== false)
6423
+ if (!this._config || this._config.chat !== false)
6424
6424
  steps.push({
6425
6425
  selector: '[data-help=chat]', content: this._translate.get('ChatHelp'),
6426
6426
  execute: !mobile,
@@ -7932,7 +7932,7 @@ class ChatInfo {
7932
7932
  this._session = _session;
7933
7933
  this._isMobile = isMobile();
7934
7934
  this._open$ = new Subject();
7935
- this._config = config.chating;
7935
+ this._config = config.chat;
7936
7936
  }
7937
7937
  /**
7938
7938
  *
@@ -7996,7 +7996,7 @@ class IdentityName {
7996
7996
  this._chat = _chat;
7997
7997
  this._accounts = _accounts;
7998
7998
  this.chating = 'room';
7999
- if (config.chating === false)
7999
+ if (config.chat === false)
8000
8000
  this.chating = 'none';
8001
8001
  }
8002
8002
  ngOnChanges() {
@@ -10080,13 +10080,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
10080
10080
  /** browse component*/
10081
10081
  class BrowsePaneComponent {
10082
10082
  /** browse ctor */
10083
- constructor(_pane, _session, _popup, _router, _directionality, _translate, _dialog) {
10083
+ constructor(_pane, _session, _popup, _router, _directionality, _translate, _breakpointObserver, _dialog) {
10084
10084
  this._pane = _pane;
10085
10085
  this._session = _session;
10086
10086
  this._popup = _popup;
10087
10087
  this._router = _router;
10088
10088
  this._directionality = _directionality;
10089
10089
  this._translate = _translate;
10090
+ this._breakpointObserver = _breakpointObserver;
10090
10091
  this._dialog = _dialog;
10091
10092
  this.searching = false;
10092
10093
  this.contains = new FormControl();
@@ -10152,13 +10153,23 @@ class BrowsePaneComponent {
10152
10153
  this.searching = false;
10153
10154
  }
10154
10155
  }
10156
+ /**
10157
+ *
10158
+ * @param item
10159
+ */
10155
10160
  open(item) {
10156
10161
  this._router.navigate(['mailbox/i', item.id.encodeId()], {
10157
10162
  state: {
10158
10163
  item: { ...item }
10159
10164
  },
10165
+ policy: this._breakpointObserver.isMatched([Breakpoints.Medium, Breakpoints.Small])
10166
+ ? OpenPolicy.Clear : null
10160
10167
  });
10161
10168
  }
10169
+ /**
10170
+ *
10171
+ * @param item
10172
+ */
10162
10173
  view(item) {
10163
10174
  this._router.navigate(['mailbox/i', item.id.encodeId(), 'views'], {
10164
10175
  state: {
@@ -10183,13 +10194,13 @@ class BrowsePaneComponent {
10183
10194
  this._destroy.next();
10184
10195
  this._destroy.complete();
10185
10196
  }
10186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BrowsePaneComponent, deps: [{ token: PaneRef }, { token: SessionService }, { token: Popup }, { token: PanesRouter }, { token: i7.Directionality }, { token: TranslateService }, { token: i2$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
10197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BrowsePaneComponent, deps: [{ token: PaneRef }, { token: SessionService }, { token: Popup }, { token: PanesRouter }, { token: i7.Directionality }, { token: TranslateService }, { token: i7$4.BreakpointObserver }, { token: i2$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
10187
10198
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: BrowsePaneComponent, selector: "bizdoc-browse-pane", host: { listeners: { "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "items", first: true, predicate: BrowseItemsComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "search", first: true, predicate: ["searchEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:560px}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: ["folderId", "filterType", "filters"], outputs: ["open", "view"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [searchAnimation] }); }
10188
10199
  }
10189
10200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: BrowsePaneComponent, decorators: [{
10190
10201
  type: Component,
10191
10202
  args: [{ selector: 'bizdoc-browse-pane', animations: [searchAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:560px}\n"] }]
10192
- }], ctorParameters: () => [{ type: PaneRef }, { type: SessionService }, { type: Popup }, { type: PanesRouter }, { type: i7.Directionality }, { type: TranslateService }, { type: i2$2.MatDialog }], propDecorators: { items: [{
10203
+ }], ctorParameters: () => [{ type: PaneRef }, { type: SessionService }, { type: Popup }, { type: PanesRouter }, { type: i7.Directionality }, { type: TranslateService }, { type: i7$4.BreakpointObserver }, { type: i2$2.MatDialog }], propDecorators: { items: [{
10193
10204
  type: ViewChild,
10194
10205
  args: [BrowseItemsComponent, { static: true }]
10195
10206
  }], filterEl: [{
@@ -12973,7 +12984,7 @@ class CommentComponent {
12973
12984
  }
12974
12985
  }
12975
12986
  _formatUserElement(person) {
12976
- if (this._config.chating !== false)
12987
+ if (this._config.chat !== false)
12977
12988
  return this._chat.format(person);
12978
12989
  else
12979
12990
  return person.nick || person.name;
@@ -13133,7 +13144,7 @@ class CommentsComponent {
13133
13144
  this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId).subscribe());
13134
13145
  }
13135
13146
  _formatUserElement(person) {
13136
- if (this._config.chating !== false)
13147
+ if (this._config.chat !== false)
13137
13148
  return this._chat.format(person);
13138
13149
  else
13139
13150
  return person.nick || person.name;
@@ -13632,27 +13643,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
13632
13643
 
13633
13644
  /** */
13634
13645
  class ReportRef {
13635
- constructor(_configuration, args, _hub, dim) {
13646
+ constructor(_configuration, args, _hub, _http, dim) {
13636
13647
  this._configuration = _configuration;
13637
13648
  this._hub = _hub;
13638
- this._resize = new BehaviorSubject(dim);
13639
- this._args = new BehaviorSubject(args);
13649
+ this._http = _http;
13650
+ this._resize$ = new BehaviorSubject(dim);
13651
+ this._args$ = new BehaviorSubject(args);
13640
13652
  }
13641
- resize() { return this._resize.asObservable(); }
13653
+ resize() { return this._resize$.asObservable(); }
13642
13654
  /** listen to progress events reported by backend code */
13643
13655
  progress() {
13644
13656
  return this._hub.reportProgress$.
13645
13657
  pipe(filter(e => e.name === this._configuration.name), map(e => e.progress));
13646
13658
  }
13659
+ /**
13660
+ *
13661
+ * @param key
13662
+ * @returns
13663
+ */
13664
+ item(key) {
13665
+ return this._http.put(`/api/report/${encodeURIComponent(this._configuration.name)}`, key);
13666
+ }
13647
13667
  /** configuration options */
13648
13668
  get options() {
13649
13669
  return this._configuration.options || {};
13650
13670
  }
13651
13671
  /** configuration name */
13652
13672
  get name() { return this._configuration.name; }
13653
- get arguments() { return this._args.value; }
13673
+ get arguments() { return this._args$.value; }
13654
13674
  _destroy() {
13655
- this._resize.unsubscribe();
13675
+ this._resize$.unsubscribe();
13676
+ this._args$.unsubscribe();
13656
13677
  }
13657
13678
  }
13658
13679
 
@@ -13711,7 +13732,7 @@ class ReportViewerComponent {
13711
13732
  if (changes['report']) {
13712
13733
  this._destroy.next();
13713
13734
  this._reportRef && this._reportRef._destroy();
13714
- this._reportRef = new ReportRef(this.report, this.args, this._hub, this._dim());
13735
+ this._reportRef = new ReportRef(this.report, this.args, this._hub, this._http, this._dim());
13715
13736
  if (this.report.template)
13716
13737
  this._createView();
13717
13738
  else
@@ -13723,10 +13744,10 @@ class ReportViewerComponent {
13723
13744
  if (this.progress > 0)
13724
13745
  this.progress = i.progress;
13725
13746
  });
13726
- this._resizing.pipe(debounceTime(150)).subscribe(() => this._reportRef._resize.next(this._dim()));
13747
+ this._resizing.pipe(debounceTime(150)).subscribe(() => this._reportRef._resize$.next(this._dim()));
13727
13748
  }
13728
13749
  if (changes['args'])
13729
- this._reportRef._args.next(this.args);
13750
+ this._reportRef._args$.next(this.args);
13730
13751
  }
13731
13752
  /** */
13732
13753
  _createView() {
@@ -18074,7 +18095,7 @@ class ConversationComponent {
18074
18095
  this._top = false;
18075
18096
  this._textChange = new Subject();
18076
18097
  this._destroy = new Subject();
18077
- this._preserveDraft = config.chating && config.chating.preserveDraft;
18098
+ this._preserveDraft = config.chat && config.chat.preserveDraft;
18078
18099
  }
18079
18100
  ngOnInit() {
18080
18101
  this._messaging.chatTyping$.pipe(takeUntil(this._destroy)).subscribe(e => {
@@ -18435,7 +18456,7 @@ class DashboardComponent {
18435
18456
  this._destroy.next();
18436
18457
  this._destroy.complete();
18437
18458
  }
18438
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DashboardComponent, deps: [{ token: GuideService }, { token: SessionService }, { token: PaneRef, optional: true }, { token: WindowTitleService }, { token: i5$4.BreakpointObserver }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
18459
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DashboardComponent, deps: [{ token: GuideService }, { token: SessionService }, { token: PaneRef, optional: true }, { token: WindowTitleService }, { token: i7$4.BreakpointObserver }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
18439
18460
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: DashboardComponent, selector: "bizdoc-dashboard", viewQueries: [{ propertyName: "components", predicate: WidgetItemComponent, descendants: true }], ngImport: i0, template: "<mat-grid-list [cols]=\"cols\" @deshboard>\n @for (w of widgets; track w) {\n <mat-grid-tile [colspan]=\"w.cols && w.cols <= cols ? w.cols : 1\" [rowspan]=\"w.rows || 1\">\n <mat-card @card>\n <mat-card-header>\n <mat-card-title [attr.data-guide]=\"'widget-'+w.name\">\n <span>{{w.title}}</span>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"widget.refresh()\" [bizdocTooltip]=\"'Refresh'|translate\" [attr.aria-label]=\"'Refresh'|translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n @if (w.arguments?.length||w.argumentsTemplate) {\n <button mat-icon-button (click)=\"widget.filter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n }\n @if (w.guide) {\n <button mat-icon-button (click)=\"guide(w.guide)\" [bizdocTooltip]=\"'Help' | translate\" [attr.aria-label]=\"'Help'|translate\"><mat-icon>help_outline</mat-icon></button>\n }\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <bizdoc-widget [model]=\"w\" #widget></bizdoc-widget>\n </mat-card-content>\n </mat-card>\n </mat-grid-tile>\n }\n</mat-grid-list>\n", styles: [":host{width:100%;height:100%;overflow-y:auto}@media only screen and (min-width: 600px){:host{min-width:600px}}.mat-mdc-card{width:calc(100% - 20px);height:calc(100% - 20px);overflow:hidden}.mat-mdc-card ::ng-deep .mat-mdc-card-header-text{width:100%}.mat-mdc-card .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.mat-mdc-card .mat-mdc-card-content{height:inherit}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"], dependencies: [{ kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i11.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i8$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i8$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "component", type: WidgetItemComponent, selector: "bizdoc-widget", inputs: ["model"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [deshboardAnimation, deshboardCardAnimation] }); }
18440
18461
  }
18441
18462
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DashboardComponent, decorators: [{
@@ -18443,7 +18464,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
18443
18464
  args: [{ selector: 'bizdoc-dashboard', animations: [deshboardAnimation, deshboardCardAnimation], template: "<mat-grid-list [cols]=\"cols\" @deshboard>\n @for (w of widgets; track w) {\n <mat-grid-tile [colspan]=\"w.cols && w.cols <= cols ? w.cols : 1\" [rowspan]=\"w.rows || 1\">\n <mat-card @card>\n <mat-card-header>\n <mat-card-title [attr.data-guide]=\"'widget-'+w.name\">\n <span>{{w.title}}</span>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"widget.refresh()\" [bizdocTooltip]=\"'Refresh'|translate\" [attr.aria-label]=\"'Refresh'|translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n @if (w.arguments?.length||w.argumentsTemplate) {\n <button mat-icon-button (click)=\"widget.filter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n }\n @if (w.guide) {\n <button mat-icon-button (click)=\"guide(w.guide)\" [bizdocTooltip]=\"'Help' | translate\" [attr.aria-label]=\"'Help'|translate\"><mat-icon>help_outline</mat-icon></button>\n }\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <bizdoc-widget [model]=\"w\" #widget></bizdoc-widget>\n </mat-card-content>\n </mat-card>\n </mat-grid-tile>\n }\n</mat-grid-list>\n", styles: [":host{width:100%;height:100%;overflow-y:auto}@media only screen and (min-width: 600px){:host{min-width:600px}}.mat-mdc-card{width:calc(100% - 20px);height:calc(100% - 20px);overflow:hidden}.mat-mdc-card ::ng-deep .mat-mdc-card-header-text{width:100%}.mat-mdc-card .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.mat-mdc-card .mat-mdc-card-content{height:inherit}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"] }]
18444
18465
  }], ctorParameters: () => [{ type: GuideService }, { type: SessionService }, { type: PaneRef, decorators: [{
18445
18466
  type: Optional
18446
- }] }, { type: WindowTitleService }, { type: i5$4.BreakpointObserver }, { type: TranslateService }], propDecorators: { components: [{
18467
+ }] }, { type: WindowTitleService }, { type: i7$4.BreakpointObserver }, { type: TranslateService }], propDecorators: { components: [{
18447
18468
  type: ViewChildren,
18448
18469
  args: [WidgetItemComponent]
18449
18470
  }] } });
@@ -18772,7 +18793,6 @@ class AppHttpInterceptor {
18772
18793
  // there is already ongoing authentication,
18773
18794
  if (this._authenticating$)
18774
18795
  return this._authenticating$;
18775
- eraseCookie(IMPERSONATE_COOKIE_NAME);
18776
18796
  this._authenticating$ =
18777
18797
  // give AuthenticationImpl to
18778
18798
  from(this._auth.authenticate()).
@@ -18809,8 +18829,8 @@ class HomeBase {
18809
18829
  this._snackBar = _snackBar;
18810
18830
  this._injector = _injector;
18811
18831
  this.schedulerEnabled = config.scheduler !== false;
18812
- this.chatEnabled = config.chating !== false &&
18813
- (!config.chating || !config.chating.app);
18832
+ this.chatEnabled = config.chat !== false &&
18833
+ (!config.chat || !config.chat.app);
18814
18834
  this.profile = _session.profile;
18815
18835
  this.enableAnalysis = _session.profile.cubes.some(c => c.views?.length);
18816
18836
  }
@@ -20151,7 +20171,7 @@ class SlotsComponent {
20151
20171
  this._destroy.complete();
20152
20172
  }
20153
20173
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
20154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n <!--panes-->\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n <!--next-->\n @if (next) {\n <div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n </div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:0}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$4.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$4.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$4.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n <!--panes-->\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n <!--next-->\n @if (next) {\n <div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n </div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:0}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20155
20175
  panesAnimation,
20156
20176
  paneAnimation,
20157
20177
  paramAnimation,
@@ -33659,7 +33679,7 @@ class IconPickerComponent {
33659
33679
  this.close();
33660
33680
  }
33661
33681
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IconPickerComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i1$1.Overlay }, { token: i1.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i7.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
33662
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: { value: "value", required: "required", disabled: "disabled" }, outputs: { valueChanges: "valueChanges" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i.name) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--<div *cdkVirtualFor=\"let c of categories; track: _trackBy\">\n @for(i of c.items; track: _trackBy)){<mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>}\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5$5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5$5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
33682
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: { value: "value", required: "required", disabled: "disabled" }, outputs: { valueChanges: "valueChanges" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i.name) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--<div *cdkVirtualFor=\"let c of categories; track: _trackBy\">\n @for(i of c.items; track: _trackBy)){<mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>}\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5$4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5$4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
33663
33683
  }
33664
33684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IconPickerComponent, decorators: [{
33665
33685
  type: Component,