# # Interface: DoughnutController

## # Hierarchy

- `DatasetController`

  ↳ `DoughnutController`

## # Properties

### # _cachedMeta

• `Readonly` _cachedMeta: `ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>

#### # Inherited from

DatasetController._cachedMeta

#### # Defined in

index.esm.d.ts:583
(opens new window)

### # chart

• `Readonly` chart: `Chart`<keyof `ChartTypeRegistry`, (`number` | `ScatterDataPoint` | `BubbleDataPoint`)[], `unknown`>

#### # Inherited from

DatasetController.chart

#### # Defined in

index.esm.d.ts:581
(opens new window)

### # enableOptionSharing

• enableOptionSharing: `boolean`

#### # Inherited from

DatasetController.enableOptionSharing

#### # Defined in

index.esm.d.ts:584
(opens new window)

### # index

• `Readonly` index: `number`

#### # Inherited from

DatasetController.index

#### # Defined in

index.esm.d.ts:582
(opens new window)

### # innerRadius

• `Readonly` innerRadius: `number`

#### # Defined in

index.esm.d.ts:334
(opens new window)

### # offsetX

• `Readonly` offsetX: `number`

#### # Defined in

index.esm.d.ts:336
(opens new window)

### # offsetY

• `Readonly` offsetY: `number`

#### # Defined in

index.esm.d.ts:337
(opens new window)

### # outerRadius

• `Readonly` outerRadius: `number`

#### # Defined in

index.esm.d.ts:335
(opens new window)

### # supportsDecimation

• supportsDecimation: `boolean`

#### # Inherited from

DatasetController.supportsDecimation

#### # Defined in

index.esm.d.ts:588
(opens new window)

## # Methods

### # addElements

▸ addElements(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.addElements

#### # Defined in

index.esm.d.ts:604
(opens new window)

### # applyStack

▸ `Protected` applyStack(`scale`, `parsed`): `number`

#### # Parameters

Name | Type
--- | ---
`scale` | `Scale`<`CoreScaleOptions`>
`parsed` | `unknown`[]

#### # Returns

`number`

#### # Inherited from

DatasetController.applyStack

#### # Defined in

index.esm.d.ts:640
(opens new window)

### # buildOrUpdateElements

▸ buildOrUpdateElements(`resetNewElements?`): `void`

#### # Parameters

Name | Type
--- | ---
`resetNewElements?` | `boolean`

#### # Returns

`void`

#### # Inherited from

DatasetController.buildOrUpdateElements

#### # Defined in

index.esm.d.ts:605
(opens new window)

### # calculateCircumference

▸ calculateCircumference(`value`): `number`

#### # Parameters

Name | Type
--- | ---
`value` | `number`

#### # Returns

`number`

#### # Defined in

index.esm.d.ts:340
(opens new window)

### # calculateTotal

▸ calculateTotal(): `number`

#### # Returns

`number`

#### # Defined in

index.esm.d.ts:339
(opens new window)

### # configure

▸ configure(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.configure

#### # Defined in

index.esm.d.ts:602
(opens new window)

### # draw

▸ draw(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.draw

#### # Defined in

index.esm.d.ts:597
(opens new window)

### # getAllParsedValues

▸ getAllParsedValues(`scale`): `number`[]

#### # Parameters

Name | Type
--- | ---
`scale` | `Scale`<`CoreScaleOptions`>

#### # Returns

`number`[]

#### # Inherited from

DatasetController.getAllParsedValues

#### # Defined in

index.esm.d.ts:591
(opens new window)

### # getDataset

▸ getDataset(): `ChartDataset`<keyof `ChartTypeRegistry`, (`number` | `ScatterDataPoint` | `BubbleDataPoint`)[]>

#### # Returns

`ChartDataset`<keyof `ChartTypeRegistry`, (`number` | `ScatterDataPoint` | `BubbleDataPoint`)[]>

#### # Inherited from

DatasetController.getDataset

#### # Defined in

index.esm.d.ts:599
(opens new window)

### # getLabelAndValue

▸ `Protected` getLabelAndValue(`index`): `Object`

#### # Parameters

Name | Type
--- | ---
`index` | `number`

#### # Returns

`Object`

Name | Type
--- | ---
`label` | `string`
`value` | `string`

#### # Inherited from

DatasetController.getLabelAndValue

#### # Defined in

index.esm.d.ts:592
(opens new window)

### # getMaxOverflow

▸ `Protected` getMaxOverflow(): `number` | `boolean`

#### # Returns

`number` | `boolean`

#### # Inherited from

DatasetController.getMaxOverflow

#### # Defined in

index.esm.d.ts:596
(opens new window)

### # getMeta

▸ getMeta(): `ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>

