/** * @class Ext.chart.interactions.PanZoom * @extend Ext.chart.interactions.Abstract * @alias interaction.panzoom * * The PanZoom interaction allows the user to navigate the data for one or more chart * axes by panning and/or zooming. Navigation can be limited to particular axes. Zooming is * performed by pinching on the chart or axis area; panning is performed by single-touch dragging. * The interaction only works with cartesian charts/series. * * For devices which do not support multiple-touch events, zooming can not be done via pinch gestures; in this case the * interaction will allow the user to perform both zooming and panning using the same single-touch drag gesture. * {@link #modeToggleButton} provides a button to indicate and toggle between two modes. * * The configuration object for the `panzoom` interaction type should specify which axes * will be made navigable via the `axes` config. See the {@link #axes} config documentation * for details on the allowed formats. If the `axes` config is not specified, it will default * to making all axes navigable with the default axis options. * */ /** * @cfg {Object/Array} axes * Specifies which axes should be made navigable. The config value can take the following formats: * * - An Object with keys corresponding to the {@link Ext.chart.axis.Axis#position position} of each * axis that should be made navigable. Each key's value can either be an Object with further * configuration options for each axis or simply `true` for a default set of options. * * { * type: 'panzoom', * axes: { * left: { * maxZoom: 5, * allowPan: false * }, * bottom: true * } * } * * If using the full Object form, the following options can be specified for each axis: * * - minZoom (Number) A minimum zoom level for the axis. Defaults to `1` which is its natural size. * - maxZoom (Number) A maximum zoom level for the axis. Defaults to `10`. * - startZoom (Number) A starting zoom level for the axis. Defaults to `1`. * - allowZoom (Boolean) Whether zooming is allowed for the axis. Defaults to `true`. * - allowPan (Boolean) Whether panning is allowed for the axis. Defaults to `true`. * - startPan (Boolean) A starting panning offset for the axis. Defaults to `0`. * * - An Array of strings, each one corresponding to the {@link Ext.chart.axis.Axis#position position} * of an axis that should be made navigable. The default options will be used for each named axis. * * { * type: 'panzoom', * axes: ['left', 'bottom'] * } * * If the `axes` config is not specified, it will default to making all axes navigable with the * default axis options. * @accessor */ /** * @cfg {Boolean} [showOverflowArrows=true] * If `true`, arrows will be conditionally shown at either end of each axis to indicate that the * axis is overflowing and can therefore be panned in that direction. Set this to `false` to * prevent the arrows from being displayed. * @accessor */ /** * @cfg {Object} overflowArrowOptions * A set of optional overrides for the overflow arrow sprites' options. Only relevant when * {@link #showOverflowArrows} is `true`. */ /** * @cfg {Boolean} [zoomOnPan=false] * If `true`, the pan gesture will zoom the chart. */ /** * @cfg {Boolean} [doubleTapReset=false] * If `true`, the double tap on a chart will reset the current pan/zoom to show the whole chart. */