12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- '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
|