@cu-mkp/editioncrafter 1.0.2 → 1.0.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/editioncrafter.js +65802 -0
- package/dist/editioncrafter.umd.cjs +553 -0
- package/dist/es/src/action/DiplomaticActions.js +9 -11
- package/dist/es/src/action/DocumentActions.js +164 -154
- package/dist/es/src/action/GlossaryActions.js +9 -11
- package/dist/es/src/action/initialState/diplomaticInitialState.js +2 -2
- package/dist/es/src/action/initialState/documentInitialState.js +9 -12
- package/dist/es/src/action/initialState/glossaryInitialState.js +3 -3
- package/dist/es/src/action/rootReducer.js +31 -29
- package/dist/es/src/component/AlphabetLinks.js +44 -66
- package/dist/es/src/component/CustomizedTooltops.js +101 -110
- package/dist/es/src/component/DiploMatic.js +64 -91
- package/dist/es/src/component/DocumentView.js +442 -366
- package/dist/es/src/component/EditorComment.js +51 -75
- package/dist/es/src/component/ErrorBoundary.js +37 -61
- package/dist/es/src/component/FigureImage.js +56 -67
- package/dist/es/src/component/GlossaryView.js +157 -149
- package/dist/es/src/component/HelpPopper.js +96 -78
- package/dist/es/src/component/ImageGridView.js +184 -249
- package/dist/es/src/component/ImageView.js +155 -165
- package/dist/es/src/component/ImageZoomControl.js +19 -38
- package/dist/es/src/component/JumpToFolio.js +56 -60
- package/dist/es/src/component/Navigation.js +374 -328
- package/dist/es/src/component/Pagination.js +73 -70
- package/dist/es/src/component/Parser.js +11 -32
- package/dist/es/src/component/RingSpinner.js +31 -32
- package/dist/es/src/component/RouteListener.js +30 -21
- package/dist/es/src/component/SeaDragonComponent.js +33 -56
- package/dist/es/src/component/SinglePaneView.js +15 -33
- package/dist/es/src/component/SplitPaneView.js +151 -170
- package/dist/es/src/component/TranscriptionView.js +190 -179
- package/dist/es/src/component/Watermark.js +21 -30
- package/dist/es/src/component/XMLView.js +60 -82
- package/dist/es/src/hooks/useIsWidthUp.js +9 -7
- package/dist/es/src/icons/ByIcon.js +16 -16
- package/dist/es/src/icons/CcIcon.js +16 -16
- package/dist/es/src/icons/NcIcon.js +16 -16
- package/dist/es/src/icons/SaIcon.js +16 -16
- package/dist/es/src/icons/SideMenuIconLeft.js +30 -38
- package/dist/es/src/icons/SideMenuIconRight.js +32 -38
- package/dist/es/src/index.js +21 -20
- package/dist/es/src/lib/copyObject.js +3 -2
- package/dist/es/src/lib/registerServiceWorker.js +77 -54
- package/dist/es/src/model/DocumentHelper.js +7 -6
- package/dist/es/src/model/Folio.js +64 -86
- package/dist/es/src/model/ReduxStore.js +32 -78
- package/dist/es/src/model/folioLayout.js +275 -280
- package/dist/es/src/saga/RouteListenerSaga.js +89 -193
- package/dist/es/src/saga/rootSaga.js +9 -16
- package/dist/es/src/scss/_imageView.scss +1 -1
- package/dist/es/src/scss/_navigation.scss +1 -1
- package/dist/es/src/scss/editioncrafter.scss +1 -1
- package/dist/style.css +1 -0
- package/package.json +36 -51
- package/dist/editioncrafter.min.js +0 -2
- package/dist/editioncrafter.min.js.LICENSE.txt +0 -144
|
@@ -1,159 +1,167 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
14
|
-
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); }; }
|
|
15
|
-
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); }
|
|
16
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
17
|
-
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; } }
|
|
18
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
19
|
-
import React, { Component } from 'react';
|
|
20
|
-
import { connect } from 'react-redux';
|
|
21
|
-
import { Typography } from '@material-ui/core';
|
|
22
|
-
import Parser from 'html-react-parser';
|
|
23
|
-
import Navigation from './Navigation';
|
|
24
|
-
import { alpha } from './AlphabetLinks';
|
|
25
|
-
import Markdown from 'react-markdown';
|
|
26
|
-
var GlossaryView = /*#__PURE__*/function (_Component) {
|
|
27
|
-
_inherits(GlossaryView, _Component);
|
|
28
|
-
var _super = _createSuper(GlossaryView);
|
|
29
|
-
function GlossaryView() {
|
|
30
|
-
var _this;
|
|
31
|
-
_classCallCheck(this, GlossaryView);
|
|
32
|
-
_this = _super.call(this);
|
|
33
|
-
_this.onFilterChange = function (event) {
|
|
34
|
-
var filterTerm = event.target.value;
|
|
35
|
-
_this.setState(_objectSpread(_objectSpread({}, _this.state), {}, {
|
|
36
|
-
filterTerm: filterTerm
|
|
37
|
-
}));
|
|
38
|
-
};
|
|
39
|
-
_this.state = {
|
|
40
|
-
filterTerm: ''
|
|
41
|
-
};
|
|
42
|
-
return _this;
|
|
1
|
+
import { Typography } from '@material-ui/core'
|
|
2
|
+
import Parser from 'html-react-parser'
|
|
3
|
+
import React, { Component } from 'react'
|
|
4
|
+
import Markdown from 'react-markdown'
|
|
5
|
+
import { connect } from 'react-redux'
|
|
6
|
+
import { alpha } from './AlphabetLinks'
|
|
7
|
+
import Navigation from './Navigation'
|
|
8
|
+
|
|
9
|
+
class GlossaryView extends Component {
|
|
10
|
+
constructor() {
|
|
11
|
+
super()
|
|
12
|
+
this.state = { filterTerm: '' }
|
|
43
13
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
56
|
-
var word = _step.value;
|
|
57
|
-
if (word.startsWith(term)) return true;
|
|
58
|
-
}
|
|
59
|
-
} catch (err) {
|
|
60
|
-
_iterator.e(err);
|
|
61
|
-
} finally {
|
|
62
|
-
_iterator.f();
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
// {head-word}, {alternate-spelling}: {meaning-number}. {part-of-speech} {meaning} [{references}]
|
|
68
|
-
var glossaryEntries = [];
|
|
69
|
-
var alphaIndex = 0;
|
|
70
|
-
for (var _i = 0, _entryList = entryList; _i < _entryList.length; _i++) {
|
|
71
|
-
var entry = _entryList[_i];
|
|
72
|
-
// render alphabetic header if we have started the next letter
|
|
73
|
-
if (filterTerm.length === 0 && entry.headWord[0] === alpha[alphaIndex]) {
|
|
74
|
-
var alphaHeadingID = "alpha-".concat(alphaIndex);
|
|
75
|
-
glossaryEntries.push( /*#__PURE__*/React.createElement(Typography, {
|
|
76
|
-
variant: "h4",
|
|
77
|
-
key: "gloss-heading-".concat(alpha[alphaIndex]),
|
|
78
|
-
id: alphaHeadingID
|
|
79
|
-
}, "\u2014", alpha[alphaIndex], ' ', "\u2014"));
|
|
80
|
-
alphaIndex++;
|
|
81
|
-
}
|
|
82
|
-
var lowerCaseHeadword = entry.headWord.toLowerCase();
|
|
83
|
-
var lowerCaseAltSpellings = entry.alternateSpellings.toLowerCase();
|
|
84
|
-
var lowerCaseModSpellings = entry.modernSpelling.toLowerCase();
|
|
85
|
-
if (filterTerm.length === 0 || filterTerm.length !== 0 && checkHeadwords(lowerCaseHeadword, filterTerm, ' ') || filterTerm.length !== 0 && checkHeadwords(lowerCaseModSpellings, filterTerm, ' ') || filterTerm.length !== 0 && checkHeadwords(lowerCaseAltSpellings, filterTerm, ', ')) {
|
|
86
|
-
var meanings = renderMeanings(entry);
|
|
87
|
-
var meaningsEndWithPeriod = meanings[meanings.length - 1].endsWith('.');
|
|
88
|
-
var altString = entry.alternateSpellings ? ", ".concat(entry.alternateSpellings) : '';
|
|
89
|
-
var pos = entry.meanings[0].partOfSpeech;
|
|
90
|
-
var partOfSpeech = pos ? "".concat(pos, ":") : '';
|
|
91
|
-
var modPunctuation = pos ? ',' : ':';
|
|
92
|
-
var modString = entry.modernSpelling ? " (mod. ".concat(entry.modernSpelling, ")") : '';
|
|
93
|
-
var comma = meaningsEndWithPeriod ? '' : ',';
|
|
94
|
-
var seeAlso = entry.seeAlso ? "".concat(comma, " see also <span>→</span>").concat(entry.seeAlso, " ") : '';
|
|
95
|
-
var synonym = entry.synonym ? ", syn. <span>→</span>".concat(entry.synonym) : '';
|
|
96
|
-
var antonym = entry.antonym ? ", ant. <span>→</span>".concat(entry.antonym) : '';
|
|
97
|
-
glossaryEntries.push( /*#__PURE__*/React.createElement(Typography, {
|
|
98
|
-
gutterBottom: true,
|
|
99
|
-
key: "gloss-".concat(entry.headWord)
|
|
100
|
-
}, /*#__PURE__*/React.createElement("u", null, entry.headWord), altString, modString, modPunctuation, ' ', partOfSpeech, ' ', meanings.map(function (meaningful) {
|
|
101
|
-
return Parser(meaningful);
|
|
102
|
-
}), Parser(seeAlso), Parser(synonym), Parser(antonym)));
|
|
103
|
-
}
|
|
14
|
+
|
|
15
|
+
renderGlossary() {
|
|
16
|
+
const { glossary } = this.props.glossary
|
|
17
|
+
const filterTerm = this.state.filterTerm.toLowerCase()
|
|
18
|
+
const entryList = Object.values(glossary.entries)
|
|
19
|
+
|
|
20
|
+
const checkHeadwords = (headword, term, delimiter) => {
|
|
21
|
+
const words = headword.split(delimiter)
|
|
22
|
+
for (const word of words) {
|
|
23
|
+
if (word.startsWith(term))
|
|
24
|
+
return true
|
|
104
25
|
}
|
|
105
|
-
return
|
|
26
|
+
return false
|
|
106
27
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
28
|
+
|
|
29
|
+
// {head-word}, {alternate-spelling}: {meaning-number}. {part-of-speech} {meaning} [{references}]
|
|
30
|
+
const glossaryEntries = []
|
|
31
|
+
let alphaIndex = 0
|
|
32
|
+
|
|
33
|
+
for (const entry of entryList) {
|
|
34
|
+
// render alphabetic header if we have started the next letter
|
|
35
|
+
if (filterTerm.length === 0 && entry.headWord[0] === alpha[alphaIndex]) {
|
|
36
|
+
const alphaHeadingID = `alpha-${alphaIndex}`
|
|
37
|
+
glossaryEntries.push(
|
|
38
|
+
<Typography variant="h4" key={`gloss-heading-${alpha[alphaIndex]}`} id={alphaHeadingID}>
|
|
39
|
+
—
|
|
40
|
+
{alpha[alphaIndex]}
|
|
41
|
+
{' '}
|
|
42
|
+
—
|
|
43
|
+
</Typography>,
|
|
44
|
+
)
|
|
45
|
+
alphaIndex++
|
|
46
|
+
}
|
|
47
|
+
const lowerCaseHeadword = entry.headWord.toLowerCase()
|
|
48
|
+
|
|
49
|
+
const lowerCaseAltSpellings = entry.alternateSpellings.toLowerCase()
|
|
50
|
+
const lowerCaseModSpellings = entry.modernSpelling.toLowerCase()
|
|
51
|
+
if (filterTerm.length === 0
|
|
52
|
+
|| (filterTerm.length !== 0 && checkHeadwords(lowerCaseHeadword, filterTerm, ' '))
|
|
53
|
+
|| (filterTerm.length !== 0 && checkHeadwords(lowerCaseModSpellings, filterTerm, ' '))
|
|
54
|
+
|| (filterTerm.length !== 0 && checkHeadwords(lowerCaseAltSpellings, filterTerm, ', '))
|
|
55
|
+
) {
|
|
56
|
+
const meanings = renderMeanings(entry)
|
|
57
|
+
const meaningsEndWithPeriod = meanings[meanings.length - 1].endsWith('.')
|
|
58
|
+
const altString = entry.alternateSpellings ? `, ${entry.alternateSpellings}` : ''
|
|
59
|
+
const pos = entry.meanings[0].partOfSpeech
|
|
60
|
+
const partOfSpeech = pos ? `${pos}:` : ''
|
|
61
|
+
const modPunctuation = pos ? ',' : ':'
|
|
62
|
+
const modString = entry.modernSpelling ? ` (mod. ${entry.modernSpelling})` : ''
|
|
63
|
+
const comma = meaningsEndWithPeriod ? '' : ','
|
|
64
|
+
const seeAlso = entry.seeAlso ? `${comma} see also <span>→</span>${entry.seeAlso} ` : ''
|
|
65
|
+
const synonym = entry.synonym ? `, syn. <span>→</span>${entry.synonym}` : ''
|
|
66
|
+
const antonym = entry.antonym ? `, ant. <span>→</span>${entry.antonym}` : ''
|
|
67
|
+
glossaryEntries.push(
|
|
68
|
+
<Typography gutterBottom key={`gloss-${entry.headWord}`}>
|
|
69
|
+
<u>{entry.headWord}</u>
|
|
70
|
+
{altString}
|
|
71
|
+
{modString}
|
|
72
|
+
{modPunctuation}
|
|
73
|
+
{' '}
|
|
74
|
+
{partOfSpeech}
|
|
75
|
+
{' '}
|
|
76
|
+
{
|
|
77
|
+
meanings.map(meaningful => Parser(meaningful))
|
|
78
|
+
}
|
|
79
|
+
{Parser(seeAlso)}
|
|
80
|
+
{Parser(synonym)}
|
|
81
|
+
{Parser(antonym)}
|
|
82
|
+
</Typography>,
|
|
83
|
+
)
|
|
84
|
+
}
|
|
139
85
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
86
|
+
|
|
87
|
+
return glossaryEntries
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
onFilterChange = (event) => {
|
|
91
|
+
const filterTerm = event.target.value
|
|
92
|
+
this.setState({ ...this.state, filterTerm })
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
render() {
|
|
96
|
+
if (!this.props.glossary.loaded)
|
|
97
|
+
return null
|
|
98
|
+
|
|
99
|
+
return (
|
|
100
|
+
<div id="glossaryView" style={{ position: 'relative', overflow: 'auto' }}>
|
|
101
|
+
<Navigation
|
|
102
|
+
side={this.props.side}
|
|
103
|
+
onFilterChange={this.onFilterChange}
|
|
104
|
+
value={this.state.filterTerm}
|
|
105
|
+
documentView={this.props.documentView}
|
|
106
|
+
documentViewActions={this.props.documentViewActions}
|
|
107
|
+
/>
|
|
108
|
+
|
|
109
|
+
<div id="glossaryViewInner">
|
|
110
|
+
<div id="glossaryContent">
|
|
111
|
+
<Typography variant="h2" className="title">Glossary</Typography>
|
|
112
|
+
{
|
|
113
|
+
this.props.glossary.glossary.title
|
|
114
|
+
&& (
|
|
115
|
+
<div className="subtitle MuiTypography-root MuiTypography-body1">
|
|
116
|
+
<Markdown>
|
|
117
|
+
{ this.props.glossary.glossary.title }
|
|
118
|
+
</Markdown>
|
|
119
|
+
</div>
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
<div className="cite-instructions">
|
|
123
|
+
{
|
|
124
|
+
this.props.glossary.glossary.citation
|
|
125
|
+
&& (
|
|
126
|
+
<>
|
|
127
|
+
<Typography className="cite-header">How to Cite</Typography>
|
|
128
|
+
<div className="MuiTypography-root MuiTypography-body1">
|
|
129
|
+
<Markdown>
|
|
130
|
+
{ this.props.glossary.glossary.citation }
|
|
131
|
+
</Markdown>
|
|
132
|
+
</div>
|
|
133
|
+
</>
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
</div>
|
|
137
|
+
{ this.renderGlossary() }
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
</div>
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
143
146
|
function renderMeanings(entry) {
|
|
144
|
-
|
|
145
|
-
for (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
const meaningList = []
|
|
148
|
+
for (let i = 0; i < entry.meanings.length; i++) {
|
|
149
|
+
const meaning = entry.meanings[i]
|
|
150
|
+
|
|
151
|
+
const refString = meaning.references ? ` [${meaning.references}]` : ''
|
|
152
|
+
const numString = (entry.meanings.length > 1) ? `${i + 1}. ` : ''
|
|
153
|
+
const space = i < entry.meanings.length - 1 ? ' ' : ''
|
|
154
|
+
meaningList.push(
|
|
155
|
+
`${numString}${meaning.meaning}${refString}${space}`,
|
|
156
|
+
)
|
|
151
157
|
}
|
|
152
|
-
return meaningList
|
|
158
|
+
return meaningList
|
|
153
159
|
}
|
|
160
|
+
|
|
154
161
|
function mapStateToProps(state) {
|
|
155
162
|
return {
|
|
156
|
-
glossary: state.glossary
|
|
157
|
-
}
|
|
163
|
+
glossary: state.glossary,
|
|
164
|
+
}
|
|
158
165
|
}
|
|
159
|
-
|
|
166
|
+
|
|
167
|
+
export default connect(mapStateToProps)(GlossaryView)
|
|
@@ -1,78 +1,96 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import Paper from '@material-ui/core/Paper'
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
1
|
+
import Fade from '@material-ui/core/Fade'
|
|
2
|
+
import List from '@material-ui/core/List'
|
|
3
|
+
import ListItem from '@material-ui/core/ListItem'
|
|
4
|
+
import ListItemText from '@material-ui/core/ListItemText'
|
|
5
|
+
import Paper from '@material-ui/core/Paper'
|
|
6
|
+
import Popper from '@material-ui/core/Popper'
|
|
7
|
+
import Typography from '@material-ui/core/Typography'
|
|
8
|
+
import React from 'react'
|
|
9
|
+
import {
|
|
10
|
+
FaArrowCircleLeft,
|
|
11
|
+
FaArrowCircleRight,
|
|
12
|
+
} from 'react-icons/fa'
|
|
13
|
+
import asterisk from '../icons/howtouse-asterisk.png'
|
|
14
|
+
import curly from '../icons/howtouse-curly.png'
|
|
15
|
+
import square from '../icons/howtouse-square.png'
|
|
16
|
+
import ups from '../icons/howtouse-ups.png'
|
|
17
|
+
|
|
18
|
+
function HelpPopper(props) {
|
|
19
|
+
return (
|
|
20
|
+
<Popper anchorEl={props.anchorEl} open={props.open} style={props.marginStyle}>
|
|
21
|
+
<Fade in={props.open}>
|
|
22
|
+
<Paper className="helpContainer">
|
|
23
|
+
<div onClick={props.onClose} className="closeX">
|
|
24
|
+
<span className="fa fa-window-close" />
|
|
25
|
+
</div>
|
|
26
|
+
<div>
|
|
27
|
+
<Typography variant="h6" component="h2">Toolbar Buttons</Typography>
|
|
28
|
+
<List>
|
|
29
|
+
<ListItem>
|
|
30
|
+
<span className="fa fa-lock" />
|
|
31
|
+
<ListItemText primary="Toggle Sync Views" />
|
|
32
|
+
</ListItem>
|
|
33
|
+
<ListItem>
|
|
34
|
+
<span className="fa fa-book" />
|
|
35
|
+
<ListItemText primary="Toggle Book Mode" />
|
|
36
|
+
</ListItem>
|
|
37
|
+
<ListItem>
|
|
38
|
+
<span className="fa fa-code" />
|
|
39
|
+
<ListItemText primary="Toggle XML Mode" />
|
|
40
|
+
</ListItem>
|
|
41
|
+
<ListItem>
|
|
42
|
+
<span className="horizontal-buttons">
|
|
43
|
+
<FaArrowCircleLeft />
|
|
44
|
+
<FaArrowCircleRight />
|
|
45
|
+
</span>
|
|
46
|
+
<ListItemText primary="Go Forward / Back" />
|
|
47
|
+
</ListItem>
|
|
48
|
+
<ListItem>
|
|
49
|
+
<span className="fa fa-hand-point-right" />
|
|
50
|
+
<ListItemText primary="Jump to folio" />
|
|
51
|
+
</ListItem>
|
|
52
|
+
<div className="readingGuide">
|
|
53
|
+
<Typography variant="h6" component="h2">Reading Guide</Typography>
|
|
54
|
+
<table>
|
|
55
|
+
<thead>
|
|
56
|
+
<tr>
|
|
57
|
+
<th><Typography variant="overline" component="span">Syntax</Typography></th>
|
|
58
|
+
<th><Typography variant="overline" component="span">Meaning</Typography></th>
|
|
59
|
+
</tr>
|
|
60
|
+
</thead>
|
|
61
|
+
<tbody>
|
|
62
|
+
<tr>
|
|
63
|
+
<td><img src={ups} alt="howtouse-ups" /></td>
|
|
64
|
+
<td><Typography>Text is under the paper strip</Typography></td>
|
|
65
|
+
</tr>
|
|
66
|
+
<tr>
|
|
67
|
+
<td><img src={curly} alt="howtouse-curly" /></td>
|
|
68
|
+
<td><Typography>Expanded version implied by abbreviation marks</Typography></td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td><img src={square} alt="howtouse-square" /></td>
|
|
72
|
+
<td><Typography>Editorial interventions and corrections</Typography></td>
|
|
73
|
+
</tr>
|
|
74
|
+
<tr>
|
|
75
|
+
<td><img src={asterisk} alt="howtouse-asterisk" /></td>
|
|
76
|
+
<td><Typography>Editorial Comments</Typography></td>
|
|
77
|
+
</tr>
|
|
78
|
+
</tbody>
|
|
79
|
+
</table>
|
|
80
|
+
</div>
|
|
81
|
+
</List>
|
|
82
|
+
<Typography>
|
|
83
|
+
See
|
|
84
|
+
|
|
85
|
+
<a href="#/content/how-to-use">How to Use</a>
|
|
86
|
+
|
|
87
|
+
for more information.
|
|
88
|
+
</Typography>
|
|
89
|
+
</div>
|
|
90
|
+
</Paper>
|
|
91
|
+
</Fade>
|
|
92
|
+
</Popper>
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export default HelpPopper
|