/** * @class Ext.mixin.Toolable * * A Toolable component is a lightweight container of `Ext.Tool` components. The tools * are defined using the `tools` config like so: * * tools: [{ * type: 'gear', * itemId: 'settings' * }] * * Equivalently tools can also be declared as a keyed container of `itemId`s: * * tools: { * settings: { * type: 'gear' * } * } * * This second form is more flexible since it allow config system merging. Unfortunately * this form does not provide the same simplicity for controlling tool order. To control * item order the tools can be assigned a {@link Ext.Component#cfg!weight}. * * Consider this array form: * * tools: [{ * type: 'gear', * itemId: 'settings' * }, { * type: 'pin', * itemId: 'pin * }] * * The equivalent object form would be: * * tools: { * settings: { * type: 'gear', * weight: 1 * }, * pin: { * type: 'pin', * weight: 2 * } * } * * @private * @since 6.5.0 */ /** * @cfg {Object} defaultToolWeights * The default `weight` for tools in the `header`. * @since 6.5.0 * @accessor */ /** * @cfg {Object} toolDefaults * The properties of this object are shallow copied (via {@link Ext#applyIf applyIf()} * as opposed to {@link Ext#merge Ext.merge()} to each tool declared in the `tools` * config. */ /** * @cfg {Ext.Tool[]/Object/Object[]} tools * An array of {@link Ext.Tool} configs or an object keyed by `itemId`. */