igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
174 lines (173 loc) • 7.42 kB
JavaScript
import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core';
import { IgxRing } from "./igx-ring";
import { IgxRingSeriesBaseComponent } from "./igx-ring-series-base-component";
import { RingSeries } from "./RingSeries";
import { IgxIndexCollection } from "./igx-index-collection";
import { IndexCollection as IndexCollection_internal } from "./IndexCollection";
import { Number_$type } from "igniteui-angular-core";
import { SyncableObservableCollection$1 } from "igniteui-angular-core";
import * as i0 from "@angular/core";
/**
* Represents one ring in
* IgxDoughnutChartComponent series.
*/
export let IgxRingSeriesComponent = /*@__PURE__*/ (() => {
class IgxRingSeriesComponent extends IgxRingSeriesBaseComponent {
constructor() {
super();
this._explodedSlices = null;
this._selectedSlices = null;
}
createImplementation() {
return new RingSeries();
}
get i() {
return this._implementation;
}
/**
* Gets or sets the collection of exploded slice indices.
*/
get explodedSlices() {
if (this._explodedSlices === null) {
let coll = new IgxIndexCollection();
let innerColl;
if (this.ring.i.ringControl.arcs.count == 0) {
innerColl = new IndexCollection_internal();
}
else {
innerColl = this.ring.i.ringControl.arcs.item(0).explodedSlices;
}
this._explodedSlices = coll._fromInner(innerColl);
}
return this._explodedSlices;
}
set explodedSlices(v) {
if (this._explodedSlices !== null) {
this._explodedSlices._setSyncTarget(null);
this._explodedSlices = null;
}
let coll = new IgxIndexCollection();
this._explodedSlices = coll._fromOuter(v);
let syncColl = new SyncableObservableCollection$1(Number_$type);
let innerColl;
if (this.ring.i.ringControl.arcs.count == 0) {
innerColl = new IndexCollection_internal();
}
else {
innerColl = this.ring.i.ringControl.arcs.item(0).explodedSlices;
}
syncColl._inner = innerColl;
syncColl.clear();
this._explodedSlices._setSyncTarget(syncColl);
}
/**
* Gets or sets the collection of selected slice indices.
*/
get selectedSlices() {
if (this._selectedSlices === null) {
let coll = new IgxIndexCollection();
let innerColl;
if (this.ring.i.ringControl.arcs.count == 0) {
innerColl = new IndexCollection_internal();
}
else {
innerColl = this.ring.i.ringControl.arcs.item(0).selectedSlices;
}
this._selectedSlices = coll._fromInner(innerColl);
}
return this._selectedSlices;
}
set selectedSlices(v) {
if (this._selectedSlices !== null) {
this._selectedSlices._setSyncTarget(null);
this._selectedSlices = null;
}
let coll = new IgxIndexCollection();
this._selectedSlices = coll._fromOuter(v);
let syncColl = new SyncableObservableCollection$1(Number_$type);
let innerColl;
if (this.ring.i.ringControl.arcs.count == 0) {
innerColl = new IndexCollection_internal();
}
else {
innerColl = this.ring.i.ringControl.arcs.item(0).selectedSlices;
}
syncColl._inner = innerColl;
syncColl.clear();
this._selectedSlices._setSyncTarget(syncColl);
}
sychronizeCollections() {
if (this._explodedSlices) {
let inner = this._explodedSlices._inner;
if (inner && inner !== this.ring.i.ringControl.arcs.item(0).explodedSlices) {
this._explodedSlices._inner = this.ring.i.ringControl.arcs.item(0).explodedSlices;
for (var i = 0; i < inner.count; i++) {
this._explodedSlices.add(inner.item(i));
}
}
}
if (this._selectedSlices) {
let inner = this._selectedSlices._inner;
if (inner && inner !== this.ring.i.ringControl.arcs.item(0).selectedSlices) {
this._selectedSlices._inner = this.ring.i.ringControl.arcs.item(0).selectedSlices;
for (var i = 0; i < inner.count; i++) {
this._selectedSlices.add(inner.item(i));
}
}
}
}
/**
* Gets reference to the ring data.
*/
get ring() {
const r = this.i.eo;
if (r == null) {
return null;
}
if (!r.externalObject) {
let e = new IgxRing();
if (r.$type) {
e._implementation = r;
}
else {
if (e.i.setNativeElement) {
e.i.setNativeElement(r);
}
}
r.externalObject = e;
}
return r.externalObject;
}
set ring(v) {
v == null ? this.i.eo = null : this.i.eo = v.i;
}
findByName(name) {
var baseResult = super.findByName(name);
if (baseResult) {
return baseResult;
}
if (this.ring && this.ring.name && this.ring.name == name) {
return this.ring;
}
return null;
}
}
IgxRingSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRingSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
IgxRingSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxRingSeriesComponent, selector: "igx-ring-series", inputs: { explodedSlices: "explodedSlices", selectedSlices: "selectedSlices", ring: "ring" }, providers: [{ provide: IgxRingSeriesBaseComponent, useExisting: forwardRef(() => IgxRingSeriesComponent) }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
return IgxRingSeriesComponent;
})();
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRingSeriesComponent, decorators: [{
type: Component,
args: [{
selector: 'igx-ring-series',
template: ``,
providers: [{ provide: IgxRingSeriesBaseComponent, useExisting: forwardRef(() => IgxRingSeriesComponent) }],
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: function () { return []; }, propDecorators: { explodedSlices: [{
type: Input
}], selectedSlices: [{
type: Input
}], ring: [{
type: Input
}] } });