'use strict'; /* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| IBM Cognos Products: Content Explorer *| (C) Copyright IBM Corp. 2015, 2020 *| *| US Government Users Restricted Rights - Use, duplication or disclosure *| restricted by GSA ADP Schedule Contract with IBM Corp. *+------------------------------------------------------------------------+ */ define(['../../../lib/@waca/dashboard-common/dist/glass/controllers/WidgetBaseActionHandler', '../../../app/nls/StringResources', '../../../lib/@waca/core-client/js/core-client/utils/ClassFactory', 'underscore'], function (BaseClass, stringResources, ClassFactory, _) { return BaseClass.extend({ getDashboardView: function getDashboardView(context) { return context.glassContext.appController.getCurrentContentView(); }, getUiHelperClass: function getUiHelperClass() { return ClassFactory.loadModule('dashboard-core/js/lib/@waca/dashboard-common/dist/ui/WidgetAddUIHelper'); }, getOptions: function getOptions(context) { var _this = this; var view = this.getDashboardView(context); var dashboardApi = view.getDashboardApi(); var options = { module: 'dashboard-core/js/dashboard/views/CustomWidgetListView', label: stringResources.get('customWidgetsTitle'), getEntries: this.getEntries.bind(this), className: 'customWidgetSlideout', services: view.services, dashboardApi: dashboardApi }; return this._createWidgetAddUIHelper(context, dashboardApi).then(function (widgetHelper) { options.onItemClick = function (entry, event) { return _this._onItemClickHandler(entry, event, widgetHelper, dashboardApi); }; options.onItemStartDrag = widgetHelper.addWidgetByDrag.bind(widgetHelper); return options; }); }, _onItemClickHandler: function _onItemClickHandler(entry, event, widgetHelper, dashboardApi) { var logger = dashboardApi.getFeature('Logger'); var canvas = dashboardApi.getFeature('Canvas'); var contentRegistryFeature = dashboardApi.getFeature('ContentTypeRegistry'); if (contentRegistryFeature.isTypeRegistered(entry.type)) { return canvas.addContent(entry.defaultSpec).catch(function (error) { logger.log(error); }); } return widgetHelper.addWidgetBySelection(entry, event); }, getEntries: function getEntries(context) { var view = this.getDashboardView(context); var dashboardApi = view.getDashboardApi(); var contentRegistryFeature = dashboardApi.getFeature('ContentTypeRegistry'); return this._createWidgetAddUIHelper(context, dashboardApi).then(function (widgetHelper) { return widgetHelper.fetchWidgetListFromPerspective('com.ibm.bi.dashboard.widgets', context.glassContext); }).then(function (entries) { entries.list = _.filter(entries.list, function (entry) { return entry.builtin ? false : true; }); entries.list = entries.list.concat(contentRegistryFeature.getExposedContents()); return entries; }); }, // Private _createWidgetAddUIHelper: function _createWidgetAddUIHelper(context, dashboardApi) { var view = this.getDashboardView(context); var uiHelperClassOptions = { services: view.services, dashboardApi: dashboardApi }; return this.getUiHelperClass().then(function (UIHelperClass) { var widgetAddUIHelper = new UIHelperClass(uiHelperClassOptions); widgetAddUIHelper.panelAttributes = { cdnUrl: dashboardApi.getCDNUrl(), glassContext: context.glassContext }; return widgetAddUIHelper; }); } }); }); //# sourceMappingURL=CustomWidgetActionHandler.js.map