@taiga-ui/addon-charts 3.17.0 → 3.18.0-dev.main-05a0bf8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js +11 -20
  2. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-charts-components-axes.umd.js +11 -20
  4. package/bundles/taiga-ui-addon-charts-components-axes.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js +11 -20
  6. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js +11 -20
  8. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-charts-components-bar.umd.js +11 -20
  10. package/bundles/taiga-ui-addon-charts-components-bar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js +11 -20
  12. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js +14 -23
  14. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js +14 -23
  16. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js +14 -23
  18. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js +11 -20
  20. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-charts-utils.umd.js +4 -13
  22. package/bundles/taiga-ui-addon-charts-utils.umd.js.map +1 -1
  23. package/esm2015/components/arc-chart/arc-chart.component.js +3 -3
  24. package/esm2015/components/arc-chart/arc-chart.module.js +4 -4
  25. package/esm2015/components/axes/axes.component.js +3 -3
  26. package/esm2015/components/axes/axes.module.js +4 -4
  27. package/esm2015/components/bar/bar.component.js +3 -3
  28. package/esm2015/components/bar/bar.module.js +4 -4
  29. package/esm2015/components/bar-chart/bar-chart.component.js +4 -4
  30. package/esm2015/components/bar-chart/bar-chart.module.js +4 -4
  31. package/esm2015/components/bar-set/bar-set.component.js +3 -3
  32. package/esm2015/components/bar-set/bar-set.module.js +4 -4
  33. package/esm2015/components/legend-item/legend-item.component.js +3 -3
  34. package/esm2015/components/legend-item/legend-item.module.js +4 -4
  35. package/esm2015/components/line-chart/line-chart-hint.directive.js +3 -3
  36. package/esm2015/components/line-chart/line-chart.component.js +4 -4
  37. package/esm2015/components/line-chart/line-chart.module.js +4 -4
  38. package/esm2015/components/line-days-chart/line-days-chart-hint.directive.js +3 -3
  39. package/esm2015/components/line-days-chart/line-days-chart.component.js +3 -3
  40. package/esm2015/components/line-days-chart/line-days-chart.module.js +4 -4
  41. package/esm2015/components/pie-chart/pie-chart.component.js +4 -4
  42. package/esm2015/components/pie-chart/pie-chart.directive.js +3 -3
  43. package/esm2015/components/pie-chart/pie-chart.module.js +4 -4
  44. package/esm2015/components/ring-chart/ring-chart.component.js +3 -3
  45. package/esm2015/components/ring-chart/ring-chart.module.js +4 -4
  46. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js +7 -7
  47. package/fesm2015/taiga-ui-addon-charts-components-axes.js +7 -7
  48. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js +7 -7
  49. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
  50. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js +7 -7
  51. package/fesm2015/taiga-ui-addon-charts-components-bar.js +7 -7
  52. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +7 -7
  53. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js +10 -10
  54. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
  55. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js +10 -10
  56. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +10 -10
  57. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
  58. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +7 -7
  59. package/package.json +3 -3
@@ -139,8 +139,8 @@ export class TuiLineChartComponent {
139
139
  : this.getX(index + 1) - this.getX(index);
140
140
  }
141
141
  }
