@cmu-eberly-center/eberly-ontopic-visualization
Version:
Writing tasks require countless composing decisions that are typically beyond the conscious grasp of student writers. Much of the skill of being “text-aware” is to understand that texts are composed of highly structured and often highly predictive composi
1,204 lines (1,023 loc) • 44.5 kB
JavaScript
"use strict";
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactTabs = require("react-tabs");
var _reactBootstrap = require("react-bootstrap");
require("react-tabs/style/react-tabs.css");
require("./styles/ontopic.css");
var _OnTopicDataTools = _interopRequireDefault(require("./OnTopicDataTools"));
var _OnTopicEditorTools = _interopRequireDefault(require("./OnTopicEditorTools"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
var topicCache = [];
/**
*
*/
function getTopic(aTopic) {
//console.log ("getTopic ("+aTopic+")");
//console.log (topicCache);
for (var i = 0; i < topicCache.length; i++) {
var topic = topicCache[i];
if (topic.id == aTopic) {
return topic;
}
}
return null;
}
/**
*
*/
function addTopic(aTopic) {
//console.log ("addTopic()");
var target = null;
for (var i = 0; i < topicCache.length; i++) {
var topic = topicCache[i];
if (topic.id == aTopic) {
target = topic;
}
}
if (target != null) {
target.count = target.count + 1; //console.log ("addTopic("+aTopic+","+target.count+") (new)");
} else {
target = {
id: aTopic,
count: 0
};
topicCache.push(target); //console.log ("addTopic("+aTopic+","+target.count+") (existing)");
}
return target.count;
}
/**
*
*/
var OnTopicVisualization = /*#__PURE__*/function (_Component) {
_inherits(OnTopicVisualization, _Component);
var _super = _createSuper(OnTopicVisualization);
/**
*
*/
function OnTopicVisualization(props) {
var _this;
_classCallCheck(this, OnTopicVisualization);
_this = _super.call(this, props);
_this.state = {
pValue: "",
pTarget: -1,
paragraphSelected: -1,
sentenceSelected: -1
};
_this.dataTools = new _OnTopicDataTools["default"]();
_this.editorTools = new _OnTopicEditorTools["default"]();
_this.onHandleParagraphChange = _this.onHandleParagraphChange.bind(_assertThisInitialized(_this));
_this.onHandleSentence = _this.onHandleSentence.bind(_assertThisInitialized(_this));
_this.onParagraphTopicClick = _this.onParagraphTopicClick.bind(_assertThisInitialized(_this));
return _this;
}
/**
*
*/
_createClass(OnTopicVisualization, [{
key: "onHandleSentence",
value: function onHandleSentence(aParagraph, aSentenceIndex, aBlock, aSentence, aTopic) {
//console.log ("onHandleSentence ("+aParagraph+","+aSentenceIndex+")");
//console.log (aBlock);
//console.log (aSentence);
//console.log (aTopic)
if (this.props.onHandleSentence) {
this.props.onHandleSentence(aParagraph - 1, aSentenceIndex - 1, aBlock, aSentence, aTopic);
}
var sentenceObject = this.dataTools.buildSentenceModel(aBlock, aSentence); //console.log (sentenceObject);
if (sentenceObject != null) {
sentenceObject.paragraphIndex = aParagraph;
sentenceObject.sentenceIndex = aSentenceIndex;
if (this.props.onHandleSentenceObject) {
this.props.onHandleSentenceObject(sentenceObject);
}
/*
this.setState ({sentence: sentenceObject},(e) => {
this.onSentenceChange ();
});
*/
this.setState({
paragraphSelected: aParagraph,
sentenceIndex: aSentenceIndex
});
}
}
/**
*
*/
}, {
key: "generateSentenceView",
value: function generateSentenceView() {
var _this2 = this;
//console.log ("generateSentenceView ("+this.props.invalidated+")");
var rows = [];
var sentence = 1;
var paragraphIndex = 1;
if (this.props.textdata.sentences == null) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, "No data provided");
}
var _loop = function _loop(i) {
var entry = _this2.props.textdata.sentences[i];
if (Array.isArray(entry) == true) {
var coreData = entry[2];
var beVerb = null;
var hasBeVerb = false;
if (coreData.hasOwnProperty('BE_VERB') == true) {
hasBeVerb = true;
beVerb = coreData["BE_VERB"]; // New data!
}
var L_NPS = coreData["L_NPS"];
var R_NPS = coreData["R_NPS"];
var AUX_VERBS = coreData["AUX_VERB"];
var NPS = coreData["NPS"];
var leftBlocks = [];
var rightBlocks = [];
var npIndex = 0;
var _loop2 = function _loop2(j) {
var leftClass = "";
if (_this2.props.invalidated == false) {
if (AUX_VERBS == false) {
leftClass = "block-purple block-right";
} else {
leftClass = "block-green block-right";
}
} else {
leftClass = "block-disabled block-right";
}
var topic = NPS[npIndex];
if (_this2.props.invalidated == false) {
leftBlocks.push( /*#__PURE__*/_react["default"].createElement("div", {
key: _this2.dataTools.uuidv4(),
className: leftClass,
alt: topic,
title: topic,
onClick: function onClick(e) {
return _this2.onHandleSentence(entry[0], entry[1], entry[2], entry[3], topic);
}
}));
} else {
leftBlocks.push( /*#__PURE__*/_react["default"].createElement("div", {
key: _this2.dataTools.uuidv4(),
className: leftClass
}));
}
npIndex++;
};
for (var j = 0; j < L_NPS; j++) {
_loop2(j);
}
var _loop3 = function _loop3(k) {
var rightClass = "";
if (_this2.props.invalidated == false) {
if (AUX_VERBS == false) {
rightClass = "block-purple block-left";
} else {
rightClass = "block-green block-left";
}
} else {
rightClass = "block-disabled block-left";
}
var topic = NPS[npIndex];
if (_this2.props.invalidated == false) {
rightBlocks.push( /*#__PURE__*/_react["default"].createElement("div", {
key: _this2.dataTools.uuidv4(),
className: rightClass,
alt: topic,
title: topic,
onClick: function onClick(e) {
return _this2.onHandleSentence(entry[0], entry[1], entry[2], entry[3], topic);
}
}));
} else {
rightBlocks.push( /*#__PURE__*/_react["default"].createElement("div", {
key: _this2.dataTools.uuidv4(),
className: rightClass
}));
}
npIndex++;
};
for (var k = 0; k < R_NPS; k++) {
_loop3(k);
}
var sentenceBackground = "";
var _paragraphIndex = entry[0];
var sentenceIndex = entry[1];
if (_paragraphIndex == _this2.state.paragraphSelected && sentenceIndex == _this2.state.sentenceIndex) {
if (_this2.props.settings) {
if (_this2.props.settings.highlight) {
sentenceBackground = _this2.props.settings.highlight;
} else {
sentenceBackground = "yellow";
}
} else {
sentenceBackground = "yellow";
}
}
if (hasBeVerb == true) {
var verbClass = "block-verb-active";
if (beVerb == true) {
verbClass = "block-verb-be";
}
var verbElement = /*#__PURE__*/_react["default"].createElement("div", {
key: _this2.dataTools.uuidv4(),
className: verbClass,
onClick: function onClick(e) {
return _this2.onHandleSentence(entry[0], entry[1], entry[2], entry[3], null);
}
});
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: _this2.dataTools.uuidv4(),
className: "psentence",
style: {
background: sentenceBackground
}
}, /*#__PURE__*/_react["default"].createElement("td", null, sentence), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, leftBlocks), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, verbElement), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, rightBlocks)));
} else {
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: _this2.dataTools.uuidv4(),
className: "psentence",
style: {
background: sentenceBackground
}
}, /*#__PURE__*/_react["default"].createElement("td", null, sentence), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, leftBlocks), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, "\xA0"), /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle"
}, rightBlocks)));
}
sentence++;
} else {
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: _this2.dataTools.uuidv4(),
className: "pseparator"
}, /*#__PURE__*/_react["default"].createElement("td", {
valign: "middle",
colSpan: "4"
}, "¶ " + paragraphIndex)));
paragraphIndex++;
}
};
for (var i = 0; i < this.props.textdata.sentences.length; i++) {
_loop(i);
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "\xA0"), /*#__PURE__*/_react["default"].createElement("td", {
className: "align-right"
}, "Left"), /*#__PURE__*/_react["default"].createElement("td", {
style: {
width: "10px"
}
}, "\xA0"), /*#__PURE__*/_react["default"].createElement("td", null, "Right"))), /*#__PURE__*/_react["default"].createElement("tbody", null, rows)));
}
/**
*
*/
}, {
key: "generateParagraphViewFlipped",
value: function generateParagraphViewFlipped() {
var _this3 = this;
//console.log ("generateParagraphViewFlipped ("+this.props.invalidated+","+this.state.pTarget+")");
topicCache = [];
var rows = [];
if (this.props.textdata.paragraphs == null) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
}
var topicheader;
var topicTags = [];
var lineCount = 1;
var topics = null;
var paraCount = 0;
var paraPulldown = [];
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
value: -1
}, "---"));
for (var i = 0; i < this.props.textdata.paragraphs.length; i++) {
if (i == 0) {
topicTags.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, "\xA0"));
topics = this.props.textdata.paragraphs[i];
for (var j = 0; j < topics.length; j++) {
topicTags.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "vertical noselect"
}, topics[j][1])));
}
} else {
var row = this.props.textdata.paragraphs[i];
var celNumberCount = 0;
var markers = [];
for (var k = 0; k < row.length; k++) {
if (this.dataTools.isNumber(row[k]) == true) {
celNumberCount++;
}
}
if (celNumberCount != row.length) {
if (this.dataTools.isEmptyRow(row) == false) {
var _loop4 = function _loop4(l) {
var cell = row[l];
if (cell[0] == null) {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this3.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blank block-left"
})));
} else {
if (_this3.props.invalidated == false) {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this3.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blue block-left",
alt: topics[l][1],
title: topics[l][1],
onClick: function onClick(e) {
return _this3.onParagraphTopicClick(topics[l][1]);
}
})));
} else {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this3.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-disabled",
alt: topics[l][1],
title: topics[l][1]
})));
}
}
};
for (var l = 0; l < row.length; l++) {
_loop4(l);
}
} else {
for (var _l = 0; _l < row.length; _l++) {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blank block-left red-tag"
}, "X")));
}
}
}
if (celNumberCount == row.length) {
lineCount = 1; //let firstSentence=this.editorTools.getParagraphSentence (this.props.textdata.valueRaw,paraCount,this.props.textdata.plain);
var firstSentence = this.editorTools.getParagraphSentencePlain(this.props.textdata.plain, paraCount);
if (this.state.pTarget == paraCount) {
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
value: paraCount + 1,
selected: true
}, "¶ " + (paraCount + 1) + " - " + firstSentence.substring(0, 50) + " ... "));
} else {
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
value: paraCount + 1
}, "¶ " + (paraCount + 1) + " - " + firstSentence.substring(0, 50) + " ... "));
}
paraCount++;
} else {
if (paraCount == this.state.pTarget) {
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: this.dataTools.uuidv4(),
className: "psentence"
}, /*#__PURE__*/_react["default"].createElement("td", null, lineCount), markers));
}
lineCount++;
}
}
}
topicheader = /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, topicTags));
var paragraphViz;
if (this.state.pTarget != -1) {
paragraphViz = /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, topicheader, /*#__PURE__*/_react["default"].createElement("tbody", null, rows));
}
var pulldown = /*#__PURE__*/_react["default"].createElement("select", {
onChange: this.onHandleParagraphChange
}, paraPulldown);
if (this.props.invalidated == true) {
pulldown = /*#__PURE__*/_react["default"].createElement("select", {
onChange: this.onHandleParagraphChange,
disabled: true
}, paraPulldown);
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, pulldown, paragraphViz);
}
/**
*
*/
}, {
key: "generateParagraphViewRegular",
value: function generateParagraphViewRegular() {
//console.log ("generateParagraphViewRegular ("+this.props.invalidated+","+this.state.pTarget+")");
topicCache = [];
if (this.props.textdata.paragraphs == null) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
}
var rows = [];
var topicheader;
var topicTags = [];
var lineCount = 1;
var topics = null;
var paraCount = 0;
var paraPulldown = [];
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
key: this.dataTools.uuidv4(),
value: -1
}, "---"));
for (var i = 0; i < this.props.textdata.paragraphs.length; i++) {
if (i == 0) {
topics = this.props.textdata.paragraphs[i];
var newRow = [];
newRow.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, "\xA0"));
rows.push(newRow);
for (var j = 0; j < topics.length; j++) {
newRow = [];
newRow.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4(),
align: "right"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "horizontal"
}, topics[j][1])));
rows.push(newRow);
}
} else {
var row = this.props.textdata.paragraphs[i];
var celNumberCount = 0;
var markers = [];
for (var k = 0; k < row.length; k++) {
if (this.dataTools.isNumber(row[k]) == true) {
celNumberCount++;
}
}
if (celNumberCount != row.length) {
if (this.dataTools.isEmptyRow(row) == false) {
for (var l = 0; l < row.length; l++) {
var cell = row[l];
if (cell[0] == null) {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blank block-left"
})));
} else {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blue block-left",
alt: topics[l][1],
title: topics[l][1]
})));
}
}
} else {
for (var _l2 = 0; _l2 < row.length; _l2++) {
markers.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blank block-left red-tag"
}, "X")));
}
}
}
if (celNumberCount == row.length) {
lineCount = 1; //let firstSentence=this.editorTools.getParagraphSentence (this.props.textdata.valueRaw,paraCount,this.props.textdata.plain);
var firstSentence = this.editorTools.getParagraphSentencePlain(this.props.textdata.plain, paraCount);
if (this.state.pTarget == paraCount) {
console.log("Found selected paragraph");
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
key: this.dataTools.uuidv4(),
value: paraCount + 1,
selected: true
}, "¶ " + (paraCount + 1) + " - " + firstSentence.substring(0, 50) + " ... "));
} else {
paraPulldown.push( /*#__PURE__*/_react["default"].createElement("option", {
key: this.dataTools.uuidv4(),
value: paraCount + 1
}, "¶ " + (paraCount + 1) + " - " + firstSentence.substring(0, 50) + " ... "));
}
paraCount++;
} else {
if (paraCount == this.state.pTarget) {
// We now need to distribute this horizontal line of tags over the same
// number of rows
for (var w = 0; w < markers.length; w++) {
if (w == 0) {
rows[w].push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "horizontal"
}, lineCount)));
}
rows[w + 1].push(markers[w]);
}
}
lineCount++;
}
}
} //console.log (rows);
var paragraphViz;
var vizRows = [];
for (var x = 0; x < rows.length; x++) {
var aRow = rows[x];
var syntaxFixer = [];
for (var y = 0; y < aRow.length; y++) {
var el = aRow[y];
syntaxFixer.push(el);
}
vizRows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: this.dataTools.uuidv4()
}, syntaxFixer));
}
if (this.state.pTarget != -1) {
paragraphViz = /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null, vizRows));
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("select", {
onChange: this.onHandleParagraphChange
}, paraPulldown), paragraphViz);
}
/**
*
*/
}, {
key: "generateTextViewFlipped",
value: function generateTextViewFlipped() {
var _this4 = this;
//console.log ("generateTextViewFlipped ("+this.props.invalidated+")");
topicCache = [];
var rows = [];
if (this.props.textdata.expanded == null) {
//console.log ("this.props.textdata.expanded == null");
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
}
var expanded = this.props.textdata.expanded;
var header = "";
var index = 1;
for (var i = 0; i < expanded.length; i++) {
var row = expanded[i];
if (i == 0) {
header = [];
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: this.dataTools.uuidv4()
}, "\xA0"));
var _loop5 = function _loop5(j) {
var topic = row[j];
if (_this4.props.invalidated == false) {
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "vertical",
onClick: function onClick(e) {
return _this4.onHandleTopic(topic[2], true, -1);
}
}, topic[1])));
} else {
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "vertical-disabled noselect"
}, topic[1])));
}
};
for (var j = 0; j < row.length; j++) {
_loop5(j);
}
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: "row-" + i,
className: "pheader"
}, header));
} else {
var isParaBoundary = 0;
header = []; //>-----------------------------------------------------------------
var _loop6 = function _loop6(_j) {
var cell = row[_j];
var isCellBoundary = false;
if (_this4.dataTools.isNumber(cell) == true) {
isCellBoundary = true;
isParaBoundary++;
}
if (isCellBoundary == false) {
if (cell[1] != false) {
if (_this4.props.invalidated == false) {
//console.log (cell);
var count = addTopic(cell[2]);
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blue",
alt: cell[2],
title: cell[2],
onClick: function onClick(e) {
return _this4.onHandleTopic(cell[13], false, count);
}
})));
} else {
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-disabled"
})));
}
} else {
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "empty"
})));
}
} else {
header.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this4.dataTools.uuidv4(),
valign: "bottom"
}, "\xA0"));
}
};
for (var _j = 0; _j < row.length; _j++) {
_loop6(_j);
} //>-----------------------------------------------------------------
if (isParaBoundary == row.length) {
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: "row-" + i,
className: "pseparator"
}, /*#__PURE__*/_react["default"].createElement("td", null, "\xA0"), header));
} else {
rows.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: "row-" + i,
className: "psentence"
}, /*#__PURE__*/_react["default"].createElement("td", null, index), header));
index++;
} //>-----------------------------------------------------------------
}
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null, rows)));
}
/**
*
*/
}, {
key: "generateTextViewRegular",
value: function generateTextViewRegular() {
var _this5 = this;
//console.log ("generateTextViewRegular ("+this.props.invalidated+")");
topicCache = [];
if (this.props.textdata.expanded == null) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
}
var rows = [];
var expanded = this.props.textdata.expanded;
var header = "";
var index = 1;
var rowIndex = 0;
var actualRowLength = 0;
var maxLength = 5000; // Let's use a ludicrous size
for (var i = 0; i < expanded.length; i++) {
var row = expanded[i];
if (i > 0) {
if (row.length < maxLength) {
maxLength = row.length;
}
}
}
var lineCount = 1;
for (var _i = 0; _i < expanded.length; _i++) {
var isEmpty = false;
var _row = expanded[_i];
rowIndex = 0;
if (_i == 0) {
isEmpty = true;
var _loop7 = function _loop7(j) {
var topic = _row[j];
var newRow = [];
if (j == 0) {
newRow = [];
newRow.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4()
}, "\xA0"));
rows.push(newRow);
}
newRow = [];
if (_this5.props.invalidated == false) {
newRow.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
align: "right"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "horizontal",
onClick: function onClick(e) {
return _this5.onHandleTopic(topic[2], true, -1);
}
}, topic[1])));
} else {
newRow.push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
align: "right"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "horizontal-disabled noselect"
}, topic[1])));
}
rows.push(newRow);
};
for (var j = 0; j < maxLength; j++) {
_loop7(j);
}
} else {
var _loop8 = function _loop8(_j2) {
var cell = _row[_j2];
if (_this5.dataTools.isNumber(cell) == true) {
isEmpty = true;
if (_j2 == 0) {
rows[0].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4()
}, "\xA0"));
}
rows[rowIndex + 1].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
valign: "bottom",
className: "grey-narrow"
}, "\xA0"));
} else {
if (_j2 == 0) {
rows[0].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "horizontal"
}, lineCount)));
}
if (cell[1] != false) {
if (_this5.props.invalidated == false) {
//console.log (cell);
var count = addTopic(cell[2]);
rows[rowIndex + 1].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-blue-horizontal",
alt: cell[2],
title: cell[2],
onClick: function onClick(e) {
return _this5.onHandleTopic(cell[13], false, count);
}
})));
} else {
rows[rowIndex + 1].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "block-disabled"
})));
}
} else {
rows[rowIndex + 1].push( /*#__PURE__*/_react["default"].createElement("td", {
key: _this5.dataTools.uuidv4(),
valign: "bottom"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "empty"
})));
}
}
rowIndex++;
if (rowIndex >= rows.length) {
rowIndex = 0;
}
};
for (var _j2 = 0; _j2 < maxLength; _j2++) {
_loop8(_j2);
}
}
if (isEmpty == false) {
lineCount++;
}
}
var table = [];
for (var _i2 = 0; _i2 < rows.length; _i2++) {
var aRow = rows[_i2];
var htmlRow = [];
htmlRow.push( /*#__PURE__*/_react["default"].createElement("tr", {
key: this.dataTools.uuidv4()
}, aRow));
table.push(htmlRow);
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowflex"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "langtable"
}, /*#__PURE__*/_react["default"].createElement("tbody", null, table)));
}
/**
*
*/
}, {
key: "onFlip",
value: function onFlip() {
if (this.props.onFlip) {
this.props.onFlip();
}
}
/**
*
*/
}, {
key: "onHandleParagraphChange",
value: function onHandleParagraphChange(e) {
//console.log ("onHandleParagraphChange ("+e.target.value+")");
if (e.target.value == -1) {
//console.log ("Nothing to see here");
return;
}
this.setState({
pTarget: e.target.value - 1
});
}
/**
*
*/
}, {
key: "onHandleTopic",
value: function onHandleTopic(topicId, isGlobal, count) {
/*
if (this.props.onHandleTopic) {
this.props.onHandleTopic(topicId,isGlobal,count);
}
*/
}
/**
*
*/
}, {
key: "onParagraphTopicClick",
value: function onParagraphTopicClick(topicId) {
console.log("onParagraphTopicClick (" + topicId + ")");
}
/**
*
*/
}, {
key: "render",
value: function render() {
var singlePane = false;
if (typeof this.props.singlepane !== 'undefined') {
singlePane = this.props.singlepane;
} //console.log ("render ("+singlePane+")");
var globalTopics; // Will not be used?
var pdfDownload;
var sentenceview;
var paragraphview;
var textview;
var outlineview;
var sentencetab;
var paragraphtab;
var texttab;
var waiting = /*#__PURE__*/_react["default"].createElement("div", {
className: "waiting"
}); //pdfDownload=<ToolButton className="float-right" alt="Download as PDF" title="Download as PDF" onButtonClick={(event) => this.onNavItemClick("export_viz")} icon="picture_as_pdf" />;
if (this.props.mode == "SENTENCE") {
if (this.props.loading == true) {
sentencetab = waiting;
} else {
sentenceview = this.generateSentenceView();
sentencetab = /*#__PURE__*/_react["default"].createElement("div", {
className: "contentcolumn"
}, globalTopics, sentenceview);
}
}
if (this.props.mode == "PARAGRAPH") {
if (this.props.loading == true) {
paragraphtab = waiting;
} else {
if (this.props.flipped == false) {
paragraphview = this.generateParagraphViewRegular();
} else {
paragraphview = this.generateParagraphViewFlipped();
}
paragraphtab = /*#__PURE__*/_react["default"].createElement("div", {
className: "contentcolumn"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowfixed"
}, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, {
controlId: "topicscheck"
}, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
onChange: this.onFlip.bind(this),
type: "checkbox",
label: "Flip Rows and Columns",
alt: "Flip Rows and Columns",
title: "Flip Rows and Columns",
checked: this.props.flipped
}))), paragraphview);
}
}
if (this.props.mode == "TEXT") {
if (this.props.loading == true) {
texttab = waiting;
} else {
if (this.props.flipped == true) {
textview = this.generateTextViewFlipped();
} else {
textview = this.generateTextViewRegular();
}
texttab = /*#__PURE__*/_react["default"].createElement("div", {
className: "contentcolumn"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "contentrowfixed"
}, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, {
controlId: "textcheck"
}, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
onChange: this.onFlip.bind(this),
type: "checkbox",
label: "Flip Rows and Columns",
alt: "Flip Rows and Columns",
title: "Flip Rows and Columns",
checked: this.props.flipped
}))), textview);
}
}
if (singlePane == true) {
if (this.props.mode == "SENTENCE") {
return sentencetab;
}
if (this.props.mode == "PARAGRAPH") {
return paragraphtab;
}
if (this.props.mode == "TEXT") {
return texttab;
}
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "ontopic"
}, /*#__PURE__*/_react["default"].createElement(_reactTabs.Tabs, {
defaultIndex: this.props.defaultindex,
onSelect: this.props.onSelect
}, /*#__PURE__*/_react["default"].createElement(_reactTabs.TabList, null, /*#__PURE__*/_react["default"].createElement(_reactTabs.Tab, {
disabled: this.props.loading
}, "Sentence"), /*#__PURE__*/_react["default"].createElement(_reactTabs.Tab, {
disabled: this.props.loading
}, "Paragraph"), /*#__PURE__*/_react["default"].createElement(_reactTabs.Tab, {
disabled: this.props.loading
}, "Text"), pdfDownload), /*#__PURE__*/_react["default"].createElement(_reactTabs.TabPanel, null, sentencetab), /*#__PURE__*/_react["default"].createElement(_reactTabs.TabPanel, null, paragraphtab), /*#__PURE__*/_react["default"].createElement(_reactTabs.TabPanel, null, texttab)));
}
}]);
return OnTopicVisualization;
}(_react.Component);
var _default = OnTopicVisualization;
exports["default"] = _default;