123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- '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 Business Analytics (C) Copyright IBM Corp. 2019, 2020
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- /**
- * @class ContentFactory
- * @hideconstructor
- * @classdesc API class that is used to generate content specs and create them
- */
- define(['../../../../../lib/@waca/dashboard-common/dist/core/APIFactory', '../../../../../canvas/Content', '../../../../../dashboard/layout/LayoutHelper', '../../../../../dashboard/glass/util/InstrumentationUtil', '../../../../../lib/@waca/dashboard-common/dist/api/ContentProviderAPI'], function (APIFactory, Content, LayoutHelper, InstrumentationUtil, ContentProviderAPI) {
- var BaseContentProvider = function () {
- function BaseContentProvider(options) {
- _classCallCheck(this, BaseContentProvider);
- this.dashboardApi = options.features['API'];
- options.features['ContentFactory'].registerProvider(this);
- }
- BaseContentProvider.prototype.getAPI = function getAPI() {
- return APIFactory.createAPI(this, [ContentProviderAPI]);
- };
- BaseContentProvider.prototype.getTypeList = function getTypeList() {
- var types = [null, undefined, ''];
- if (!this._contentTypes) {
- this._contentTypes = this.dashboardApi.getFeature('ContentTypeRegistry');
- }
- return this._contentTypes ? this._contentTypes.getRegisteredTypes().concat(types) : types;
- };
- BaseContentProvider.prototype.addModel = function addModel(options, _ref, transactionToken) {
- var canvas = _ref.canvas,
- boardModel = _ref.boardModel,
- canvasContent = _ref.canvasContent;
- var addOptions = {
- parentId: options.containerId,
- insertBefore: options.insertBefore,
- copyPaste: options.copyPaste,
- model: options.spec,
- modelIdsValid: options.modelIdsValid === true,
- layoutProperties: {
- style: options.spec.style || {}
- }
- };
- if (options.properties) {
- ['left', 'top', 'height', 'width'].forEach(function (prop) {
- if (options.properties[prop] !== undefined) {
- addOptions.layoutProperties.style[prop] = options.properties[prop];
- delete options.properties[prop];
- }
- });
- }
- LayoutHelper.setPreferredAddOptions(addOptions, boardModel.layout, this.dashboardApi);
- if (!addOptions.parentId && !canvasContent.getFeature('ContentViewDOM')) {
- addOptions.parentId = canvasContent.getId();
- }
- var isLayout = canvas.isLayoutType(options.spec.type);
- var contentRegistry = this.dashboardApi.getFeature('ContentTypeRegistry');
- var isTypeRegistered = contentRegistry ? contentRegistry.isTypeRegistered(options.spec.type) : false;
- var _add = void 0;
- if (options.spec.type === 'widget') {
- // this is the case we are adding a layout of type widget
- // it will follow the new structure where the widget model is under the features secfion
- _add = this._addContent.bind(this);
- } else if (!isLayout && (options.spec.widgets || options.spec.layout && options.spec.layout.items)) {
- _add = this._addFragment.bind(this);
- } else if (!isLayout) {
- if (isTypeRegistered) {
- _add = this._addContent.bind(this);
- } else {
- _add = this._addWidget.bind(this);
- }
- } else {
- _add = this._addLayout.bind(this);
- }
- var id = _add(addOptions, boardModel, {
- undoRedoTransactionId: transactionToken.transactionId,
- transactionToken: transactionToken,
- skipUndoRedo: true
- });
- return Promise.resolve(id);
- };
- BaseContentProvider.prototype.createContent = function createContent(options) {
- return new Content(options);
- };
- BaseContentProvider.prototype._addWidget = function _addWidget(addOptions, boardModel, options) {
- this._track(addOptions);
- var payload = boardModel.addWidget(addOptions, null, options);
- var parameter = payload && payload.value && payload.value.parameter;
- return parameter && parameter.model && parameter.model.id;
- };
- BaseContentProvider.prototype._addFragment = function _addFragment(addOptions, boardModel, options) {
- var payload = boardModel.addFragment(addOptions, null, options);
- var parameter = payload && payload.value && payload.value.parameter;
- return parameter && parameter.model && parameter.model.layout && parameter.model.layout.id;
- };
- BaseContentProvider.prototype._addContent = function _addContent(addOptions, boardModel, options) {
- this._track(addOptions);
- return boardModel.addContent(addOptions, null, options);
- };
- BaseContentProvider.prototype._addLayout = function _addLayout(addOptions, boardModel, options) {
- var payload = boardModel.addLayouts({ addLayoutArray: [addOptions] }, null, options);
- return payload.value.parameter.addLayoutArray[0].model.id;
- };
- BaseContentProvider.prototype._track = function _track() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var model = options.model;
- if (model) {
- InstrumentationUtil.trackWidget('created', this.dashboardApi, {
- name: model.name,
- type: model.type,
- data: model.data
- });
- }
- };
- return BaseContentProvider;
- }();
- return BaseContentProvider;
- });
- //# sourceMappingURL=BaseContentProvider.js.map
|