calendarnavigator-debug.js revision 9724a6e829470b07523eddcd9df488b799e57a6a
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichYUI.add('calendarnavigator', function(Y) {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich/**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Provides a plugin which adds navigation controls to Calendar.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @module calendarnavigator
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovichvar CONTENT_BOX = "contentBox",
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich HOST = "host",
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich RENDERED = "rendered",
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich getCN = Y.ClassNameManager.getClassName,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich substitute = Y.substitute,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich node = Y.Node,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich create = node.create,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CALENDAR = 'calendar',
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CALENDARNAV = 'calendarnav',
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CAL_HD = getCN(CALENDAR, 'header'),
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CAL_PREV_M = getCN(CALENDARNAV, 'prevmonth'),
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CAL_NEXT_M = getCN(CALENDARNAV, 'nextmonth'),
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich ydate = Y.DataType.Date;
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich/**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * A plugin class which adds navigation controls to Calendar.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @class CalendarNavigator
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @extends Plugin.Base
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @namespace Plugin
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovichfunction CalendarNavigator(config) {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CalendarNavigator.superclass.constructor.apply(this, arguments);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich}
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich/**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The namespace for the plugin. This will be the property on the widget, which will
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * reference the plugin instance, when it's plugged in.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property NS
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type String
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @default "navigator"
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.NS = "navigator";
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich/**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The NAME of the CalendarNavigator class. Used to prefix events generated
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * by the plugin class.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property NAME
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type String
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @default "pluginCalendarNavigator"
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.NAME = "pluginCalendarNavigator";
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich/**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Static property used to define the default attribute
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * configuration for the plugin.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property ATTRS
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type Object
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.ATTRS = {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The number of months to shift by when the control arrows are clicked.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @attribute shiftByMonths
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type Number
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @default 1 (months)
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich shiftByMonths : {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich value: 1
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich }
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich};
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The CSS classnames for the calendar navigator controls.
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property CALENDARNAV_STRINGS
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type Object
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @readOnly
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.CALENDARNAV_STRINGS = {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich prev_month_class: CAL_PREV_M,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich next_month_class: CAL_NEXT_M
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich};
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The template for the calendar navigator previous month control.
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property PREV_MONTH_CONTROL_TEMPLATE
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type String
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.PREV_MONTH_CONTROL_TEMPLATE = '<div class="yui3-u {prev_month_class}" style="width:15px;">' +
6cafccf809775a3cedccc793ceb6d57c4f5e8db0Allen Rabinovich "&#9668;" +
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich '</div>';
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The template for the calendar navigator next month control.
10d8bafc5c24f3a4285cf6060a1935ba5cfc4b85Luke Smith * @property NEXT_MONTH_CONTROL_TEMPLATE
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @type String
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @readOnly
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @static
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichCalendarNavigator.NEXT_MONTH_CONTROL_TEMPLATE = '<div class="yui3-u {next_month_class}" style="width:15px;">' +
6cafccf809775a3cedccc793ceb6d57c4f5e8db0Allen Rabinovich "&#9658;" +
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich '</div>';
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichY.extend(CalendarNavigator, Y.Plugin.Base, {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The initializer lifecycle implementation. Modifies the host widget's
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * render to add navigation controls.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method initializer
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @param {Object} config The user configuration for the plugin
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich initializer : function(config) {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich // After the host has rendered its UI, place the navigation cotnrols
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich this.afterHostMethod("renderUI", this._initNavigationControls);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * The initializer destructor implementation. Responsible for destroying the initialized
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * control mechanisms.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method destructor
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich destructor : function() {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Private utility method that subtracts months from the host calendar date
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * based on the control click and the shiftByMonths property.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method _subtractMonths
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @param {Event} ev Click event from the controls
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich _subtractMonths : function (ev) {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var host = this.get(HOST);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var oldDate = host.get("date");
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich host.set("date", ydate.addMonths(oldDate, -1*this.get("shiftByMonths")));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich ev.preventDefault();
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Private utility method that adds months to the host calendar date
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * based on the control click and the shiftByMonths property.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method _addMonths
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @param {Event} ev Click event from the controls
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich _addMonths : function (ev) {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var host = this.get(HOST);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var oldDate = host.get("date");
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich host.set("date", ydate.addMonths(oldDate, this.get("shiftByMonths")));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich ev.preventDefault();
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Private render assist method that renders the previous month control
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method _renderPrevControls
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @private
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich _renderPrevControls : function () {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var prevControlNode = create(substitute (CalendarNavigator.PREV_MONTH_CONTROL_TEMPLATE,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CalendarNavigator.CALENDARNAV_STRINGS));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich prevControlNode.on("click", this._subtractMonths, this);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich prevControlNode.on("selectstart", function (ev) {ev.preventDefault();});
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich return prevControlNode;
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Private render assist method that renders the next month control
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich *
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method _renderNextControls
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @private
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich _renderNextControls : function () {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var nextControlNode = create(substitute (CalendarNavigator.NEXT_MONTH_CONTROL_TEMPLATE,
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich CalendarNavigator.CALENDARNAV_STRINGS));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich nextControlNode.on("click", this._addMonths, this);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich nextControlNode.on("selectstart", function (ev) {ev.preventDefault();});
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich return nextControlNode;
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich },
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich /**
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * Protected render assist method that initialized and renders the navigation controls.
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @method _initNavigationControls
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich * @protected
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich */
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich _initNavigationControls : function() {
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var host = this.get(HOST);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich var headerCell = host.get(CONTENT_BOX).one("." + CAL_HD);
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich headerCell.prepend(this._renderPrevControls(host));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich headerCell.append(this._renderNextControls(host));
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich }
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich});
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen RabinovichY.namespace("Plugin").CalendarNavigator = CalendarNavigator;
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
2f17bc2f9d34cb9377a0c15ea9519471bb83e4ecAllen Rabinovich
9724a6e829470b07523eddcd9df488b799e57a6aDav Glass}, '@VERSION@' ,{requires:['plugin', 'classnamemanager', 'datatype-date', 'node', 'substitute']});