UNPKG

126 kBTypeScriptView Raw
1/**
2 * This is the main class that encapsulates every object on the chart.
3 *
4 * If it's an element that is to be displayed on the screen at some point, its
5 * class must extend [[Sprite]] class.
6 */
7/**
8 * ============================================================================
9 * IMPORTS
10 * ============================================================================
11 * @hidden
12 */
13import { SpriteState } from "./SpriteState";
14import { ISpriteEvents, SpriteEventDispatcher, AMEvent } from "./SpriteEvents";
15export { ISpriteEvents, SpriteEventDispatcher, AMEvent };
16import { BaseObjectEvents } from "./Base";
17import { Adapter } from "./utils/Adapter";
18import { ITheme } from "../themes/ITheme";
19import { Dictionary, IDictionaryEvents, DictionaryTemplate } from "./utils/Dictionary";
20import { ListTemplate, List } from "./utils/List";
21import { EventDispatcher } from "./utils/EventDispatcher";
22import { MultiDisposer, IDisposer, MutableValueDisposer } from "./utils/Disposer";
23import { Animation, IAnimatable } from "./utils/Animation";
24import { Optional } from "./utils/Type";
25import { Group } from "./rendering/Group";
26import { Paper } from "./rendering/Paper";
27import { DataItem } from "./DataItem";
28import { Container } from "./Container";
29import { Pattern } from "./rendering/fills/Pattern";
30import { LinearGradient } from "./rendering/fills/LinearGradient";
31import { RadialGradient } from "./rendering/fills/RadialGradient";
32import { SVGContainer } from "./rendering/SVGContainer";
33import { Align } from "./defs/Align";
34import { Roles, AriaLive } from "./defs/Accessibility";
35import { IPlugin } from "./utils/Plugin";
36import { Popup } from "./elements/Popup";
37import { Modal } from "./elements/Modal";
38import { Color } from "./utils/Color";
39import { Ordering } from "./utils/Order";
40import { HorizontalCenter } from "./defs/HorizontalCenter";
41import { VerticalCenter } from "./defs/VerticalCenter";
42import { VerticalAlign } from "./defs/VerticalAlign";
43import { ShapeRendering } from "./defs/ShapeRendering";
44import { AMElement } from "./rendering/AMElement";
45import { Filter } from "./rendering/filters/Filter";
46import { ColorModifier } from "./rendering/fills/ColorModifier";
47import { InteractionObject } from "./interaction/InteractionObject";
48import { IInertiaOptions, ISwipeOptions, IHitOptions, IHoverOptions, ICursorOptions, IKeyboardOptions, IMouseOptions } from "./interaction/InteractionOptions";
49import { IPointer } from "./interaction/Pointer";
50import { InertiaTypes } from "./interaction/Inertia";
51import { IStyleProperty } from "./defs/IStyleProperty";
52import { IPoint } from "./defs/IPoint";
53import { IRectangle } from "./defs/IRectangle";
54import { Tooltip } from "./elements/Tooltip";
55import { NumberFormatter } from "./formatters/NumberFormatter";
56import { DateFormatter } from "./formatters/DateFormatter";
57import { DurationFormatter } from "./formatters/DurationFormatter";
58import { Language } from "./utils/Language";
59import { Export } from "./export/Export";
60import { AmChartsLogo } from "./elements/AmChartsLogo";
61import { ISVGAttribute } from "./rendering/AMElement";
62import * as $type from "./utils/Type";
63import { Percent } from "./utils/Percent";
64/**
65 * ============================================================================
66 * REQUISITES
67 * ============================================================================
68 * @hidden
69 */
70/**
71 * Defines properties for [[Sprite]]
72 */
73export interface ISpriteProperties {
74 disabled?: boolean;
75 x?: number | Percent;
76 y?: number | Percent;
77 width?: number | Percent;
78 height?: number | Percent;
79 scale?: number;
80 rotation?: number;
81 pixelPerfect?: boolean;
82 marginLeft?: number;
83 marginRight?: number;
84 marginTop?: number;
85 marginBottom?: number;
86 fillOpacity?: number;
87 fill?: Color | LinearGradient | RadialGradient | Pattern;
88 opacity?: number;
89 stroke?: Color | LinearGradient | RadialGradient | Pattern;
90 strokeOpacity?: number;
91 strokeWidth?: number;
92 strokeDasharray?: string;
93 strokeDashoffset?: number;
94 strokeLinecap?: "butt" | "square" | "round";
95 strokeLinejoin?: "miter" | "round" | "bevel";
96 shapeRendering?: ShapeRendering;
97 draggable?: boolean;
98 inert?: boolean;
99 resizable?: boolean;
100 swipeable?: boolean;
101 trackable?: boolean;
102 hoverable?: boolean;
103 clickable?: boolean;
104 togglable?: boolean;
105 wheelable?: boolean;
106 focusable?: boolean;
107 tabindex?: number;
108 contextMenuDisabled?: boolean;
109 visible?: boolean;
110 tooltipText?: string;
111 tooltipHTML?: string;
112 tooltipX?: number | Percent;
113 tooltipY?: number | Percent;
114 alwaysShowTooltip?: boolean;
115 tooltipPosition?: "fixed" | "pointer";
116 showTooltipOn?: "hover" | "hit" | "always";
117 interactionsEnabled?: boolean;
118 horizontalCenter?: HorizontalCenter;
119 verticalCenter?: VerticalCenter;
120 align?: Align;
121 valign?: VerticalAlign;
122 paddingLeft?: number;
123 paddingRight?: number;
124 paddingTop?: number;
125 paddingBottom?: number;
126 minX?: number;
127 minY?: number;
128 maxX?: number;
129 maxY?: number;
130 dx?: number;
131 dy?: number;
132 role?: Roles;
133 readerDescribedBy?: string;
134 readerLabelledBy?: string;
135 readerLive?: AriaLive;
136 readerControls?: string;
137 readerChecked?: boolean;
138 readerHidden?: boolean;
139 readerDescription?: string;
140 readerTitle?: string;
141 readerOrientation?: string;
142 readerValueNow?: string;
143 readerValueText?: string;
144 nonScaling?: boolean;
145 nonScalingStroke?: boolean;
146 zIndex?: number;
147 minWidth?: number;
148 maxWidth?: number;
149 minHeight?: number;
150 maxHeight?: number;
151 fillModifier?: ColorModifier;
152 strokeModifier?: ColorModifier;
153 hoverOnFocus?: boolean;
154 path?: string;
155 urlTarget?: string;
156 url?: string;
157 hidden?: boolean;
158 showOnInit?: boolean;
159 id?: string;
160 isActive?: boolean;
161 isHover?: boolean;
162 userClassName?: string;
163}
164/**
165 * Defines animation options
166 */
167export interface ISpriteAnimationOptions {
168 from?: Percent | Color | number | string;
169 to: Percent | Color | number | string;
170 property: any;
171}
172/**
173 * Defines list ofvisual properties
174 */
175export declare const visualProperties: (keyof ISpriteProperties)[];
176/**
177 * Represents a list of available adapters for [[Sprite]]
178 */
179export interface ISpriteAdapters extends ISpriteProperties {
180 pixelHeight: number;
181 pixelWidth: number;
182 relativeHeight: number;
183 relativeWidth: number;
184 measuredHeight: number;
185 measuredWidth: number;
186 outerHeight: number;
187 outerWidth: number;
188 innerHeight: number;
189 innerWidth: number;
190 globalScale: number;
191 pixelMarginRight: number;
192 relativeMarginRight: number;
193 pixelMarginLeft: number;
194 relativeMarginLeft: number;
195 pixelMarginTop: number;
196 relativeMarginTop: number;
197 pixelMarginBottom: number;
198 relativeMarginBottom: number;
199 pixelX: number;
200 relativeX: number;
201 pixelY: number;
202 relativeY: number;
203 mask: Sprite;
204 populateString: string;
205 inertiaOptions: Dictionary<InertiaTypes, IInertiaOptions>;
206 hitOptions: IHitOptions;
207 hoverOptions: IHoverOptions;
208 swipeOptions: ISwipeOptions;
209 keyboardOptions: IKeyboardOptions;
210 mouseOptions: IMouseOptions;
211 cursorOptions: ICursorOptions;
212 criticalError: Error;
213}
214/**
215 * ============================================================================
216 * MAIN CLASS
217 * ============================================================================
218 * @hidden
219 */
220/**
221 * Sprite represents any displayable element.
222 *
223 * This is the main class that encapsulates every object on the chart.
224 *
225 * If it's an element that is to be displayed on the screen at some point, its
226 * class must extend [[Sprite]] class.
227 *
228 * [[Sprite]] class represents the a hierarchical structure. Every object that
229 * extends [[Sprite]] can have children, that would inherit their properties,
230 * such as language, formatters, etc.
231 *
232 * @see {@link SpriteState}
233 * @see {@link ISpriteEvents} for a list of available events
234 * @see {@link ISpriteAdapters} for a list of available Adapters
235 *
236 * @todo Review child elements that need to go into `_disposers`
237 * @important
238 */
239export declare class Sprite extends BaseObjectEvents implements IAnimatable {
240 /**
241 * Defines property types.
242 */
243 _properties: ISpriteProperties;
244 /**
245 * Defines state type.
246 *
247 * @ignore Exclude from docs
248 */
249 /**
250 * Defines type used in the Sprite.
251 */
252 _adapter: ISpriteAdapters;
253 /**
254 * Holds values for Sprite's properties.
255 */
256 properties: this["_properties"];
257 /**
258 * Defines available events.
259 */
260 _events: ISpriteEvents;
261 /**
262 * @ignore
263 */
264 _eventDispatcher: SpriteEventDispatcher<AMEvent<this, this["_events"]>>;
265 /**
266 * Event dispatcher.
267 *
268 * @see {@link https://www.amcharts.com/docs/v4/concepts/event-listeners/} for more info about Events
269 */
270 readonly events: SpriteEventDispatcher<AMEvent<this, this["_events"]>>;
271 /**
272 * @ignore
273 */
274 _adapterO: Adapter<this, this["_adapter"]>;
275 /**
276 * Holds Adapter.
277 *
278 * @see {@link https://www.amcharts.com/docs/v4/concepts/adapters/} for more info about Adapters
279 */
280 readonly adapter: Adapter<this, this["_adapter"]>;
281 /**
282 * @ignore Exclude from docs
283 * @todo Description
284 */
285 private _bindings;
286 /**
287 * Holds indicator if this Sprite is a "template" to be used for creating
288 * other Sprites from and should not be treated as full-fledged element.
289 *
290 * @ignore Exclude from docs
291 */
292 protected _isTemplate: boolean;
293 protected _isPath: boolean;
294 /**
295 * Holds collection of Sprite States.
296 */
297 _states: $type.Optional<DictionaryTemplate<string, SpriteState<this["_properties"], this["_adapter"]>>>;
298 /**
299 * Holds indicator whether this sprite was already initialized.
300 *
301 * @ignore Exclude from docs
302 */
303 protected _inited: boolean;
304 /**
305 * Holds indicator whether this sprite was already initialized and ready.
306 *
307 * @ignore Exclude from docs
308 */
309 protected _ready: boolean;
310 /**
311 * A reference to a Tooltip for this Sprite.
312 *
313 * @ignore Exclude from docs
314 */
315 protected _tooltip: $type.Optional<Tooltip>;
316 /**
317 * A special data item which tooltip will use when formatting data. In case
318 * it is not set, dataItem will be used.
319 *
320 * @ignore Exclude from docs
321 */
322 protected _tooltipDataItem: $type.Optional<DataItem>;
323 /**
324 * A reference to another sprite or sprite template from which tooltip should take colors if getFillFromObject or getStrokeFromObject are set to true.
325 * Mostly used when we need to adjust tooltip color for a series, depending on column or bullet color.
326 *
327 * @ignore Exclude from docs
328 */
329 protected _tooltipColorSource: $type.Optional<Sprite>;
330 /**
331 * If `sprite.hide()` is called and we have "hidden" state and
332 * `transitionDuration > 0`, we set `isHiding` flag to `true` in order to
333 * avoid restarting animations in case `hide()` method is called multiple
334 * times.
335 */
336 isHiding: boolean;
337 /**
338 * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.
339 * This was added becaus hidden state might have visibility set to true and so
340 * there would not be possible to find out if a sprite is technically hidden or not.
341 */
342 protected _isHidden: boolean;
343 /**
344 * This property indicates if Sprite is currently being revealed from hidden
345 * state. This is used to prevent multiple calls to `sprite.show()` to
346 * restart reveal animation. (if enabled)
347 */
348 isShowing: boolean;
349 /**
350 * Indicates if this element is a standalone instance. A "standalone
351 * instance" means this is a autonomous object which maintains its own
352 * set of controls like Preloader, Export, etc.
353 *
354 * @ignore Exclude from docs
355 */
356 isStandaloneInstance: boolean;
357 /**
358 * Indicates if togglable Sprite is currently active (toggled on).
359 *
360 * @ignore Exclude from docs
361 */
362 protected _isActive: boolean;
363 /**
364 * A Sprite element to use as a mask for this Sprite.
365 *
366 * @ignore Exclude from docs
367 */
368 protected _mask: MutableValueDisposer<Sprite>;
369 /**
370 * @ignore Exclude from docs
371 * @todo Description
372 */
373 protected _clipPath: Optional<Group>;
374 /**
375 * @ignore Exclude from docs
376 * @todo Description
377 */
378 protected _clipElement: $type.Optional<AMElement>;
379 /**
380 * @ignore Exclude from docs
381 * @todo Description
382 */
383 protected _positionPrecision: number;
384 /**
385 * Holds reference to Sprite's [[InteractionObject]]. Sprite does not
386 * perform any user interactions directly, it happens via [[InteractionObject]].
387 *
388 * @ignore Exclude from docs
389 */
390 protected _interaction: $type.Optional<InteractionObject>;
391 /**
392 * An instance of [[Language]].
393 *
394 * @ignore Exclude from docs
395 */
396 protected _language: MutableValueDisposer<Language>;
397 /**
398 * An instance of [[NumberFormatter]].
399 *
400 * @ignore Exclude from docs
401 */
402 protected _numberFormatter: $type.Optional<NumberFormatter>;
403 /**
404 * An instance of [[DateFormatter]].
405 *
406 * @ignore Exclude from docs
407 */
408 protected _dateFormatter: $type.Optional<DateFormatter>;
409 /**
410 * An instance of [[DurationFormatter]].
411 *
412 * @ignore Exclude from docs
413 */
414 protected _durationFormatter: $type.Optional<DurationFormatter>;
415 /**
416 * An HTML element to which [[svgContainer]] is added.
417 *
418 * @ignore Exclude from docs
419 */
420 protected _htmlContainer: $type.Optional<HTMLElement>;
421 /**
422 * An HTML element to which all chart elements are added.
423 *
424 * @ignore Exclude from docs
425 */
426 protected _svgContainer: $type.Optional<SVGContainer>;
427 /**
428 * A [[Container]] instance to place this element's [[Tooltip]] elements in
429 *
430 * @ignore Exclude from docs
431 */
432 protected _tooltipContainer: $type.Optional<Container>;
433 protected _urlDisposer: $type.Optional<IDisposer>;
434 /**
435 * Should this element be measured when measuring its parent container's
436 * dimentions?
437 *
438 * @ignore Exclude from docs
439 */
440 protected _isMeasured: $type.Optional<boolean>;
441 /**
442 * Indicates if the chart should follow right-to-left rules.
443 *
444 * @ignore Exclude from docs
445 */
446 protected _rtl: boolean;
447 /**
448 * Holds [[Export]] object.
449 *
450 * @ignore Exclude from docs
451 */
452 protected _exporting: MutableValueDisposer<Export>;
453 /**
454 * Should this Sprite be included when exporting?
455 */
456 protected _exportable: boolean;
457 /**
458 * A reference to a top-level SVG node for this Sprite element.
459 *
460 * @ignore Exclude from docs
461 */
462 protected _element: Optional<AMElement>;
463 /**
464 * Holds Sprite's main SVG group (`<g>`) element. Other Sprite's elements
465 * are all placed in this group.
466 */
467 group: Group;
468 /**
469 * A reference to [[Paper]] SVG renderer used to create SVG nodes.
470 *
471 * @ignore Exclude from docs
472 */
473 protected _paper: $type.Optional<Paper>;
474 /**
475 * Elements's top-level [[Container]].
476 *
477 *
478 * @return Top-level ascendant
479 */
480 protected _topParent: Optional<Container>;
481 /**
482 * Data item assigned to the sprite. It might contain information defining
483 * some style properties.
484 */
485 _dataItem: $type.Optional<DataItem>;
486 /**
487 * Parent container.
488 *
489 * @ignore Exclude from docs
490 */
491 protected _parent: Container;
492 /**
493 * Sprite's "virtual" parent.
494 *
495 * @ignore Exclude from docs
496 */
497 protected _virtualParent: Sprite;
498 /**
499 * Defines bounding box (square) for this element.
500 *
501 * @ignore Exclude from docs
502 */
503 protected _bbox: IRectangle;
504 /**
505 * Base tab index for the Sprite. Used for TAB-key selection order.
506 *
507 * Use accessors `tabIndex` to set and retrieve.
508 *
509 * @ignore Exclude from docs
510 */
511 protected _tabindex: $type.Optional<number>;
512 /**
513 * Should system tooltips be allowed to be displayed if the element has
514 * `readerTitle` set?
515 *
516 * Use accessors `showSystemTooltip` to set and retrieve.
517 *
518 * This is an accessibility feature.
519 *
520 * @ignore Exclude from docs
521 */
522 protected _showSystemTooltip: $type.Optional<boolean>;
523 /**
524 * List of animations currently playing for this Sprite.
525 *
526 * @ignore Exclude from docs
527 */
528 protected _animations: $type.Optional<Array<Animation>>;
529 /**
530 * A link to [[Disposer]] for event handler which is attached to hide
531 * animation. In some cases we need to cancel this event. This property is
532 * used to hold the reference to disposer of this event so that we can
533 * cancel it by calling its `dispose()` method.
534 *
535 * @ignore Exclude from docs
536 */
537 protected _showHideDisposer: $type.Optional<IDisposer>;
538 /**
539 * If element is currently hiding, this property will hold a reference to
540 * [[Animation]] instance, which is handling hiding animation.
541 *
542 * @ignore Exclude from docs
543 */
544 protected _hideAnimation: $type.Optional<Animation>;
545 /**
546 * List of [[Filter]] items that are currently applied to the element.
547 *
548 * @ignore Exclude from docs
549 */
550 protected _filters: $type.Optional<List<Filter>>;
551 /**
552 * A shortcut to the special "Focus" filter which is applied when the element
553 * gains focus.
554 *
555 * This is an accessibility feature.
556 *
557 * @ignore Exclude from docs
558 */
559 protected _focusFilter: $type.Optional<Filter>;
560 /**
561 * Indicates if this element is invalid and should be re-validated (redrawn).
562 *
563 * @ignore Exclude from docs
564 */
565 invalid: boolean;
566 /**
567 * Indicates if this elements position is invalid and should be repositioned
568 *
569 * @ignore Exclude from docs
570 */
571 positionInvalid: boolean;
572 /**
573 * A collection of key/value pairs that can be used to bind specific Sprite
574 * properties to [[DataItem]].
575 *
576 * For example: `fill` property can be bound to `myCustomColor` field in
577 * DataItem. The Sprite will automatically get the value for `fill` from its
578 * DataItem.
579 *
580 * Can be set for each [[SpriteState]] individually to override default
581 * bindings.
582 *
583 * @see {@link SpriteState}
584 */
585 propertyFields: {
586 [index in keyof this["_properties"]]?: string;
587 };
588 /**
589 * Element's relative width.
590 *
591 * Do not set this property directly. Use `width` accessor with [[Percent]]
592 * value instead.
593 *
594 * @ignore Exclude from docs
595 */
596 percentWidth: $type.Optional<number>;
597 /**
598 * Element's relative height.
599 *
600 * Do not set this property directly. Use `height` accessor with [[Percent]]
601 * value instead.
602 *
603 * @ignore Exclude from docs
604 */
605 percentHeight: $type.Optional<number>;
606 /**
607 * An SVG group element that is used to put all SVG filters to.
608 *
609 * @ignore Exclude from docs
610 */
611 filterElement: $type.Optional<Group>;
612 /**
613 * A field in data context of element's `dataItem` that holds config values
614 * for this element.
615 *
616 * This is a very powerful feature, allowing changing virtually any setting,
617 * including those for element's children, for the element via data.
618 *
619 * Example data:
620 *
621 * ```JSON
622 * {
623 * "value": 100,
624 * "config": {
625 * "fill": "#F00"
626 * }
627 * }
628 * ```
629 *
630 * If you set element's `configField = "config"`, the element for this
631 * specific data point will have a red fill.
632 */
633 configField: $type.Optional<string>;
634 /**
635 * Reference to element's `<title>` element.
636 *
637 * @ignore Exclude from docs
638 */
639 protected _titleElement: Optional<AMElement>;
640 /**
641 * Reference to element's `<description>` element.
642 *
643 * @ignore Exclude from docs
644 */
645 protected _descriptionElement: Optional<AMElement>;
646 /**
647 * Specifies if property changes on this object should be propagated to the
648 * objects cloned from this object.
649 *
650 * This setting affects property changes *after* cloning, since at the moment
651 * of cloning all of properties from source object are copied to the clone
652 * anyway.
653 *
654 * @default false
655 */
656 applyOnClones: boolean;
657 /**
658 * a reference to an object which should be used when populating string. used for tooltip label mostly.
659 * @ignore
660 */
661 populateStringFrom: any;
662 /**
663 * Internal storage properties.
664 *
665 * @ignore Exclude from docs
666 */
667 protected _measuredWidth: number;
668 protected _measuredHeight: number;
669 protected _measuredWidthSelf: number;
670 protected _measuredHeightSelf: number;
671 protected _prevMeasuredWidth: number;
672 protected _prevMeasuredHeight: number;
673 protected _pixelWidth: $type.Optional<number>;
674 protected _pixelHeight: $type.Optional<number>;
675 protected _relativeWidth: $type.Optional<number>;
676 protected _relativeHeight: $type.Optional<number>;
677 /**
678 * @ignore
679 */
680 maxLeft: number;
681 /**
682 * @ignore
683 */
684 maxRight: number;
685 /**
686 * @ignore
687 */
688 maxTop: number;
689 /**
690 * @ignore
691 */
692 maxBottom: number;
693 /**
694 * @ignore
695 */
696 maxLeftSelf: number;
697 /**
698 * @ignore
699 */
700 maxRightSelf: number;
701 /**
702 * @ignore
703 */
704 maxTopSelf: number;
705 /**
706 * @ignore
707 */
708 maxBottomSelf: number;
709 protected _isDragged: boolean;
710 protected _isResized: boolean;
711 /**
712 * @deprecated Moved to [[SpriteProperties]]
713 */
714 protected _disabled: boolean;
715 protected _internalDisabled: boolean;
716 protected _updateDisabled: boolean;
717 protected _maskRectangle: $type.Optional<IRectangle>;
718 protected _internalDefaultsApplied: boolean;
719 protected _interactionDisposer: $type.Optional<IDisposer>;
720 /**
721 * You can set bbox from outside if you know what size your element must be (used in radar chart for example)
722 * @ignore
723 */
724 definedBBox: IRectangle;
725 /**
726 * Time in milliseconds after which rollout event happens when user rolls-out of the sprite. This helps to avoid flickering in some cases.
727 */
728 rollOutDelay: number;
729 /**
730 * @ignore
731 */
732 protected _outTimeout: $type.Optional<IDisposer>;
733 /**
734 * This flag is set to `true` for the initial sprite you create and place
735 * to the div so that we could clear all additional
736 * sprites/containers when this sprite is disposed.
737 *
738 * @ignore
739 */
740 isBaseSprite: boolean;
741 /**
742 * Indicates whether this sprite should be cloned when cloning its parent
743 * container. We set this to `false` in those cases when a sprite is created
744 * by the class, so that when cloning a duplicate sprite would not appear.
745 */
746 shouldClone: boolean;
747 /**
748 * A property which you can use to store any data you want.
749 */
750 dummyData: any;
751 /**
752 * A reference to a real fill object. Sometimes might be useful to modify
753 * gradient (when fill is color but we have FillModifier).
754 */
755 realFill: Color | Pattern | LinearGradient | RadialGradient;
756 /**
757 * A reference to a real stroke object. Sometimes might be useful to modify
758 * gradient (when fill is color but we have a FillModifier).
759 */
760 realStroke: Color | Pattern | LinearGradient | RadialGradient;
761 /**
762 * A reference to amCharts logo element.
763 *
764 * @ignore
765 */
766 logo: AmChartsLogo;
767 /**
768 * [_baseId description]
769 *
770 * @todo Description
771 */
772 protected _baseId: string;
773 /**
774 * A read-only flag which indicates if a sprite has completed its initial
775 * animation (if `showOnInit = true`).
776 *
777 * In case `showOnInit = false`, `appeared` is set to `true` on init.
778 *
779 * @readonly
780 */
781 appeared: boolean;
782 /**
783 * [ex description]
784 *
785 * @todo Description
786 * @ignore
787 */
788 ex: number;
789 /**
790 * [ey description]
791 *
792 * @todo Description
793 * @ignore
794 */
795 ey: number;
796 /**
797 * [_showOnInitDisposer description]
798 *
799 * @todo Description
800 */
801 protected _showOnInitDisposer: MultiDisposer;
802 /**
803 * Holds the list of plugins attached to this Sprite.
804 */
805 protected _plugins: $type.Optional<List<IPlugin>>;
806 /**
807 * Indicates if the sprite can be moved around when resizing it with two fingers (will only work if draggable = false)
808 * @ignore
809 */
810 dragWhileResize: boolean;
811 /**
812 * @ignore
813 */
814 vpDisposer: MultiDisposer;
815 protected _alwaysShowDisposers: IDisposer[];
816 /**
817 * @ignore
818 */
819 measureFailed: boolean;
820 /**
821 * If this flag is set to true, calling show() will not reveal the sprite.
822 *
823 * @ignore
824 */
825 preventShow: boolean;
826 /**
827 * When cloning a sprite, if the template has it's own tooltip assigned, this tooltip is also cloned by default.
828 * This is not good for cpu and sometimes you might only need one single tooltip for all clones. Set this to false in order not to clone tooltip.
829 */
830 cloneTooltip: boolean;
831 /**
832 * Constructor:
833 * * Creates initial node
834 * * Sets default properties
835 * * Creates required default states
836 * * Inits accessibility
837 */
838 constructor();
839 /**
840 * ==========================================================================
841 * ELEMENT VALIDATION, INIT, AND DRAWING STUFF
842 * ==========================================================================
843 * @hidden
844 */
845 /**
846 * Applies properties from all assigned themes.
847 *
848 * We do this here so that we can apply class names as well.
849 *
850 * @ignore Exclude from docs
851 */
852 applyTheme(): void;
853 /**
854 * Returns theme(s) used by this object either set explicitly on this
855 * element, inherited from parent, or inherited from [[System]].
856 *
857 * @return An array of theme references
858 */
859 getCurrentThemes(): ITheme[];
860 /**
861 * Called just before element's validation, this function allows setting
862 * defaults.
863 *
864 * @ignore Exclude from docs
865 */
866 protected applyInternalDefaults(): void;
867 /**
868 * Invalidates element.
869 *
870 * Object will be redrawn during the next update cycle.
871 *
872 * Please note that in most cases elements will auto-invalidate when needed. If
873 * everything works, DO NOT use this method. Use it only if some changes do
874 * not take otherwise.
875 */
876 invalidate(): void;
877 /**
878 * Validates element:
879 * * Triggers events
880 * * Redraws the element
881 *
882 * @ignore Exclude from docs
883 */
884 validate(): void;
885 /**
886 * Invalidates element's position.
887 *
888 * @ignore Exclude from docs
889 */
890 invalidatePosition(): void;
891 /**
892 * Transforms the element.
893 *
894 * @todo Description (review)
895 * @ignore Exclude from docs
896 */
897 validatePosition(): void;
898 /**
899 * A placeholder method that is called **before** element begins to be drawn.
900 *
901 * @ignore Exclude from docs
902 */
903 protected beforeDraw(): void;
904 /**
905 * A placeholder method that draws the element.
906 *
907 * @ignore Exclude from docs
908 */
909 protected draw(): void;
910 /**
911 * A placeholder method that is called **after** element finishes drawing
912 * itself.
913 *
914 * @ignore Exclude from docs
915 */
916 protected afterDraw(): void;
917 /**
918 * Dispatches `"ready"` event. Sprite dispatches it right after `"inited"` event.
919 *
920 * @ignore
921 */
922 dispatchReady(): void;
923 /**
924 * Triggers a re-initialization of this element.
925 *
926 * Will result in complete redrawing of the element.
927 *
928 * @ignore Exclude from docs
929 */
930 reinit(): void;
931 /**
932 * Handles the situation where parent element is resized.
933 *
934 * @ignore Exclude from docs
935 */
936 handleGlobalScale(): void;
937 /**
938 * Updates filter properties which might depend on scale
939 *
940 * @ignore Exclude from docs
941 */
942 protected updateFilterScale(): void;
943 /**
944 * Removes itself from system's invalid lists.
945 *
946 * @ignore Exclude from docs
947 */
948 protected removeFromInvalids(): void;
949 /**
950 * Copies all parameters from another [[Sprite]].
951 *
952 * @param source Source Sprite
953 */
954 copyFrom(source: this): void;
955 /**
956 * Destroys this object and all related data.
957 */
958 dispose(): void;
959 /**
960 * Indicates if this element is a "template".
961 *
962 * Template Sprites act only as a holders for config for other "real"
963 * elements to be cloned from.
964 *
965 * Templates are treated differently, as they are not validated, redrawn, or
966 * otherwise are processed.
967 *
968 * @ignore Exclude from docs
969 * @param value Is template?
970 */
971 /**
972 * @ignore Exclude from docs
973 * @return Is template?
974 */
975 isTemplate: boolean;
976 /**
977 * Indicates whether the element should attempt to construct itself in a way
978 * so that system tooltip is shown if its `readerTitle` is set.
979 *
980 * @param value Show system tooltip?
981 */
982 /**
983 * @return Show system tooltip?
984 */
985 showSystemTooltip: boolean;
986 /**
987 * ==========================================================================
988 * HIERARCHY AND STRUCTURE RELATED STUFF
989 * ==========================================================================
990 * @hidden
991 */
992 /**
993 * Sprites's top-level [[Container]].
994 *
995 * Please note that in most cases it won't be the chart element.
996 *
997 * To access base chart element, use `baseSprite` instead.
998 *
999 * @return Top-level ascendant
1000 */
1001 /**
1002 * @ignore
1003 * @param value {Container} top parent of a sprite
1004 */
1005 topParent: Optional<Container>;
1006 /**
1007 * Elements' parent [[Container]].
1008 *
1009 * @param parent Parent container
1010 */
1011 /**
1012 * @return Parent container
1013 */
1014 parent: Optional<Container>;
1015 /**
1016 * @ignore
1017 */
1018 protected handleAlwaysShow(): void;
1019 /**
1020 * @ignore
1021 */
1022 protected handleAlwaysShowTooltip(): void;
1023 /**
1024 * Element's "virtual" parent.
1025 *
1026 * This is required in ordere to maintain proper inheritance (like
1027 * formatters).
1028 *
1029 * Sometimes an element is a "logical" parent, even though it's not a direct
1030 * ascendant.
1031 *
1032 * Example: a bullet is not a child of the axis, but it would make sense
1033 * for it to inherit series' formatters.
1034 *
1035 * @ignore Exclude from docs
1036 * @param value Virtual parent
1037 */
1038 /**
1039 * @return Virtual parent
1040 */
1041 virtualParent: Sprite;
1042 /**
1043 * Moves `<defs>` to correct place in DOM.
1044 *
1045 * Some elements are initially created in "ghost" container. When moving
1046 * those into proper place in DOM, their respective `<defs>` need to be moved
1047 * as well.
1048 *
1049 * @ignore Exclude from docs
1050 */
1051 appendDefs(): void;
1052 /**
1053 * Returns a [[Dictionary]] which maps object ids with their respective
1054 * objects.
1055 *
1056 * Can be used to retrieve any object by id, e.g.:
1057 *
1058 * ```TypeScript
1059 * console.log(mySprite.map.getKey("myid"));
1060 * ```
1061 * ```JavaScript
1062 * console.log(mySprite.map.getKey("myid"));
1063 * ```
1064 *
1065 * @return Map collection
1066 */
1067 readonly map: Dictionary<string, any>;
1068 /**
1069 * @ignore
1070 * @return Map collection
1071 */
1072 readonly delayedMap: Dictionary<string, any>;
1073 /**
1074 * Element's user-defined ID.
1075 *
1076 * Will throw an Error if there already is an object with the same ID.
1077 *
1078 * Please note that above check will be performed withing the scope of the
1079 * current chart instance. It will not do checks across other chart instances
1080 * or in globally in DOM.
1081 *
1082 * Make sure the IDs are unique.
1083 *
1084 * @param value ID
1085 */
1086 /**
1087 * @return ID
1088 */
1089 id: string;
1090 /**
1091 * ==========================================================================
1092 * ELEMENT AND DOM TREE MANIPULATION AND MEASURING
1093 * ==========================================================================
1094 * @hidden
1095 */
1096 /**
1097 * Returns DOM element reference associated with this element.
1098 *
1099 * @readonly
1100 * @return DOM element
1101 */
1102 readonly dom: SVGSVGElement;
1103 /**
1104 * A [[Paper]] instance to place elements on.
1105 *
1106 * If there's no Paper set for this element, it goes up the ascendant tree
1107 * until it finds one.
1108 *
1109 * This method is used by important `addChild()` method, so it's essential
1110 * to have a [[Paper]] instance.
1111 *
1112 * If this element has a separate `htmlContainer` set, it will have a
1113 * [[Paper]] instance itself.
1114 *
1115 * @ignore Exclude from docs
1116 * @param paper Paper
1117 */
1118 /**
1119 * @ignore Exclude from docs
1120 * @return Paper
1121 */
1122 paper: Paper;
1123 /**
1124 * Sets [[Paper]] instance to use to draw elements.
1125 * @ignore
1126 * @param paper Paper
1127 * @return true if paper was changed, false, if it's the same
1128 */
1129 setPaper(paper: Paper): boolean;
1130 /**
1131 * An HTML element to be used when placing wrapper element (`<div>`)
1132 * for the whole chart.
1133 *
1134 * This is the same for **all** elements within the same chart.
1135 *
1136 * @param htmlContainer HTML element
1137 */
1138 /**
1139 * @return HTML element
1140 */
1141 htmlContainer: $type.Optional<HTMLElement>;
1142 /**
1143 * Creates (if not yet created) and returns element's `<title>` element.
1144 *
1145 * @ignore Exclude from docs
1146 * @return Title element
1147 */
1148 readonly titleElement: AMElement;
1149 /**
1150 * Creates (if not yet created) and returns element's `<desc>` element.
1151 *
1152 * @ignore Exclude from docs
1153 * @return Desc element
1154 */
1155 readonly descriptionElement: AMElement;
1156 /**
1157 * Returns list of SVG filters (effects) applied to element. If the filter
1158 * list is not yet initilized, creates and returns an empty one.
1159 * Note, not all filters combine well with one another. We recommend using one filter per sprite.
1160 *
1161 * @return List of filters
1162 */
1163 readonly filters: List<Filter>;
1164 /**
1165 * Sets required SVG attributes. Must be called every time an element is
1166 * redrawn so that attributes are (re)applied.
1167 *
1168 * @ignore Exclude from docs
1169 */
1170 protected setSVGAttributes(): void;
1171 /**
1172 * Sets an attribute directly on an SVG element.
1173 *
1174 * @ignore Exclude from docs
1175 * @param attribute Attribute object
1176 */
1177 protected setSVGAttribute(attribute: ISVGAttribute): void;
1178 /**
1179 * Removes an attribute directly from SVG element.
1180 *
1181 * @param attribute Attribute key to remove
1182 */
1183 protected removeSVGAttribute(attribute: string): void;
1184 /**
1185 * Sets `class` attribute of the elements SVG node.
1186 *
1187 * Uses `am4core.options.classNamePrefix`.
1188 *
1189 * @ignore Exclude from docs
1190 */
1191 setClassName(): void;
1192 /**
1193 * Adds an `id` attribute the the element and returns the id.
1194 *
1195 * @ignore Exclude from docs
1196 * @return Element's ID
1197 */
1198 uidAttr(): string;
1199 /**
1200 * [updateClipPath description]
1201 *
1202 * @todo Description
1203 */
1204 protected updateClipPath(): void;
1205 /**
1206 * @ignore
1207 */
1208 protected createClipPath(): void;
1209 /**
1210 * Applies the mask Sprite.
1211 *
1212 * @ignore Exclude from docs
1213 */
1214 protected applyMask(): void;
1215 /**
1216 * Applies filters to the element.
1217 *
1218 * @ignore Exclude from docs
1219 */
1220 protected applyFilters(): void;
1221 /**
1222 * [removeClipPath description]
1223 *
1224 * @ignore Exclude from docs
1225 * @todo Description
1226 */
1227 protected removeClipPath(): void;
1228 /**
1229 * [setElement description]
1230 *
1231 * @ignore
1232 * @todo Description
1233 * @param element [description]
1234 */
1235 setElement(element: AMElement): void;
1236 /**
1237 * The main element for this Sprite, usually an SVG `<g>`.
1238 *
1239 * All other sub-elements are created in it.
1240 *
1241 * @param element Element
1242 */
1243 /**
1244 * @return Element
1245 */
1246 element: Optional<AMElement>;
1247 /**
1248 * HTML container (`<div>`) which is used to place chart's `<svg>` element
1249 * in.
1250 *
1251 * @return Container for chart elements
1252 */
1253 /**
1254 * Sets HTML container to add SVG and other chart elements to.
1255 *
1256 * @param svgContainer Container for chart elements
1257 */
1258 svgContainer: $type.Optional<SVGContainer>;
1259 /**
1260 * Measures main element.
1261 *
1262 * Saves measurements into private `_bbox` property.
1263 *
1264 * @ignore Exclude from docs
1265 */
1266 protected measureElement(): void;
1267 /**
1268 * Positions element according its center settings.
1269 *
1270 * @todo Description (review)
1271 * @ignore Exclude from docs
1272 */
1273 updateCenter(): void;
1274 /**
1275 * Measures the whole element.
1276 *
1277 * Returns `true` if the size has changed from the last measurement.
1278 *
1279 * @ignore Exclude from docs
1280 * @return Did the size changed from the last measurement?
1281 */
1282 measure(): boolean;
1283 /**
1284 * Insert this element before sibling element.
1285 *
1286 * @param sprite Target element
1287 * @return This element
1288 */
1289 insertBefore(sprite: Sprite): Sprite;
1290 /**
1291 * Insert this element after sibling element.
1292 *
1293 * @param sprite Target element
1294 * @return This element
1295 */
1296 insertAfter(sprite: Sprite): Sprite;
1297 /**
1298 * Removes the main SVG element.
1299 *
1300 * This does not destroy the whole Sprite element. To do that use
1301 * `dispose()` instead.
1302 *
1303 * @ignore Exclude from docs
1304 */
1305 protected removeElement(): void;
1306 /**
1307 * Returns relative (percent) value of the X coordindate within this element.
1308 *
1309 * A relative value is a hundredth of a percent. So 100% would result in a 1
1310 * as relative value.
1311 *
1312 * @param value Absolute or relative X coordinate
1313 * @return Relative value
1314 */
1315 getRelativeX(value: number | Percent): number;
1316 /**
1317 * Returns relative (percent) value of the Y coordindate within this element.
1318 *
1319 * A relative value is a hundredth of a percent. So 100% would result in a 1
1320 * as relative value.
1321 *
1322 * @param value Absolute or relative Y coordinate
1323 * @return Relative value
1324 */
1325 getRelativeY(value: number | Percent): number;
1326 /**
1327 * Returns an X coordinate in pixel within the element.
1328 *
1329 * If number is passed in as parameter, the same number will be returned
1330 * back.
1331 *
1332 * If [[Percent]] is passed in, it will be recalculated to pixels.
1333 *
1334 * @param value Absolute or relative X coordinate
1335 * @return X coordinate in pixels
1336 */
1337 getPixelX(value: number | Percent): number;
1338 /**
1339 * Returns an Y coordinate in pixel within the element.
1340 *
1341 * If number is passed in as parameter, the same number will be returned
1342 * back.
1343 *
1344 * If [[Percent]] is passed in, it will be recalculated to pixels.
1345 *
1346 * @param value Absolute or relative Y coordinate
1347 * @return Y coordinate in pixels
1348 */
1349 getPixelY(value: number | Percent): number;
1350 /**
1351 * Moves the element to a specified coordinates.
1352 *
1353 * Using this method is preferred method of moving element, as it saves some
1354 * CPU processing power over setting `x` and `y` properties separately.
1355 *
1356 * The method respects element's center settings. The element will be
1357 * positioned so that `point` coordinates come in whatever "center" of the
1358 * element is, as set in `horizontalCenter` and `verticalCenter`.
1359 *
1360 * Besides moving the element, you can also at the same time scale and
1361 * rotate the element.
1362 *
1363 * @param point New coordinates
1364 * @param rotation New rotation
1365 * @param scale New Scale
1366 */
1367 moveTo(point: IPoint, rotation?: number, scale?: number, isDragged?: boolean): void;
1368 /**
1369 * Sets another [[Sprite]] element as this elements mask.
1370 *
1371 * @ignore Exclude from docs
1372 * @param mask A [[Sprite]] to use as mask
1373 */
1374 /**
1375 * Returns [[Sprite]] element currently used as mask for this element.
1376 *
1377 * @ignore Exclude from docs
1378 * @return A [[Sprite]] to use as mask
1379 */
1380 mask: Optional<Sprite>;
1381 /**
1382 * Instead of creating a [[Sprite]] for mask, you can just use a
1383 * [[Rectangle]] by setting this accessor.
1384 *
1385 * Please note that the element will not monitor any changes to the mask
1386 * rectangle.
1387 *
1388 * @ignore Exclude from docs
1389 * @param rect Mask Rectangle
1390 */
1391 /**
1392 * @ignore Exclude from docs
1393 * @return Mask Rectangle
1394 */
1395 maskRectangle: IRectangle;
1396 /**
1397 * Indicates if this element was already measured.
1398 *
1399 * @ignore Exclude from docs
1400 * @param value Was element already measured?
1401 */
1402 /**
1403 * @ignore Exclude from docs
1404 * @return Was element already measured?
1405 */
1406 isMeasured: boolean;
1407 /**
1408 * Checks if the this element has any of its parts overlapping with another
1409 * element.
1410 *
1411 * @todo Description (review)
1412 * @param sprite Second element to test again
1413 * @return Overlapping?
1414 */
1415 hitTest(sprite: Sprite): boolean;
1416 /**
1417 * ==========================================================================
1418 * STATE-RELATED
1419 * ==========================================================================
1420 * @hidden
1421 */
1422 /**
1423 * Returns `true` if Sprite has already finished initializing.
1424 *
1425 * @return Initialized?
1426 */
1427 readonly inited: boolean;
1428 /**
1429 * Returns `true` if Sprite has already finished initializing and is ready.
1430 *
1431 * If this object is a [[Container]] it will wait for all of its children
1432 * are ready before becoming ready itself and firing a `"ready"` event.
1433 *
1434 * @return is ready?
1435 */
1436 isReady(): boolean;
1437 /**
1438 * Returns a collection of element's available [[SpriteState]] entries.
1439 *
1440 * @see {@link SpriteState}
1441 * @return States
1442 */
1443 readonly states: DictionaryTemplate<string, SpriteState<this["_properties"], this["_adapter"]>>;
1444 /**
1445 * Returns a [[SpriteState]] object for "hidden" state.
1446 *
1447 * This is a shortcut to `this.states.getKey("hidden")`.
1448 *
1449 * @return Hidden state
1450 */
1451 readonly hiddenState: SpriteState<this["_properties"], this["_adapter"]>;
1452 /**
1453 * Returns a [[SpriteState]] object for "default" state.
1454 *
1455 * This is a shortcut to `this.states.getKey("default")`.
1456 *
1457 * @return Hidden state
1458 */
1459 readonly defaultState: SpriteState<this["_properties"], this["_adapter"]>;
1460 /**
1461 * Checks if some key states are defined and updates Sprite properties
1462 * accordingly.
1463 *
1464 * For example if there's a state "down" defined for Sprite, we automatically
1465 * make it "clickable".
1466 *
1467 * @ignore Exclude from docs
1468 * @param event An event which caused state list update
1469 */
1470 protected processState(event: IDictionaryEvents<string, SpriteState<this["_properties"], this["_adapter"]>>["insertKey" | "setKey"]): void;
1471 /**
1472 * Returns a list elements's animations currently being played.
1473 *
1474 * If the list has not been initialized it is created.
1475 *
1476 * @return List of animations
1477 */
1478 readonly animations: Array<Animation>;
1479 /**
1480 * Converts element's local coordinates to the coordinates within the main
1481 * chart container.
1482 *
1483 * @param point Local point
1484 * @return Global point
1485 */
1486 getSvgPoint(point: IPoint): IPoint;
1487 /**
1488 * Creates and starts an [[Animation]] with given `animationOptions`.
1489 *
1490 * @see {@link Animation} for additional information about available options
1491 * @param animationOptions Animation options
1492 * @param duration Duration in milliseconds
1493 * @param easing Easing function
1494 * @return Animation instance
1495 */
1496 animate(animationOptions: ISpriteAnimationOptions[] | ISpriteAnimationOptions, duration: number, easing?: (value: number) => number): Animation;
1497 /**
1498 * Applies a [[SpriteState]] on this element.
1499 *
1500 * The first parameter can either be a name state or a [[SpriteState]]
1501 * instance.
1502 *
1503 * When run, this method will apply SVG properties defined in a
1504 * [[SpriteState]], but only those that are relevant to this particular
1505 * element, i.e. are in the `properties` array.
1506 *
1507 * @see {@link SpriteState}
1508 * @param value A state - name key or instance
1509 * @param transitionDuration Duration of the transition between current and new state
1510 * @param easing An easing function
1511 */
1512 setState(value: string | SpriteState<this["_properties"], this["_adapter"]>, transitionDuration?: number, easing?: (value: number) => number): $type.Optional<Animation>;
1513 /**
1514 * Applies proper state based on the condition of the element. A condition is
1515 * deducted in this order:
1516 * * "hover" if Sprite has currently any pointers over it
1517 * * "down" if Sprite has any pointers (touch or mouse) currently pressed over it
1518 * * "focus" if Sprite has currently got focus (accessibility)
1519 * * "hidden" if Sprite is currently hidden
1520 *
1521 * Returns an [[Animation]] object, which is handling gradual transition from
1522 * current values of properties, to the new target state(s).
1523 *
1524 * @param duration Duration for the animation (ms)
1525 * @return [[Animation]] object which is handling the transition
1526 */
1527 applyCurrentState(duration?: number): $type.Optional<Animation>;
1528 /**
1529 * Starts an [[Animation]] of the properties to specific values as they are
1530 * set in `state`.
1531 *
1532 * @ignore Exclude from docs
1533 * @param state Target State
1534 * @param duration Duration in milliseconds
1535 * @param easing Easing function
1536 * @return Transition Animation
1537 */
1538 protected transitTo(state: SpriteState<this["_properties"], this["_adapter"]>, duration: number, easing?: (value: number) => number): Optional<Animation>;
1539 /**
1540 * Returns `true` if Sprite is currently transiting from one state/value to
1541 * another.
1542 *
1543 * @return Is in transition?
1544 */
1545 isInTransition(): boolean;
1546 /**
1547 * Indicates if this element has a mouse pointer currently hovering
1548 * over it, or if it has any touch pointers pressed on it.
1549 *
1550 * You can force element to be "hovered" manually, by setting this property
1551 * to `true`.
1552 *
1553 * @param value Is hovered?
1554 */
1555 /**
1556 * @return Is hovered?
1557 */
1558 isHover: boolean;
1559 /**
1560 * Returns indicator if this element is being dragged at the moment.
1561 *
1562 * @return Is dragged?
1563 */
1564 readonly isDragged: boolean;
1565 /**
1566 * Returns indicator if this element is being resized at the moment.
1567 *
1568 * @return Is resized?
1569 */
1570 readonly isResized: boolean;
1571 /**
1572 * Indicates if this element has any pointers (mouse or touch) pressing down
1573 * on it.
1574 *
1575 * @param value Is down?
1576 */
1577 /**
1578 * @return Is down?
1579 */
1580 isDown: boolean;
1581 /**
1582 * Indicates if this element is focused (possibly by tab navigation).
1583 *
1584 * @param value Is focused?
1585 */
1586 /**
1587 * @return Is focused?
1588 */
1589 isFocused: boolean;
1590 /**
1591 * Indicates if this element is currently active (toggled on) or not
1592 * (toggled off).
1593 *
1594 * @param value Is active?
1595 */
1596 /**
1597 * @return Is active?
1598 */
1599 isActive: boolean;
1600 protected setActive(value: boolean): void;
1601 /**
1602 * Controls if element is disabled.
1603 *
1604 * A disabled element is hidden, and is removed from any processing, layout
1605 * calculations, and generally treated as if it does not exist.
1606 *
1607 * The element itself is not destroyed, though. Setting this back to `false`,
1608 * will "resurrect" the element.
1609 *
1610 * @param value Disabled?
1611 */
1612 /**
1613 * @return Disabled?
1614 */
1615 disabled: boolean;
1616 protected setDisabled(value: boolean): boolean;
1617 /**
1618 * Internal disable method.
1619 *
1620 * Do not use it for disabling elements. Use `disabled` accessor instead.
1621 *
1622 * @ignore Exclude from docs
1623 * @param value Disabled?
1624 */
1625 /**
1626 * @ignore
1627 * @return Disabled?
1628 */
1629 __disabled: boolean;
1630 /**
1631 * ==========================================================================
1632 * FORMATTERS AND OTHER EXTERNAL HELPERS
1633 * ==========================================================================
1634 * @hidden
1635 */
1636 /**
1637 * A [[NumberFormatter]] instance.
1638 *
1639 * This is used to format numbers.
1640 *
1641 * ```TypeScript
1642 * chart.numberFormatter.numberFormat = "#,###.#####";
1643 * ```
1644 * ```JavaScript
1645 * chart.numberFormatter.numberFormat = "#,###.#####";
1646 * ```
1647 * ```JSON
1648 * {
1649 * // ...
1650 * "numberFormatter": {
1651 * "numberFormat": "#,###.#####"
1652 * }
1653 * }
1654 * ```
1655 *
1656 * You can set a separate instance of formatter for each
1657 * individual element. However that would be unnecessary overhead as
1658 * all elements would automatically inherit formatter from their parents,
1659 * all the way up to the chart itself.
1660 *
1661 *
1662 * @see {@link NumberFormatter} for more info on formatting numbers
1663 * @param value An instance of NumberFormatter
1664 */
1665 /**
1666 * @return A [[NumberFormatter]] instance to be used
1667 */
1668 numberFormatter: NumberFormatter;
1669 /**
1670 * A [[DateFormatter]] instance.
1671 *
1672 * This is used to format dates, e.g. on a date axes, balloons, etc.
1673 *
1674 * ```TypeScript
1675 * chart.dateFormatter.dateFormat = "yyyy-MM-dd";
1676 * ```
1677 * ```JavaScript
1678 * chart.dateFormatter.dateFormat = "yyyy-MM-dd";
1679 * ```
1680 * ```JSON
1681 * {
1682 * // ...
1683 * "dateFormatter": {
1684 * "dateFormat": "yyyy-MM-dd"
1685 * }
1686 * }
1687 * ```
1688 *
1689 * You can set a separate instance of formatter for each
1690 * individual element. However that would be unnecessary overhead as
1691 * all elements would automatically inherit formatter from their parents,
1692 * all the way up to the chart itself.
1693 *
1694 * @see {@link DateFormatter} for more info on dates formatting
1695 * @param value An instance of DateFormatter
1696 */
1697 /**
1698 * @return An instance of DateFormatter
1699 */
1700 dateFormatter: DateFormatter;
1701 /**
1702 * A [[DurationFormatter]] instance.
1703 *
1704 * This is used to format numbers as durations, e.g. on a value axes.
1705 *
1706 * You can set a separate instance of formatter for each
1707 * individual element. However that would be unnecessary overhead as
1708 * all elements would automatically inherit formatter from their parents,
1709 * all the way up to the chart itself.
1710 *
1711 * @see {@link DurationFormatter} for more info on durations
1712 * @param value An instance of DurationFormatter
1713 */
1714 /**
1715 * @return An instance of DurationFormatter
1716 */
1717 durationFormatter: DurationFormatter;
1718 /**
1719 * A [[Language]] instance to use for translations.
1720 *
1721 * Normally it is enough to set language for the top-most element - chart.
1722 *
1723 * All other element child elements will automatically re-use that language
1724 * object.
1725 *
1726 * @param value An instance of Language
1727 */
1728 /**
1729 * @return An instance of Language
1730 */
1731 language: Language;
1732 /**
1733 * ==========================================================================
1734 * DATA-RELATED STUFF
1735 * ==========================================================================
1736 * @hidden
1737 */
1738 /**
1739 * Parses the string for meta tags `{tag}` and replaces them with a real
1740 * value. Supports straight up tags referring to the field in data, i.e.
1741 * `{value}` or tags with additional formatting info. E.g.:
1742 *
1743 * ```Text
1744 * {myfield.formatDate("yyyy-MM-dd")}
1745 * {myfield.formatDate()}
1746 * {myfield.formatNumber("#,####.00")}
1747 * {myfield.formatNumber()}
1748 * {myField.formatDuration("mm:ss")}
1749 * ```
1750 *
1751 * Etc.
1752 *
1753 * This method Will automatically detect and use proper formatter for the
1754 * value.
1755 *
1756 * The source value will be looked up in various places: (in order)
1757 * * Sprite's own `dataItem`
1758 * * Sprite's properties
1759 * * Parent's `dataItem`
1760 * * Parent's properties
1761 *
1762 * @ignore Exclude from docs
1763 * @param string A string to format
1764 * @param dataItem DataItem
1765 * @return Formatted string
1766 */
1767 populateString(string: string, dataItem?: DataItem): string;
1768 /**
1769 * Gets the value from data item and formats it according to specified format.
1770 *
1771 * If `format` is specified, it will use its contents to choose formatter for
1772 * the value. Otherwise it will select formatter accordingly to actual value
1773 * type.
1774 *
1775 * @ignore Exclude from docs
1776 * @todo Ability to force certain formatter on known numeric and date values
1777 * @see {@link NumberFormatter}
1778 * @see {@link DateFormatter}
1779 * @see {@link DurationFormatter}
1780 * @param tagName Tag name to replace
1781 * @param format Format to use
1782 * @param dataItem DataItem
1783 * @return Formatted value
1784 */
1785 getTagValue(tagName: string, format?: string, dataItem?: DataItem): string;
1786 /**
1787 * Tries to retrieve values from properties of any object, then applies
1788 * proper formatting to it.
1789 *
1790 * @ignore Exclude from docs
1791 * @todo Description (improve)
1792 * @param parts Properties ant methods to access
1793 * @param object Source object
1794 * @param format A specific format to apply
1795 * @return Formatted value
1796 */
1797 getTagValueFromObject(parts: any[], object: any, format?: string): any;
1798 /**
1799 * A [[DataItem]] to use as element's data source.
1800 *
1801 * @todo Review type
1802 * @param dataItem DataItem
1803 */
1804 /**
1805 * @return [[DataItem]]
1806 */
1807 dataItem: this["_dataItem"];
1808 /**
1809 * Sets currently used [[DataItem]].
1810 *
1811 * If the element has also `configField` set, it will also look for any
1812 * config in DataItem's data context to apply to this element.
1813 *
1814 * @param dataItem DataItem
1815 */
1816 protected setDataItem(dataItem: DataItem): void;
1817 /**
1818 * ==========================================================================
1819 * PROPERTY UTILITIES
1820 * ==========================================================================
1821 * @hidden
1822 */
1823 /**
1824 * Returns element's property value.
1825 *
1826 * Will check if there are any bindings with [[DataItem]].
1827 *
1828 * Will also apply any adapters bound to `propertyName`.
1829 *
1830 * @param propertyName Property name
1831 * @return Property value
1832 */
1833 getPropertyValue<Key extends keyof this["_properties"]>(propertyName: Key): this["_properties"][Key];
1834 protected setColorProperty<Key extends keyof this["properties"]>(property: Key, value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>, invalidate?: boolean): boolean;
1835 protected setPercentProperty<Key extends keyof this["properties"]>(property: Key, value: Percent | number, invalidate?: boolean, transform?: boolean, precision?: number, floor?: boolean): boolean;
1836 /**
1837 * Sets elements's property value. Will also propagate the same property value
1838 * on all element's clones.
1839 *
1840 * @param property Property
1841 * @param value Value
1842 * @param invalidate Should the sprite be invalidated, cause it's re-rendering
1843 * @param transform Re-apply positioning of the element
1844 * @return Did the value change? It will return `true` if the new value and the old value of the property are not the same
1845 * @todo Review propagation to clones. Right now we simply check if clone is disposed before setting the same property on it. It's better to remove from clone list altogether.
1846 */
1847 setPropertyValue<Key extends keyof this["properties"]>(property: Key, value: any, invalidate?: boolean, transform?: boolean): boolean;
1848 /**
1849 * @ignore Exclude from docs
1850 * @todo Verify this
1851 */
1852 bind<S extends {
1853 cloneId: string;
1854 events: EventDispatcher<{
1855 propertychanged: {
1856 property: string;
1857 };
1858 }>;
1859 }, From extends (keyof S & keyof this), To extends keyof this>(property: To, source: S, bindToProperty: From, modifier?: (value: this[From]) => this[To]): void;
1860 bind<S extends {
1861 cloneId: string;
1862 events: EventDispatcher<{
1863 propertychanged: {
1864 property: string;
1865 };
1866 }>;
1867 }, Key extends (keyof S & keyof this)>(property: Key, source: S, modifier?: (value: this[Key]) => this[Key]): void;
1868 /**
1869 * Sets up and obeserver function to monitor changes in particular property
1870 * or properties.
1871 *
1872 * @ignore Exclude from docs
1873 * @param property Element's property name
1874 * @param listener Handler function
1875 * @param context Context for handler function
1876 * @returns Event Disposer
1877 */
1878 observe<C>(property: string | string[], listener: (this: C, event: AMEvent<this, ISpriteEvents>["propertychanged"]) => void, context?: C, shouldClone?: boolean): IDisposer;
1879 /**
1880 * ==========================================================================
1881 * ACCESSIBILITY-RELATED PROPERTIES
1882 * ==========================================================================
1883 * @hidden
1884 */
1885 /**
1886 * Applies accessibility to the SVG element.
1887 *
1888 * Adds `<title>` and `<description>` elements as well as `aria-labelledby`
1889 * and `role` properties.
1890 *
1891 * @ignore Exclude from docs
1892 */
1893 protected applyAccessibility(): void;
1894 /**
1895 * Screen reader title of the element.
1896 *
1897 * @param value Title
1898 */
1899 /**
1900 * @return Title
1901 */
1902 readerTitle: string;
1903 /**
1904 * Screen reader description of the element.
1905 *
1906 * @param value Description
1907 */
1908 /**
1909 * @return Description
1910 */
1911 readerDescription: string;
1912 /**
1913 * A WAI-ARIA role for the element.
1914 *
1915 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#role_definitions} for more information on WAI-ARIA roles
1916 * @param value Role
1917 */
1918 /**
1919 * @return Role
1920 */
1921 role: Roles;
1922 /**
1923 * Controls if element should be hidden from screen readers.
1924 *
1925 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-hidden} for more information
1926 * @param value Hidden?
1927 */
1928 /**
1929 * @return Hidden?
1930 */
1931 readerHidden: boolean;
1932 /**
1933 * Controls if element is currently marked as "checked".
1934 *
1935 * @ignore Exclude from docs
1936 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-checked} for more information
1937 * @param value Checked?
1938 */
1939 /**
1940 * @ignore Exclude from docs
1941 * @return Checked?
1942 */
1943 readerChecked: boolean;
1944 /**
1945 * A `uid` of an element this element controls.
1946 *
1947 * @ignore Exclude from docs
1948 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-controls} for more information
1949 * @param value Setting value
1950 */
1951 /**
1952 * @ignore Exclude from docs
1953 * @return Setting value
1954 */
1955 readerControls: string;
1956 /**
1957 * Controls accessibility setting "aria-live" for the element.
1958 *
1959 * @ignore Exclude from docs
1960 * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions} for more information
1961 * @param value Setting value
1962 */
1963 /**
1964 * @ignore Exclude from docs
1965 * @return Setting value
1966 */
1967 readerLive: AriaLive;
1968 /**
1969 * A `uid` of an element that describes this element.
1970 *
1971 * @ignore Exclude from docs
1972 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby} for more information
1973 * @param value Target element
1974 */
1975 /**
1976 * @ignore Exclude from docs
1977 * @return Target element
1978 */
1979 readerLabelledBy: string;
1980 /**
1981 * A `uid` of an element that describes this element.
1982 *
1983 * @ignore Exclude from docs
1984 * @see {@link https://www.w3.org/TR/wai-aria-1.1/#aria-describedby} for more information
1985 * @param value Target element
1986 */
1987 /**
1988 * @ignore Exclude from docs
1989 * @return Target element
1990 */
1991 readerDescribedBy: string;
1992 /**
1993 * Orientation of the element.
1994 *
1995 * @since 4.7.16
1996 * @param value Orientation
1997 */
1998 /**
1999 * @return Orientation
2000 */
2001 readerOrientation: string;
2002 /**
2003 * Current value of the element.
2004 *
2005 * @since 4.7.16
2006 * @param value Current value
2007 */
2008 /**
2009 * @return Current value
2010 */
2011 readerValueNow: string;
2012 /**
2013 * Text representation of the current value of the element.
2014 *
2015 * @since 4.7.16
2016 * @param value Current value (text)
2017 */
2018 /**
2019 * @return Current value (text)
2020 */
2021 readerValueText: string;
2022 /**
2023 * ==========================================================================
2024 * USER INTERACTIONS
2025 * ==========================================================================
2026 * @hidden
2027 */
2028 /**
2029 * Returns elements keyboard options.
2030 *
2031 * @return Keyboard options
2032 */
2033 readonly keyboardOptions: IKeyboardOptions;
2034 /**
2035 * Mouse options.
2036 *
2037 * Enables controlling options related to the mouse, for example sensitivity
2038 * of its mouse wheel.
2039 *
2040 * E.g. the below will reduce chart's wheel-zoom speed to half its default
2041 * speed:
2042 *
2043 * ```TypeScript
2044 * chart.plotContainer.mouseOptions.sensitivity = 0.5;
2045 * ```
2046 * ```JavaScript
2047 * chart.plotContainer.mouseOptions.sensitivity = 0.5;
2048 * ```
2049 * ```JSON
2050 * {
2051 * // ...
2052 * "plotContainer": {
2053 * "mouseOptions": {
2054 * "sensitivity": 0.5
2055 * }
2056 * }
2057 * }
2058 * ```
2059 *
2060 * @return Mouse options
2061 */
2062 readonly mouseOptions: IMouseOptions;
2063 /**
2064 * Returns (creates if necessary) an [[InteractionObject]] associated with
2065 * this element.
2066 *
2067 * [[InteractionObject]] is used to attach all kinds of user-interactions to
2068 * the element, e.g. click/touch, dragging, hovering, and similar events.
2069 *
2070 * @return Interaction object
2071 */
2072 readonly interactions: InteractionObject;
2073 /**
2074 * Returns true if interactions object was created. Mostly used just to avoid creating interactions object if not needed.
2075 * @return Is Sprite interactive?
2076 */
2077 isInteractive(): boolean;
2078 /**
2079 * ==========================================================================
2080 * ELEMENT FOCUS-RELATED STUFF
2081 * ==========================================================================
2082 * @hidden
2083 */
2084 /**
2085 * Controls if the element can gain focus.
2086 *
2087 * Focusable element will be selectable via TAB key.
2088 *
2089 * Please note, clicking it with a mouse or touching will not add focus to
2090 * it.
2091 *
2092 * Focused element will show a system-specific highlight, which might ruin
2093 * the overal look. This is why we don't focus element on click/touch.
2094 *
2095 * A default setting varies for different elements. By default all elements
2096 * are not focusable, except certain items like buttons, legend items, etc.
2097 *
2098 * @default undefined (auto)
2099 * @param value Can element be focused?
2100 */
2101 /**
2102 * @return Can element be focused?
2103 */
2104 focusable: Optional<boolean>;
2105 /**
2106 * Applies filters (if set) when element gains focus.
2107 *
2108 * @ignore Exclude from docs
2109 * @param ev Original event
2110 */
2111 handleFocus(ev?: AMEvent<Sprite, ISpriteEvents>["focus"]): void;
2112 /**
2113 * Removes focus filter (if set) when elementloses focus.
2114 *
2115 * @ignore Exclude from docs
2116 * @param ev Original event
2117 */
2118 handleBlur(ev?: AMEvent<Sprite, ISpriteEvents>["blur"]): void;
2119 /**
2120 * A reference to a [[Filter]] to apply to element when it gains focus.
2121 *
2122 * Normally, browsers will draw a default ugly square around focused element,
2123 * which totally makes sense because its purpose is to help identify active
2124 * element for visually impaired people.
2125 *
2126 * However, if you would rather apply a filter, so you can modify how focused
2127 * element looks like, use `focusFilter`.
2128 *
2129 * Simply set it to an anstance of [[FocusFilter]], or any other filter
2130 * object.
2131 *
2132 * ```TypeScript
2133 * chart.focusFilter = new am4core.FocusFilter();
2134 * ```
2135 * ```JavaScript
2136 * chart.focusFilter = new am4core.FocusFilter();
2137 * ```
2138 * ```JSON
2139 * {
2140 * // ...
2141 * "focusFilter": {
2142 * "type": "FocusFilter"
2143 * },
2144 * // ...
2145 * }
2146 * ```
2147 *
2148 * @see {@link Filter}
2149 * @see {@link https://www.amcharts.com/docs/v4/concepts/accessibility/} more about accessibility
2150 * @see {@link https://www.amcharts.com/docs/v4/tutorials/changing-appearance-of-focused-items/} cusomizing focus appearance
2151 * @ignore Exclude from docs
2152 * @return Focused element filter
2153 */
2154 /**
2155 * @see {@link Filter}
2156 * @ignore Exclude from docs
2157 * @todo This is still experimental, don't use it
2158 */
2159 focusFilter: $type.Optional<Filter>;
2160 /**
2161 * If set to `true`, this element will also trigger `"over"` event with all
2162 * the related consequences, like "hover" state being applied and tooltip
2163 * being shown.
2164 *
2165 * Useful as an accessibility feature to display rollover tooltips on items
2166 * selected via keyboard.
2167 *
2168 * @param value Trigger hover on focus?
2169 * @default false
2170 */
2171 /**
2172 * @return Trigger hover on focus?
2173 */
2174 hoverOnFocus: boolean;
2175 /**
2176 * Sets or returns TAB index.
2177 *
2178 * Tab index maintains the order in which focusable elements gain focus when
2179 * TAB key is pressed.
2180 *
2181 * Please note, tab index is not local to the chart. It affects the whole
2182 * of the page, including non-SVG elements. Maintain extreme causion when
2183 * setting tab indexes, as it affects the user experience for the whole
2184 * web page.
2185 *
2186 * @param value TAB index
2187 */
2188 /**
2189 * @return TAB index
2190 */
2191 tabindex: number;
2192 /**
2193 * ==========================================================================
2194 * DRAGGING AND RELATED STUFF
2195 * ==========================================================================
2196 * @hidden
2197 */
2198 /**
2199 * Returns element's options to be used for inertia. This setting is
2200 * inheritable, meaning that if not set directly, it will search in all its
2201 * ascendants until very top.
2202 *
2203 * Inertia is used only if element's `inert` is set to `true`.
2204 *
2205 * "Inert" element, when dragged and released, will carry the momentum of the
2206 * movement, and will continue moving in the same drag direction, gradually
2207 * reducing in speed until finally stops.
2208 *
2209 * Check [[IInertiaOptions]] for how you tweak inertia animations.
2210 *
2211 * @return Inertia options
2212 */
2213 readonly inertiaOptions: Dictionary<InertiaTypes, IInertiaOptions>;
2214 /**
2215 * Controls if the element is draggable.
2216 *
2217 * @param value `true` if element can be dragged
2218 */
2219 /**
2220 * @return `true` if element can be dragged
2221 */
2222 draggable: boolean;
2223 /**
2224 * Executes when dragged element is being started to drag.
2225 *
2226 * @ignore Exclude from docs
2227 */
2228 protected handleDragStart(ev: AMEvent<Sprite, ISpriteEvents>["dragstart"]): void;
2229 /**
2230 * Tell this element to start being dragged. This is useful if you want to
2231 * drag items by interactions performed not directly on the target element.
2232 *
2233 * Parameter `pointer` is highly recommended. By passing in the Pointer you
2234 * will ensure that movement is tracked for the pointer that you want. If not
2235 * supplied, the system will try to determine the most logical pointer.
2236 *
2237 * However this may fail if you have more than one pointer active, which
2238 * might happen if you have several objects being dragged on a touch device.
2239 *
2240 * @ignore Exclude from docs
2241 * @param pointer Pointer to use for movement
2242 */
2243 dragStart(pointer?: IPointer): void;
2244 /**
2245 * Executes when dragged element is being dropped.
2246 *
2247 * @ignore Exclude from docs
2248 */
2249 protected handleDragStop(ev: AMEvent<Sprite, ISpriteEvents>["dragstop"]): void;
2250 /**
2251 * Stops manually initiated dragging of the element.
2252 *
2253 * @ignore Exclude from docs
2254 * @param pointer Pointer to use as a reference
2255 */
2256 dragStop(pointer?: IPointer, cancelled?: boolean): void;
2257 /**
2258 * Executes when {Sprite} is being dragged.
2259 *
2260 * @ignore Exclude from docs
2261 * @param ev Event object
2262 * @todo Implement parent position offset calculation
2263 */
2264 handleDragMove(ev: AMEvent<Sprite, ISpriteEvents>["drag"]): void;
2265 /**
2266 * Controls if the element should use inertia when interacted with.
2267 *
2268 * "Inert" element, when dragged and released, will carry the momentum of the
2269 * movement, and will continue moving in the same drag direction, gradually
2270 * reducing in speed until finally stops.
2271 *
2272 * @default false
2273 * @param value `true` if element should use inertia when animated
2274 */
2275 /**
2276 * @return `true` if element should use inertia when animated
2277 */
2278 inert: boolean;
2279 /**
2280 * ==========================================================================
2281 * HOVERING
2282 * ==========================================================================
2283 * @hidden
2284 */
2285 /**
2286 * Returns Sprite's hover options.
2287 *
2288 * @see {@link IHoverOptions} for available options.
2289 * @return Options
2290 */
2291 readonly hoverOptions: IHoverOptions;
2292 /**
2293 * Controls if the element is hoverable (hover events are registered).
2294 *
2295 * Use `over` and `out` events, to watch for those respective actions.
2296 *
2297 * @default false
2298 * @param value `true` if element can be hovered
2299 */
2300 /**
2301 * @return `true` if element is hoverable
2302 */
2303 hoverable: boolean;
2304 /**
2305 * Handles tasks when element becomes hovered:
2306 * * Shows [[Tooltip]] if applicable
2307 * * Applies "hover" state
2308 *
2309 * @ignore Exclude from docs
2310 * @param ev Event object
2311 */
2312 handleOver(ev?: AMEvent<Sprite, ISpriteEvents>["over"]): void;
2313 /**
2314 * Handles tasks when element loses hover:
2315 *
2316 * * Hides [[Tooltip]]
2317 * * Applies default state
2318 *
2319 * @ignore Exclude from docs
2320 * @param ev [description]
2321 */
2322 handleOut(ev?: AMEvent<Sprite, ISpriteEvents>["out"]): void;
2323 /**
2324 * [handleOutReal description]
2325 *
2326 * @ignore
2327 * @todo description
2328 */
2329 handleOutReal(): void;
2330 /**
2331 * ==========================================================================
2332 * CLICKING/TAPPING AND TOGGLING STUFF
2333 * ==========================================================================
2334 * @hidden
2335 */
2336 /**
2337 * Returns Sprite's click (hit) options.
2338 *
2339 * Click (hit) options control things like double-click, timeouts, etc.
2340 *
2341 * @see {@link IHitOptions} for available options.
2342 * @return Options
2343 */
2344 readonly hitOptions: IHitOptions;
2345 /**
2346 * Prepares element's after `down` event.
2347 *
2348 * @ignore Exclude from docs
2349 * @param ev Event
2350 */
2351 handleDown(ev?: AMEvent<Sprite, ISpriteEvents>["down"]): void;
2352 /**
2353 * Prepares element's after `up` event.
2354 *
2355 * @ignore Exclude from docs
2356 * @param ev Event
2357 */
2358 handleUp(ev?: AMEvent<Sprite, ISpriteEvents>["up"]): void;
2359 /**
2360 * Indicates if the element is clickable.
2361 *
2362 * Some type of the elements, like buttons are clickable by default.
2363 *
2364 * Most of the elements are not clickable by default.
2365 *
2366 * Use `hit`, `doublehit`, `up`, `down`, `toggled` events to watch for
2367 * respective click/touch actions.
2368 *
2369 * @param value `true` if element can be clicked
2370 */
2371 /**
2372 * @return {boolean}
2373 */
2374 clickable: boolean;
2375 /**
2376 * Indicates if element can be toggled on and off by subsequent clicks/taps.
2377 *
2378 * Togglable element will alternate its `isActive` property between `true`
2379 * and `false` with each click.
2380 *
2381 * @param value Is togglable?
2382 */
2383 /**
2384 * @return Is togglable?
2385 */
2386 togglable: boolean;
2387 /**
2388 * Handles toggling of the element.
2389 *
2390 * @ignore Exclude from docs
2391 * @param ev Event
2392 */
2393 handleToggle(ev: AMEvent<Sprite, ISpriteEvents>["hit"]): void;
2394 /**
2395 * Should element prevent context menu to be displayed, e.g. when
2396 * right-clicked?
2397 *
2398 * @default false
2399 * @param value Context menu disabled?
2400 */
2401 /**
2402 * @return Context menu disabled?
2403 */
2404 contextMenuDisabled: boolean;
2405 /**
2406 * Click-through URL for this element.
2407 *
2408 * If set, clicking/tapping this element will open the new URL in a target
2409 * window/tab as set by `urlTarget`.
2410 *
2411 * Please note that URL will be parsed by data placeholders in curly
2412 * brackets, to be populated from data. E.g.:
2413 *
2414 * ```TypeScript
2415 * series.columns.template.url = "https://www.google.com/search?q={category.urlEncode()}";
2416 * ```
2417 * ```JavaScript
2418 * series.columns.template.url = "https://www.google.com/search?q={category.urlEncode()}";
2419 * ```
2420 * ```JSON
2421 * {
2422 * // ...
2423 * "series": [{
2424 * // ...
2425 * "columns": {
2426 * "url": "https://www.google.com/search?q={category.urlEncode()}"
2427 * }
2428 * }]
2429 * }
2430 * ```
2431 *
2432 * @param value URL
2433 */
2434 /**
2435 * @return URL
2436 */
2437 url: $type.Optional<string>;
2438 /**
2439 * [baseId description]
2440 *
2441 * @ignore
2442 * @param value [description]
2443 */
2444 /**
2445 * [baseId description]
2446 *
2447 * @ignore
2448 * @return [description]
2449 */
2450 baseId: string;
2451 protected setBaseId(value: string): void;
2452 /**
2453 * Returns the mail chart object that this element belongs to.
2454 *
2455 * In most cases it will mean the chart object.
2456 *
2457 * Can be used to retrieve chart object in various events and adapters.
2458 *
2459 * ```TypeScript
2460 * chart.seriesContainer.events.on("hit", function(ev) {
2461 * console.log(ev.target.baseSprite);
2462 * });
2463 * ```
2464 * ```JavaScript
2465 * chart.seriesContainer.events.on("hit", function(ev) {
2466 * console.log(ev.target.baseSprite);
2467 * });
2468 * ```
2469 * ```JSON
2470 * {
2471 * // ...
2472 * "seriesContainer": {
2473 * "events": {
2474 * "hit": function(ev) {
2475 * console.log(ev.target.baseSprite);
2476 * }
2477 * }
2478 * }
2479 * }
2480 * ```
2481 *
2482 * @readonly
2483 * @return Base chart object
2484 */
2485 readonly baseSprite: $type.Optional<Sprite>;
2486 /**
2487 * Target to use for URL clicks:
2488 *
2489 * * _blank
2490 * * _self (default)
2491 * * _parent
2492 * * _top
2493 * * Name of the window/frame
2494 *
2495 * Ignored if `url` is not set.
2496 *
2497 * @param value URL target
2498 */
2499 /**
2500 * @return URL target
2501 */
2502 urlTarget: string;
2503 /**
2504 * Handles URL transition on element click.
2505 *
2506 * @ignore Exclude from docs
2507 * @param ev An event object
2508 */
2509 urlHandler(ev: AMEvent<Sprite, ISpriteEvents>["hit"]): void;
2510 /**
2511 * ==========================================================================
2512 * SWIPING GESTURE TRACKING
2513 * ==========================================================================
2514 * @hidden
2515 */
2516 /**
2517 * Returns element's swipe gesture options.
2518 *
2519 * @return Swipe gesture options
2520 */
2521 readonly swipeOptions: ISwipeOptions;
2522 /**
2523 * Controls if element is swipeable.
2524 *
2525 * Swipable element will invoke `swipe`, `swipeleft` and `swiperight` events,
2526 * when quick horizontal drag action is performed with either mouse or touch.
2527 *
2528 * Please note that combining swipe and drag is possible, however will incur
2529 * a slight but noticeable delay in drag start.
2530 *
2531 * @param value Element swipable?
2532 */
2533 /**
2534 * @return Element swipable?
2535 */
2536 swipeable: boolean;
2537 /**
2538 * ==========================================================================
2539 * POINTER TRACKING
2540 * ==========================================================================
2541 * @hidden
2542 */
2543 /**
2544 * Indicates if the element is trackable (mouse position over it is reported to
2545 * event listeners).
2546 *
2547 * Will invoke `track` events whenever pointer (cursor) changes position
2548 * while over element.
2549 *
2550 * Please note, touch devices will also invoke `track` events when touch
2551 * point is moved while holding down on a trackable element.
2552 *
2553 * @param value Track cursor movement over element?
2554 */
2555 /**
2556 * @return Track cursor movement over element?
2557 */
2558 trackable: boolean;
2559 /**
2560 * ==========================================================================
2561 * MOUSE-WHEEL RELATED
2562 * ==========================================================================
2563 * @hidden
2564 */
2565 /**
2566 * Indicates if the element can be interacted with mouse wheel.
2567 *
2568 * Will invoke `wheel`, `wheelup`, `wheeldown`, `wheelleft`, and `wheelright`
2569 * events when using mouse wheel over the element.
2570 *
2571 * @param value Mouse wheel events enabled?
2572 */
2573 /**
2574 * @return Mouse wheel events enabled?
2575 */
2576 wheelable: boolean;
2577 /**
2578 * ==========================================================================
2579 * RESIZE
2580 * ==========================================================================
2581 * @hidden
2582 */
2583 /**
2584 * Indicates if this element is resizable.
2585 *
2586 * Enabling resize will turn on various interactions on the element. Their
2587 * actual functionality will depend on other properties.
2588 *
2589 * If the element also `draggable`, resize will only happen with two points
2590 * of contact on a touch device.
2591 *
2592 * If the element is not draggable, resize can be performed with just one
2593 * point of contact, touch or mouse.
2594 *
2595 * Will invoke `resize` event every time the size of the element changes.
2596 *
2597 * @param value Element resizable?
2598 */
2599 /**
2600 * @return Element resizable?
2601 */
2602 resizable: boolean;
2603 /**
2604 * Handles resize intermediate step.
2605 *
2606 * By default this method resizes actual element. Each element, can override
2607 * this method to implement their own resize logic.
2608 *
2609 * @ignore Exclude from docs
2610 * @param ev Event object
2611 */
2612 handleResize(ev: AMEvent<Sprite, ISpriteEvents>["resize"]): void;
2613 /**
2614 * ==========================================================================
2615 * MOUSE-RELATED
2616 * ==========================================================================
2617 * @hidden
2618 */
2619 /**
2620 * Returns element's cursor options.
2621 *
2622 * Cursor options usually define cursor style for various states of the
2623 * hovered element.
2624 *
2625 * Elements inherit `cursorOptions` from their parents if they don't have
2626 * them set explicitly.
2627 *
2628 * @see {@link ICursorOptions} for a list of available options
2629 * @return Cursor options
2630 */
2631 readonly cursorOptions: ICursorOptions;
2632 /**
2633 * A shortcut to setting mouse cursor on hover.
2634 *
2635 * Example:
2636 *
2637 * ```TypeScript
2638 * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;
2639 * ```
2640 * ```JavaScript
2641 * series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;
2642 * ```
2643 * ```JSON
2644 * {
2645 * // ...
2646 * "series": {
2647 * // ...
2648 * "slices": {
2649 * "cursorOverStyle": "pointer"
2650 * }
2651 * }
2652 * }
2653 * ```
2654 *
2655 * @param style An array of styles to apply onhover
2656 */
2657 cursorOverStyle: Array<IStyleProperty>;
2658 /**
2659 * A shortcut to setting mouse cursor when button is pressed down.
2660 *
2661 * Example:
2662 *
2663 * ```TypeScript
2664 * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;
2665 * ```
2666 * ```JavaScript
2667 * series.slices.template.cursorDownStyle = am4core.MouseCursorStyle.grabbing;
2668 * ```
2669 * ```JSON
2670 * {
2671 * // ...
2672 * "series": {
2673 * // ...
2674 * "slices": {
2675 * "cursorDownStyle": "grabbing"
2676 * }
2677 * }
2678 * }
2679 * ```
2680 *
2681 * @param style An array of styles to apply onhover
2682 */
2683 cursorDownStyle: Array<IStyleProperty>;
2684 /**
2685 * Applies default cursor styles for interactable elements.
2686 *
2687 * @ignore Exclude from docs
2688 * @todo Determine if this is necessary. Maybe let's not apply any cursor styles by default
2689 */
2690 applyCursorStyle(): void;
2691 /**
2692 * Setting this to `false` will effectively disable all interactivity on the
2693 * element.
2694 *
2695 * @param value Is interaction enabled for this element?
2696 */
2697 /**
2698 * @return Is interaction enabled for this element?
2699 */
2700 interactionsEnabled: boolean;
2701 /**
2702 * ==========================================================================
2703 * EXPORT-RELATED STUFF
2704 * ==========================================================================
2705 * @hidden
2706 */
2707 /**
2708 * An [[Export]] instance.
2709 *
2710 * Used to access API of the chart export functionality.
2711 *
2712 * If `exporting` is not set, the element inherits [[Export]] instance from
2713 * its parents.
2714 *
2715 * Upon request, if no parent has such instance, a new one is created, using
2716 * default settings, what in most cases is just enough.
2717 *
2718 * @see {@link https://www.amcharts.com/docs/v4/concepts/exporting/} for more info about exporting
2719 * @param exp Export
2720 */
2721 /**
2722 * @return Export instance
2723 */
2724 exporting: Export;
2725 /**
2726 * This is here as a method so that inheriting classes could override it.
2727 *
2728 * @return Export instance
2729 */
2730 protected getExporting(): Export;
2731 /**
2732 * If set to `false` this element will be omitted when exporting the chart
2733 * to an image.
2734 *
2735 * @default true
2736 * @param value Export?
2737 */
2738 /**
2739 * @return Export?
2740 */
2741 exportable: boolean;
2742 /**
2743 * ==========================================================================
2744 * MODAL/POPUP RELATED STUFF
2745 * ==========================================================================
2746 * @hidden
2747 */
2748 /**
2749 * Private method to be used for "classPrefix" adapter for modals/popups.
2750 *
2751 * @param value Prefix
2752 */
2753 private modalPrefix;
2754 /**
2755 * Returns a [[Modal]] instance, associated with this chart.
2756 * (elements top parent)
2757 *
2758 * Accessing modal does not make it appear. To make a modal appear, use
2759 * `showModal()` method.
2760 *
2761 * @see {@link Modal} for more information about using Modal windows
2762 * @return Modal instance
2763 */
2764 readonly modal: Optional<Modal>;
2765 /**
2766 * Opens a modal window with specific content (`text` parameter) and,
2767 * optionally, `title`.
2768 *
2769 * The `text` parameter can contain HTML content.
2770 *
2771 * @see {@link Modal} for more information about using Modal windows
2772 * @param text Modal contents
2773 * @param title Title for the modal window
2774 */
2775 openModal(text: string, title?: string): Optional<Modal>;
2776 /**
2777 * Hides modal window if there is one currently open.
2778 */
2779 closeModal(): void;
2780 /**
2781 * A list of popups for this chart.
2782 *
2783 * @return Popups
2784 */
2785 readonly popups: Optional<ListTemplate<Popup>>;
2786 /**
2787 * Creates, opens, and returns a new [[Popup]] window.
2788 *
2789 * `text` can be any valid HTML.
2790 *
2791 * `title` is currently not supported.
2792 *
2793 * @param text Popup contents
2794 * @param title Popup title
2795 * @return Popup instance
2796 */
2797 openPopup(text: string, title?: string): Optional<Popup>;
2798 /**
2799 * Closes all currently open popup windows
2800 */
2801 closeAllPopups(): void;
2802 /**
2803 * ==========================================================================
2804 * POSITIONAL PROPERTIES AND RELATED STUFF
2805 * ==========================================================================
2806 * @hidden
2807 */
2808 /**
2809 * Element's absolute or relative X coordinate.
2810 *
2811 * If setting both X and Y, please consider using `moveTo()` method instead,
2812 * as it will be faster to set both coordinates at once.
2813 *
2814 * @param value X coordinate
2815 */
2816 /**
2817 * @return X coordinate
2818 */
2819 x: number | Percent;
2820 /**
2821 * Returns element's current absolute X coordinate in pixels.
2822 *
2823 * @readonly
2824 * @return X coordinate (px)
2825 */
2826 readonly pixelX: number;
2827 /**
2828 * Returns element's current relative X coordinate in [[Percent]].
2829 *
2830 * @return X coordinate ([[Percent]])
2831 */
2832 readonly relativeX: number;
2833 /**
2834 * The smallest allowable absolute X coordinate for this element.
2835 *
2836 * This is used to contain element movement within certain boundaries.
2837 *
2838 * @ignore Exclude from docs
2839 * @param value Min X (px)
2840 */
2841 /**
2842 * @ignore Exclude from docs
2843 * @return Min X (px)
2844 */
2845 minX: number;
2846 /**
2847 * The biggest allowable absolute X coordinate for this element.
2848 *
2849 * This is used to contain element movement within certain boundaries.
2850 *
2851 * @ignore Exclude from docs
2852 * @param value Max X (px)
2853 */
2854 /**
2855 * @ignore Exclude from docs
2856 * @return Max X (px)
2857 */
2858 maxX: number;
2859 /**
2860 * Element's absolute or relative Y coordinate.
2861 *
2862 * If setting both X and Y, please consider using `moveTo()` method instead,
2863 * as it will be faster to set both coordinates at once.
2864 *
2865 * @param value Y coordinate
2866 */
2867 /**
2868 * @return Y coordinate
2869 */
2870 y: number | Percent;
2871 /**
2872 * Returns element's current absolute Y coordinate in pixels.
2873 *
2874 * @readonly
2875 * @return Y coordinate (px)
2876 */
2877 readonly pixelY: number;
2878 /**
2879 * Returns element's current relative Y coordinate in [[Percent]].
2880 *
2881 * @readonly
2882 * @return Y coordinate ([[Percent]])
2883 */
2884 readonly relativeY: number;
2885 /**
2886 * The smallest allowable absolute Y coordinate for this element.
2887 *
2888 * This is used to contain element movement within certain boundaries.
2889 *
2890 * @ignore Exclude from docs
2891 * @param value Min Y (px)
2892 */
2893 /**
2894 * @ignore Exclude from docs
2895 * @return Min Y (px)
2896 */
2897 minY: number;
2898 /**
2899 * The biggest allowable absolute Y coordinate for this element.
2900 *
2901 * This is used to contain element movement within certain boundaries.
2902 *
2903 * @ignore Exclude from docs
2904 * @param value Max Y (px)
2905 */
2906 /**
2907 * @ignore Exclude from docs
2908 * @return Max Y (px)
2909 */
2910 maxY: number;
2911 /**
2912 * A horizontal offset for the element in pixels.
2913 *
2914 * Can be negative value for offset to the left.
2915 *
2916 * @param value Horizontal offset (px)
2917 */
2918 /**
2919 * @return Horizontal offset (px)
2920 */
2921 dx: number;
2922 /**
2923 * A vertical offset for the element in pixels.
2924 *
2925 * Can be negative value for offset upwards.
2926 *
2927 * @param value Vertical offset (px)
2928 */
2929 /**
2930 * @return Vertical offset (px)
2931 */
2932 dy: number;
2933 /**
2934 * Rotation of the element in degrees. (0-360)
2935 *
2936 * Note: For convenience purposes, negative values (for counter-clockwise
2937 * rotation) and values exceeding 360 can also be used.
2938 *
2939 * @param value Rotation (0-360)
2940 */
2941 /**
2942 * @return Rotation (0-360)
2943 */
2944 rotation: number;
2945 /**
2946 * Controls horizontal alignment of the element.
2947 *
2948 * This is used by parent [[Container]] when layouting its children.
2949 *
2950 * @param value Horizontal align
2951 */
2952 /**
2953 * @return Horizontal align
2954 */
2955 align: Align;
2956 /**
2957 * Controls vertical alignment of the element.
2958 *
2959 * This is used by parent [[Container]] when layouting its children.
2960 *
2961 * @param value Vertical align
2962 */
2963 /**
2964 * @return Vertical align
2965 */
2966 valign: VerticalAlign;
2967 /**
2968 * Controls which part of the element to treat as a horizontal center.
2969 *
2970 * The setting will be used when positioning, resizing and rotating the
2971 * element.
2972 *
2973 * @param value Horizontal center
2974 */
2975 /**
2976 * @return Horizontal center
2977 */
2978 horizontalCenter: HorizontalCenter;
2979 /**
2980 * Controls which part of the element to treat as a vertical center.
2981 *
2982 * The setting will be used when positioning, resizing and rotating the
2983 * element.
2984 *
2985 * @param value Vertical center
2986 */
2987 /**
2988 * @return Vertical center
2989 */
2990 verticalCenter: VerticalCenter;
2991 /**
2992 * ==========================================================================
2993 * DIMENSIONAL PROPERTIES AND RELATED STUFF
2994 * ==========================================================================
2995 * @hidden
2996 */
2997 /**
2998 * Maximum allowed width for the element in pixels.
2999 *
3000 * @param value Maximum width (px)
3001 */
3002 /**
3003 * @return Maximum width (px)
3004 */
3005 maxWidth: number;
3006 protected setMaxWidth(value: number): void;
3007 /**
3008 * Maximum allowed height for the element in pixels.
3009 *
3010 * @param value Maximum height (px)
3011 */
3012 /**
3013 * @return Maximum height (px)
3014 */
3015 maxHeight: number;
3016 protected setMaxHeight(value: number): void;
3017 /**
3018 * Minimum width of the element in pixels.
3019 *
3020 * Set to `undefined` to remove the limit.
3021 *
3022 * @param value Minimum width (px)
3023 */
3024 /**
3025 * @return Minimum width (px)
3026 */
3027 minWidth: Optional<number>;
3028 /**
3029 * Minimum height for the element in pixels.
3030 *
3031 * Set to `undefined` to remove the limit.
3032 *
3033 * @param value Minimum height (px)
3034 */
3035 /**
3036 * @return Minimum height (px)
3037 */
3038 minHeight: Optional<number>;
3039 /**
3040 * Element's absolute or relative width.
3041 *
3042 * The width can either be absolute, set in numeric pixels, or relative, set
3043 * in [[Percent]].
3044 *
3045 * Relative width will be calculated using closest measured ancestor
3046 * [[Container]].
3047 *
3048 * NOTE: `width` is an accessor, which allows setting width in pixels or
3049 * percent. It is a sort of a "shortcut" for the users. Actual renderer does
3050 * not ever use it. It uses either `pixelWidth` or `percentWidth`, so if
3051 * you need to add an adapter for width add it for either of the two
3052 * properties - whichever suits your requirements.
3053 *
3054 * @param value Width (numeric in pixels or relative)
3055 */
3056 /**
3057 * @return Width (absolute or relative)
3058 */
3059 width: number | Percent;
3060 /**
3061 * Element's absolute or relative height.
3062 *
3063 * The height can either be absolute, set in numeric pixels, or relative, set
3064 * in [[Percent]].
3065 *
3066 * Relative height will be calculated using closest measured ancestor
3067 * [[Container]].
3068 *
3069 * NOTE: `height` is an accessor, which allows setting height in pixels or
3070 * percent. It is a sort of a "shortcut" for the users. Actual renderer does
3071 * not ever use it. It uses either `pixelHeight` or `percentHeight`, so if
3072 * you need to add an adapter for height add it for either of the two
3073 * properties - whichever suits your requirements.
3074 *
3075 * @param value Height (numeric in pixels or relative)
3076 */
3077 /**
3078 * @return height (absolute or relative)
3079 */
3080 height: number | Percent;
3081 /**
3082 * Returns element's width in pixels, if width was set. For actual width use measuredWidth property.
3083 *
3084 * @readonly
3085 * @return Width (px)
3086 */
3087 readonly pixelWidth: number;
3088 /**
3089 * Returns element's height in pixels. For actual height use measuredHeight property.
3090 *
3091 * @readonly
3092 * @return Height (px)
3093 */
3094 readonly pixelHeight: number;
3095 /**
3096 * Element's relative width in [[Percent]].
3097 * @ignore
3098 *
3099 * @param value Relative width
3100 */
3101 /**
3102 * @return Relative width
3103 * @ignore
3104 */
3105 relativeWidth: $type.Optional<number>;
3106 /**
3107 * Element's relative height in [[Percent]].
3108 *
3109 * @param value Relative height
3110 * @ignore
3111 */
3112 /**
3113 * @return Relative height
3114 * @ignore
3115 */
3116 relativeHeight: $type.Optional<number>;
3117 /**
3118 * Returns element's measured width in pixels.
3119 *
3120 * A measured width is actual width of contents plus `paddingRight` and* `paddingLeft`, relative to sprite parent, meaning that
3121 * rotation and scale is taken into account.
3122 *
3123 * @readonly
3124 * @return Width (px)
3125 */
3126 readonly measuredWidth: number;
3127 /**
3128 * Returns elements's measured height in pixels.
3129 *
3130 * A measured height is actual height of contents plus `paddingTop` and `paddingBottom`, relative to sprite parent, meaning that
3131 * rotation and scale taken into account.
3132 *
3133 * @readonly
3134 * @return Height (px)
3135 */
3136 readonly measuredHeight: number;
3137 /**
3138 * Returns element's measured width plus its left and right margins in
3139 * pixels.
3140 *
3141 * @readonly
3142 * @return Outer width (px)
3143 */
3144 readonly outerWidth: number;
3145 /**
3146 * Returns element's measured height plus its top and bottom margins in
3147 * pixels.
3148 *
3149 * @readonly
3150 * @return Outer height (px)
3151 */
3152 readonly outerHeight: number;
3153 /**
3154 * Returns element's measured inner width in pixels.
3155 *
3156 * Inner width is actual available space for content, e.g. element's width
3157 * minus horizontal padding.
3158 *
3159 * @readonly
3160 * @return Inner width (px)
3161 */
3162 readonly innerWidth: number;
3163 /**
3164 * Returns element's measured inner height in pixels.
3165 *
3166 * Inner height is actual available space for content, e.g. element's height
3167 * minus vertical padding.
3168 *
3169 * @readonly
3170 * @return Inner height (px)
3171 */
3172 readonly innerHeight: number;
3173 /**
3174 * Returns element's current "global" scale.
3175 *
3176 * Scale values accumulate over hierarchy of elements.
3177 *
3178 * E.g. if a [[Container]] has `scale = 2` and it's child has a `scale = 2`,
3179 * the child's `globalScale` will be 4. (a multitude of `2 x 2`)
3180 *
3181 * @readonly
3182 * @return Global scale
3183 */
3184 readonly globalScale: number;
3185 /**
3186 * Scale of the element.
3187 *
3188 * The scale is set from 0 (element reduced to nothing) to 1 (default size).
3189 * * 2 will mean element is increased twice.
3190 * * 0.5 - reduced by 50%.
3191 *
3192 * Etc.
3193 *
3194 * @param value Scale (0-1)
3195 */
3196 /**
3197 * @return Scale (0-1)
3198 */
3199 scale: number;
3200 /**
3201 * Sets all four margins for the element at once.
3202 *
3203 * Margins are set in pixels.
3204 *
3205 * @param top Top margin
3206 * @param right Right margin
3207 * @param bottom Bottom margin
3208 * @param left Left margin
3209 * @return Current element
3210 */
3211 margin(top: number, right: number, bottom: number, left: number): Sprite;
3212 /**
3213 * Left margin - absolute (px) or relative ([[Percent]]).
3214 *
3215 * @param value Margin value
3216 */
3217 /**
3218 * @return Margin value
3219 */
3220 marginLeft: number | Percent;
3221 /**
3222 * Right margin - absolute (px) or relative ([[Percent]]).
3223 *
3224 * @param value Margin value
3225 */
3226 /**
3227 * @return Margin value
3228 */
3229 marginRight: number | Percent;
3230 /**
3231 * Top margin - absolute (px) or relative ([[Percent]]).
3232 *
3233 * @param value Margin value
3234 */
3235 /**
3236 * @return Margin value
3237 */
3238 marginTop: number | Percent;
3239 /**
3240 * Bottom margin - absolute (px) or relative ([[Percent]]).
3241 *
3242 * @param value Margin value
3243 */
3244 /**
3245 * @return Margin value
3246 */
3247 marginBottom: number | Percent;
3248 /**
3249 * Returns current right margin in pixels.
3250 *
3251 * @readonly
3252 * @return Right margin (px)
3253 */
3254 readonly pixelMarginRight: number;
3255 /**
3256 * Returns current relative right margin.
3257 *
3258 * @readonly
3259 * @return Relative right margin
3260 */
3261 readonly relativeMarginRight: number;
3262 /**
3263 * Returns current left margin in pixels.
3264 *
3265 * @readonly
3266 * @return Left margin (px)
3267 */
3268 readonly pixelMarginLeft: number;
3269 /**
3270 * Returns current relative left margin.
3271 *
3272 * @readonly
3273 * @return Relative left margin
3274 */
3275 readonly relativeMarginLeft: number;
3276 /**
3277 * Returns current top margin in pixels.
3278 *
3279 * @readonly
3280 * @return Top margin (px)
3281 */
3282 readonly pixelMarginTop: number;
3283 /**
3284 * Returns current relative top margin.
3285 *
3286 * @readonly
3287 * @return Relative top margin
3288 */
3289 readonly relativeMarginTop: number;
3290 /**
3291 * Returns current bottom margin in pixels.
3292 *
3293 * @readonly
3294 * @return Bottom margin (px)
3295 */
3296 readonly pixelMarginBottom: number;
3297 /**
3298 * Returns current relative bottom margin.
3299 *
3300 * @readonly
3301 * @return Relative bottom margin
3302 */
3303 readonly relativeMarginBottom: number;
3304 /**
3305 * Sets padding for the element in pixels.
3306 *
3307 * @param top Top padding (px)
3308 * @param right Right padding (px)
3309 * @param bottom Bottom padding (px)
3310 * @param left Left padding (px)
3311 * @return Element
3312 */
3313 padding(top: number, right: number, bottom: number, left: number): Sprite;
3314 /**
3315 * Left padding - absolute (px) or relative ([[Percent]]).
3316 *
3317 * @param value Padding value
3318 */
3319 /**
3320 * @return Padding value
3321 */
3322 paddingLeft: number | Percent;
3323 /**
3324 * Right padding - absolute (px) or relative ([[Percent]]).
3325 *
3326 * @param value Padding value
3327 */
3328 /**
3329 * @return Padding value
3330 */
3331 paddingRight: number | Percent;
3332 /**
3333 * Top padding - absolute (px) or relative ([[Percent]]).
3334 *
3335 * @param value Padding value
3336 */
3337 /**
3338 * @return Padding value
3339 */
3340 paddingTop: number | Percent;
3341 /**
3342 * Bottom padding - absolute (px) or relative ([[Percent]]).
3343 *
3344 * @param value Padding value
3345 */
3346 /**
3347 * @return Padding value
3348 */
3349 paddingBottom: number | Percent;
3350 /**
3351 * Returns current right padding in pixels.
3352 *
3353 * @readonly
3354 * @return Right padding (px)
3355 */
3356 readonly pixelPaddingRight: number;
3357 /**
3358 * Returns current relative right padding.
3359 *
3360 * @readonly
3361 * @return Relative right padding
3362 */
3363 readonly relativePaddingRight: number;
3364 /**
3365 * Returns current left padding in pixels.
3366 *
3367 * @readonly
3368 * @return Left padding (px)
3369 */
3370 readonly pixelPaddingLeft: number;
3371 /**
3372 * Returns current relative left padding.
3373 *
3374 * @readonly
3375 * @return Relative left padding
3376 */
3377 readonly relativePaddingLeft: number;
3378 /**
3379 * Returns current top padding in pixels.
3380 *
3381 * @readonly
3382 * @return Top padding (px)
3383 */
3384 readonly pixelPaddingTop: number;
3385 /**
3386 * Returns current relative top padding.
3387 *
3388 * @readonly
3389 * @return Relative top padding
3390 */
3391 readonly relativePaddingTop: number;
3392 /**
3393 * Returns current bottom padding in pixels.
3394 *
3395 * @readonly
3396 * @return Bottom padding (px)
3397 */
3398 readonly pixelPaddingBottom: number;
3399 /**
3400 * Returns current relative bottom padding.
3401 *
3402 * @readonly
3403 * @return Relative bottom padding
3404 */
3405 readonly relativePaddingBottom: number;
3406 /**
3407 * ==========================================================================
3408 * APPEARANCE-RELATED PROPERTIES AND RELATED STUFF
3409 * ==========================================================================
3410 * @hidden
3411 */
3412 /**
3413 * Path of Sprite element
3414 */
3415 /**
3416 * @return Path of a Sprite element
3417 */
3418 path: string;
3419 /**
3420 * @ignore
3421 */
3422 protected setPath(value: string): boolean;
3423 /**
3424 * [[ColorModifier]] that can be used to modify color and pattern of the
3425 * element's fill, e.g. create gradients.
3426 *
3427 * @param value Fill color modifiier
3428 */
3429 /**
3430 * @return Fill color modifier
3431 */
3432 fillModifier: ColorModifier;
3433 /**
3434 * [[ColorModifier]] that can be used to modify color and pattern of the
3435 * element's stroke (outline), e.g. create gradients.
3436 *
3437 * @param value Stroke color modifier
3438 */
3439 /**
3440 * @return Stroke color modifier
3441 */
3442 strokeModifier: ColorModifier;
3443 /**
3444 * Element's fill opacity.
3445 *
3446 * Opacity ranges from 0 (fully transparent) to 1 (fully opaque).
3447 *
3448 * @param value Opacity (0-1)
3449 */
3450 /**
3451 * @return Opacity (0-9)
3452 */
3453 fillOpacity: number;
3454 /**
3455 * Element's fill color or pattern.
3456 *
3457 * @param value Fill
3458 */
3459 /**
3460 * @return Fill
3461 */
3462 fill: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>;
3463 /**
3464 * Sets actual `fill` property on the SVG element, including applicable color
3465 * modifiers.
3466 *
3467 * @ignore Exclude from docs
3468 * @param value Fill
3469 */
3470 protected setFill(value: $type.Optional<Color | Pattern | LinearGradient | RadialGradient>): void;
3471 /**
3472 * Element's opacity.
3473 *
3474 * Opacity setting can range from 0 (fully transparent) to 1 (fully opaque).
3475 *
3476 * ATTENTION: It is highly not recommended to use `opacity` directly on the
3477 * element. The charts use `opacity` to hide/show elements, so your setting
3478 * might be lost if element is hidden and then later shown.
3479 *
3480 * Instead use methods `hide()` and `show()` to completely toggle off and on
3481 * the element.
3482 *
3483 * Or, use properties `fillOpacity` and `strokeOpacity`, if you need to make
3484 * the element semi-transparent.
3485 *
3486 * @param value Opacity (0-1)
3487 */
3488 /**
3489 * @return Opacity (0-1)
3490 */
3491 opacity: number;
3492 /**
3493 * Element's stroke (outline) color or pattern.
3494 *
3495 * @param value Stroke setting
3496 */
3497 /**
3498 * @return Stroke setting
3499 */
3500 stroke: Color | Pattern | LinearGradient | RadialGradient;
3501 /**
3502 * Sets actual `stroke` property on the SVG element, including applicable
3503 * color modifiers.
3504 *
3505 * @ignore Exclude from docs
3506 * @param value Stroke setting
3507 */
3508 protected setStroke(value: Color | Pattern | LinearGradient | RadialGradient): void;
3509 /**
3510 * Stroke (outline) opacity.
3511 *
3512 * The values may range from 0 (fully transparent) to 1 (fully opaque).
3513 *
3514 * @param value Opacity (0-1)
3515 */
3516 /**
3517 * @return Opacity (0-1)
3518 */
3519 strokeOpacity: number;
3520 /**
3521 * Controls if the element's stroke (outline) should remain keep constant
3522 * thicnkess and do not scale when the whole element is resized.
3523 *
3524 * @param value Do not scale stroke (outline)
3525 */
3526 /**
3527 * @return Do not scale stroke (outline)
3528 */
3529 nonScalingStroke: boolean;
3530 /**
3531 * Controls if element should keep constant size and not scale even if there is
3532 * space available, or it does not fit.
3533 *
3534 * @param value Is element scaleable?
3535 */
3536 /**
3537 * @return Is element scaleable?
3538 */
3539 nonScaling: boolean;
3540 /**
3541 * Stroke (outline) thickness in pixels.
3542 *
3543 * @param value Thickness (px)
3544 */
3545 /**
3546 * @return Thickness (px)
3547 */
3548 strokeWidth: number;
3549 /**
3550 * A `stroke-dasharray` for the stroke (outline).
3551 *
3552 * "Dasharray" allows setting rules to make lines dashed, dotted, etc.
3553 *
3554 * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more info on `stroke-dasharray`
3555 * @param value `stroke-dasharray`
3556 */
3557 /**
3558 * @return `stroke-dasharray`
3559 */
3560 strokeDasharray: string;
3561 /**
3562 * A `stroke-dashoffset` for the stroke (outline).
3563 *
3564 * "Dashoffset" allows setting the start position of the dashes if
3565 * `strokeDasharray` is used.
3566 *
3567 * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset} for more info on `stroke-dashoffset`
3568 * @param value `stroke-dashoffset`
3569 */
3570 /**
3571 * @return `stroke-dashoffset`
3572 */
3573 strokeDashoffset: number;
3574 /**
3575 * A `stroke-linecap` to indicate how line ends are drawn.
3576 *
3577 * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linecap`
3578 * @param value `stroke-linecap`
3579 */
3580 /**
3581 * @return `stroke-linecap`
3582 */
3583 strokeLinecap: "butt" | "square" | "round";
3584 /**
3585 * A `stroke-linejoin` to indicate how line ends are drawn.
3586 *
3587 * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Fills_and_Strokes#Stroke} for more info on `stroke-linejoin`
3588 * @param value `stroke-linejoin`
3589 */
3590 /**
3591 * @return `stroke-linejoin`
3592 */
3593 strokeLinejoin: "miter" | "round" | "bevel";
3594 /**
3595 * An SVG-specific `shape-rendering` value.
3596 *
3597 * `shape-rendering` controls how vector graphics are drawn and rendered.
3598 *
3599 * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering} for more information about `shape-rendering`
3600 * @default "auto"
3601 * @param value 'shape-rendering' value
3602 */
3603 /**
3604 * @return 'shape-rendering' value
3605 */
3606 shapeRendering: ShapeRendering;
3607 /**
3608 * Controls if SVG vectors should be drawn with "pixel" precision, producing
3609 * perfectly crisp lines on retina displays.
3610 *
3611 * Setting this to `true` might improve visual quality, but may have a
3612 * negative effect on performance.
3613 *
3614 * Different elements use different default setting for `pixelPerfect`.
3615 *
3616 * We recommend leaving this at their default settings, unless there's a
3617 * specific need.
3618 *
3619 * @param value Use pixel perfect?
3620 */
3621 /**
3622 * @return Use pixel perfect?
3623 */
3624 pixelPerfect: boolean;
3625 /**
3626 * An RTL (right-to-left) setting.
3627 *
3628 * RTL may affect alignment, text, and other visual properties.
3629 *
3630 * If you set this on a top-level chart object, it will be used for all
3631 * child elements, e.g. labels, unless they have their own `rtl` setting
3632 * set directly on them.
3633 *
3634 * @param value `true` for to use RTL
3635 */
3636 /**
3637 * @return RTL?
3638 */
3639 rtl: boolean;
3640 /**
3641 * ==========================================================================
3642 * VISIBILITY AND ORDER PROPERTIES AND RELATED STUFF
3643 * ==========================================================================
3644 * @hidden
3645 */
3646 /**
3647 * Reveals hidden element.
3648 *
3649 * Has no effect if element is already visible.
3650 *
3651 * If `duration` is not specified, it will use default.
3652 *
3653 * @param duration Fade in duration (ms)
3654 * @return Animation object if such object was created
3655 */
3656 show(duration?: number): $type.Optional<Animation>;
3657 /**
3658 * Performs actual operations to reveal this element.
3659 *
3660 * @ignore Exclude from docs
3661 * @param duration Fade in duration (ms)
3662 * @return Fade in duration (ms)
3663 */
3664 protected showReal(duration?: number): $type.Optional<Animation>;
3665 /**
3666 * Initiates hiding of Sprite.
3667 * When called it will fade out the the Sprite to transparency, then make it
3668 * invisible.
3669 * @param duration Duration in millisecons
3670 */
3671 /**
3672 * Hides the element, by applying `hidden` state.
3673 *
3674 * Has no effect if element is already hidden.
3675 *
3676 * If `duration` is not specified, it will use default.
3677 *
3678 * While element is fading out, its `isHiding` property will resolve to
3679 * `true`.
3680 *
3681 * When element is hidden, its `visible` property will resolve to `false`.
3682 *
3683 * @param duration Fade out duration (ms)
3684 * @return hide Animation object if such object was created
3685 */
3686 hide(duration?: number): $type.Optional<Animation>;
3687 /**
3688 * Hides actual SVG elements and handles hiding animations.
3689 *
3690 * @param duration Fade out duration (ms)
3691 * @return Fade out duration (ms)
3692 * @ignore
3693 */
3694 protected hideReal(duration?: number): $type.Optional<Animation>;
3695 /**
3696 * Indicates if element is current visible (`true`) or hidden (`false`).
3697 *
3698 * @param value Visible?
3699 */
3700 /**
3701 * @return Visible?
3702 */
3703 visible: boolean;
3704 /**
3705 * Returns visibility value
3706 * @ignore
3707 */
3708 protected getVisibility(): boolean;
3709 /**
3710 * Sets `visibility` property:
3711 *
3712 * * `true` - visible
3713 * * `false` - hidden
3714 *
3715 * @param value true - visible, false - hidden
3716 * @return Current visibility
3717 */
3718 setVisibility(value: boolean): void;
3719 /**
3720 * A "zIndex" of the element.
3721 *
3722 * "zIndex" determines the order of how elements are placed over each other.
3723 *
3724 * Higher "zIndex" will mean the element will be draw on top of elements
3725 * with lower "zIndexes".
3726 *
3727 * @param value zIndex
3728 */
3729 /**
3730 * @return zIndex
3731 */
3732 zIndex: number;
3733 /**
3734 * Moves the element to the very top in element order, so that it appears
3735 * in front of other elements.
3736 */
3737 toFront(): void;
3738 /**
3739 * Moves the element to the very bottom in the element order, so that it
3740 * appears behind other elements.
3741 */
3742 toBack(): void;
3743 /**
3744 * A custom class name to set on the element.
3745 *
3746 * If set, the value will be added to element's `class` attribute.
3747 *
3748 * @since 4.9.11
3749 * @param value Class name
3750 */
3751 /**
3752 * @return Class name
3753 */
3754 userClassName: string;
3755 /**
3756 * ==========================================================================
3757 * TOOLTIP-RELATED PROPERTIES STUFF
3758 * ==========================================================================
3759 * @hidden
3760 */
3761 /**
3762 * A [[Tooltip]] object to be used when displayed rollover information for
3763 * the element.
3764 *
3765 * @param tooltip Tooltip
3766 */
3767 /**
3768 * @return Tooltip
3769 */
3770 tooltip: $type.Optional<Tooltip>;
3771 /**
3772 * A [[DataItem]] to use when populating content for the element's
3773 * [[Tooltip]].
3774 *
3775 * @see {@link Tooltip}
3776 * @see {@link DataItem}
3777 * @param value Tooltip data item
3778 */
3779 /**
3780 * @return Tooltip data item
3781 */
3782 tooltipDataItem: DataItem;
3783 /**
3784 * A [[Sprite]] or sprite template to use when getting colors for tooltip. If a template is set,
3785 * tooltip will look for a clone in tooltipDataItem.sprites. If no clone is found, then template colors will be used.
3786 *
3787 * @see {@link Tooltip}
3788 * @see {@link Sprite}
3789 * @param sprite Sprite
3790 */
3791 /**
3792 * @return Tooltip color source
3793 */
3794 tooltipColorSource: $type.Optional<Sprite>;
3795 /**
3796 * Shows the element's [[Tooltip]].
3797 *
3798 * A tooltip will be populated using text templates in either `tooltipHTML` or
3799 * `tooltipText` as well as data in `tooltipDataItem`.
3800 *
3801 * @see {@link Tooltip}
3802 * @param optional point (sprite-related) to which tooltip must point.
3803 * @return returns true if the tooltip was shown and false if it wasn't (no text was found)
3804 */
3805 showTooltip(point?: IPoint): boolean;
3806 /**
3807 * @ignore
3808 */
3809 protected updateTooltipPosition(point?: IPoint): boolean;
3810 /**
3811 * Sets the point the [[Tooltip]] should point to.
3812 *
3813 * @param point Coordinates to point to
3814 * @param instantly Move instantly without animation
3815 */
3816 protected pointTooltipTo(point: IPoint, instantly?: boolean): boolean;
3817 /**
3818 * Hides element's [[Tooltip]].
3819 *
3820 * @see {@link Tooltip}
3821 */
3822 hideTooltip(duration?: number): void;
3823 /**
3824 * An HTML template to be used to populate [[Tooltip]] contents.
3825 *
3826 * If element has `tooltipDataItem` or `dataItem` set, this will be parsed
3827 * for any data values to be replaced with the values from respective data
3828 * items.
3829 *
3830 * @param value Tooltip HTML content template
3831 */
3832 /**
3833 * @return Tooltip HTML content template
3834 */
3835 tooltipHTML: string;
3836 /**
3837 * A text template to be used to populate Tooltip's contents.
3838 *
3839 * If element has `tooltipDataItem` or `dataItem` set, this will be parsed
3840 * for any data values to be replaced with the values from respective data
3841 * items.
3842 *
3843 * This template will also be parsed for any special formatting tags.
3844 *
3845 * @param value Tooltip content template
3846 * @see {@link TextFormatter}
3847 */
3848 /**
3849 * @return Tooltip content template
3850 */
3851 tooltipText: string;
3852 /**
3853 * A container reference that should be used to place element's
3854 * [[Tooltip]] in.
3855 *
3856 * Will use parent's container if does not have one set.
3857 *
3858 * @ignore Exclude from docs
3859 * @param value Container
3860 * @todo Dispose of the old _tooltipContainer ?
3861 */
3862 /**
3863 * @ignore Exclude from docs
3864 * @return Container
3865 */
3866 tooltipContainer: $type.Optional<Container>;
3867 /**
3868 * X coordinate the [[Tooltip]] should be shown at.
3869 *
3870 * @param value Tooltip X (px)
3871 */
3872 /**
3873 * @return Tooltip X (px)
3874 */
3875 tooltipX: number | Percent;
3876 /**
3877 * DEPRECATION NOTICE: This setting is deprecated in favor of a more flexible
3878 * setting: `showTooltipOn`. Please use `showTooltipOn = "always"` instead.
3879 *
3880 * Indicates if this element should display a tooltip permanently.
3881 *
3882 * Useful, if you want to show permanent tooltips on some items.
3883 *
3884 * @default false
3885 * @since 4.5.4
3886 * @deprecated Use `showTooltipOn = "always"` instead
3887 * @param value Always show tooltip?
3888 */
3889 /**
3890 * @return Always show tooltip?
3891 */
3892 alwaysShowTooltip: boolean;
3893 /**
3894 * Indicates when tooltip needs to be shown on this element:
3895 *
3896 * * `"hover"` (default) - Tooltip will be shown when element is hovered on.
3897 * * `"hit"` - Tooltip will be shown when element is clicked/tapped. Tooltip will be hidden when clicked/tapped anywhere else.
3898 * * `"always"` - Tooltip will be shown on the element permanently.
3899 *
3900 * For example, if you would like to show tooltips on all of the columns of
3901 * a [[ColumnSeries]]:
3902 *
3903 * ```TypeScript
3904 * series.columns.template.showTooltipOn = "always";
3905 * ```
3906 * ```JavaScript
3907 * series.columns.template.showTooltipOn = "always";
3908 * ```
3909 * ```JSON
3910 * {
3911 * // ...
3912 * "series": [{
3913 * // ...
3914 * "columns": {
3915 * "showTooltipOn": "always"
3916 * }
3917 * }]
3918 * }
3919 * ```
3920 *
3921 * It can even be set to display on a selected columns via `propertyFields`:
3922 *
3923 * ```TypeScript
3924 * series.columns.template.propertyFields.showTooltipOn = "tooltip";
3925 * ```
3926 * ```JavaScript
3927 * series.columns.template.propertyFields.showTooltipOn = "tooltip";
3928 * ```
3929 * ```JSON
3930 * {
3931 * // ...
3932 * "series": [{
3933 * // ...
3934 * "columns": {
3935 * "propertyFields": {
3936 * "showTooltipOn": "tooltip"
3937 * }
3938 * }
3939 * }]
3940 * }
3941 * ```
3942 *
3943 * @default "hover"
3944 * @since 4.7.9
3945 * @param value When to show tooltip
3946 */
3947 /**
3948 * @return When to show tooltip
3949 */
3950 showTooltipOn: "hover" | "hit" | "always";
3951 /**
3952 * Specifies if [[Tooltip]] should follow the mouse or touch pointer or stay
3953 * at the fixed position.
3954 *
3955 * @param value Position
3956 */
3957 /**
3958 * Position
3959 */
3960 tooltipPosition: "fixed" | "pointer";
3961 /**
3962 * Y coordinate the [[Tooltip]] should be shown at.
3963 *
3964 * @param value Tooltip Y (px)
3965 */
3966 /**
3967 * @return Tooltip Y (px)
3968 */
3969 tooltipY: number | Percent;
3970 /**
3971 * Returns Tooltip X coordinate if it's set, or middle of the element.
3972 *
3973 * @ignore Exclude from docs
3974 * @return X (px)
3975 */
3976 getTooltipX(): number;
3977 /**
3978 * Returns Tooltip Y coordinate if it's set, or middle of the element.
3979 *
3980 * @ignore Exclude from docs
3981 * @return Y (px)
3982 */
3983 getTooltipY(): number;
3984 /**
3985 * Displays a modal or console message with error, and halts any further
3986 * processing of this item.
3987 *
3988 * @ignore Exclude from docs
3989 * @param e Error
3990 * @todo Implement from applying further actions to this item
3991 */
3992 raiseCriticalError(e: Error, closable?: boolean): void;
3993 /**
3994 * Processes JSON-based config before it is applied to the object.
3995 *
3996 * @ignore Exclude from docs
3997 * @param config Config
3998 */
3999 processConfig(config?: {
4000 [index: string]: any;
4001 }): void;
4002 /**
4003 * Converts string name of the cursor into actual [[MouseCursorStyle]].
4004 *
4005 * @param style Cursor type
4006 * @return Cursor definition
4007 */
4008 private getCursorStyle;
4009 /**
4010 * This function is used to sort element's JSON config properties, so that
4011 * some properties that absolutely need to be processed last, can be put at
4012 * the end.
4013 *
4014 * @ignore Exclude from docs
4015 * @param a Element 1
4016 * @param b Element 2
4017 * @return Sorting number
4018 */
4019 protected configOrder(a: string, b: string): Ordering;
4020 /**
4021 * If `sprite.hide()` is called, we set isHidden to true when sprite is hidden.
4022 * This was added becaus hidden state might have visibility set to true and so
4023 * there would not be possible to find out if a sprite is technically hidden or not.
4024 */
4025 readonly isHidden: boolean;
4026 /**
4027 * If this is set to `true`, Sprite, when inited will be instantly hidden
4028 * ("hidden" state applied) and then shown ("default" state applied).
4029 *
4030 * If your "default" state's `transitionDuration > 0` this will result in
4031 * initial animation from "hidden" state to "default" state.
4032 *
4033 * If you need a Sprite which has `showOnInit = true` not to be shown
4034 * initially, set `sprite.hidden = true`. Setting `sprite.visible = false`
4035 * will not prevent the animation and the sprite will be shown.
4036 *
4037 * @param value show on init?
4038 */
4039 /**
4040 * @return Show on init?
4041 */
4042 showOnInit: boolean;
4043 /**
4044 * @ignore
4045 */
4046 protected setShowOnInit(value: boolean): void;
4047 /**
4048 * @ignore
4049 */
4050 protected hideInitially(): void;
4051 /**
4052 * Hides the chart instantly and then shows it. If defaultState.transitionDuration > 0, this will result an animation in which properties of hidden state will animate to properties of visible state.
4053 */
4054 appear(): void;
4055 /**
4056 * If a sprite has `showOnInit = true`, it will animate from "hidden" to
4057 * "default" state when initialized. To prevent this but keep
4058 * `showOnInit = true`, you can set `sprite.hidden = true`.
4059 *
4060 * @param value initially hidden?
4061 */
4062 /**
4063 * @return Is initially hidden?
4064 */
4065 hidden: boolean;
4066 /**
4067 * Returns bounding box (square) for this element.
4068 *
4069 * @ignore Exclude from docs
4070 */
4071 readonly bbox: IRectangle;
4072 /**
4073 * A list of plugins (objects that implement [[IPlugin]] interface) attached
4074 * to this object.
4075 *
4076 * @since 4.2.2
4077 * @return List of plugins
4078 */
4079 readonly plugins: List<IPlugin>;
4080 /**
4081 * Called during the System.update method
4082 *
4083 * @ignore Exclude from docs
4084 */
4085 _systemUpdate(skippedSprites: Array<Sprite>): void;
4086 /**
4087 * Called during the System.update method
4088 *
4089 * @ignore Exclude from docs
4090 */
4091 _systemCheckIfValidate(): boolean;
4092 /**
4093 * Called during the System.validatePositions method
4094 *
4095 * @ignore Exclude from docs
4096 */
4097 _systemValidatePositions(): void;
4098 /**
4099 * Called during the System.validateLayouts method
4100 *
4101 * @ignore Exclude from docs
4102 */
4103 _systemValidateLayouts(): void;
4104}
4105
\No newline at end of file