#### # Returns

`ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>

#### # Inherited from

DatasetController.getMeta

#### # Defined in

index.esm.d.ts:600
(opens new window)

### # getMinMax

▸ `Protected` getMinMax(`scale`, `canStack?`): `Object`

#### # Parameters

Name | Type
--- | ---
`scale` | `Scale`<`CoreScaleOptions`>
`canStack?` | `boolean`

#### # Returns

`Object`

Name | Type
--- | ---
`max` | `number`
`min` | `number`

#### # Inherited from

DatasetController.getMinMax

#### # Defined in

index.esm.d.ts:647
(opens new window)

### # getParsed

▸ `Protected` getParsed(`index`): `number` | `BarParsedData` | `CartesianParsedData` | `BubbleParsedData` | `RadialParsedData`

#### # Parameters

Name | Type
--- | ---
`index` | `number`

#### # Returns

`number` | `BarParsedData` | `CartesianParsedData` | `BubbleParsedData` | `RadialParsedData`

#### # Inherited from

DatasetController.getParsed

#### # Defined in

index.esm.d.ts:639
(opens new window)

### # getScaleForId

▸ getScaleForId(`scaleID`): `Scale`<`CoreScaleOptions`>

#### # Parameters

Name | Type
--- | ---
`scaleID` | `string`

#### # Returns

`Scale`<`CoreScaleOptions`>

#### # Inherited from

DatasetController.getScaleForId

#### # Defined in

index.esm.d.ts:601
(opens new window)

### # getSharedOptions

▸ `Protected` getSharedOptions(`options`): `AnyObject`

Utility for checking if the options are shared and should be animated separately.

#### # Parameters

Name | Type
--- | ---
`options` | `AnyObject`

#### # Returns

`AnyObject`

#### # Inherited from

DatasetController.getSharedOptions

#### # Defined in

index.esm.d.ts:614
(opens new window)

### # getStyle

▸ getStyle(`index`, `active`): `AnyObject`

#### # Parameters

Name | Type
--- | ---
`index` | `number`
`active` | `boolean`

#### # Returns

`AnyObject`

#### # Inherited from

DatasetController.getStyle

#### # Defined in

index.esm.d.ts:607
(opens new window)

### # includeOptions

▸ `Protected` includeOptions(`mode`, `sharedOptions`): `boolean`

Utility for determining if `options` should be included in the updated properties

#### # Parameters

Name | Type
--- | ---
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`
`sharedOptions` | `AnyObject`

#### # Returns

`boolean`

#### # Inherited from

DatasetController.includeOptions

#### # Defined in

index.esm.d.ts:619
(opens new window)

### # initialize

