123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- 'use strict';
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
- /**
- * Licensed Materials - Property of IBM
- * IBM Cognos Products: Dashboard
- * (C) Copyright IBM Corp. 2017, 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['underscore', './BaseProvider', '../../vipr/VIPR', '../../vipr/VIPRUtils', '../../vipr/VIPRConfig', '../../vipr/VIPRLibraries', '../../vipr/properties/PropertiesCreatorFromVisDefinition', '../../vipr/properties/ColorPropertiesCreator', '../../../lib/@waca/dashboard-common/dist/utils/ObjectHelper', '../../../widgets/livewidget/nls/StringResources', '../../../widgets/livewidget/util/VisUtil'], function (_, BaseProvider, VIPR, VIPRUtils, VIPRConfig, VIPRLibraries, PropertiesCreatorFromVisDefinition, ColorPropertiesCreator, ObjectHelper, StringResources, VisUtil) {
- 'use strict';
- var VIPR_RENDERER = 'dashboard-analytics/visualizations/renderer/vipr3/VIPRView';
- var VIPR3Provider = BaseProvider.extend({
- init: function init() {
- VIPR3Provider.inherited('init', this, arguments);
- this.viprdefinitionsPromises = null;
- this.createDefinitionsMap = {};
- this.loadedVipr3Bundles = {};
- this.initPromise = VIPR.initialize({ 'dashboardApi': this.dashboardApi });
- },
- contains: function contains(id) {
- return this.initPromise.then(function () {
- var libs = VIPR.getLibraries();
- return Promise.resolve(!!libs[id]);
- });
- },
- clear: function clear() {
- var _this = this;
- var libType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : VIPRLibraries.LIB_TYPE_ALL;
- if (libType === VIPRLibraries.LIB_TYPE_ALL) {
- this.viprdefinitionsPromises = null;
- this.createDefinitionsMap = {};
- this.loadedVipr3Bundles = {};
- } else if (this.viprdefinitionsPromises) {
- var libIds = [];
- if (libType === VIPRLibraries.LIB_TYPE_SYSTEM) {
- libIds = VIPR.getSystemLibIds();
- } else if (libType === VIPRLibraries.LIB_TYPE_CUSTOM) {
- libIds = VIPR.getCustomLibIds();
- }
- libIds.forEach(function (id) {
- delete _this.viprdefinitionsPromises[id];
- delete _this.createDefinitionsMap[id];
- delete _this.loadedVipr3Bundles[id];
- VIPRConfig.removeCustomVisConfiguration(id);
- });
- }
- },
- _visualizationPreviewWasLoaded: function _visualizationPreviewWasLoaded() {
- return !!this.loadedVipr3Bundles['visualizationPreview'];
- },
- refreshProvider: function refreshProvider(dashboardApi) {
- var _this2 = this;
- var visPreviewWasLoaded = this._visualizationPreviewWasLoaded();
- this.clear(VIPRLibraries.LIB_TYPE_CUSTOM);
- this.initPromise = VIPR.initialize({ 'dashboardApi': dashboardApi, refresh: true });
- return this.initPromise.then(this._getVIPRDefinitions.bind(this, VIPRLibraries.LIB_TYPE_CUSTOM, visPreviewWasLoaded)).then(function () {
- var promises = Object.values(_this2.viprdefinitionsPromises);
- return Promise.all(promises).then(function (viprDefinitions) {
- return _.chain(viprDefinitions).map(function (viprDef) {
- return viprDef ? _this2.createDefinition(viprDef, true) : null;
- }).filter(function (def) {
- return !!def;
- }).value();
- });
- });
- },
- getDefinition: function getDefinition(id) {
- var _this3 = this;
- return this.initPromise.then(function () {
- return _this3._getVIPRDefinition(id).then(function (viprDef) {
- if (viprDef) {
- if (!_this3.createDefinitionsMap[id]) {
- _this3.createDefinitionsMap[id] = _this3.createDefinition(viprDef, true);
- }
- return _this3.createDefinitionsMap[id];
- } else {
- return Promise.reject(VisUtil.createVisDefinitionLoadingError(id));
- }
- });
- });
- },
- getDefinitions: function getDefinitions() {
- var _this4 = this;
- return this.initPromise.then(function () {
- return _this4._getVIPRDefinitions().then(function (viprDefinitions) {
- return _this4._createDefinitions(viprDefinitions, true);
- });
- });
- },
- _createDefinitions: function _createDefinitions(viprDefinitions, freezeDefinition) {
- var _this5 = this;
- if (!this.createDefinitionsMap) {
- this.createDefinitionsMap = {};
- }
- return _.chain(viprDefinitions).map(function (def) {
- if (!_this5.createDefinitionsMap[def.id]) {
- _this5.createDefinitionsMap[def.id] = _this5.createDefinition(def, freezeDefinition);
- return _this5.createDefinitionsMap[def.id];
- }
- }).filter(function (def) {
- return !!def;
- }).value();
- },
- /**
- * re-load the vipr bundle and recreate the definition
- * @param {string} id the visId
- */
- refresh: function refresh(id) {
- var _this6 = this;
- VIPR.unloadBundle(id);
- return this._loadVIPRDefinition(id).then(function (viprDef) {
- if (!_this6.createDefinitionsMap) {
- _this6.createDefinitionsMap = {};
- }
- _this6.createDefinitionsMap[id] = viprDef ? _this6.createDefinition(viprDef, true) : { id: id, renderer: VIPR_RENDERER, empty: true };
- return _this6.createDefinitionsMap[id];
- });
- },
- _loadVIPRDefinition: function _loadVIPRDefinition(id) {
- var _this7 = this;
- return VIPR.loadBundle(id).then(function (bundle) {
- _this7.loadedVipr3Bundles[id] = bundle;
- return bundle;
- }).catch(function (err) {
- console.error(err);
- return undefined;
- });
- },
- _getVIPRDefinition: function _getVIPRDefinition(id) {
- // initialize the map
- if (!this.viprdefinitionsPromises) {
- this.viprdefinitionsPromises = {};
- }
- if (!this.viprdefinitionsPromises[id]) {
- this.viprdefinitionsPromises[id] = this._loadVIPRDefinition(id);
- }
- return this.viprdefinitionsPromises[id];
- },
- _getVIPRDefinitions: function _getVIPRDefinitions() {
- var _this8 = this;
- var libType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : VIPRLibraries.LIB_TYPE_ALL;
- var loadVisPreview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var bundleIds = void 0;
- if (loadVisPreview) {
- bundleIds = VIPR.getBundleIds(libType);
- } else {
- // Only load definitions for the visualizationPreview bundle when explicitly requested
- bundleIds = _.without(VIPR.getBundleIds(libType), 'visualizationPreview');
- }
- var promises = _.map(bundleIds, function (id) {
- return _this8._getVIPRDefinition(id);
- });
- // wait for all to finish and filter out the failed bundles
- return Promise.all(promises.map(function (p) {
- return p.catch(function (e) {
- return e;
- });
- })).then(function (definitions) {
- return _.filter(definitions, function (def) {
- return !!def;
- });
- }).catch(function (err) {
- console.error(err);
- });
- },
- _getViprDefinitionProperties: function _getViprDefinitionProperties(viprDefinition) {
- return viprDefinition.vizDef.properties;
- },
- _getCaption: function _getCaption(viprDefinition, viprConfigDefinition, isCustomVis, isSchematic) {
- var schematicPreviewCaption = 'schematicTestCaption';
- var visualizationPreview = 'customVisTestVisualization';
- var caption = void 0;
- if (viprDefinition.userData.name === visualizationPreview) {
- caption = viprConfigDefinition.name;
- } else if (isCustomVis) {
- caption = viprDefinition.userData.name;
- // since schematic metadata like name and icon can be updated after creating bundle, and we can not
- // unregister/register the schematic bundle due to shared bundle-context with other visualization like Map
- // we will separate these metadata info and use vis library information that is set in vipr ConfigDefinition
- } else if (isSchematic && viprDefinition.userData.name !== schematicPreviewCaption) {
- caption = viprConfigDefinition.name;
- } else {
- caption = StringResources.get(viprDefinition.userData.name);
- }
- return caption;
- },
- /**
- * Return a Visualization definition object that can be consumed by VIPR Data and LiveWidget
- **/
- createDefinition: function createDefinition(viprDefinition, freezeDefinition) {
- var viprConfigDefinition = VIPRConfig.getConfig(viprDefinition.id);
- var type = viprConfigDefinition && viprConfigDefinition.type;
- var isSchematic = viprConfigDefinition && viprConfigDefinition.isSchematic;
- var isCustomVis = viprConfigDefinition && viprConfigDefinition.isCustomVis;
- var usages = viprConfigDefinition && viprConfigDefinition.usages;
- var placeholderIcon = this._getPlaceholder(viprDefinition, isCustomVis, isSchematic);
- var caption = this._getCaption(viprDefinition, viprConfigDefinition, isCustomVis, isSchematic);
- var viprProperties = [];
- var viprGroupProperties = {};
- // since schematic metadata like name,icon and assetId can be updated after creating bundle, and we can not
- // unregister/register the schematic bundle due to shared bundle-context with other visualization like Map
- // we will separate these metadata info and use vis library information that is set in vipr ConfigDefinition
- var icon = isSchematic ? viprConfigDefinition.icon : viprDefinition.userData.icon;
- var assetId = isSchematic ? viprConfigDefinition.assetId : viprDefinition.userData.assetId;
- // set VIPRConig for extensible vis based on VIDA properties
- if (VIPRUtils.includeAllProperties(viprDefinition)) {
- this._setViprConfigDefinition(viprConfigDefinition, viprDefinition, viprProperties, viprGroupProperties);
- }
- var vizDefProperties = PropertiesCreatorFromVisDefinition.getInstance().getVizDefPropertiesFromDefinition(viprDefinition);
- var properties = PropertiesCreatorFromVisDefinition.getInstance().getPropertiesFromDefintion(viprDefinition.id);
- var definition = {
- type: type,
- isSchematic: isSchematic,
- isCustomVis: isCustomVis,
- id: viprDefinition.id,
- supportsSortAction: VIPRUtils.supportsSortAction(viprDefinition.id),
- supportsContextualTopBottomAction: VIPRUtils.supportsContextualTopBottomAction(viprDefinition.id),
- supportsNonContextualTopBottomAction: VIPRUtils.supportsNonContextualTopBottomAction(viprDefinition.id),
- supportsFormatAction: VIPRUtils.supportsFormatAction(viprDefinition.id),
- supportsMaintainAxisScale: VIPRUtils.supportsMaintainAxisScale(viprDefinition.id),
- supportsCustomGroupAction: VIPRUtils.supportsCustomGroupAction(viprDefinition.id),
- supportsCustomDataSelection: VIPRUtils.supportsCustomDataSelection(viprDefinition.id),
- supportsAnnotations: VIPRUtils.supportsAnnotations(viprDefinition.id),
- datasets: this._getDatasets(viprDefinition.vizDef.dataSets),
- geo: VIPRUtils.isGeospatial(viprDefinition.id),
- name: viprDefinition.manifest.name,
- caption: caption,
- label: caption,
- icon: icon,
- assetId: assetId,
- tabs: VIPRUtils.getVisualizationTabs(viprDefinition.id),
- placeholderIcon: placeholderIcon,
- isRecommendable: VIPRUtils.isRecommendable(viprDefinition.id),
- noDataQuery: VIPRUtils.noDataQuery(viprDefinition.id),
- isMultilayersWidget: VIPRUtils.doesConfigPropertyMatchExpected(viprDefinition.id, 'isMultilayersWidget', true),
- useFPDAsInsightsInput: VIPRUtils.useFPDAsInsightsInput(viprDefinition.id),
- disablePan: VIPRUtils.isDisablePan(viprDefinition.id),
- renderWithoutCompletingMapping: VIPRUtils.isRenderWithoutCompletingMapping(viprDefinition.id),
- aggregateAndSortOnClient: VIPRUtils.aggregateAndSortOnClient(viprDefinition.id),
- preferredSize: {
- height: 420,
- width: 500
- },
- dataSlots: VIPRUtils.createDataSlots(viprDefinition),
- metaDataEntries: VIPRUtils.createMetaDataEntries(viprDefinition.vizDef),
- properties: properties,
- vizDefProperties: vizDefProperties,
- propertyPrefixes: VIPRUtils.getPropertyPrefixes(viprDefinition),
- listenForPropChanges: VIPRUtils.getListenForPropChanges(viprDefinition),
- groupedProperty: VIPRUtils.getGroupedProperty(viprDefinition),
- renderer: VIPR_RENDERER,
- scope: 'default',
- themeMapping: ColorPropertiesCreator.getInstance().getThemeIdMappings(properties),
- queryHints: VIPRUtils.getQueryHints(viprDefinition.id),
- binningConfig: VIPRUtils.getBinning(viprDefinition.id),
- canApplyBinning: VIPRUtils.canApplyAutoBin(viprDefinition.id),
- isViewBinned: false,
- supportsOLAP: !VIPRUtils.doesConfigPropertyMatchExpected(viprDefinition.id, 'doesNotSupportOLAP', true),
- usages: usages
- };
- if (isSchematic) {
- definition.getSchematicContent = viprConfigDefinition.schematicVis.getSchematicContent.bind(viprConfigDefinition.schematicVis);
- }
- var nLimit = VIPRUtils.getDataRowLimit(viprDefinition.id);
- if (nLimit) {
- definition.dataRowLimit = nLimit;
- }
- var nLimitIE = VIPRUtils.getDataRowLimitIE(viprDefinition.id);
- if (nLimitIE) {
- definition.dataRowLimitIE = nLimitIE;
- }
- return freezeDefinition ? ObjectHelper.deepFreezeObject(definition) : definition;
- },
- _setViprConfigDefinition: function _setViprConfigDefinition(viprConfigDefinition, viprDefinition, viprProperties, viprGroupProperties) {
- VIPRUtils.getViprProperiesAndGroups(viprDefinition, viprProperties, viprGroupProperties);
- var options = {
- viprProperties: viprProperties,
- viprGroupProperties: _extends({}, viprGroupProperties),
- dataSets: viprDefinition.vizDef.dataSets
- };
- VIPRConfig.setAllViprConfigProperties(viprConfigDefinition, options);
- viprDefinition.userData.config = {
- 'properties': {
- 'exclude': [],
- 'include': viprConfigDefinition.bundleInclude
- }
- };
- VIPR.updateCustomLibrary(viprDefinition.id);
- },
- _getPlaceholder: function _getPlaceholder(viprDefinition, isCustomVis, isSchematic) {
- var isNonPreviewSchematic = isSchematic && viprDefinition.id !== 'com.ibm.vis.schematicsPreview';
- var isNonPreviewCustom = isCustomVis && viprDefinition.id !== 'visualizationPreview';
- var iconBase = this.icon_root;
- var icon = viprDefinition.userData.placeholderIcon;
- if (viprDefinition.userData.icon) {
- // When there is an icon in custom or schematic definition, returns this icon
- if (isNonPreviewCustom || isNonPreviewSchematic) {
- iconBase = viprDefinition.userData.placeholderIcon;
- icon = viprDefinition.userData.icon;
- }
- } else {
- // When there is no icon in custom or schematic definition, return default placeholderIcon respectively
- if (isCustomVis) {
- icon = 'placeholders/custom-visual.svg';
- } else if (isSchematic) {
- icon = 'placeholders/custom-schematic.svg';
- }
- }
- return iconBase + icon;
- },
- _getDatasets: function _getDatasets(datasets) {
- var bIsSingleDataset = datasets.length === 1;
- return _.map(datasets, function (dataset) {
- return {
- /* Default Dataset name for sinlge dataset Viz is set to be 'data' if there is no name in the definition */
- 'name': bIsSingleDataset && !dataset.name ? 'data' : dataset.name,
- 'optional': dataset.optional,
- 'suppressMissing': dataset.suppressMissing,
- 'needsSorted': dataset.needsSorted,
- 'requiresValues': dataset.requiresValues,
- 'caption': dataset.caption
- };
- });
- }
- });
- return VIPR3Provider;
- });
- //# sourceMappingURL=VIPR3Provider.js.map
|