142
- TuiLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartComponent, deps: [{ token: TuiIdService }, { token: NgZone }, { token: NgLocation }, { token: LOCATION }, { token: TuiLineChartHintDirective, optional: true }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
143
- TuiLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiLineChartComponent, selector: "tui-line-chart", inputs: { valueSetter: ["value", "valueSetter"], x: "x", y: "y", width: "width", height: "height", smoothingFactor: "smoothingFactor", xStringify: "xStringify", yStringify: "yStringify", filled: "filled", dots: "dots" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "drivers", predicate: TuiDriver, descendants: true }], ngImport: i0, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.fill]=\"fill\"\n [attr.d]=\"fillD\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"getContentContext(point, index)\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [id]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scaleY(-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem rgba(0,0,0,.1);outline:none;pointer-events:none}.t-host:focus,.t-column_hovered .t-host,.t-column:hover .t-host,.t-column_hint_hovered .t-host{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host[style^=\"z-index: 0\"] .t-column_hovered .t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column_hint_hovered .t-line,:host[style^=\"z-index: 0\"] .t-column_hovered+.t-line,:host:not([style]) .t-column:hover+.t-line,:host:not([style]) .t-column_hint_hovered+.t-line{opacity:1}.t-hint{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate(-50%)}.t-hint_x{bottom:0}.t-hint_y{left:0}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintHostDirective, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i1.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
142
+ TuiLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartComponent, deps: [{ token: TuiIdService }, { token: NgZone }, { token: NgLocation }, { token: LOCATION }, { token: TuiLineChartHintDirective, optional: true }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
143
+ TuiLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiLineChartComponent, selector: "tui-line-chart", inputs: { valueSetter: ["value", "valueSetter"], x: "x", y: "y", width: "width", height: "height", smoothingFactor: "smoothingFactor", xStringify: "xStringify", yStringify: "yStringify", filled: "filled", dots: "dots" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "drivers", predicate: TuiDriver, descendants: true }], ngImport: i0, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.fill]=\"fill\"\n [attr.d]=\"fillD\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"getContentContext(point, index)\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [id]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scaleY(-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem rgba(0,0,0,.1);outline:none;pointer-events:none}.t-host:focus,.t-column_hovered .t-host,.t-column:hover .t-host,.t-column_hint_hovered .t-host{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host[style^=\"z-index: 0\"] .t-column_hovered .t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column_hint_hovered .t-line,:host[style^=\"z-index: 0\"] .t-column_hovered+.t-line,:host:not([style]) .t-column:hover+.t-line,:host:not([style]) .t-column_hint_hovered+.t-line{opacity:1}.t-hint{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate(-50%)}.t-hint_x{bottom:0}.t-hint_y{left:0}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintHostDirective, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i1.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
144
  __decorate([
145
145
  tuiDefaultProp()
146
146
  ], TuiLineChartComponent.prototype, "valueSetter", null);
@@ -177,7 +177,7 @@ __decorate([
177
177
  __decorate([
178
178
  tuiPure
179
179
  ], TuiLineChartComponent.prototype, "getD", null);
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartComponent, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartComponent, decorators: [{
181
181
  type: Component,
182
182
  args: [{
183
183
  selector: 'tui-line-chart',
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
236
236
  type: HostListener,
237
237
  args: ['mouseleave']
238
238
  }], getD: [] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9saW5lLWNoYXJ0L2xpbmUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFFUixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixPQUFPLEVBRVAsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUV6QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxxQkFBcUI7SUF1RDlCLFlB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QURmLFlBQVk7dUJBQUMsU0FBUztnQkFLbkIsV0FBVztzQkFGZCxLQUFLO3VCQUFDLE9BQU87Z0JBUWQsQ0FBQztzQkFGQSxLQUFLO2dCQU1OLENBQUM7c0JBRkEsS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7Z0JBTU4sTUFBTTtzQkFGTCxLQUFLO2dCQVNOLGVBQWU7c0JBTGQsS0FBSztnQkFTTixVQUFVO3NCQUZULEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFNTixJQUFJO3NCQUZILEtBQUs7Z0JBc0JGLFFBQVEsTUE4Q1osWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBeUVsQixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbiBhcyBOZ0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpTGluZUNoYXJ0SGludENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3R1aURyYXcsIHR1aVByZXBhcmVFeHRlcm5hbFVybH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUlkU2VydmljZSxcbiAgICB0dWlJblJhbmdlLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpWm9uZU9wdGltaXplZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aURyaXZlcixcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbiAgICB0dWlIaW50T3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVBvaW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiBmaW5kIHRoZSBiZXN0IHdheSBmb3IgcHJldmVudCBjeWNsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtUdWlMaW5lQ2hhcnRIaW50RGlyZWN0aXZlfSBmcm9tICcuL2xpbmUtY2hhcnQtaGludC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1saW5lLWNoYXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1jaGFydC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saW5lLWNoYXJ0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB2aWV3UHJvdmlkZXJzOiBbdHVpSGludE9wdGlvbnNQcm92aWRlcih7ZGlyZWN0aW9uOiAndG9wJywgaGlkZURlbGF5OiAwfSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2hhcnRDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hvdmVyZWQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWRTdHJpbmc6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGRyZW4oVHVpRHJpdmVyKVxuICAgIHJlYWRvbmx5IGRyaXZlcnM6IFF1ZXJ5TGlzdDxPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQElucHV0KCd2YWx1ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgdmFsdWVTZXR0ZXIodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLmZpbHRlcihpdGVtID0+ICFpdGVtLnNvbWUoTnVtYmVyLmlzTmFOKSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHkgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHdpZHRoID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoZWlnaHQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIChzbW9vdGhpbmdGYWN0b3I6IG51bWJlcikgPT4gdHVpSW5SYW5nZShzbW9vdGhpbmdGYWN0b3IsIDAsIDEwMCksXG4gICAgICAgICdzbW9vdGhpbmdGYWN0b3IgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEwMCcsXG4gICAgKVxuICAgIHNtb290aGluZ0ZhY3RvciA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeFN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeVN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZmlsbGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZG90cyA9IGZhbHNlO1xuXG4gICAgdmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUlkU2VydmljZSkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludERpcmVjdGl2ZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYXV0b0lkU3RyaW5nID0gaWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXQgaG92ZXJlZCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvdmVyZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdHVpWm9uZU9wdGltaXplZCh0aGlzLm5nWm9uZSkpO1xuICAgIH1cblxuICAgIGdldCBoaW50Q29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUxpbmVDaGFydEhpbnRDb250ZXh0PFR1aVBvaW50Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50T3B0aW9ucz8uY29udGVudCB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgZmlsbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgdHVpLWxpbmUtY2hhcnQtJHt0aGlzLmF1dG9JZFN0cmluZ31gO1xuICAgIH1cblxuICAgIGdldCBmaWxsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGxlZFxuICAgICAgICAgICAgPyB0dWlQcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5uZ0xvY2F0aW9uLCB0aGlzLmxvY2F0aW9uUmVmLCB0aGlzLmZpbGxJZClcbiAgICAgICAgICAgIDogJ25vbmUnO1xuICAgIH1cblxuICAgIGdldCB2aWV3Qm94KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnh9ICR7dGhpcy55fSAke3RoaXMud2lkdGh9ICR7dGhpcy5oZWlnaHR9YDtcbiAgICB9XG5cbiAgICBnZXQgZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREKHRoaXMudmFsdWUsIHRoaXMuc21vb3RoaW5nRmFjdG9yKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbEQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoXG4gICAgICAgICAgICA/IGAke3RoaXMuZH1WICR7dGhpcy55fSBIICR7dGhpcy52YWx1ZVswXVswXX0gViAke3RoaXMudmFsdWVbMF1bMV19YFxuICAgICAgICAgICAgOiB0aGlzLmQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGludERpcmVjdGl2ZSAmJiB0aGlzLmhhc0hpbnRzO1xuICAgIH1cblxuICAgIGdldCBoYXNIaW50cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy54U3RyaW5naWZ5IHx8XG4gICAgICAgICAgICAhIXRoaXMueVN0cmluZ2lmeSB8fFxuICAgICAgICAgICAgISF0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgfHxcbiAgICAgICAgICAgICEhdGhpcy5oaW50Q29udGVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRYKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVBvaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXVswXSAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICAgID8gKHRoaXMudmFsdWVbaW5kZXggLSAxXVswXSArIHRoaXMudmFsdWVbaW5kZXhdWzBdKSAvIDJcbiAgICAgICAgICAgIDogMiAqIHRoaXMudmFsdWVbMF1bMF0gLSB0aGlzLmdldFgoMSk7XG4gICAgfVxuXG4gICAgZ2V0V2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy5jb21wdXRlV2lkdGgoaW5kZXgpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50Q29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUdWlQb2ludCxcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICApOiBUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxUdWlQb2ludCB8IHJlYWRvbmx5IFR1aVBvaW50W10+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZT8uZ2V0Q29udGV4dCh0aGlzLnZhbHVlLmluZGV4T2YoJGltcGxpY2l0KSwgdGhpcykgfHwge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRIb3ZlcmVkKGhvdmVyZWQ6IG51bWJlciB8IG51bGwpOiBUdWlQb2ludCB8IG51bGwge1xuICAgICAgICAvLyBUaGlzIGNoZWNrcyBmb3IgTmFOIGFuZCBudWxsIHRvbyBzaW5jZSBhc3luYyBwaXBlIHJldHVybnMgbnVsbCBiZWZvcmUgZmlyc3QgaXRlbVxuICAgICAgICByZXR1cm4gdHVpSXNQcmVzZW50KGhvdmVyZWQpICYmIE51bWJlci5pc0ludGVnZXIoaG92ZXJlZClcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVtob3ZlcmVkXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldEJvdHRvbSh5OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh5IC0gdGhpcy55KSkgLyB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICBnZXRMZWZ0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHggLSB0aGlzLngpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0T2Zmc2V0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHRoaXMudmFsdWVbeF1bMF0gLSB0aGlzLmdldFgoeCkpKSAvIHRoaXMuY29tcHV0ZVdpZHRoKHgpO1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZS5yYWlzZShpbmRleCwgdGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uSG92ZXJlZChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ob3ZlcmVkJC5uZXh0KGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1NpbmdsZVBvaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldEQodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10sIHNtb290aGluZ0ZhY3RvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlZHVjZShcbiAgICAgICAgICAgIChkLCBwb2ludCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPyBgJHtkfSAke3R1aURyYXcodmFsdWUsIGluZGV4LCBzbW9vdGhpbmdGYWN0b3IpfWAgOiBgTSAke3BvaW50fWAsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVXaWR0aChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSB0aGlzLnZhbHVlLmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gMiAqICh0aGlzLnZhbHVlW2luZGV4XVswXSAtIHRoaXMuZ2V0WChpbmRleCkpXG4gICAgICAgICAgICA6IHRoaXMuZ2V0WChpbmRleCArIDEpIC0gdGhpcy5nZXRYKGluZGV4KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0dWlMZXQ9XCJob3ZlcmVkJCB8IGFzeW5jIGFzIGhvdmVyZWRcIj5cbiAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgIGNsYXNzPVwidC1zdmdcIlxuICAgICAgICBbYXR0ci52aWV3Qm94XT1cInZpZXdCb3hcIlxuICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgICAgICB4MT1cIjBcIlxuICAgICAgICAgICAgICAgIHgyPVwiMFwiXG4gICAgICAgICAgICAgICAgeTE9XCIxXCJcbiAgICAgICAgICAgICAgICB5Mj1cIjBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImZpbGxJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0b3BcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcj1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldD1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMC41XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzdG9wXG4gICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0cm9rZT1cIm5vbmVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJmaWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmlsbERcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cImRcIlxuICAgICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3RzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtZG90XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICAgICAgW3N0eWxlLmJvdHRvbS4lXT1cImdldEJvdHRvbShwb2ludFsxXSlcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0hpbnRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBvaW50IG9mIHZhbHVlOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPCEtLSBUT0RPOiBGaXggaGludCB0eXBlIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWUubGVuZ3RoID4gMSB8fCBkb3RzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1jb2x1bW5faG92ZXJlZF09XCJob3ZlcmVkID09PSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtY29sdW1uX2hpbnRfaG92ZXJlZF09XCJkcml2ZXJzLmdldChpbmRleCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRIb3N0XT1cImhpbnRIb3N0XCJcbiAgICAgICAgICAgICAgICBbdHVpSGludF09XCIkYW55KGhpbnREaXJlY3RpdmU/LmhpbnQgfHwgaGludENvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHVpSGludENvbnRleHRdPVwiZ2V0Q29udGVudENvbnRleHQocG9pbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnREZXNjcmliZV09XCJnZXRIaW50SWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldExlZnQoZ2V0WChpbmRleCkpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJnZXRXaWR0aChpbmRleClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcihpbmRleClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX3ZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJnZXRPZmZzZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjaGludEhvc3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWhvc3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldE9mZnNldChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYm90dG9tLiVdPVwiZ2V0Qm90dG9tKHBvaW50WzFdKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiaXNGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0SGludElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX2hvcml6b250YWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEhvdmVyZWQoaG92ZXJlZCkgYXMgcG9pbnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ4U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF94XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB4U3RyaW5naWZ5KHBvaW50WzBdKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ5U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF95XCJcbiAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgeVN0cmluZ2lmeShwb2ludFsxXSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9saW5lLWNoYXJ0L2xpbmUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFFUixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixPQUFPLEVBRVAsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUV6QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxxQkFBcUI7SUF1RDlCLFlB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QURmLFlBQVk7dUJBQUMsU0FBUztnQkFLbkIsV0FBVztzQkFGZCxLQUFLO3VCQUFDLE9BQU87Z0JBUWQsQ0FBQztzQkFGQSxLQUFLO2dCQU1OLENBQUM7c0JBRkEsS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7Z0JBTU4sTUFBTTtzQkFGTCxLQUFLO2dCQVNOLGVBQWU7c0JBTGQsS0FBSztnQkFTTixVQUFVO3NCQUZULEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFNTixJQUFJO3NCQUZILEtBQUs7Z0JBc0JGLFFBQVEsTUE4Q1osWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBeUVsQixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbiBhcyBOZ0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpTGluZUNoYXJ0SGludENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3R1aURyYXcsIHR1aVByZXBhcmVFeHRlcm5hbFVybH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUlkU2VydmljZSxcbiAgICB0dWlJblJhbmdlLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpWm9uZU9wdGltaXplZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aURyaXZlcixcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbiAgICB0dWlIaW50T3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVBvaW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiBmaW5kIHRoZSBiZXN0IHdheSBmb3IgcHJldmVudCBjeWNsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtUdWlMaW5lQ2hhcnRIaW50RGlyZWN0aXZlfSBmcm9tICcuL2xpbmUtY2hhcnQtaGludC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1saW5lLWNoYXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1jaGFydC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saW5lLWNoYXJ0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB2aWV3UHJvdmlkZXJzOiBbdHVpSGludE9wdGlvbnNQcm92aWRlcih7ZGlyZWN0aW9uOiAndG9wJywgaGlkZURlbGF5OiAwfSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2hhcnRDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hvdmVyZWQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWRTdHJpbmc6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGRyZW4oVHVpRHJpdmVyKVxuICAgIHJlYWRvbmx5IGRyaXZlcnM6IFF1ZXJ5TGlzdDxPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQElucHV0KCd2YWx1ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgdmFsdWVTZXR0ZXIodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLmZpbHRlcihpdGVtID0+ICFpdGVtLnNvbWUoTnVtYmVyLmlzTmFOKSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHkgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHdpZHRoID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoZWlnaHQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIChzbW9vdGhpbmdGYWN0b3I6IG51bWJlcikgPT4gdHVpSW5SYW5nZShzbW9vdGhpbmdGYWN0b3IsIDAsIDEwMCksXG4gICAgICAgICdzbW9vdGhpbmdGYWN0b3IgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEwMCcsXG4gICAgKVxuICAgIHNtb290aGluZ0ZhY3RvciA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeFN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeVN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZmlsbGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZG90cyA9IGZhbHNlO1xuXG4gICAgdmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUlkU2VydmljZSkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludERpcmVjdGl2ZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYXV0b0lkU3RyaW5nID0gaWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXQgaG92ZXJlZCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvdmVyZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdHVpWm9uZU9wdGltaXplZCh0aGlzLm5nWm9uZSkpO1xuICAgIH1cblxuICAgIGdldCBoaW50Q29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUxpbmVDaGFydEhpbnRDb250ZXh0PFR1aVBvaW50Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50T3B0aW9ucz8uY29udGVudCB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgZmlsbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgdHVpLWxpbmUtY2hhcnQtJHt0aGlzLmF1dG9JZFN0cmluZ31gO1xuICAgIH1cblxuICAgIGdldCBmaWxsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGxlZFxuICAgICAgICAgICAgPyB0dWlQcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5uZ0xvY2F0aW9uLCB0aGlzLmxvY2F0aW9uUmVmLCB0aGlzLmZpbGxJZClcbiAgICAgICAgICAgIDogJ25vbmUnO1xuICAgIH1cblxuICAgIGdldCB2aWV3Qm94KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnh9ICR7dGhpcy55fSAke3RoaXMud2lkdGh9ICR7dGhpcy5oZWlnaHR9YDtcbiAgICB9XG5cbiAgICBnZXQgZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREKHRoaXMudmFsdWUsIHRoaXMuc21vb3RoaW5nRmFjdG9yKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbEQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoXG4gICAgICAgICAgICA/IGAke3RoaXMuZH1WICR7dGhpcy55fSBIICR7dGhpcy52YWx1ZVswXVswXX0gViAke3RoaXMudmFsdWVbMF1bMV19YFxuICAgICAgICAgICAgOiB0aGlzLmQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGludERpcmVjdGl2ZSAmJiB0aGlzLmhhc0hpbnRzO1xuICAgIH1cblxuICAgIGdldCBoYXNIaW50cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy54U3RyaW5naWZ5IHx8XG4gICAgICAgICAgICAhIXRoaXMueVN0cmluZ2lmeSB8fFxuICAgICAgICAgICAgISF0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgfHxcbiAgICAgICAgICAgICEhdGhpcy5oaW50Q29udGVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRYKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVBvaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXVswXSAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICAgID8gKHRoaXMudmFsdWVbaW5kZXggLSAxXVswXSArIHRoaXMudmFsdWVbaW5kZXhdWzBdKSAvIDJcbiAgICAgICAgICAgIDogMiAqIHRoaXMudmFsdWVbMF1bMF0gLSB0aGlzLmdldFgoMSk7XG4gICAgfVxuXG4gICAgZ2V0V2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy5jb21wdXRlV2lkdGgoaW5kZXgpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50Q29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUdWlQb2ludCxcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICApOiBUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxUdWlQb2ludCB8IHJlYWRvbmx5IFR1aVBvaW50W10+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZT8uZ2V0Q29udGV4dCh0aGlzLnZhbHVlLmluZGV4T2YoJGltcGxpY2l0KSwgdGhpcykgfHwge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRIb3ZlcmVkKGhvdmVyZWQ6IG51bWJlciB8IG51bGwpOiBUdWlQb2ludCB8IG51bGwge1xuICAgICAgICAvLyBUaGlzIGNoZWNrcyBmb3IgTmFOIGFuZCBudWxsIHRvbyBzaW5jZSBhc3luYyBwaXBlIHJldHVybnMgbnVsbCBiZWZvcmUgZmlyc3QgaXRlbVxuICAgICAgICByZXR1cm4gdHVpSXNQcmVzZW50KGhvdmVyZWQpICYmIE51bWJlci5pc0ludGVnZXIoaG92ZXJlZClcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVtob3ZlcmVkXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldEJvdHRvbSh5OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh5IC0gdGhpcy55KSkgLyB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICBnZXRMZWZ0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHggLSB0aGlzLngpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0T2Zmc2V0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHRoaXMudmFsdWVbeF1bMF0gLSB0aGlzLmdldFgoeCkpKSAvIHRoaXMuY29tcHV0ZVdpZHRoKHgpO1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZS5yYWlzZShpbmRleCwgdGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uSG92ZXJlZChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ob3ZlcmVkJC5uZXh0KGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1NpbmdsZVBvaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldEQodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10sIHNtb290aGluZ0ZhY3RvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlZHVjZShcbiAgICAgICAgICAgIChkLCBwb2ludCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPyBgJHtkfSAke3R1aURyYXcodmFsdWUsIGluZGV4LCBzbW9vdGhpbmdGYWN0b3IpfWAgOiBgTSAke3BvaW50fWAsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVXaWR0aChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSB0aGlzLnZhbHVlLmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gMiAqICh0aGlzLnZhbHVlW2luZGV4XVswXSAtIHRoaXMuZ2V0WChpbmRleCkpXG4gICAgICAgICAgICA6IHRoaXMuZ2V0WChpbmRleCArIDEpIC0gdGhpcy5nZXRYKGluZGV4KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0dWlMZXQ9XCJob3ZlcmVkJCB8IGFzeW5jIGFzIGhvdmVyZWRcIj5cbiAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgIGNsYXNzPVwidC1zdmdcIlxuICAgICAgICBbYXR0ci52aWV3Qm94XT1cInZpZXdCb3hcIlxuICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgICAgICB4MT1cIjBcIlxuICAgICAgICAgICAgICAgIHgyPVwiMFwiXG4gICAgICAgICAgICAgICAgeTE9XCIxXCJcbiAgICAgICAgICAgICAgICB5Mj1cIjBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImZpbGxJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0b3BcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcj1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldD1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMC41XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzdG9wXG4gICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0cm9rZT1cIm5vbmVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJmaWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmlsbERcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cImRcIlxuICAgICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3RzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtZG90XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICAgICAgW3N0eWxlLmJvdHRvbS4lXT1cImdldEJvdHRvbShwb2ludFsxXSlcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0hpbnRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBvaW50IG9mIHZhbHVlOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPCEtLSBUT0RPOiBGaXggaGludCB0eXBlIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWUubGVuZ3RoID4gMSB8fCBkb3RzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1jb2x1bW5faG92ZXJlZF09XCJob3ZlcmVkID09PSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtY29sdW1uX2hpbnRfaG92ZXJlZF09XCJkcml2ZXJzLmdldChpbmRleCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRIb3N0XT1cImhpbnRIb3N0XCJcbiAgICAgICAgICAgICAgICBbdHVpSGludF09XCIkYW55KGhpbnREaXJlY3RpdmU/LmhpbnQgfHwgaGludENvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHVpSGludENvbnRleHRdPVwiZ2V0Q29udGVudENvbnRleHQocG9pbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnREZXNjcmliZV09XCJnZXRIaW50SWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldExlZnQoZ2V0WChpbmRleCkpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJnZXRXaWR0aChpbmRleClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcihpbmRleClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX3ZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJnZXRPZmZzZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjaGludEhvc3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWhvc3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldE9mZnNldChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYm90dG9tLiVdPVwiZ2V0Qm90dG9tKHBvaW50WzFdKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiaXNGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0SGludElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX2hvcml6b250YWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEhvdmVyZWQoaG92ZXJlZCkgYXMgcG9pbnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ4U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF94XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB4U3RyaW5naWZ5KHBvaW50WzBdKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ5U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF95XCJcbiAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgeVN0cmluZ2lmeShwb2ludFsxXSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -8,20 +8,20 @@ import { TuiLineChartHintDirective } from './line-chart-hint.directive';
8
8
  import * as i0 from "@angular/core";
9
9
  export class TuiLineChartModule {
10
10
  }
11
- TuiLineChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TuiLineChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartModule, declarations: [TuiLineChartComponent, TuiLineChartHintDirective], imports: [CommonModule,
11
+ TuiLineChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ TuiLineChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartModule, declarations: [TuiLineChartComponent, TuiLineChartHintDirective], imports: [CommonModule,
13
13
  PolymorpheusModule,
14
14
  TuiHintModule,
15
15
  TuiFocusableModule,
16
16
  TuiLetModule], exports: [TuiLineChartComponent, TuiLineChartHintDirective] });
17
- TuiLineChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartModule, imports: [[
17
+ TuiLineChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartModule, imports: [[
18
18
  CommonModule,
19
19
  PolymorpheusModule,
20
20
  TuiHintModule,
21
21
  TuiFocusableModule,
22
22
  TuiLetModule,
23
23
  ]] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineChartModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -48,15 +48,15 @@ export class TuiLineDaysChartHintDirective {
48
48
  };
49
49
  }
50
50
  }
51
- TuiLineDaysChartHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartHintDirective, deps: [{ token: TuiDestroyService, self: true }, { token: NgZone }, { token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Directive });
52
- TuiLineDaysChartHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiLineDaysChartHintDirective, selector: "[tuiLineChartHint]", inputs: { hint: ["tuiLineChartHint", "hint"] }, providers: [TuiDestroyService, TuiHoveredService], queries: [{ propertyName: "charts", predicate: i0.forwardRef(function () { return TuiLineDaysChartComponent; }) }], ngImport: i0 });
51
+ TuiLineDaysChartHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartHintDirective, deps: [{ token: TuiDestroyService, self: true }, { token: NgZone }, { token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Directive });
52
+ TuiLineDaysChartHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiLineDaysChartHintDirective, selector: "[tuiLineChartHint]", inputs: { hint: ["tuiLineChartHint", "hint"] }, providers: [TuiDestroyService, TuiHoveredService], queries: [{ propertyName: "charts", predicate: i0.forwardRef(function () { return TuiLineDaysChartComponent; }) }], ngImport: i0 });
53
53
  __decorate([
54
54
  tuiDefaultProp()
55
55
  ], TuiLineDaysChartHintDirective.prototype, "hint", void 0);
56
56
  __decorate([
57
57
  tuiPure
58
58
  ], TuiLineDaysChartHintDirective.prototype, "computeContext", null);
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartHintDirective, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartHintDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  selector: '[tuiLineChartHint]',
@@ -130,8 +130,8 @@ export class TuiLineDaysChartComponent {
130
130
  return this.value[index - this.value[0][0].day + 1][0];
131
131
  }
132
132
  }
133
- TuiLineDaysChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartComponent, deps: [{ token: TuiLineDaysChartHintDirective, optional: true }, { token: TuiDestroyService, self: true }, { token: NgZone }, { token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Component });
134
- TuiLineDaysChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiLineDaysChartComponent, selector: "tui-line-days-chart", inputs: { valueSetter: ["value", "valueSetter"], y: "y", height: "height", smoothingFactor: "smoothingFactor", hintContent: "hintContent", xStringify: "xStringify", yStringify: "yStringify", dots: "dots" }, host: { properties: { "style.zIndex": "this.zIndex" } }, providers: [
133
+ TuiLineDaysChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartComponent, deps: [{ token: TuiLineDaysChartHintDirective, optional: true }, { token: TuiDestroyService, self: true }, { token: NgZone }, { token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Component });
134
+ TuiLineDaysChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiLineDaysChartComponent, selector: "tui-line-days-chart", inputs: { valueSetter: ["value", "valueSetter"], y: "y", height: "height", smoothingFactor: "smoothingFactor", hintContent: "hintContent", xStringify: "xStringify", yStringify: "yStringify", dots: "dots" }, host: { properties: { "style.zIndex": "this.zIndex" } }, providers: [
135
135
  TuiDestroyService,
136
136
  TuiHoveredService,
137
137
  {
@@ -169,7 +169,7 @@ __decorate([
169
169
  __decorate([
170
170
  tuiPure
171
171
  ], TuiLineDaysChartComponent.prototype, "breakMonths", null);
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartComponent, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartComponent, decorators: [{
173
173
  type: Component,
174
174
  args: [{
175
175
  selector: 'tui-line-days-chart',
@@ -8,10 +8,10 @@ import { TuiLineDaysChartHintDirective } from './line-days-chart-hint.directive'
8
8
  import * as i0 from "@angular/core";
9
9
  export class TuiLineDaysChartModule {
10
10
  }
11
- TuiLineDaysChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TuiLineDaysChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartModule, declarations: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective], imports: [CommonModule, TuiLineChartModule, PolymorpheusModule, TuiHintModule], exports: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective] });
13
- TuiLineDaysChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartModule, imports: [[CommonModule, TuiLineChartModule, PolymorpheusModule, TuiHintModule]] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiLineDaysChartModule, decorators: [{
11
+ TuiLineDaysChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ TuiLineDaysChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartModule, declarations: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective], imports: [CommonModule, TuiLineChartModule, PolymorpheusModule, TuiHintModule], exports: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective] });
13
+ TuiLineDaysChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartModule, imports: [[CommonModule, TuiLineChartModule, PolymorpheusModule, TuiHintModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineDaysChartModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: [CommonModule, TuiLineChartModule, PolymorpheusModule, TuiHintModule],
@@ -95,8 +95,8 @@ export class TuiPieChartComponent {
95
95
  this.activeItemIndexChange.next(index);
96
96
  }
97
97
  }
98
- TuiPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartComponent, deps: [{ token: TuiIdService }, { token: NgLocation }, { token: LOCATION }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
99
- TuiPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiPieChartComponent, selector: "tui-pie-chart", inputs: { value: "value", size: "size", masked: "masked", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size", "class._empty": "this.empty" } }, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"100%\"\n width=\"100%\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n>\n <defs>\n <mask [attr.id]=\"maskId\">\n <rect\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n />\n <circle\n cx=\"0\"\n cy=\"0\"\n [attr.r]=\"radius\"\n />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"100\"\n class=\"t-placeholder\"\n />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintPointer\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n />\n </g>\n</svg>\n", styles: [":host{position:relative;display:block}:host[data-size=xs]{width:2rem;height:2rem;pointer-events:none}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-svg{position:relative;overflow:visible;transform:rotate(-90deg)}.t-segment{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host._empty .t-segment{display:none}.t-placeholder{fill:var(--tui-base-03)}\n"], directives: [{ type: i1.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { type: i2.TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: ["tuiPieChart"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintPointerDirective, selector: "[tuiHint][tuiHintPointer]" }, { type: i1.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }], viewProviders: [
98
+ TuiPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartComponent, deps: [{ token: TuiIdService }, { token: NgLocation }, { token: LOCATION }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
99
+ TuiPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiPieChartComponent, selector: "tui-pie-chart", inputs: { value: "value", size: "size", masked: "masked", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size", "class._empty": "this.empty" } }, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"100%\"\n width=\"100%\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n>\n <defs>\n <mask [attr.id]=\"maskId\">\n <rect\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n />\n <circle\n cx=\"0\"\n cy=\"0\"\n [attr.r]=\"radius\"\n />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"100\"\n class=\"t-placeholder\"\n />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintPointer\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n />\n </g>\n</svg>\n", styles: [":host{position:relative;display:block}:host[data-size=xs]{width:2rem;height:2rem;pointer-events:none}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-svg{position:relative;overflow:visible;transform:rotate(-90deg)}.t-segment{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host._empty .t-segment{display:none}.t-placeholder{fill:var(--tui-base-03)}\n"], directives: [{ type: i1.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { type: i2.TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: ["tuiPieChart"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintPointerDirective, selector: "[tuiHint][tuiHintPointer]" }, { type: i1.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }], viewProviders: [
100
100
  tuiHintOptionsProvider({ direction: 'top-right', appearance: 'onDark' }),
101
101
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
102
  __decorate([
@@ -117,7 +117,7 @@ __decorate([
117
117
  __decorate([
118
118
  tuiPure
119
119
  ], TuiPieChartComponent.prototype, "getSegments", null);
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartComponent, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartComponent, decorators: [{
121
121
  type: Component,
122
122
  args: [{
123
123
  selector: 'tui-pie-chart',
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
159
159
  type: HostBinding,
160
160
  args: ['class._empty']
161
161
  }], getSum: [], getSegments: [] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL3BpZS1jaGFydC9waWUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvcGllLWNoYXJ0L3BpZS1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBRUgsY0FBYyxFQUNkLFlBQVksRUFDWixPQUFPLEVBQ1AsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBR3pCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUd4QixNQUFNLEtBQUssR0FBRztJQUNWLEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLElBQUk7SUFDUCxDQUFDLEVBQUUsTUFBTTtJQUNULENBQUMsRUFBRSxNQUFNO0lBQ1QsRUFBRSxFQUFFLE1BQU07Q0FDYixDQUFDO0FBQ0YsTUFBTSxTQUFTLEdBQUc7SUFDZCxFQUFFLEVBQUUsSUFBSTtJQUNSLENBQUMsRUFBRSxJQUFJO0lBQ1AsQ0FBQyxFQUFFLElBQUk7SUFDUCxDQUFDLEVBQUUsSUFBSTtJQUNQLEVBQUUsRUFBRSxJ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LFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNYLHNCQUFzQixDQUFDLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUM7cUJBQ3pFO2lCQUNKOzswQkF5QlEsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxVQUFVOzhCQUM4QixRQUFROzBCQUF2RCxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsdUJBQXVCOzRDQXZCbkMsS0FBSztzQkFGSixLQUFLO2dCQU9OLElBQUk7c0JBSEgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTTdCLE1BQU07c0JBRkwsS0FBSztnQkFNTixlQUFlO3NCQUZkLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUQ3QixNQUFNO2dCQW9CSCxLQUFLO3NCQURSLFdBQVc7dUJBQUMsY0FBYztnQkE0Q25CLE1BQU0sTUFLTixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbiBhcyBOZ0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTYWZlVmFsdWV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtMT0NBVElPTn0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aVByZXBhcmVFeHRlcm5hbFVybH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpSWRTZXJ2aWNlLFxuICAgIHR1aVB1cmUsXG4gICAgdHVpU3VtLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsXG4gICAgdHVpSGludE9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlTaXplWEwsXG4gICAgVHVpU2l6ZVhTLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmNvbnN0IFJBRElJID0ge1xuICAgIHhzOiAnNTAnLFxuICAgIHM6ICc1MCcsXG4gICAgbTogJzc3LjgnLFxuICAgIGw6ICc4MS45JyxcbiAgICB4bDogJzgxLjMnLFxufTtcbmNvbnN0IFRSQU5TRk9STSA9IHtcbiAgICB4czogMS4xNSxcbiAgICBzOiAxLjI1LFxuICAgIG06IDEuMTEsXG4gICAgbDogMS4wOSxcbiAgICB4bDogMS4wOCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXBpZS1jaGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BpZS1jaGFydC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9waWUtY2hhcnQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHZpZXdQcm92aWRlcnM6IFtcbiAgICAgICAgdHVpSGludE9wdGlvbnNQcm92aWRlcih7ZGlyZWN0aW9uOiAndG9wLXJpZ2h0JywgYXBwZWFyYW5jZTogJ29uRGFyayd9KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQaWVDaGFydENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWRTdHJpbmc6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplWEwgfCBUdWlTaXplWFMgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFza2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWN0aXZlSXRlbUluZGV4ID0gTmFOO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYWN0aXZlSXRlbUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpIGlkU2VydmljZTogVHVpSWRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaGludE9wdGlvbnM6IFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdXRvSWRTdHJpbmcgPSBpZFNlcnZpY2UuZ2VuZXJhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5oaW50T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucy5zaG93RGVsYXkgPSAwO1xuICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucy5oaWRlRGVsYXkgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZW1wdHknKVxuICAgIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFN1bSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IG1hc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHR1aS1yaW5nLWNoYXJ0LSR7dGhpcy5hdXRvSWRTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBnZXQgbWFzaygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFza2VkXG4gICAgICAgICAgICA/IHR1aVByZXBhcmVFeHRlcm5hbFVybCh0aGlzLm5nTG9jYXRpb24sIHRoaXMubG9jYXRpb25SZWYsIHRoaXMubWFza0lkKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCByYWRpdXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFJBRElJW3RoaXMuc2l6ZV07XG4gICAgfVxuXG4gICAgZ2V0IHNlZ21lbnRzKCk6IFJlYWRvbmx5QXJyYXk8W251bWJlciwgbnVtYmVyXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWdtZW50cyh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRUcmFuc2Zvcm0oaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLm1hc2tlZFxuICAgICAgICAgICAgPyBgc2NhbGUoJHtUUkFOU0ZPUk1bdGhpcy5zaXplXX0pYFxuICAgICAgICAgICAgOiBgc2NhbGUoJHtUUkFOU0ZPUk0ueHN9KWA7XG5cbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSB0aGlzLmFjdGl2ZUl0ZW1JbmRleCA/IHRyYW5zZm9ybSA6IG51bGw7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtSW5kZXgoaG92ZXJlZCA/IGluZGV4IDogTmFOKTtcbiAgICB9XG5cbiAgICBnZXRDb2xvcihpbmRleDogbnVtYmVyKTogU2FmZVZhbHVlIHtcbiAgICAgICAgcmV0dXJuIGB2YXIoLS10dWktY2hhcnQtJHtpbmRleH0pYDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0U3VtKHZhbHVlOiByZWFkb25seSBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlTdW0oLi4udmFsdWUpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRTZWdtZW50cyh2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10pOiBSZWFkb25seUFycmF5PFtudW1iZXIsIG51bWJlcl0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAubWFwKChpbml0aWFsLCBpLCBhcnJheSkgPT5cbiAgICAgICAgICAgICAgICBhcnJheS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChzdW0sIGN1cnJlbnQsIGopID0+IChqIDwgaSA/IHRoaXMuZ2V0RGVnKGN1cnJlbnQpICsgc3VtIDogc3VtKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREZWcoaW5pdGlhbCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGFuZ2xlLCBpbmRleCwgYXJyYXkpID0+IFtcbiAgICAgICAgICAgICAgICBhcnJheVtpbmRleCAtIDFdIHx8IDAsXG4gICAgICAgICAgICAgICAgTWF0aC5taW4oYW5nbGUsIDM1OS45OTk5KSxcbiAgICAgICAgICAgIF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVnKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMzYwICogKHZhbHVlIC8gdGhpcy5nZXRTdW0odGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlSXRlbUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZUl0ZW1JbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtSW5kZXhDaGFuZ2UubmV4dChpbmRleCk7XG4gICAgfVxufVxuIiwiPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIGhlaWdodD1cIjEwMCVcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgdmlld0JveD1cIi0xMDAgLTEwMCAyMDAgMjAwXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY2xhc3M9XCJ0LXN2Z1wiXG4+XG4gICAgPGRlZnM+XG4gICAgICAgIDxtYXNrIFthdHRyLmlkXT1cIm1hc2tJZFwiPlxuICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICB4PVwiLTIwMFwiXG4gICAgICAgICAgICAgICAgeT1cIi0yMDBcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiNDAwXCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI0MDBcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICAgIGN4PVwiMFwiXG4gICAgICAgICAgICAgICAgY3k9XCIwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yXT1cInJhZGl1c1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L21hc2s+XG4gICAgPC9kZWZzPlxuICAgIDxnIFtzdHlsZS5tYXNrXT1cIm1hc2tcIj5cbiAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgY3g9XCIwXCJcbiAgICAgICAgICAgIGN5PVwiMFwiXG4gICAgICAgICAgICByPVwiMTAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1wbGFjZWhvbGRlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICAqdHVpUmVwZWF0VGltZXM9XCJsZXQgaW5kZXggb2Ygc2VnbWVudHMubGVuZ3RoXCJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1waWUtY2hhcnRfX3NlZ21lbnRcIlxuICAgICAgICAgICAgdHVpSGludFBvaW50ZXJcbiAgICAgICAgICAgIGQ9XCJcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXNlZ21lbnRcIlxuICAgICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cImdldFRyYW5zZm9ybShpbmRleClcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldENvbG9yKGluZGV4KVwiXG4gICAgICAgICAgICBbdHVpUGllQ2hhcnRdPVwic2VnbWVudHNbaW5kZXhdXCJcbiAgICAgICAgICAgIFt0dWlIaW50XT1cImhpbnRDb250ZW50XCJcbiAgICAgICAgICAgIFt0dWlIaW50Q29udGV4dF09XCJ7JGltcGxpY2l0OiBpbmRleH1cIlxuICAgICAgICAgICAgKHR1aUhvdmVyZWRDaGFuZ2UpPVwib25Ib3ZlcmVkKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgLz5cbiAgICA8L2c+XG48L3N2Zz5cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL3BpZS1jaGFydC9waWUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvcGllLWNoYXJ0L3BpZS1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBRUgsY0FBYyxFQUNkLFlBQVksRUFDWixPQUFPLEVBQ1AsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBR3pCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUd4QixNQUFNLEtBQUssR0FBRztJQUNWLEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLElBQUk7SUFDUCxDQUFDLEVBQUUsTUFBTTtJQUNULENBQUMsRUFBRSxNQUFNO0lBQ1QsRUFBRSxFQUFFLE1BQU07Q0FDYixDQUFDO0FBQ0YsTUFBTSxTQUFTLEdBQUc7SUFDZCxFQUFFLEVBQUUsSUFBSTtJQUNSLENBQUMsRUFBRSxJQUFJO0lBQ1AsQ0FBQyxFQUFFLElBQUk7SUFDUCxDQUFDLEVBQUUsSUFBSTtJQUNQLEVBQUUsRUFBRSxJ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LFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNYLHNCQUFzQixDQUFDLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUM7cUJBQ3pFO2lCQUNKOzswQkF5QlEsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxVQUFVOzhCQUM4QixRQUFROzBCQUF2RCxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsdUJBQXVCOzRDQXZCbkMsS0FBSztzQkFGSixLQUFLO2dCQU9OLElBQUk7c0JBSEgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTTdCLE1BQU07c0JBRkwsS0FBSztnQkFNTixlQUFlO3NCQUZkLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUQ3QixNQUFNO2dCQW9CSCxLQUFLO3NCQURSLFdBQVc7dUJBQUMsY0FBYztnQkE0Q25CLE1BQU0sTUFLTixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbiBhcyBOZ0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTYWZlVmFsdWV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtMT0NBVElPTn0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aVByZXBhcmVFeHRlcm5hbFVybH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpSWRTZXJ2aWNlLFxuICAgIHR1aVB1cmUsXG4gICAgdHVpU3VtLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsXG4gICAgdHVpSGludE9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlTaXplWEwsXG4gICAgVHVpU2l6ZVhTLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbmNvbnN0IFJBRElJID0ge1xuICAgIHhzOiAnNTAnLFxuICAgIHM6ICc1MCcsXG4gICAgbTogJzc3LjgnLFxuICAgIGw6ICc4MS45JyxcbiAgICB4bDogJzgxLjMnLFxufTtcbmNvbnN0IFRSQU5TRk9STSA9IHtcbiAgICB4czogMS4xNSxcbiAgICBzOiAxLjI1LFxuICAgIG06IDEuMTEsXG4gICAgbDogMS4wOSxcbiAgICB4bDogMS4wOCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXBpZS1jaGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BpZS1jaGFydC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9waWUtY2hhcnQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHZpZXdQcm92aWRlcnM6IFtcbiAgICAgICAgdHVpSGludE9wdGlvbnNQcm92aWRlcih7ZGlyZWN0aW9uOiAndG9wLXJpZ2h0JywgYXBwZWFyYW5jZTogJ29uRGFyayd9KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQaWVDaGFydENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWRTdHJpbmc6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplWEwgfCBUdWlTaXplWFMgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFza2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWN0aXZlSXRlbUluZGV4ID0gTmFOO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYWN0aXZlSXRlbUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpIGlkU2VydmljZTogVHVpSWRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaGludE9wdGlvbnM6IFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdXRvSWRTdHJpbmcgPSBpZFNlcnZpY2UuZ2VuZXJhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy5oaW50T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucy5zaG93RGVsYXkgPSAwO1xuICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucy5oaWRlRGVsYXkgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZW1wdHknKVxuICAgIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFN1bSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IG1hc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHR1aS1yaW5nLWNoYXJ0LSR7dGhpcy5hdXRvSWRTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBnZXQgbWFzaygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFza2VkXG4gICAgICAgICAgICA/IHR1aVByZXBhcmVFeHRlcm5hbFVybCh0aGlzLm5nTG9jYXRpb24sIHRoaXMubG9jYXRpb25SZWYsIHRoaXMubWFza0lkKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCByYWRpdXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFJBRElJW3RoaXMuc2l6ZV07XG4gICAgfVxuXG4gICAgZ2V0IHNlZ21lbnRzKCk6IFJlYWRvbmx5QXJyYXk8W251bWJlciwgbnVtYmVyXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWdtZW50cyh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRUcmFuc2Zvcm0oaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLm1hc2tlZFxuICAgICAgICAgICAgPyBgc2NhbGUoJHtUUkFOU0ZPUk1bdGhpcy5zaXplXX0pYFxuICAgICAgICAgICAgOiBgc2NhbGUoJHtUUkFOU0ZPUk0ueHN9KWA7XG5cbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSB0aGlzLmFjdGl2ZUl0ZW1JbmRleCA/IHRyYW5zZm9ybSA6IG51bGw7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtSW5kZXgoaG92ZXJlZCA/IGluZGV4IDogTmFOKTtcbiAgICB9XG5cbiAgICBnZXRDb2xvcihpbmRleDogbnVtYmVyKTogU2FmZVZhbHVlIHtcbiAgICAgICAgcmV0dXJuIGB2YXIoLS10dWktY2hhcnQtJHtpbmRleH0pYDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0U3VtKHZhbHVlOiByZWFkb25seSBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlTdW0oLi4udmFsdWUpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRTZWdtZW50cyh2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10pOiBSZWFkb25seUFycmF5PFtudW1iZXIsIG51bWJlcl0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAubWFwKChpbml0aWFsLCBpLCBhcnJheSkgPT5cbiAgICAgICAgICAgICAgICBhcnJheS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChzdW0sIGN1cnJlbnQsIGopID0+IChqIDwgaSA/IHRoaXMuZ2V0RGVnKGN1cnJlbnQpICsgc3VtIDogc3VtKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREZWcoaW5pdGlhbCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGFuZ2xlLCBpbmRleCwgYXJyYXkpID0+IFtcbiAgICAgICAgICAgICAgICBhcnJheVtpbmRleCAtIDFdIHx8IDAsXG4gICAgICAgICAgICAgICAgTWF0aC5taW4oYW5nbGUsIDM1OS45OTk5KSxcbiAgICAgICAgICAgIF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVnKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMzYwICogKHZhbHVlIC8gdGhpcy5nZXRTdW0odGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlSXRlbUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZUl0ZW1JbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtSW5kZXhDaGFuZ2UubmV4dChpbmRleCk7XG4gICAgfVxufVxuIiwiPHN2Z1xuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIGhlaWdodD1cIjEwMCVcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgdmlld0JveD1cIi0xMDAgLTEwMCAyMDAgMjAwXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY2xhc3M9XCJ0LXN2Z1wiXG4+XG4gICAgPGRlZnM+XG4gICAgICAgIDxtYXNrIFthdHRyLmlkXT1cIm1hc2tJZFwiPlxuICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICB4PVwiLTIwMFwiXG4gICAgICAgICAgICAgICAgeT1cIi0yMDBcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiNDAwXCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI0MDBcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICAgIGN4PVwiMFwiXG4gICAgICAgICAgICAgICAgY3k9XCIwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yXT1cInJhZGl1c1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L21hc2s+XG4gICAgPC9kZWZzPlxuICAgIDxnIFtzdHlsZS5tYXNrXT1cIm1hc2tcIj5cbiAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgY3g9XCIwXCJcbiAgICAgICAgICAgIGN5PVwiMFwiXG4gICAgICAgICAgICByPVwiMTAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1wbGFjZWhvbGRlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICAqdHVpUmVwZWF0VGltZXM9XCJsZXQgaW5kZXggb2Ygc2VnbWVudHMubGVuZ3RoXCJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1waWUtY2hhcnRfX3NlZ21lbnRcIlxuICAgICAgICAgICAgdHVpSGludFBvaW50ZXJcbiAgICAgICAgICAgIGQ9XCJcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXNlZ21lbnRcIlxuICAgICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cImdldFRyYW5zZm9ybShpbmRleClcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldENvbG9yKGluZGV4KVwiXG4gICAgICAgICAgICBbdHVpUGllQ2hhcnRdPVwic2VnbWVudHNbaW5kZXhdXCJcbiAgICAgICAgICAgIFt0dWlIaW50XT1cImhpbnRDb250ZW50XCJcbiAgICAgICAgICAgIFt0dWlIaW50Q29udGV4dF09XCJ7JGltcGxpY2l0OiBpbmRleH1cIlxuICAgICAgICAgICAgKHR1aUhvdmVyZWRDaGFuZ2UpPVwib25Ib3ZlcmVkKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgLz5cbiAgICA8L2c+XG48L3N2Zz5cbiJdfQ==
@@ -29,12 +29,12 @@ export class TuiPieChartDirective {
29
29
  this.sector$.next(sector);
30
30
  }
31
31
  }
32
- TuiPieChartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartDirective, deps: [{ token: ElementRef }, { token: NgZone }, { token: TuiDestroyService, self: true }, { token: PERFORMANCE }, { token: ANIMATION_FRAME }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Directive });
33
- TuiPieChartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: { tuiPieChart: "tuiPieChart" }, providers: [TuiDestroyService], ngImport: i0 });
32
+ TuiPieChartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartDirective, deps: [{ token: ElementRef }, { token: NgZone }, { token: TuiDestroyService, self: true }, { token: PERFORMANCE }, { token: ANIMATION_FRAME }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Directive });
33
+ TuiPieChartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: { tuiPieChart: "tuiPieChart" }, providers: [TuiDestroyService], ngImport: i0 });
34
34
  __decorate([
35
35
  tuiDefaultProp()
36
36
  ], TuiPieChartDirective.prototype, "tuiPieChart", null);
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartDirective, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartDirective, decorators: [{
38
38
  type: Directive,
39
39
  args: [{
40
40
  selector: 'path[tuiPieChart]',
@@ -8,20 +8,20 @@ import { TuiPieChartDirective } from './pie-chart.directive';
8
8
  import * as i0 from "@angular/core";
9
9
  export class TuiPieChartModule {
10
10
  }
11
- TuiPieChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TuiPieChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartModule, declarations: [TuiPieChartComponent, TuiPieChartDirective], imports: [CommonModule,
11
+ TuiPieChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ TuiPieChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartModule, declarations: [TuiPieChartComponent, TuiPieChartDirective], imports: [CommonModule,
13
13
  TuiRepeatTimesModule,
14
14
  TuiHoveredModule,
15
15
  PolymorpheusModule,
16
16
  TuiHintModule], exports: [TuiPieChartComponent] });
17
- TuiPieChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartModule, imports: [[
17
+ TuiPieChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartModule, imports: [[
18
18
  CommonModule,
19
19
  TuiRepeatTimesModule,
20
20
  TuiHoveredModule,
21
21
  PolymorpheusModule,
22
22
  TuiHintModule,
23
23
  ]] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiPieChartModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -21,8 +21,8 @@ export class TuiRingChartComponent {
21
21
  this.activeItemIndexChange.next(index);
22
22
  }
23
23
  }
24
- TuiRingChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- TuiRingChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRingChartComponent, selector: "tui-ring-chart", inputs: { value: "value", size: "size", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-content{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;font:var(--tui-font-text-m);max-height:100%;flex-direction:column;justify-content:center;text-align:center;padding:1.5rem;border-radius:100%;box-sizing:border-box;overflow:hidden;word-break:break-word;white-space:pre-wrap;color:var(--tui-text-02)}:host[data-size=m] .t-content{font:var(--tui-font-text-xs)}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-font-text-l);font-weight:bold}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:bold}.t-shield{position:absolute;top:25%;left:25%;right:25%;bottom:25%;border-radius:100%}\n"], components: [{ type: i1.TuiPieChartComponent, selector: "tui-pie-chart", inputs: ["value", "size", "masked", "activeItemIndex"], outputs: ["activeItemIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ TuiRingChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ TuiRingChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRingChartComponent, selector: "tui-ring-chart", inputs: { value: "value", size: "size", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-content{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;font:var(--tui-font-text-m);max-height:100%;flex-direction:column;justify-content:center;text-align:center;padding:1.5rem;border-radius:100%;box-sizing:border-box;overflow:hidden;word-break:break-word;white-space:pre-wrap;color:var(--tui-text-02)}:host[data-size=m] .t-content{font:var(--tui-font-text-xs)}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-font-text-l);font-weight:bold}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:bold}.t-shield{position:absolute;top:25%;left:25%;right:25%;bottom:25%;border-radius:100%}\n"], components: [{ type: i1.TuiPieChartComponent, selector: "tui-pie-chart", inputs: ["value", "size", "masked", "activeItemIndex"], outputs: ["activeItemIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
26
  __decorate([
27
27
  tuiDefaultProp()
28
28
  ], TuiRingChartComponent.prototype, "value", void 0);
@@ -32,7 +32,7 @@ __decorate([
32
32
  __decorate([
33
33
  tuiDefaultProp()
34
34
  ], TuiRingChartComponent.prototype, "activeItemIndex", void 0);
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{
38
38
  selector: 'tui-ring-chart',
@@ -6,10 +6,10 @@ import { TuiRingChartComponent } from './ring-chart.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class TuiRingChartModule {
8
8
  }
9
- TuiRingChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- TuiRingChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartModule, declarations: [TuiRingChartComponent], imports: [CommonModule, PolymorpheusModule, TuiPieChartModule], exports: [TuiRingChartComponent] });
11
- TuiRingChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartModule, imports: [[CommonModule, PolymorpheusModule, TuiPieChartModule]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRingChartModule, decorators: [{
9
+ TuiRingChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ TuiRingChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartModule, declarations: [TuiRingChartComponent], imports: [CommonModule, PolymorpheusModule, TuiPieChartModule], exports: [TuiRingChartComponent] });
11
+ TuiRingChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartModule, imports: [[CommonModule, PolymorpheusModule, TuiPieChartModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [CommonModule, PolymorpheusModule, TuiPieChartModule],
@@ -73,8 +73,8 @@ class TuiArcChartComponent {
73
73
  return this.sanitizer.bypassSecurityTrustStyle(`var(--tui-chart-${index}, var(--tui-support-0${index + 1}))`);
74
74
  }
75
75
  }
76
- TuiArcChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartComponent, deps: [{ token: DomSanitizer }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
- TuiArcChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiArcChartComponent, selector: "tui-arc-chart", inputs: { value: "value", size: "size", max: "max", minLabel: "minLabel", maxLabel: "maxLabel", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size", "style.width.rem": "this.width", "style.height.rem": "this.width", "style.strokeWidth.rem": "this.strokeWidth" } }, viewQueries: [{ propertyName: "arcs", predicate: ["arc"], descendants: true }], ngImport: i0, template: "<svg\n *tuiRepeatTimes=\"let index of value.length\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n [style.top.em]=\"getInset(index)\"\n [style.left.em]=\"getInset(index)\"\n [style.width.em]=\"getDiameter(index)\"\n [style.height.em]=\"getDiameter(index)\"\n>\n <path\n vector-effect=\"non-scaling-stroke\"\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n />\n <path\n #arc\n vector-effect=\"non-scaling-stroke\"\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive(index)\"\n [style.stroke]=\"getColor(index)\"\n [style.strokeDasharray.em]=\"getLength(index)\"\n [style.strokeDashoffset.em]=\"initialized ? getOffset(index) : getLength(index)\"\n />\n</svg>\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ minLabel }}</span>\n <span>{{ maxLabel }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;top:0;left:0;bottom:0;right:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-secondary);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-02);font:var(--tui-font-text-xs);pointer-events:none}:host[data-size=xl] .t-content{font:var(--tui-font-text-m)}.t-wrapper{pointer-events:auto}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-font-text-s);font-weight:bold}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:bold}:host[data-size=xl] .t-wrapper:first-line{font:var(--tui-font-heading-5)}.t-percent{position:absolute;left:25%;bottom:11%;display:flex;width:50%;justify-content:space-between;font:var(--tui-font-text-xs);color:var(--tui-text-02)}:host[data-size=xl] .t-percent{font:var(--tui-font-text-m)}\n"], directives: [{ type: i1.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ TuiArcChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartComponent, deps: [{ token: DomSanitizer }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
+ TuiArcChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiArcChartComponent, selector: "tui-arc-chart", inputs: { value: "value", size: "size", max: "max", minLabel: "minLabel", maxLabel: "maxLabel", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size", "style.width.rem": "this.width", "style.height.rem": "this.width", "style.strokeWidth.rem": "this.strokeWidth" } }, viewQueries: [{ propertyName: "arcs", predicate: ["arc"], descendants: true }], ngImport: i0, template: "<svg\n *tuiRepeatTimes=\"let index of value.length\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n [style.top.em]=\"getInset(index)\"\n [style.left.em]=\"getInset(index)\"\n [style.width.em]=\"getDiameter(index)\"\n [style.height.em]=\"getDiameter(index)\"\n>\n <path\n vector-effect=\"non-scaling-stroke\"\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n />\n <path\n #arc\n vector-effect=\"non-scaling-stroke\"\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive(index)\"\n [style.stroke]=\"getColor(index)\"\n [style.strokeDasharray.em]=\"getLength(index)\"\n [style.strokeDashoffset.em]=\"initialized ? getOffset(index) : getLength(index)\"\n />\n</svg>\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ minLabel }}</span>\n <span>{{ maxLabel }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;top:0;left:0;bottom:0;right:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-secondary);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-02);font:var(--tui-font-text-xs);pointer-events:none}:host[data-size=xl] .t-content{font:var(--tui-font-text-m)}.t-wrapper{pointer-events:auto}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-font-text-s);font-weight:bold}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:bold}:host[data-size=xl] .t-wrapper:first-line{font:var(--tui-font-heading-5)}.t-percent{position:absolute;left:25%;bottom:11%;display:flex;width:50%;justify-content:space-between;font:var(--tui-font-text-xs);color:var(--tui-text-02)}:host[data-size=xl] .t-percent{font:var(--tui-font-text-m)}\n"], directives: [{ type: i1.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
78
  __decorate([
79
79
  tuiDefaultProp()
80
80
  ], TuiArcChartComponent.prototype, "value", void 0);
@@ -93,7 +93,7 @@ __decorate([
93
93
  __decorate([
94
94
  tuiDefaultProp()
95
95
  ], TuiArcChartComponent.prototype, "activeItemIndex", void 0);
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{
99
99
  selector: 'tui-arc-chart',
@@ -143,10 +143,10 @@ function arcsToIndex(arcs) {
143
143
 
144
144
  class TuiArcChartModule {
145
145
  }
146
- TuiArcChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
147
- TuiArcChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartModule, declarations: [TuiArcChartComponent], imports: [TuiRepeatTimesModule], exports: [TuiArcChartComponent] });
148
- TuiArcChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartModule, imports: [[TuiRepeatTimesModule]] });
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiArcChartModule, decorators: [{
146
+ TuiArcChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
147
+ TuiArcChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartModule, declarations: [TuiArcChartComponent], imports: [TuiRepeatTimesModule], exports: [TuiArcChartComponent] });
148
+ TuiArcChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartModule, imports: [[TuiRepeatTimesModule]] });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiArcChartModule, decorators: [{
150
150
  type: NgModule,
151
151
  args: [{
152
152
  imports: [TuiRepeatTimesModule],
@@ -43,8 +43,8 @@ class TuiAxesComponent {
43
43
  return label || CHAR_NO_BREAK_SPACE;
44
44
  }
45
45
  }
46
- TuiAxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesComponent, deps: [{ token: TUI_MODE }], target: i0.ɵɵFactoryTarget.Component });
47
- TuiAxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiAxesComponent, selector: "tui-axes", inputs: { axisX: "axisX", axisXLabels: "axisXLabels", axisY: "axisY", axisYInset: "axisYInset", axisYLabels: "axisYLabels", axisYName: "axisYName", axisYSecondaryInset: "axisYSecondaryInset", axisYSecondaryLabels: "axisYSecondaryLabels", axisYSecondaryName: "axisYSecondaryName", horizontalLines: "horizontalLines", horizontalLinesHandler: "horizontalLinesHandler", verticalLines: "verticalLines", verticalLinesHandler: "verticalLinesHandler" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "class._centered": "this.centeredXLabels" } }, providers: [MODE_PROVIDER], ngImport: i0, template: "<div\n *ngIf=\"hasYLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\n <div\n *ngIf=\"axisYName\"\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ axisYName }}\n </div>\n <div\n *ngIf=\"!axisYInset\"\n class=\"t-labels-y t-labels-y_primary\"\n >\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div class=\"t-wrapper\">\n <div\n class=\"t-grid\"\n [style.borderLeftStyle]=\"axisY\"\n [style.borderBottomStyle]=\"axisX\"\n >\n <div class=\"t-vertical\">\n <div\n *tuiRepeatTimes=\"let index of verticalLines\"\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.borderRightStyle]=\"verticalLinesHandler(index, verticalLines)\"\n ></div>\n </div>\n <div class=\"t-horizontal\">\n <div\n *tuiRepeatTimes=\"let index of horizontalLines\"\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.borderTopStyle]=\"horizontalLinesHandler(index, horizontalLines)\"\n ></div>\n </div>\n <div\n *ngIf=\"axisYInset\"\n class=\"t-labels-y t-labels-y_inset\"\n >\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\"\n >\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div class=\"t-content\">\n <ng-content></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"hasXLabels\"\n class=\"t-labels-x\"\n >\n <div\n *ngFor=\"let label of axisXLabels\"\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div\n *ngIf=\"hasYSecondaryLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\n <div\n *ngIf=\"!axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_secondary\"\n >\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n", styles: [":host{display:flex}.t-wrapper{display:flex;flex:1;height:100%;flex-direction:column}.t-grid{position:relative;z-index:0;display:flex;flex:1;justify-content:space-around;align-items:flex-end;border-width:1px;border-color:var(--tui-base-03)}:host[data-mode=onDark] .t-grid{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-grid{border-color:rgba(0,0,0,.48)}.t-horizontal{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column}.t-vertical{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}:host._centered .t-vertical:after{content:\"\";display:block;flex:1 0 1px}.t-line{flex:2 0 1px;box-sizing:border-box;border-width:1px;border-color:var(--tui-base-03)}:host[data-mode=onDark] .t-line{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-line{border-color:rgba(0,0,0,.48)}:host._centered .t-line_vertical:first-child{flex:1 0 1px;pointer-events:none}.t-side{display:flex;align-items:stretch}.t-side_padding{padding-bottom:2rem}.t-name{font:var(--tui-font-text-xs);-webkit-writing-mode:tb;writing-mode:tb;text-align:center;padding-left:.75rem;color:var(--tui-text-02)}.t-name_primary{transform:rotate(180deg)}:host[data-mode=onDark] .t-name{color:var(--tui-text-02-night)}.t-labels-y{display:flex;font:var(--tui-font-text-xs);flex-direction:column-reverse;justify-content:space-between;color:var(--tui-text-02)}:host[data-mode=onDark] .t-labels-y{color:var(--tui-text-02-night)}.t-labels-y_primary{text-align:right;padding-right:.75rem}.t-labels-y_secondary{padding-left:.75rem}.t-labels-y_transparent{border-color:transparent}.t-labels-y_inset{position:absolute;top:.5625rem;left:.25rem;bottom:-.75rem;pointer-events:none}.t-labels-y_inset_secondary{left:auto;right:.25rem;text-align:right}.t-labels-x{display:flex;font:var(--tui-font-text-xs);border-right:1px solid transparent;color:var(--tui-text-02)}.t-label-x{height:.4375rem;border-left:1px solid var(--tui-base-03);flex:1;margin-bottom:1.5625rem}:host[data-mode=onDark] .t-label-x{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-label-x{border-color:rgba(0,0,0,.48)}.t-label-x:before{content:\"\";display:block;height:.5625rem}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{height:2rem;text-align:center;border:none;margin:0}.t-label-y:first-child{margin-bottom:-.375rem}.t-label-y:last-child{margin-top:-.375rem}.t-content{position:absolute;top:0;left:-1px;right:0;bottom:-1px;display:flex;align-items:flex-end}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ TuiAxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesComponent, deps: [{ token: TUI_MODE }], target: i0.ɵɵFactoryTarget.Component });
47
+ TuiAxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiAxesComponent, selector: "tui-axes", inputs: { axisX: "axisX", axisXLabels: "axisXLabels", axisY: "axisY", axisYInset: "axisYInset", axisYLabels: "axisYLabels", axisYName: "axisYName", axisYSecondaryInset: "axisYSecondaryInset", axisYSecondaryLabels: "axisYSecondaryLabels", axisYSecondaryName: "axisYSecondaryName", horizontalLines: "horizontalLines", horizontalLinesHandler: "horizontalLinesHandler", verticalLines: "verticalLines", verticalLinesHandler: "verticalLinesHandler" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "class._centered": "this.centeredXLabels" } }, providers: [MODE_PROVIDER], ngImport: i0, template: "<div\n *ngIf=\"hasYLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\n <div\n *ngIf=\"axisYName\"\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ axisYName }}\n </div>\n <div\n *ngIf=\"!axisYInset\"\n class=\"t-labels-y t-labels-y_primary\"\n >\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div class=\"t-wrapper\">\n <div\n class=\"t-grid\"\n [style.borderLeftStyle]=\"axisY\"\n [style.borderBottomStyle]=\"axisX\"\n >\n <div class=\"t-vertical\">\n <div\n *tuiRepeatTimes=\"let index of verticalLines\"\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.borderRightStyle]=\"verticalLinesHandler(index, verticalLines)\"\n ></div>\n </div>\n <div class=\"t-horizontal\">\n <div\n *tuiRepeatTimes=\"let index of horizontalLines\"\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.borderTopStyle]=\"horizontalLinesHandler(index, horizontalLines)\"\n ></div>\n </div>\n <div\n *ngIf=\"axisYInset\"\n class=\"t-labels-y t-labels-y_inset\"\n >\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\"\n >\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div class=\"t-content\">\n <ng-content></ng-content>\n </div>\n </div>\n <div\n *ngIf=\"hasXLabels\"\n class=\"t-labels-x\"\n >\n <div\n *ngFor=\"let label of axisXLabels\"\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div\n *ngIf=\"hasYSecondaryLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\n <div\n *ngIf=\"!axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_secondary\"\n >\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n", styles: [":host{display:flex}.t-wrapper{display:flex;flex:1;height:100%;flex-direction:column}.t-grid{position:relative;z-index:0;display:flex;flex:1;justify-content:space-around;align-items:flex-end;border-width:1px;border-color:var(--tui-base-03)}:host[data-mode=onDark] .t-grid{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-grid{border-color:rgba(0,0,0,.48)}.t-horizontal{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column}.t-vertical{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}:host._centered .t-vertical:after{content:\"\";display:block;flex:1 0 1px}.t-line{flex:2 0 1px;box-sizing:border-box;border-width:1px;border-color:var(--tui-base-03)}:host[data-mode=onDark] .t-line{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-line{border-color:rgba(0,0,0,.48)}:host._centered .t-line_vertical:first-child{flex:1 0 1px;pointer-events:none}.t-side{display:flex;align-items:stretch}.t-side_padding{padding-bottom:2rem}.t-name{font:var(--tui-font-text-xs);-webkit-writing-mode:tb;writing-mode:tb;text-align:center;padding-left:.75rem;color:var(--tui-text-02)}.t-name_primary{transform:rotate(180deg)}:host[data-mode=onDark] .t-name{color:var(--tui-text-02-night)}.t-labels-y{display:flex;font:var(--tui-font-text-xs);flex-direction:column-reverse;justify-content:space-between;color:var(--tui-text-02)}:host[data-mode=onDark] .t-labels-y{color:var(--tui-text-02-night)}.t-labels-y_primary{text-align:right;padding-right:.75rem}.t-labels-y_secondary{padding-left:.75rem}.t-labels-y_transparent{border-color:transparent}.t-labels-y_inset{position:absolute;top:.5625rem;left:.25rem;bottom:-.75rem;pointer-events:none}.t-labels-y_inset_secondary{left:auto;right:.25rem;text-align:right}.t-labels-x{display:flex;font:var(--tui-font-text-xs);border-right:1px solid transparent;color:var(--tui-text-02)}.t-label-x{height:.4375rem;border-left:1px solid var(--tui-base-03);flex:1;margin-bottom:1.5625rem}:host[data-mode=onDark] .t-label-x{border-color:rgba(255,255,255,.48)}:host[data-mode=onLight] .t-label-x{border-color:rgba(0,0,0,.48)}.t-label-x:before{content:\"\";display:block;height:.5625rem}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{height:2rem;text-align:center;border:none;margin:0}.t-label-y:first-child{margin-bottom:-.375rem}.t-label-y:last-child{margin-top:-.375rem}.t-content{position:absolute;top:0;left:-1px;right:0;bottom:-1px;display:flex;align-items:flex-end}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
48
  __decorate([
49
49
  tuiDefaultProp()
50
50
  ], TuiAxesComponent.prototype, "axisX", void 0);
@@ -84,7 +84,7 @@ __decorate([
84
84
  __decorate([
85
85
  tuiDefaultProp()
86
86
  ], TuiAxesComponent.prototype, "verticalLinesHandler", void 0);
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesComponent, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesComponent, decorators: [{
88
88
  type: Component,
89
89
  args: [{
90
90
  selector: 'tui-axes',
@@ -132,10 +132,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
132
132
 
133
133
  class TuiAxesModule {
134
134
  }
135
- TuiAxesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
136
- TuiAxesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesModule, declarations: [TuiAxesComponent], imports: [CommonModule, TuiRepeatTimesModule], exports: [TuiAxesComponent] });
137
- TuiAxesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesModule, imports: [[CommonModule, TuiRepeatTimesModule]] });
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiAxesModule, decorators: [{
135
+ TuiAxesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
136
+ TuiAxesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesModule, declarations: [TuiAxesComponent], imports: [CommonModule, TuiRepeatTimesModule], exports: [TuiAxesComponent] });
137
+ TuiAxesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesModule, imports: [[CommonModule, TuiRepeatTimesModule]] });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAxesModule, decorators: [{
139
139
  type: NgModule,
140
140
  args: [{
141
141
  imports: [CommonModule, TuiRepeatTimesModule],