▸ initialize(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.initialize

#### # Defined in

index.esm.d.ts:603
(opens new window)

### # linkScales

▸ linkScales(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.linkScales

#### # Defined in

index.esm.d.ts:590
(opens new window)

### # parse

▸ parse(`start`, `count`): `void`

#### # Parameters

Name | Type
--- | ---
`start` | `number`
`count` | `number`

#### # Returns

`void`

#### # Inherited from

DatasetController.parse

#### # Defined in

index.esm.d.ts:635
(opens new window)

### # parseArrayData

▸ `Protected` parseArrayData(`meta`, `data`, `start`, `count`): `AnyObject`[]

#### # Parameters

Name | Type
--- | ---
`meta` | `ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>
`data` | `AnyObject`[]
`start` | `number`
`count` | `number`

#### # Returns

`AnyObject`[]

#### # Inherited from

DatasetController.parseArrayData

#### # Defined in

index.esm.d.ts:637
(opens new window)

### # parseObjectData

▸ `Protected` parseObjectData(`meta`, `data`, `start`, `count`): `AnyObject`[]

#### # Parameters

Name | Type
--- | ---
`meta` | `ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>
`data` | `AnyObject`[]
`start` | `number`
`count` | `number`

#### # Returns

`AnyObject`[]

#### # Inherited from

DatasetController.parseObjectData

#### # Defined in

index.esm.d.ts:638
(opens new window)

### # parsePrimitiveData

▸ `Protected` parsePrimitiveData(`meta`, `data`, `start`, `count`): `AnyObject`[]

#### # Parameters

Name | Type
--- | ---
`meta` | `ChartMeta`<`Element`<`AnyObject`, `AnyObject`>, `Element`<`AnyObject`, `AnyObject`>, keyof `ChartTypeRegistry`>
`data` | `AnyObject`[]
`start` | `number`
`count` | `number`

#### # Returns

`AnyObject`[]

#### # Inherited from

DatasetController.parsePrimitiveData

#### # Defined in

index.esm.d.ts:636
(opens new window)

### # removeHoverStyle

▸ removeHoverStyle(`element`, `datasetIndex`, `index`): `void`

#### # Parameters

Name | Type
--- | ---
`element` | `Element`<`AnyObject`, `AnyObject`>
`datasetIndex` | `number`
`index` | `number`

#### # Returns

`void`

#### # Inherited from

DatasetController.removeHoverStyle

#### # Defined in

index.esm.d.ts:632
(opens new window)

### # reset

▸ reset(): `void`

#### # Returns

`void`

#### # Inherited from

DatasetController.reset

#### # Defined in

index.esm.d.ts:598
(opens new window)

### # resolveDataElementOptions

▸ `Protected` resolveDataElementOptions(`index`, `mode`): `AnyObject`

#### # Parameters

Name | Type
--- | ---
`index` | `number`
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`

#### # Returns

`AnyObject`

#### # Inherited from

DatasetController.resolveDataElementOptions

#### # Defined in

index.esm.d.ts:609
(opens new window)

### # resolveDatasetElementOptions

▸ `Protected` resolveDatasetElementOptions(`mode`): `AnyObject`

#### # Parameters

Name | Type
--- | ---
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`

#### # Returns

`AnyObject`

#### # Inherited from

DatasetController.resolveDatasetElementOptions

#### # Defined in

index.esm.d.ts:608
(opens new window)

### # setHoverStyle

▸ setHoverStyle(`element`, `datasetIndex`, `index`): `void`

#### # Parameters

Name | Type
--- | ---
`element` | `Element`<`AnyObject`, `AnyObject`>
`datasetIndex` | `number`
`index` | `number`

#### # Returns

`void`

#### # Inherited from

DatasetController.setHoverStyle

#### # Defined in

index.esm.d.ts:633
(opens new window)

### # update

▸ update(`mode`): `void`

#### # Parameters

Name | Type
--- | ---
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`

#### # Returns

`void`

#### # Inherited from

DatasetController.update

#### # Defined in

index.esm.d.ts:594
(opens new window)

### # updateElement

▸ `Protected` updateElement(`element`, `index`, `properties`, `mode`): `void`

Utility for updating an element with new properties, using animations when appropriate.

#### # Parameters

Name | Type
--- | ---
`element` | `Element`<`AnyObject`, `AnyObject`>
`index` | `number`
`properties` | `AnyObject`
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`

#### # Returns

`void`

#### # Inherited from

DatasetController.updateElement

#### # Defined in

index.esm.d.ts:625
(opens new window)

### # updateElements

▸ updateElements(`elements`, `start`, `count`, `mode`): `void`

#### # Parameters

Name | Type
--- | ---
`elements` | `Element`<`AnyObject`, `AnyObject`>[]
`start` | `number`
`count` | `number`
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`

#### # Returns

`void`

#### # Inherited from

DatasetController.updateElements

#### # Defined in

index.esm.d.ts:593
(opens new window)

### # updateIndex

▸ updateIndex(`datasetIndex`): `void`

#### # Parameters

Name | Type
--- | ---
`datasetIndex` | `number`

#### # Returns

`void`

#### # Inherited from

DatasetController.updateIndex

#### # Defined in

index.esm.d.ts:595
(opens new window)

### # updateRangeFromParsed

▸ `Protected` updateRangeFromParsed(`range`, `scale`, `parsed`, `stack`): `void`

#### # Parameters

Name | Type
--- | ---
`range` | `Object`
`range.max` | `number`
`range.min` | `number`
`scale` | `Scale`<`CoreScaleOptions`>
`parsed` | `unknown`[]
`stack` | `string` | `boolean`

#### # Returns

`void`

#### # Inherited from

DatasetController.updateRangeFromParsed

#### # Defined in

index.esm.d.ts:641
(opens new window)

### # updateSharedOptions

▸ `Protected` updateSharedOptions(`sharedOptions`, `mode`, `newOptions`): `void`

Utility to animate the shared options, that are potentially affecting multiple elements.

#### # Parameters

Name | Type
--- | ---
`sharedOptions` | `AnyObject`
`mode` | `"resize"` | `"reset"` | `"none"` | `"hide"` | `"show"` | `"normal"` | `"active"`
`newOptions` | `AnyObject`

#### # Returns

`void`

#### # Inherited from

DatasetController.updateSharedOptions

#### # Defined in

index.esm.d.ts:631
(opens new window)