123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- 'use strict';
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * Licensed Materials - Property of IBM
- * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2018, 2019
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['../lib/@waca/dashboard-common/dist/core/APIFactory', '../api/deprecated/CanvasAPI', '../lib/@waca/core-client/js/core-client/utils/Deferred', '../dashboard/api/FilterAPI', 'underscore'], function (APIFactory, DeprecatedCanvasAPI, Deferred, DeprecatedFilterApi, _) {
- var CanvasAPIImpl = function () {
- function CanvasAPIImpl(dashboardAPI, boardModel, canvasController, layoutController, widgetLoader) {
- _classCallCheck(this, CanvasAPIImpl);
- this.widgetLoader = widgetLoader;
- this.boardModel = boardModel;
- this.canvasController = canvasController;
- this.layoutController = layoutController;
- this.dashboardAPI = dashboardAPI;
- // TODO: remove this -- it is just here because some code might be using it
- this.controller = this.canvasController;
- this.filterApi = new DeprecatedFilterApi(this.canvasController, this.dashboardAPI);
- }
- CanvasAPIImpl.prototype.getAPI = function getAPI() {
- if (!this.api) {
- this.api = APIFactory.createAPI(this, [DeprecatedCanvasAPI], {
- deprecatedPropList: ['controller']
- });
- }
- return this.api;
- };
- CanvasAPIImpl.prototype.getWidgetsWhenRendered = function getWidgetsWhenRendered() {
- return this.dashboardAPI.waitTillWidgetsRendered.apply(this.dashboardAPI, arguments);
- };
- CanvasAPIImpl.prototype.deselectAllWidgets = function deselectAllWidgets() {
- return this.dashboardAPI.deselectAllWidgets.apply(this.dashboardAPI, arguments);
- };
- CanvasAPIImpl.prototype.destroy = function destroy() {
- this.widgetLoader = null;
- this.boardModel = null;
- this.canvasController = null;
- this.layoutController = null;
- this.dashboardAPI = null;
- // TODO: remove this -- it is just here because some code might be using it
- this.controller = null;
- this.filterApi = null;
- };
- CanvasAPIImpl.prototype.getFilters = function getFilters() {
- return this.filterApi;
- };
- CanvasAPIImpl.prototype.getSelectedWidgets = function getSelectedWidgets() {
- var _this = this;
- var widgetModels = this.layoutController.getSelectedWidgets();
- var widgets = [];
- widgetModels.forEach(function (model) {
- var widget = _this.getWidget(model.id);
- if (widget) {
- widgets.push(widget);
- }
- });
- return widgets;
- };
- CanvasAPIImpl.prototype.getWidgetWhenReady = function getWidgetWhenReady(id) {
- if (this.widgetLoader) {
- return this.widgetLoader.getWidgetAsync(id).then(function (widget) {
- if (widget) {
- return widget.getAPI();
- }
- });
- } else {
- return Promise.reject(new Error('No longer alive!'));
- }
- };
- CanvasAPIImpl.prototype.getWidget = function getWidget(id) {
- if (this.widgetLoader) {
- var widget = this.widgetLoader.getWidget(id);
- if (widget) {
- return widget.getAPI();
- }
- }
- };
- CanvasAPIImpl.prototype.getWidgets = function getWidgets() {
- var id = void 0;
- var widgets = [];
- var widget = void 0;
- for (id in this.boardModel.widgetInstances) {
- widget = this.getWidget(id);
- if (widget) {
- widgets.push(widget);
- }
- }
- return widgets;
- };
- CanvasAPIImpl.prototype.addFragment = function addFragment(options, sender, payloadData) {
- if (payloadData === undefined) payloadData = null;
- //sets preferred add options in CanvasController Class
- this.layoutController.setPreferredAddOptions(options);
- var payload = this.boardModel.addFragment(options, sender ? sender : 'api', payloadData);
- var parameter = payload && payload.value && payload.value.parameter;
- return parameter && parameter.model && parameter.model.layout && parameter.model.layout.id; //return model id of added widget
- };
- CanvasAPIImpl.prototype.addWidget = function addWidget(addOptions, sender, options) {
- this.layoutController.setPreferredAddOptions(addOptions);
- var payload = this.boardModel.addWidget(addOptions, sender ? sender : 'api', options);
- var parameter = payload && payload.value && payload.value.parameter;
- return parameter && parameter.model && parameter.model.id; //return model id of added widget
- };
- CanvasAPIImpl.prototype.replaceWidget = function replaceWidget(widgetId, addOptions, sender) {
- var layoutModel = this.boardModel.layout.findModel(widgetId);
- if (layoutModel) {
- addOptions.layoutProperties = layoutModel.toJSON();
- var id = addOptions.layoutProperties.id;
- addOptions.layoutProperties.id = undefined;
- var parentModel = this.boardModel.layout.findParentModel(widgetId);
- if (parentModel) {
- addOptions.parentId = parentModel.id;
- addOptions.insertBefore = id;
- }
- } else {
- this.layoutController.setPreferredAddOptions(addOptions);
- }
- var undoRedoTransactionId = _.uniqueId('undoRedoReplace');
- var data = {
- undoRedoTransactionId: undoRedoTransactionId,
- transactionToken: addOptions && addOptions.transactionToken,
- replace: true
- };
- var newWidgetParameters = this.boardModel.addWidget(addOptions, sender ? sender : 'api', data);
- this.boardModel.removeWidget(widgetId, sender ? sender : 'api', data);
- if (newWidgetParameters && newWidgetParameters.value && newWidgetParameters.value.parameter && newWidgetParameters.value.parameter.model) {
- return newWidgetParameters.value.parameter.model.id;
- }
- };
- CanvasAPIImpl.prototype.hasMaximizedWidget = function hasMaximizedWidget() {
- return this.canvasController.layoutController.hasMaximizedWidget();
- };
- CanvasAPIImpl.prototype.removeWidget = function removeWidget(widgetId, sender) {
- this.boardModel.removeWidget(widgetId, sender ? sender : 'api');
- };
- CanvasAPIImpl.prototype.selectWidget = function selectWidget(widgetId, options) {
- var deferred = new Deferred();
- this.layoutController.whenWidgetRenderComplete(widgetId).done(function (layout) {
- var selectionHandler = this.layoutController.interactionController.selectionHandler;
- if (options && !options.multiSelect) {
- selectionHandler.deselectAll();
- }
- // pass the flag isTouch to properly render the resize edges for touch device.
- selectionHandler.selectNode(layout.domNode, options);
- deferred.resolve();
- }.bind(this));
- return deferred.promise;
- };
- CanvasAPIImpl.prototype.selectWidgets = function selectWidgets(widgetIds, options) {
- options = options || {};
- options = _.extend(options, {
- 'multiSelect': true
- });
- var promises = [];
- for (var widgetId in widgetIds) {
- promises.push(this.selectWidget(widgetIds[widgetId], options));
- }
- return Promise.all(promises);
- };
- CanvasAPIImpl.prototype.getLayout = function getLayout(id) {
- var layoutView = this.canvasController.layoutController.getView(id);
- if (layoutView && layoutView.view) {
- return layoutView.view.getAPI();
- }
- };
- CanvasAPIImpl.prototype.getFeature = function getFeature(id) {
- return this.canvasController.getFeature(id);
- };
- CanvasAPIImpl.prototype.registerFeature = function registerFeature(id, feature) {
- return this.canvasController.registerFeature(id, feature);
- };
- return CanvasAPIImpl;
- }();
- return CanvasAPIImpl;
- });
- //# sourceMappingURL=DeprecatedCanvas.js.map
|