Skip to content

SliceGrouper

Type class

A plugin that can be used to automatically group small slices on percent charts into a single slice.

More info: Grouping slices

Sources

SliceGrouper can be used (imported) via one of the following packages.

// Import SliceGrouper
import * as am5plugins_sliceGrouper from "@amcharts/amcharts5/plugins/sliceGrouper";
// Create SliceGrouper
am5plugins_sliceGrouper.SliceGrouper.new(root, {
// ... config if applicable
});

Inheritance

SliceGrouper extends Entity.

SliceGrouper is not extended by any other symbol.

Settings

Set these settings on a SliceGrouper object using its set() and setAll() methods. Read about settings concept.

clickBehavior

Type "none" | "break" | "zoom"Default "none"

What a click on the group slice does:

  • "none": nothing.

  • "break": replaces the group slice with the small slices.

  • "zoom": shows only the small slices, hiding the others.

groupName

Type undefined | stringDefault "Other"

Name (category) of the group slice.

legend

Type Legend

Legend to keep in step with the grouping: it gets an item for the group slice, and the items of the grouped slices are hidden.

limit

Type undefined | number

Keeps only this many first slices; the rest are grouped.

series

Type PercentSeries

The series whose small slices are grouped.

threshold

Type undefined | numberDefault 5

Slices whose share of the total is at or below this percent are grouped.

9 inherited items
animations

Type ArrayInherited from IEntitySettingsSince 5.20.8

Animations the element plays on its own, described as data - so they can be set from a JSON config and saved with it.

