'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. 2020 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /** * @class GridDOMProvider * @hideconstructor * @classdesc Implements DOMProviderAPI */ define(['jquery', './api/DOMProviderAPI', '../../../../lib/@waca/dashboard-common/dist/core/APIFactory'], function ($, DomProviderAPI, APIFactory) { var GridDOMProvider = function () { function GridDOMProvider(options) { _classCallCheck(this, GridDOMProvider); this._domNode = options.features.ContentViewDOM.getNode(); this.liveWidgetDOM = options.features.LiveWidgetDOM; this.visualization = options.features.Visualization; var type = this.visualization.getType(); if (type === 'Crosstab') { this.liveWidgetDOM.registerProvider(this.getAPI()); } } GridDOMProvider.prototype.getAPI = function getAPI() { if (!this._api) { this._api = APIFactory.createAPI(this, [DomProviderAPI]); } return this._api; }; /** * @implements DomProviderAPI.getUIJSON */ GridDOMProvider.prototype.getUIJSON = function getUIJSON() { var cols = []; $(this._domNode).find('.grid-fixed-row-cell, .top-left-grid-cell').each(function (idx, col) { var $colHeader = $(col); cols.push({ value: $colHeader.text(), useValue: $colHeader.attr('useValue') && $colHeader.attr('useValue').split('->'), color: $colHeader.css('color'), row: Number($colHeader.attr('row')), col: Number($colHeader.attr('col')), isMeasure: $colHeader.attr('measure') === 'true', isSummary: $colHeader.hasClass('summary') }); }); var rows = []; $(this._domNode).find('.grid-fixed-column-cell').each(function (idx, row) { var $rowHeader = $(row); rows.push({ value: $rowHeader.text(), useValue: $rowHeader.attr('useValue').split('->'), color: $rowHeader.css('color'), row: Number($rowHeader.attr('row')), col: Number($rowHeader.attr('col')), isMeasure: $rowHeader.attr('measure') === 'true', isSummary: $rowHeader.hasClass('summary') }); }); var values = []; $(this._domNode).find('.grid-data-cell').each(function (idx, cell) { var $cell = $(cell); var $shape = $cell.find('svg > use'); var backgroundColor = $cell.css('background-color'); var backgroundColorTokens = backgroundColor.split(','); values.push({ value: $cell.text(), tuple: $cell.attr('tuple').split('->'), color: $cell.css('color'), 'background-color': backgroundColor, shape: $shape.attr('xlink:href'), row: Number($cell.attr('row')), col: Number($cell.attr('col')), isSummary: $cell.hasClass('summary'), opacity: parseFloat(backgroundColorTokens[backgroundColorTokens.length - 1].split(')')[0]) }); }); return { cols: cols, rows: rows, values: values }; }; return GridDOMProvider; }(); return GridDOMProvider; }); //# sourceMappingURL=GridDOMProvider.js.map