'use strict';

/*
 *+------------------------------------------------------------------------+
 *| Licensed Materials - Property of IBM
 *| IBM Cognos Products: BI Dashboard
 *| (C) Copyright IBM Corp. 2017
 *|
 *| US Government Users Restricted Rights - Use, duplication or disclosure
 *| restricted by GSA ADP Schedule Contract with IBM Corp.
 *+------------------------------------------------------------------------+
 */

define(['../../../lib/@waca/core-client/js/core-client/ui/core/Class', '../../../lib/@waca/upgrades/UpgradeBase'], function (Class, UpgradeBase) {

	var Upgrade = Class.extend([UpgradeBase], {
		init: function init() {},

		/**
   * Perform upgrade
   *
   * @param {object} spec - spec to perform upgrade on
   *
   * @return {Promise} Promise to be resolved when upgrade performed
   */
		up: function up(spec) {
			if (!spec) {
				return Promise.resolve(spec);
			}

			if (!this._specHasWidgets(spec)) {
				return Promise.resolve(spec);
			}

			Object.keys(spec.widgets).forEach(function (widgetId) {
				if (spec.widgets[widgetId].type !== 'text' && spec.widgets[widgetId].type !== 'shape' && spec.widgets[widgetId].content) {
					delete spec.widgets[widgetId].content;
				}
			});

			return Promise.resolve(spec);
		},

		down: function down(spec) {
			// no downgrade at this time; return as is:
			// we don't save backups of specs
			return Promise.resolve(spec);
		},

		_specHasWidgets: function _specHasWidgets(spec) {
			if (!spec.widgets) {
				return false;
			}
			return Object.keys(spec.widgets).length > 0;
		}
	});

	return new Upgrade();
});
//# sourceMappingURL=waca_removeWidgetContentBoardSpec.js.map