Each one animates a setting of the element (or, with target: "dataItem", a value of its data item - a map point's positionOnLine, say). They start when the setting is applied, restart when it changes, and stop when the element is disposed. A saved config keeps what was configured, never a value caught half way through an animation.

sprite.set("animations", [
  { key: "rotation", to: 360, duration: 4000, loops: 0 },
  { key: "scale", from: 1, to: 1.3, duration: 800, loops: 0, yoyo: true, easing: "sine" }
]);
id

Type undefined | stringInherited from IEntitySettings

A unique ID for looking the element up in root.entitiesById. Setting an ID that another element already has throws an error.

ignoreThemes

Type undefined | false | trueDefault falseInherited from IEntitySettingsSince 5.15.6

Ignores themes: no theme rule applies to the element, not even one of the default theme.

stateAnimationDuration

Type undefined | numberDefault 0Inherited from IEntitySettings

How long, in milliseconds, a switch from one state to another animates.

0 switches at once.

stateAnimationEasing

Type $ease.EasingDefault out(cubic)Inherited from IEntitySettings

Easing of the animated switch from one state to another.

themes

Type ArrayInherited from IEntitySettings

Themes applied to the element and everything inside it.

themeTags

Type ArrayInherited from IEntitySettings

Tags that theme rules can target. They also count for the element's children, so a rule can match a child by a tag of its parent.

More info: Themes

themeTagsSelf

Type ArrayInherited from IEntitySettings

Tags that theme rules can target, like themeTags, but only for this element, not its children.

More info: Themes

userData

Type anyInherited from IEntitySettings

Any data of your own to keep with the element.

Private settings

These are read-only settings accessible from a SliceGrouper object using its getPrivate() method. Read about private settings.

currentCount

Read onlyType undefined | number

currentPass

Read onlyType undefined | number

currentStep

Read onlyType undefined | number

groupDataItem

Read onlyType DataItem

normalDataItems

Read onlyType DataItem[]

smallDataItems

Read onlyType DataItem[]

Properties

className

StaticType stringDefault "SliceGrouper"

classNames

StaticType ArrayDefault Entity.classNames.concat([SliceGrouper.className])

zoomOutButton

Type Button

Button shown while the small slices are shown after a click on the group slice; it groups them again. Made only when clickBehavior is not "none".

7 inherited items
adapters

Type AdaptersDefault new Adapters(this)Inherited from Entity

enableDispose

Type booleanDefault trueInherited from Settings

Set to false to make dispose() do nothing.

events

Type EventDispatcherDefault this._createEvents()Inherited from Entity

root

Type RootInherited from EntitySince 5.0.6

The Root the object belongs to.

states

Type StatesDefault new States(this)Inherited from Entity

template

Type Template | undefinedInherited from Entity

A Template applied to the object. Its settings apply where the object has none set of its own.

uid

Type numberDefault ++counterInherited from Settings

A unique number, given to each object as it is created.

Methods

zoomOut()

Returns void

Groups the small slices again, as a click on zoomOutButton does.

22 inherited items
animate(options: AnimationOptions)

Returns AnimationInherited from Settings

Animates a setting from its current value (or from) to to. The setting jumps to from at once. With duration 0, or no value to start from, it is set to to at once and the returned animation is already stopped.

More info: Animations: animating settings

dispose()

Returns voidInherited from Settings

Disposes the object, freeing everything it holds. A disposed object can't be used again.

get(key: Key,
fallback: F
)

Returns NonNullable | FInherited from Entity

Returns the value of setting key, run through any adapters, or fallback if it is not set.

More info: Settings

has(key: Key)

Returns booleanInherited from Settings

Returns true if setting key is set.

More info: Settings

isDisposed()

Returns booleanInherited from Settings

Returns true if the object has been disposed.

isType(type: string)

Returns thisInherited from Entity

Returns true if the object is of class type or extends it.

new(root: Root,
settings: ITSettings,
template?: Template
)

StaticReturns TInherited from Entity

Creates an instance of the class. Use it instead of new Class().

More info: Getting started: new element syntax

off(key: Key,
callback?: undefined | (value: [""], target: this, key: Key) => void
)

Returns voidInherited from SettingsSince 5.9.2

Removes a callback added with on(). Without callback, removes all of them for key.

More info: Events: settings value change

offDebounced(key: Key,
callback?: undefined | (value: [""], target: this, key: Key) => void
)

Returns voidInherited from Settings

Removes a callback added with onDebounced(). Without callback, removes all of them for key.

More info: Events: settings value change

offDebouncedPrivate(key: Key,
callback?: undefined | (value: [""], target: this, key: Key) => void
)

Returns voidInherited from Settings

Removes a callback added with onPrivateDebounced(). Without callback, removes all of them for key.

More info: Events: settings value change

offPrivate(key: Key,
callback?: undefined | (value: [""], target: this, key: Key) => void
)

Returns voidInherited from SettingsSince 5.9.2

Removes a callback added with onPrivate(). Without callback, removes all of them for key.

More info: Events: settings value change

on(key: Key,
callback: (value: [""], target: this, key: Key) => void
)

Returns IDisposerInherited from Settings

Calls callback each time the value of setting key changes or is removed. Setting the same value again does not call it.

More info: Events: settings value change

once(key: Key,
callback: (value: [""], target: this, key: Key) => void
)

Returns IDisposerInherited from SettingsSince 5.20.4

Like on(), but the callback is removed after it is called once.

More info: Events: settings value change

onceDebounced(key: Key,
callback: (value: [""], target: this, key: Key) => void,
debounceDelay: number
)

Returns IDisposerInherited from SettingsSince 5.20.4

Like onDebounced(), but the callback is removed after it is called once.

More info: Events: settings value change

onDebounced(key: Key,
callback: (value: [""], target: this, key: Key) => void,
debounceDelay: number
)

Returns IDisposerInherited from Settings

Like on(), but waits until setting key has not changed for debounceDelay milliseconds, then calls callback once with the latest value.

More info: Events: settings value change

onPrivate(key: Key,
callback: (value: [""], target: this, key: Key) => void
)

Returns IDisposerInherited from Settings

Calls callback each time the value of private setting key changes.

More info: Events: settings value change

onPrivateDebounced(key: Key,
callback: (value: [""], target: this, key: Key) => void,
debounceDelay: number
)

Returns IDisposerInherited from Settings

Like onPrivate(), but waits until private setting key has not changed for debounceDelay milliseconds, then calls callback once with the latest value.

More info: Events: settings value change

remove(key: Key)

Returns voidInherited from Entity

Removes the value set for setting key. The setting goes back to the value from a theme or template, if one has it.

More info: Settings

removeAll()

Returns voidInherited from Settings

Removes all settings, as remove() does for each one.

More info: Settings

set(key: Key,
value: Value
)

Returns ValueInherited from Entity

Sets setting key to value and returns value. A value set this way overrides themes and templates, and stops any animation of the setting.

More info: Settings

setAll(settings: Partial)

Returns voidInherited from Settings

Sets several settings at once, from an object of key-value pairs.

More info: Settings

setTimeout(fn: () => void,
delay: number
)

Returns IDisposerInherited from Entity

Calls fn after delay milliseconds, unless the object is disposed first. Disposing the returned disposer cancels it.

Events

SliceGrouper does not have any events.