/** * Licensed Materials - Property of IBM * IBM Cognos Products: Collaboration * (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([], function () { 'use strict'; /** * This class provides a means to declare a share and embed controller. * It plays the role of an interface, consumer can implement it. * e.g. * @example * { * "id": "com.ibm.bi.dashboard.shareAndEmbed", * "collectionItems": [{ * "containerId": "com.ibm.bi.glass.common.sharedResources", * "id": "dashboard", * "label": "Share & Embed", * "types": ["exploration"], * "perspectives": ["dashboard"], * "actionController": "dashboard/glass/controllers/ShareActionHandler" * }] * } * @public * @interface ShareInterface */ var ShareInterface = function ShareInterface() { /** * Called when the custom button/menu item is Clicked/Tapped * * @memberof ShareInterface * @public * @param {Object} context * @returns {Object} urlMap object containing an object like: * @example * { * "perspective": "dashboard", * "objRef": "i047E166063164D5DA85C8872A4574513", * "action":"view", * "mode":"dashboard" * } */ this.execute = function (context) { void context; }; /** * Called to decide if the Sharing entry should be shown or not. * * @memberof ShareInterface * @public * @param {Object} context * @returns {Boolean} true/false */ this.isVisible = function (context) { void context; }; /** * Returns an array of DOM elements to be capture for a screenshot. * * @memberof ShareInterface * @public * @param {object} context * @return {Promise} An array of objects like: [{"el":domNode,"label":"text"}] */ this.getShareableItems = function (context) { void context; }; /** * Returns information about the current asset. * * @memberof ShareInterface * @public * @param {object} context * @return {Promise} An object like: [{"type":"dashboard","title":"Dashboard Name","subTitle":"Dashboard Tab 1","owner":"Sam Carter","saved":true}] */ this.getShareableInfo = function (context) { void context; }; /** * Tells the controller that the Share panel is about to be shown. * * @memberof ShareInterface * @public * @param {object} options * @param {object} options.glassContext * @param {object} options.slideout * @return {Promise} */ this.enterShareState = function (options) { void options; }; /** * Tells the controller that the Share panel is about to be closed. * * @memberof ShareInterface * @public * @param {object} options * @param {object} options.glassContext * @param {object} options.slideout * @return {Promise} */ this.leaveShareState = function (options) { void options; }; /** * Asks the controller if it supports exporting to PDF. If this method * is not implemented, the default response will be `false`. * * @memberof ShareInterface * @public * @param {object} options * @param {object} options.glassContext * @return {Boolean} */ this.canExportToPDF = function (options) { void options; }; /** * Tells the controller to generate a PDF file. This will only be called * if the canExportToPDF function returns true. * * @memberof ShareInterface * @public * @param {object} options * @param {object} options.glassContext * @param {object} pageSize an object representing the size of the page * @param {object} printFilters print filters * @return {Promise} */ this.exportToPDF = function (options, pageSize, printFilters) { void (options, pageSize, printFilters); }; /** * Asks the action controller for its instrumentation data. The `action` will * be set as `shared` by collaboration when invoking the instrumentation's * track() method. * * @memberof ShareInterface * @public * @param {object} options * @param {object} options.glassContext * @return {object} instrumentation object data * @example * { * "objectId": "some_id", * "objectType": "type", * "details": { * ... * } * } */ this.getInstrumentation = function (options) { void options; }; }; return ShareInterface; }); ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } }(); ;