/**
 * @class Ext.util.Scheduler
 * @mixin Ext.mixin.Observable
 * This class is used to bulk schedule a set of `Ext.util.Schedulable` items. The items
 * in the scheduler request time by calling their `schedule` method and when the time has
 * arrived its `react` method is called.
 *
 * The `react` methods are called in dependency order as determined by the sorting process.
 * The sorting process relies on each item to implement its own `sort` method.
 *
 * @private
 */
 
/**
 * @cfg {String/Function} preSort
 * If provided the `Schedulable` items will be pre-sorted by this function or
 * property value before the dependency sort.
 * @accessor
 */
 
/**
 * @cfg {Number} [tickDelay=5]
 * The number of milliseconds to delay notification after the first `schedule`
 * request.
 * @accessor
 */
 
/**
 * @property {Boolean} [suspendOnNotify=true]
 * `true` to suspend layouts when the scheduler is triggering bindings. Setting this to `false`
 * may mean multiple layout runs on a single bind call which could affect performance.
 */
 
/**
 * @method sortItem
 * Adds one item to the sorted items array. This can be called by the `sort` method of
 * `{@link Ext.util.Sortable sortable}` objects to add an item on which it depends.
 *
 * @param {Object} item The item to add.
 * @return {Ext.util.Scheduler} This instance.
 * @since 5.0.0
 */
 
/**
 * @method sortItems
 * Adds multiple items to the sorted items array. This can be called by the `sort`
 * method of `{@link Ext.util.Sortable sortable}` objects to add items on which it
 * depends.
 *
 * @param {Object/Object[]} items The items to add. If this is an object, the values
 * are considered the items and the keys are ignored.
 * @return {Ext.util.Scheduler} This instance.
 * @since 5.0.0
 */
 
/**
 * @method notify
 * This method can be called to force the delivery of any scheduled items. This is
 * called automatically on a timer when items request service.
 *
 * @since 5.0.0
 */
 
/**
 * @method adjustBusy
 * This method should be called when items become busy or idle. These changes are
 * useful outside to do things like update modal masks or status indicators. The
 * changes are delivered as `busy` and `idle` events.
 *
 * @param {Number} adjustment Should be `1` or `-1` only to indicate transition to
 * busy state or from busy state, respectively.
 * @since 5.0.0
 */
 
/**
 * @method isBusy
 * Returns `true` if this object contains one or more busy items.
 * @return {Boolean}
 * @since 5.0.0
 */
 
/**
 * @method isIdle
 * Returns `true` if this object contains no busy items.
 * @return {Boolean}
 * @since 5.0.0
 */