'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Licensed Materials - Property of IBM * IBM Business Analytics (C) Copyright IBM Corp. 2018, 2020 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /** * @class SavedPromptsImpl * */ define(['../SavedPromptsAPI', './SavedPromptsAPISpec', '../../lib/@waca/dashboard-common/dist/core/APIFactory', 'underscore'], function (SavedPromptsAPI, SavedPromptsAPISpec, APIFactory, _) { /** * [livewidgt-cleanup] todo: we need to revisit this api and redesign the interface: * e.g. // the logic for savedPrompts.save() is duplicated in dataQueryExecution.js.. */ /** Class representing a SavedPrompts Implementation */ var SavedPromptsImpl = function (_SavedPromptsAPISpec) { _inherits(SavedPromptsImpl, _SavedPromptsAPISpec); /** * Create a SavedPromptsImpl of SavedPromtsAPI * @param widget the corresponding widget. */ function SavedPromptsImpl(widgetModel) { _classCallCheck(this, SavedPromptsImpl); var _this = _possibleConstructorReturn(this, _SavedPromptsAPISpec.call(this)); _this.widgetModel = widgetModel; return _this; } SavedPromptsImpl.prototype.destroy = function destroy() { this.widgetModel = null; }; SavedPromptsImpl.prototype.getAPI = function getAPI() { return APIFactory.createAPI(this, [SavedPromptsAPI]); }; SavedPromptsImpl.prototype.save = function save(promptValueSpec) { var specToSave = _.pick(promptValueSpec, SavedPromptsImpl.PromptValueSpec_KEYS); var savedPrompts = this.widgetModel.get('savedPrompts') || {}; savedPrompts[specToSave.name] = specToSave; return this.reset(savedPrompts); }; SavedPromptsImpl.prototype.reset = function reset(promptValueSpec) { var refresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; //silently change the model. an api event will be triggered for this method. this.widgetModel['savedPrompts'] = promptValueSpec; return refresh; }; SavedPromptsImpl.prototype.getPromptSpec = function getPromptSpec(promptName) { var savedPrompts = this.widgetModel.get('savedPrompts'); if (!savedPrompts || promptName && !savedPrompts[promptName]) { return undefined; } else { var savedPromptsCopy = JSON.parse(JSON.stringify(savedPrompts)); return savedPromptsCopy[promptName]; } }; SavedPromptsImpl.prototype.getPromptSpecList = function getPromptSpecList() { var savedPrompts = this.widgetModel.get('savedPrompts') || {}; var savedPromptsCopy = JSON.parse(JSON.stringify(savedPrompts)); return _.values(savedPromptsCopy); }; return SavedPromptsImpl; }(SavedPromptsAPISpec); /** * Enum for PROMPTVALUE_KEY. * @readonly * @enum {string} */ SavedPromptsImpl.PromptValueSpec_KEYS = ['name', 'capabilities', 'dataType', 'values', 'modelFilterItem']; return SavedPromptsImpl; }); //# sourceMappingURL=SavedPrompts.js.map