@tetacom/ng-components 1.0.9 → 1.0.13
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.
- package/assets/intersect.svg +3 -0
- package/assets/lithotype-icons.svg +7 -1
- package/component/chart/chart/chart.component.d.ts +2 -1
- package/component/chart/core/chart.d.ts +2 -0
- package/component/chart/model/enum/dispatch-type.d.ts +2 -1
- package/component/chart/model/plot-band.d.ts +2 -0
- package/component/chart/model/point/base-point.d.ts +2 -0
- package/component/chart/model/point/marker-options.d.ts +9 -0
- package/component/icon/icon-sprite.directive.d.ts +1 -1
- package/component/input/text-field/text-field.component.d.ts +3 -1
- package/esm2020/component/chart/chart/chart.component.mjs +11 -4
- package/esm2020/component/chart/core/chart.mjs +23 -5
- package/esm2020/component/chart/drawer/line-drawer.mjs +38 -2
- package/esm2020/component/chart/drawer/spline-drawer.mjs +2 -1
- package/esm2020/component/chart/model/enum/dispatch-type.mjs +2 -1
- package/esm2020/component/chart/model/plot-band.mjs +2 -1
- package/esm2020/component/chart/model/point/base-point.mjs +1 -1
- package/esm2020/component/chart/model/point/marker-options.mjs +2 -0
- package/esm2020/component/icon/icon-sprite.directive.mjs +9 -2
- package/esm2020/component/input/text-field/text-field.component.mjs +15 -6
- package/esm2020/directive/only-number/only-number.directive.mjs +1 -2
- package/fesm2015/tetacom-ng-components.mjs +95 -16
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +94 -15
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/style/scroll.scss +9 -0
|
@@ -247,7 +247,15 @@ class IconSpriteDirective {
|
|
|
247
247
|
this.bypassInterceptors = true;
|
|
248
248
|
}
|
|
249
249
|
ngOnInit() {
|
|
250
|
-
|
|
250
|
+
var _a;
|
|
251
|
+
if (typeof this.tetaIconSprite === 'string') {
|
|
252
|
+
this._iconService.addSprite(this.tetaIconSprite, this.bypassInterceptors);
|
|
253
|
+
}
|
|
254
|
+
if (this.tetaIconSprite instanceof Array && ((_a = this.tetaIconSprite) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
255
|
+
this.tetaIconSprite.forEach((sprite) => {
|
|
256
|
+
this._iconService.addSprite(sprite, this.bypassInterceptors);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
251
259
|
}
|
|
252
260
|
}
|
|
253
261
|
IconSpriteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: IconSpriteDirective, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -2693,7 +2701,6 @@ class OnlyNumberDirective {
|
|
|
2693
2701
|
value = '0.0';
|
|
2694
2702
|
}
|
|
2695
2703
|
const valid = new RegExp(regex).test(value.toString());
|
|
2696
|
-
console.log(value, valid);
|
|
2697
2704
|
this._control.control.setValue(valid ? value : (_a = this._previousValue) !== null && _a !== void 0 ? _a : 0);
|
|
2698
2705
|
}
|
|
2699
2706
|
}
|
|
@@ -3555,6 +3562,7 @@ class TextFieldComponent {
|
|
|
3555
3562
|
this.placeholder = '';
|
|
3556
3563
|
this.disabled = false;
|
|
3557
3564
|
this.onlyNumber = false;
|
|
3565
|
+
this.tabindex = 0;
|
|
3558
3566
|
this.textField = true;
|
|
3559
3567
|
this.value = '';
|
|
3560
3568
|
}
|
|
@@ -3566,6 +3574,9 @@ class TextFieldComponent {
|
|
|
3566
3574
|
this.input.nativeElement.blur();
|
|
3567
3575
|
}
|
|
3568
3576
|
}
|
|
3577
|
+
emitBlur() {
|
|
3578
|
+
this.onTouched();
|
|
3579
|
+
}
|
|
3569
3580
|
registerOnChange(fn) {
|
|
3570
3581
|
this.onChange = fn;
|
|
3571
3582
|
}
|
|
@@ -3580,17 +3591,19 @@ class TextFieldComponent {
|
|
|
3580
3591
|
this.value = input;
|
|
3581
3592
|
this._cdr.detectChanges();
|
|
3582
3593
|
}
|
|
3583
|
-
onChange(input) {
|
|
3584
|
-
|
|
3594
|
+
onChange(input) {
|
|
3595
|
+
}
|
|
3596
|
+
onTouched() {
|
|
3597
|
+
}
|
|
3585
3598
|
}
|
|
3586
3599
|
TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3587
|
-
TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "class.text-field": "this.textField" } }, providers: [
|
|
3600
|
+
TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "attr.tabindex": "this.tabindex", "class.text-field": "this.textField" } }, providers: [
|
|
3588
3601
|
{
|
|
3589
3602
|
provide: NG_VALUE_ACCESSOR,
|
|
3590
3603
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
3591
3604
|
multi: true,
|
|
3592
3605
|
},
|
|
3593
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<teta-icon *ngIf=\"leftIconName\" [name]=\"leftIconName\"></teta-icon>\n<input\n #input\n [ngModel]=\"value\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event);\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (keydown)=\"keyPress($event)\"\n autocomplete=\"off\"\n type=\"text\"\n/>\n<teta-icon\n *ngIf=\"value && !disabled\"\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n (click)=\"value = ''; onChange('');\"\n></teta-icon>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3606
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<teta-icon *ngIf=\"leftIconName\" [name]=\"leftIconName\"></teta-icon>\n<input\n #input\n [ngModel]=\"value\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event);\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n (keydown)=\"keyPress($event)\"\n autocomplete=\"off\"\n type=\"text\"\n/>\n<teta-icon\n *ngIf=\"value && !disabled\"\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n (click)=\"value = ''; onChange('');\"\n></teta-icon>\n", styles: [""], components: [{ type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3594
3607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TextFieldComponent, decorators: [{
|
|
3595
3608
|
type: Component,
|
|
3596
3609
|
args: [{ selector: 'teta-text-field', providers: [
|
|
@@ -3599,7 +3612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
3599
3612
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
3600
3613
|
multi: true,
|
|
3601
3614
|
},
|
|
3602
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-icon *ngIf=\"leftIconName\" [name]=\"leftIconName\"></teta-icon>\n<input\n #input\n [ngModel]=\"value\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event);\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (keydown)=\"keyPress($event)\"\n autocomplete=\"off\"\n type=\"text\"\n/>\n<teta-icon\n *ngIf=\"value && !disabled\"\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n (click)=\"value = ''; onChange('');\"\n></teta-icon>\n", styles: [""] }]
|
|
3615
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-icon *ngIf=\"leftIconName\" [name]=\"leftIconName\"></teta-icon>\n<input\n #input\n [ngModel]=\"value\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event);\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n (keydown)=\"keyPress($event)\"\n autocomplete=\"off\"\n type=\"text\"\n/>\n<teta-icon\n *ngIf=\"value && !disabled\"\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n (click)=\"value = ''; onChange('');\"\n></teta-icon>\n", styles: [""] }]
|
|
3603
3616
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
|
|
3604
3617
|
type: Input
|
|
3605
3618
|
}], leftIconName: [{
|
|
@@ -3619,6 +3632,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
3619
3632
|
}], input: [{
|
|
3620
3633
|
type: ViewChild,
|
|
3621
3634
|
args: ['input', { static: false }]
|
|
3635
|
+
}], tabindex: [{
|
|
3636
|
+
type: HostBinding,
|
|
3637
|
+
args: ['attr.tabindex']
|
|
3622
3638
|
}], textField: [{
|
|
3623
3639
|
type: HostBinding,
|
|
3624
3640
|
args: ['class.text-field']
|
|
@@ -10046,15 +10062,17 @@ class BarDrawer {
|
|
|
10046
10062
|
var DispatchType;
|
|
10047
10063
|
(function (DispatchType) {
|
|
10048
10064
|
DispatchType["moveLine"] = "moveLine";
|
|
10065
|
+
DispatchType["movePoint"] = "movePoint";
|
|
10049
10066
|
})(DispatchType || (DispatchType = {}));
|
|
10050
10067
|
|
|
10051
10068
|
class LineDrawer {
|
|
10052
10069
|
constructor() {
|
|
10053
|
-
this.dispatch = d3.dispatch(DispatchType.moveLine);
|
|
10070
|
+
this.dispatch = d3.dispatch(DispatchType.moveLine, DispatchType.movePoint);
|
|
10054
10071
|
}
|
|
10055
10072
|
draw(series, context, scaleX, scaleY, options) {
|
|
10056
10073
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
10057
10074
|
const points = series.data;
|
|
10075
|
+
const markerPoints = points.filter((_) => _.marker);
|
|
10058
10076
|
const path = d3
|
|
10059
10077
|
.line()
|
|
10060
10078
|
.curve(series.curveType)
|
|
@@ -10062,6 +10080,40 @@ class LineDrawer {
|
|
|
10062
10080
|
.x((d) => scaleX(d.x))
|
|
10063
10081
|
.y((d) => scaleY(d.y));
|
|
10064
10082
|
const seriesIndex = options.series.findIndex((_) => _.id === series.id);
|
|
10083
|
+
if (markerPoints === null || markerPoints === void 0 ? void 0 : markerPoints.length) {
|
|
10084
|
+
const emit = (event, target) => {
|
|
10085
|
+
this.dispatch.apply(DispatchType.movePoint, {
|
|
10086
|
+
target: series,
|
|
10087
|
+
point: Object.assign({}, target),
|
|
10088
|
+
event,
|
|
10089
|
+
});
|
|
10090
|
+
};
|
|
10091
|
+
context
|
|
10092
|
+
.selectAll('circle')
|
|
10093
|
+
.data(markerPoints)
|
|
10094
|
+
.enter()
|
|
10095
|
+
.append('circle')
|
|
10096
|
+
.attr('class', 'draggable-marker')
|
|
10097
|
+
.attr('r', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.radius) || 5; })
|
|
10098
|
+
.attr('cx', function (d) {
|
|
10099
|
+
return scaleX(d.x);
|
|
10100
|
+
})
|
|
10101
|
+
.attr('cy', function (d) {
|
|
10102
|
+
return scaleY(d.y);
|
|
10103
|
+
})
|
|
10104
|
+
.style('cursor', 'pointer')
|
|
10105
|
+
.style('fill', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.color) || 'red'; })
|
|
10106
|
+
.attr('stroke', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.stroke) || 'none'; })
|
|
10107
|
+
.attr('stroke-width', (d) => { var _a, _b; return ((_b = (_a = d.marker) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.strokeWidth) || 0; });
|
|
10108
|
+
context.selectAll('.draggable-marker').call(d3.drag().on('drag start end', function dragged(event, d) {
|
|
10109
|
+
var _a, _b;
|
|
10110
|
+
d.x = scaleX.invert((_a = event.sourceEvent) === null || _a === void 0 ? void 0 : _a.offsetX);
|
|
10111
|
+
d.y = scaleY.invert((_b = event.sourceEvent) === null || _b === void 0 ? void 0 : _b.offsetY);
|
|
10112
|
+
d3.select(this).attr('cx', scaleX(d.x)).attr('cy', scaleY(d.y));
|
|
10113
|
+
context.select('path').attr('d', path);
|
|
10114
|
+
emit(event, d);
|
|
10115
|
+
}));
|
|
10116
|
+
}
|
|
10065
10117
|
context
|
|
10066
10118
|
.append('path')
|
|
10067
10119
|
.attr('class', (d) => (series === null || series === void 0 ? void 0 : series.drag.enable) ? 'draggable' : null)
|
|
@@ -10164,6 +10216,7 @@ class SplineDrawer {
|
|
|
10164
10216
|
const path = d3
|
|
10165
10217
|
.line()
|
|
10166
10218
|
.curve(d3.curveCatmullRom)
|
|
10219
|
+
.defined((d) => d.x != null && d.y != null)
|
|
10167
10220
|
.x((d) => scaleX(d.x))
|
|
10168
10221
|
.y((d) => scaleY(d.y));
|
|
10169
10222
|
context
|
|
@@ -10522,6 +10575,7 @@ class TetaChart {
|
|
|
10522
10575
|
this.plotLinesMove$ = new Subject();
|
|
10523
10576
|
this.plotBandsMove$ = new Subject();
|
|
10524
10577
|
this.seriesMove$ = new Subject();
|
|
10578
|
+
this.pointMove$ = new Subject();
|
|
10525
10579
|
this.zoom$ = new Subject();
|
|
10526
10580
|
this._container = null;
|
|
10527
10581
|
this._width = 0;
|
|
@@ -10543,6 +10597,7 @@ class TetaChart {
|
|
|
10543
10597
|
this.plotLinesMove = this.plotLinesMove$.asObservable();
|
|
10544
10598
|
this.plotBandsMove = this.plotBandsMove$.asObservable();
|
|
10545
10599
|
this.seriesMove = this.seriesMove$.asObservable();
|
|
10600
|
+
this.pointMove = this.pointMove$.asObservable();
|
|
10546
10601
|
this.zoom = this.zoom$.asObservable();
|
|
10547
10602
|
}
|
|
10548
10603
|
redraw(options) {
|
|
@@ -11010,7 +11065,12 @@ class TetaChart {
|
|
|
11010
11065
|
.attr('x', (d) => x(d.from))
|
|
11011
11066
|
.attr('y', 0)
|
|
11012
11067
|
.attr('width', (d) => Math.abs(x(d.to) - x(d.from)))
|
|
11013
|
-
.attr('fill', (d) =>
|
|
11068
|
+
.attr('fill', (d) => {
|
|
11069
|
+
if (d.image) {
|
|
11070
|
+
return `url(#${d.image})`;
|
|
11071
|
+
}
|
|
11072
|
+
return d.color;
|
|
11073
|
+
})
|
|
11014
11074
|
.style('opacity', (d) => { var _a; return (_a = d.opacity) !== null && _a !== void 0 ? _a : 1; })
|
|
11015
11075
|
.attr('height', plotBandHeight > 0 ? plotBandHeight : 0)
|
|
11016
11076
|
.attr('transform', `translate(0, ${this._options.bounds.top})`);
|
|
@@ -11255,7 +11315,12 @@ class TetaChart {
|
|
|
11255
11315
|
.attr('x', 0)
|
|
11256
11316
|
.attr('y', (d) => y(d.from))
|
|
11257
11317
|
.attr('width', (d) => plotBandWidth)
|
|
11258
|
-
.attr('fill', (d) =>
|
|
11318
|
+
.attr('fill', (d) => {
|
|
11319
|
+
if (d.image) {
|
|
11320
|
+
return `url(#${d.image})`;
|
|
11321
|
+
}
|
|
11322
|
+
return d.color;
|
|
11323
|
+
})
|
|
11259
11324
|
.style('opacity', (d) => { var _a; return (_a = d.opacity) !== null && _a !== void 0 ? _a : 1; })
|
|
11260
11325
|
.attr('height', (d) => Math.abs(y(d.to) - y(d.from)))
|
|
11261
11326
|
.attr('cursor', (d) => (d.draggable ? 'move' : 'default'));
|
|
@@ -11339,7 +11404,7 @@ class TetaChart {
|
|
|
11339
11404
|
.attr('class', 'series')
|
|
11340
11405
|
.attr('clip-path', `url(#draw-window-${this.uniqId})`);
|
|
11341
11406
|
series === null || series === void 0 ? void 0 : series.forEach((seriesItem, index) => {
|
|
11342
|
-
var _a;
|
|
11407
|
+
var _a, _b;
|
|
11343
11408
|
if (seriesItem.renderTo === 'canvas') {
|
|
11344
11409
|
d3.select(this._container.nativeElement)
|
|
11345
11410
|
.select('canvas')
|
|
@@ -11397,9 +11462,15 @@ class TetaChart {
|
|
|
11397
11462
|
const emit = (event) => {
|
|
11398
11463
|
this.seriesMove$.next(event);
|
|
11399
11464
|
};
|
|
11465
|
+
const emitPoint = (event) => {
|
|
11466
|
+
this.pointMove$.next(event);
|
|
11467
|
+
};
|
|
11400
11468
|
(_a = drawer === null || drawer === void 0 ? void 0 : drawer.dispatch) === null || _a === void 0 ? void 0 : _a.on(DispatchType.moveLine, function () {
|
|
11401
11469
|
emit(this);
|
|
11402
11470
|
});
|
|
11471
|
+
(_b = drawer === null || drawer === void 0 ? void 0 : drawer.dispatch) === null || _b === void 0 ? void 0 : _b.on(DispatchType.movePoint, function () {
|
|
11472
|
+
emitPoint(this);
|
|
11473
|
+
});
|
|
11403
11474
|
});
|
|
11404
11475
|
}
|
|
11405
11476
|
createTooltip() {
|
|
@@ -11447,7 +11518,7 @@ class TetaChart {
|
|
|
11447
11518
|
color: d.color,
|
|
11448
11519
|
name: d.name,
|
|
11449
11520
|
});
|
|
11450
|
-
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) ? foundY(data.y) : -10})`;
|
|
11521
|
+
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) && (data === null || data === void 0 ? void 0 : data.x) != null ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) && (data === null || data === void 0 ? void 0 : data.y) != null ? foundY(data.y) : -10})`;
|
|
11451
11522
|
}
|
|
11452
11523
|
if (this._options.tooltip.tracking === 'y') {
|
|
11453
11524
|
const sorted = [...d.data].sort((a, b) => d3.ascending(a.y, b.y));
|
|
@@ -11460,7 +11531,7 @@ class TetaChart {
|
|
|
11460
11531
|
color: d.color,
|
|
11461
11532
|
name: d.name,
|
|
11462
11533
|
});
|
|
11463
|
-
return `translate(${foundX(data.x)}, ${foundY(data.y)})`;
|
|
11534
|
+
return `translate(${!isNaN(data === null || data === void 0 ? void 0 : data.x) && (data === null || data === void 0 ? void 0 : data.x) != null ? foundX(data.x) : -10}, ${!isNaN(data === null || data === void 0 ? void 0 : data.y) && (data === null || data === void 0 ? void 0 : data.y) != null ? foundY(data.y) : -10})`;
|
|
11464
11535
|
}
|
|
11465
11536
|
});
|
|
11466
11537
|
if ((_a = this._options.tooltip) === null || _a === void 0 ? void 0 : _a.format) {
|
|
@@ -11848,6 +11919,7 @@ class ChartComponent {
|
|
|
11848
11919
|
this.plotLinesMove = new EventEmitter();
|
|
11849
11920
|
this.plotBandsMove = new EventEmitter();
|
|
11850
11921
|
this.seriesMove = new EventEmitter();
|
|
11922
|
+
this.pointMove = new EventEmitter();
|
|
11851
11923
|
this.zoomChange = new EventEmitter();
|
|
11852
11924
|
this._alive = true;
|
|
11853
11925
|
this.size$ = new Subject();
|
|
@@ -11896,8 +11968,7 @@ class ChartComponent {
|
|
|
11896
11968
|
(_b = this._chart) === null || _b === void 0 ? void 0 : _b.setZoom(this.zoom);
|
|
11897
11969
|
}
|
|
11898
11970
|
}
|
|
11899
|
-
ngOnInit() {
|
|
11900
|
-
}
|
|
11971
|
+
ngOnInit() { }
|
|
11901
11972
|
ngAfterViewInit() {
|
|
11902
11973
|
this._observer = new ResizeObserver((entries) => {
|
|
11903
11974
|
const { contentRect } = entries[0];
|
|
@@ -11945,6 +12016,11 @@ class ChartComponent {
|
|
|
11945
12016
|
this._chart.seriesMove
|
|
11946
12017
|
.pipe(takeWhile((_) => this._alive))
|
|
11947
12018
|
.subscribe((_) => this.seriesMove.emit(_));
|
|
12019
|
+
this._chart.pointMove
|
|
12020
|
+
.pipe(takeWhile((_) => this._alive))
|
|
12021
|
+
.subscribe((_) => {
|
|
12022
|
+
this.pointMove.emit(_);
|
|
12023
|
+
});
|
|
11948
12024
|
this._chart.zoom
|
|
11949
12025
|
.pipe(takeWhile((_) => this._alive), map((_) => {
|
|
11950
12026
|
this.zoomChange.emit(_);
|
|
@@ -11962,7 +12038,7 @@ class ChartComponent {
|
|
|
11962
12038
|
}
|
|
11963
12039
|
}
|
|
11964
12040
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
11965
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12041
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ChartComponent, selector: "teta-chart", inputs: { zoom: "zoom", config: "config" }, outputs: { plotLinesMove: "plotLinesMove", plotBandsMove: "plotBandsMove", seriesMove: "seriesMove", pointMove: "pointMove", zoomChange: "zoomChange" }, host: { listeners: { "click": "click($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["chart"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11966
12042
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartComponent, decorators: [{
|
|
11967
12043
|
type: Component,
|
|
11968
12044
|
args: [{ selector: 'teta-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.display]=\"hasSeriesData ? 'contents' : 'none'\">\n <div #chart class=\"chart-container\"></div>\n <div class=\"legend-container\"></div>\n</div>\n<div [style.display]=\"!hasSeriesData ? 'block' : 'none'\" class=\"chart-placeholder text-align-center\">\n <span class=\"font-body-3 color-text-40\">\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442</span>\n</div>\n\n\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}.chart-container{position:relative;min-height:0;flex-grow:1;flex-basis:1px}.chart-placeholder{margin:auto;width:100%}.chart-placeholder span{text-overflow:ellipsis;overflow:hidden;display:block}.legend-container{flex-shrink:0;flex-basis:1px}::ng-deep .grid line{stroke-dasharray:1,4}::ng-deep .tooltip-chart{padding:8px 12px;border-radius:2px}::ng-deep .legend{grid-gap:8px;padding-bottom:5px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly}::ng-deep .legend .item{display:flex;align-items:center;cursor:pointer}::ng-deep .legend .item .swatch{width:10px;height:10px}::ng-deep .legend .item .line{width:12px;height:2px}::ng-deep .legend .item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:5px}\n"] }]
|
|
@@ -11976,6 +12052,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
11976
12052
|
type: Output
|
|
11977
12053
|
}], seriesMove: [{
|
|
11978
12054
|
type: Output
|
|
12055
|
+
}], pointMove: [{
|
|
12056
|
+
type: Output
|
|
11979
12057
|
}], zoomChange: [{
|
|
11980
12058
|
type: Output
|
|
11981
12059
|
}], chart: [{
|
|
@@ -12154,6 +12232,7 @@ class PlotBand {
|
|
|
12154
12232
|
this.to = options === null || options === void 0 ? void 0 : options.to;
|
|
12155
12233
|
this.label = options === null || options === void 0 ? void 0 : options.label;
|
|
12156
12234
|
this.color = (options === null || options === void 0 ? void 0 : options.color) || '#59AE501A';
|
|
12235
|
+
this.image = options === null || options === void 0 ? void 0 : options.image;
|
|
12157
12236
|
this.showGrabbers =
|
|
12158
12237
|
(options === null || options === void 0 ? void 0 : options.showGrabbers) != null ? options.showGrabbers : true;
|
|
12159
12238
|
this.draggable = (options === null || options === void 0 ? void 0 : options.draggable) != null ? options === null || options === void 0 ? void 0 : options.draggable : false;
|