@aj-shadow/z-abs-complayer-markup-client 0.0.0-aj-beta.221
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/.gitattributes +26 -0
- package/LICENSE.txt +96 -0
- package/README.md +5 -0
- package/npm-shrinkwrap.json +13 -0
- package/package.json +10 -0
- package/project/client/_build/Bundle-CompLayer-Markup-client.bld +40 -0
- package/project/client/_build/Client-CompLayer-Markup-client-jsx.bld +10 -0
- package/project/client/_build/Client-CompLayer-Markup-client.bld +10 -0
- package/project/client/_build/Client-css-CompLayer-Markup-bundle.bld +9 -0
- package/project/client/_build/z-abs-complayer-markup-client.prj +36 -0
- package/project/client/actions/action-style.js +17 -0
- package/project/client/actions/data-action-style.js +13 -0
- package/project/client/css/markup_addressing.css +30 -0
- package/project/client/css/markup_flowchart.css +53 -0
- package/project/client/css/markup_general.css +4 -0
- package/project/client/css/markup_image.css +10 -0
- package/project/client/css/markup_license.css +107 -0
- package/project/client/css/markup_login.css +201 -0
- package/project/client/css/markup_node_diagram.css +51 -0
- package/project/client/css/markup_sequence_diagram.css +6 -0
- package/project/client/css/markup_state.css +5 -0
- package/project/client/css/markup_table.css +57 -0
- package/project/client/css/markup_tc.css +32 -0
- package/project/client/css/markup_ts.css +36 -0
- package/project/client/data/addresses/data-addresses-client-address-global.js +20 -0
- package/project/client/data/addresses/data-addresses-client-address-local.js +20 -0
- package/project/client/data/addresses/data-addresses-client-interface-global.js +17 -0
- package/project/client/data/addresses/data-addresses-client-interface-local.js +17 -0
- package/project/client/data/addresses/data-addresses-dns-global.js +18 -0
- package/project/client/data/addresses/data-addresses-dns-local.js +19 -0
- package/project/client/data/addresses/data-addresses-dst-global.js +20 -0
- package/project/client/data/addresses/data-addresses-dst-local.js +20 -0
- package/project/client/data/addresses/data-addresses-network-interface-global.js +17 -0
- package/project/client/data/addresses/data-addresses-network-interface-local.js +17 -0
- package/project/client/data/addresses/data-addresses-ports-global.js +18 -0
- package/project/client/data/addresses/data-addresses-ports-local.js +18 -0
- package/project/client/data/addresses/data-addresses-server-address-global.js +20 -0
- package/project/client/data/addresses/data-addresses-server-address-local.js +20 -0
- package/project/client/data/addresses/data-addresses-server-interface-global.js +17 -0
- package/project/client/data/addresses/data-addresses-server-interface-local.js +17 -0
- package/project/client/data/addresses/data-addresses-src-global.js +21 -0
- package/project/client/data/addresses/data-addresses-src-local.js +21 -0
- package/project/client/data/addresses/data-addresses-srv-global.js +20 -0
- package/project/client/data/addresses/data-addresses-srv-local.js +20 -0
- package/project/client/data/addresses/data-addresses-sut-address-global.js +20 -0
- package/project/client/data/addresses/data-addresses-sut-address-local.js +20 -0
- package/project/client/data/addresses/data-addresses-sut-interface-global.js +19 -0
- package/project/client/data/addresses/data-addresses-sut-interface-local.js +19 -0
- package/project/client/data/data-chart/data-chart-axis.js +13 -0
- package/project/client/data/data-chart/data-chart-grid.js +14 -0
- package/project/client/data/data-chart/data-chart-line/data-chart-line-config.js +17 -0
- package/project/client/data/data-chart/data-chart-line/data-chart-line.js +41 -0
- package/project/client/data/data-config.js +14 -0
- package/project/client/data/data-constructor.js +18 -0
- package/project/client/data/data-content/data-content-audio-global.js +18 -0
- package/project/client/data/data-content/data-content-audio-local.js +18 -0
- package/project/client/data/data-content/data-content-documents-global.js +18 -0
- package/project/client/data/data-content/data-content-documents-local.js +18 -0
- package/project/client/data/data-content/data-content-image-global.js +21 -0
- package/project/client/data/data-content/data-content-image-local.js +21 -0
- package/project/client/data/data-content/data-content-other-global.js +20 -0
- package/project/client/data/data-content/data-content-other-local.js +20 -0
- package/project/client/data/data-content/data-content-text-global.js +20 -0
- package/project/client/data/data-content/data-content-text-local.js +20 -0
- package/project/client/data/data-content/data-content-video-global.js +20 -0
- package/project/client/data/data-content/data-content-video-local.js +20 -0
- package/project/client/data/data-data.js +28 -0
- package/project/client/data/data-dependencies/data-dependencies.js +17 -0
- package/project/client/data/data-documentation/data-documentation-navigation.js +15 -0
- package/project/client/data/data-documentation/data-documentation.js +20 -0
- package/project/client/data/data-flowchart/data-flowchart-block.js +33 -0
- package/project/client/data/data-flowchart/data-flowchart-connection.js +17 -0
- package/project/client/data/data-flowchart/data-flowchart.js +30 -0
- package/project/client/data/data-html/data-html-anchor.js +12 -0
- package/project/client/data/data-html/data-html-br.js +11 -0
- package/project/client/data/data-html/data-html-button.js +15 -0
- package/project/client/data/data-html/data-html-log-start.js +12 -0
- package/project/client/data/data-html/data-html-log-stop.js +13 -0
- package/project/client/data/data-html/data-html-log.js +16 -0
- package/project/client/data/data-html/data-html-toolbar.js +19 -0
- package/project/client/data/data-image/data-image.js +20 -0
- package/project/client/data/data-lab/data-lab-interface-client.js +19 -0
- package/project/client/data/data-lab/data-lab-interface-server.js +19 -0
- package/project/client/data/data-lab/data-lab-interface-sut.js +20 -0
- package/project/client/data/data-lab/data-lab-network.js +31 -0
- package/project/client/data/data-lab/data-lab.js +21 -0
- package/project/client/data/data-licenses/data-licenses.js +16 -0
- package/project/client/data/data-node-diagram/data-node-diagram-config.js +21 -0
- package/project/client/data/data-node-diagram/data-node-diagram-connection.js +18 -0
- package/project/client/data/data-node-diagram/data-node-diagram-group.js +16 -0
- package/project/client/data/data-node-diagram/data-node-diagram-node.js +22 -0
- package/project/client/data/data-node-diagram/data-node-diagram.js +47 -0
- package/project/client/data/data-repos/data-repos-content-local.js +15 -0
- package/project/client/data/data-repos/data-repos-data-local.js +15 -0
- package/project/client/data/data-sequence-diagram/data-sequence-diagram-config.js +22 -0
- package/project/client/data/data-sequence-diagram/data-sequence-diagram-message.js +17 -0
- package/project/client/data/data-sequence-diagram/data-sequence-diagram-node.js +11 -0
- package/project/client/data/data-sequence-diagram/data-sequence-diagram.js +32 -0
- package/project/client/data/data-state-machine/data-state-machine-config.js +17 -0
- package/project/client/data/data-state-machine/data-state-machine-state.js +29 -0
- package/project/client/data/data-state-machine/data-state-machine-transition.js +18 -0
- package/project/client/data/data-state-machine/data-state-machine.js +37 -0
- package/project/client/data/data-system-under-test/data-system-under-test-instances.js +15 -0
- package/project/client/data/data-system-under-test/data-system-under-test-nodes.js +18 -0
- package/project/client/data/data-table/data-table-config.js +21 -0
- package/project/client/data/data-table-key-value.js +56 -0
- package/project/client/data/data-test-case/data-actor.js +282 -0
- package/project/client/data/data-test-case/data-test-case-settings.js +49 -0
- package/project/client/data/data-test-case/data-test-case.js +19 -0
- package/project/client/data/data-test-case/data-test-data-iteration.js +54 -0
- package/project/client/data/data-test-case/data-test-data-test-case.js +16 -0
- package/project/client/data/data-test-case/data-verification-test-case.js +24 -0
- package/project/client/data/data-test-data/data-test-data-environment-global.js +18 -0
- package/project/client/data/data-test-data/data-test-data-environment-local.js +18 -0
- package/project/client/data/data-test-data/data-test-data-environment-static.js +16 -0
- package/project/client/data/data-test-data/data-test-data-general-global.js +18 -0
- package/project/client/data/data-test-data/data-test-data-general-local.js +18 -0
- package/project/client/data/data-test-data/data-test-data-output-global.js +18 -0
- package/project/client/data/data-test-data/data-test-data-output-local.js +18 -0
- package/project/client/data/data-test-data/data-test-data-system-global.js +18 -0
- package/project/client/data/data-test-data/data-test-data-system-local.js +18 -0
- package/project/client/data/data-test-suite/data-test-suite-abstraction.js +72 -0
- package/project/client/data/data-test-suite/data-test-suite.js +15 -0
- package/project/client/data/data-tree/data-tree-node.js +17 -0
- package/project/client/data/data-tree/data-tree.js +13 -0
- package/project/client/markup/markup-addresses/markup-addresses-client-address.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-client-interface.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-dns.js +32 -0
- package/project/client/markup/markup-addresses/markup-addresses-dst.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-network-interface.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-ports.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-server-address.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-server-interface.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-src.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-srv.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-sut-address.js +31 -0
- package/project/client/markup/markup-addresses/markup-addresses-sut-interface.js +31 -0
- package/project/client/markup/markup-chart/markup-chart-line.js +92 -0
- package/project/client/markup/markup-content/markup-content-audio.js +31 -0
- package/project/client/markup/markup-content/markup-content-documents.js +31 -0
- package/project/client/markup/markup-content/markup-content-image.js +31 -0
- package/project/client/markup/markup-content/markup-content-other.js +31 -0
- package/project/client/markup/markup-content/markup-content-text.js +31 -0
- package/project/client/markup/markup-content/markup-content-video.js +31 -0
- package/project/client/markup/markup-dependencies/markup-dependencies.js +30 -0
- package/project/client/markup/markup-documentation/markup-documentation-anchor.js +37 -0
- package/project/client/markup/markup-documentation/markup-documentation-api-status.js +67 -0
- package/project/client/markup/markup-documentation/markup-documentation-code.js +20 -0
- package/project/client/markup/markup-documentation/markup-documentation-div.js +34 -0
- package/project/client/markup/markup-documentation/markup-documentation-documentation-status.js +67 -0
- package/project/client/markup/markup-documentation/markup-documentation-embed.js +23 -0
- package/project/client/markup/markup-documentation/markup-documentation-html.js +139 -0
- package/project/client/markup/markup-documentation/markup-documentation-ie.js +21 -0
- package/project/client/markup/markup-documentation/markup-documentation-image.js +46 -0
- package/project/client/markup/markup-documentation/markup-documentation-lab.js +19 -0
- package/project/client/markup/markup-documentation/markup-documentation-local-note.js +33 -0
- package/project/client/markup/markup-documentation/markup-documentation-navigation.js +109 -0
- package/project/client/markup/markup-documentation/markup-documentation-page.js +262 -0
- package/project/client/markup/markup-documentation/markup-documentation-ref.js +28 -0
- package/project/client/markup/markup-documentation/markup-documentation-result.js +21 -0
- package/project/client/markup/markup-documentation/markup-documentation-state-machine.js +194 -0
- package/project/client/markup/markup-documentation/markup-documentation.js +74 -0
- package/project/client/markup/markup-flowchart.js +264 -0
- package/project/client/markup/markup-lab.js +116 -0
- package/project/client/markup/markup-licenses/markup-licenses.js +29 -0
- package/project/client/markup/markup-node-diagram.js +435 -0
- package/project/client/markup/markup-parse-helper.js +26 -0
- package/project/client/markup/markup-pattern-config.js +53 -0
- package/project/client/markup/markup-pattern-data.js +50 -0
- package/project/client/markup/markup-pattern-function.js +47 -0
- package/project/client/markup/markup-repos/markup-repos.js +31 -0
- package/project/client/markup/markup-sequence-diagram.js +466 -0
- package/project/client/markup/markup-system-under-test/markup-system-under-test-instances.js +29 -0
- package/project/client/markup/markup-system-under-test/markup-system-under-test-nodes.js +30 -0
- package/project/client/markup/markup-table-key-value-parse.js +25 -0
- package/project/client/markup/markup-table-key-value-stringify.js +91 -0
- package/project/client/markup/markup-table-key-value.js +18 -0
- package/project/client/markup/markup-table-name-value.js +101 -0
- package/project/client/markup/markup-table.js +85 -0
- package/project/client/markup/markup-tables-parser.js +122 -0
- package/project/client/markup/markup-test-case/markup-test-case.js +67 -0
- package/project/client/markup/markup-test-data/markup-test-data-environment.js +31 -0
- package/project/client/markup/markup-test-data/markup-test-data-general.js +31 -0
- package/project/client/markup/markup-test-data/markup-test-data-output.js +31 -0
- package/project/client/markup/markup-test-data/markup-test-data-system.js +31 -0
- package/project/client/markup/markup-test-suite/markup-test-suite.js +40 -0
- package/project/client/react-components/helper/line-data.js +16 -0
- package/project/client/react-components/helper/line-object.js +22 -0
- package/project/client/react-components/helper/scroll-data.js +74 -0
- package/project/client/react-components/markup/component-chart/component-image-chart-line.jsx +203 -0
- package/project/client/react-components/markup/component-code.jsx +50 -0
- package/project/client/react-components/markup/component-document.jsx +105 -0
- package/project/client/react-components/markup/component-documentation-anchor.jsx +47 -0
- package/project/client/react-components/markup/component-embed.jsx +48 -0
- package/project/client/react-components/markup/component-image-flowchart.jsx +389 -0
- package/project/client/react-components/markup/component-image-image.jsx +32 -0
- package/project/client/react-components/markup/component-image-lab.jsx +696 -0
- package/project/client/react-components/markup/component-image-node-diagram.jsx +506 -0
- package/project/client/react-components/markup/component-image-result.jsx +22 -0
- package/project/client/react-components/markup/component-image-sequence-diagram.jsx +645 -0
- package/project/client/react-components/markup/component-image-state-machine.jsx +633 -0
- package/project/client/react-components/markup/component-image-table.jsx +96 -0
- package/project/client/react-components/markup/component-local-note.jsx +99 -0
- package/project/client/react-components/markup/component-markup-remarkable.jsx +79 -0
- package/project/client/react-components/markup/component-markup.jsx +1036 -0
- package/project/client/react-components/markup/component-table-data-table.jsx +146 -0
- package/project/client/stores/style-store.js +96 -0
- package/project/z-abs-complayer-markup-client.tree +239 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import ComponetMarkupRemarkable from './component-markup-remarkable';
|
|
5
|
+
import MarkupDocumentationPage from '../../markup/markup-documentation/markup-documentation-page';
|
|
6
|
+
import ReactComponentBase from 'z-abs-corelayer-client/client/react-component/react-component-base';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ComponentImageTable extends ReactComponentBase {
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super(props);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
shouldUpdate(nextProps, nextState) {
|
|
16
|
+
return !this.shallowCompare(this.props, nextProps);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
renderTableRow(row, index) {
|
|
20
|
+
const values = row.columns.map((column, cIndex) => {
|
|
21
|
+
const document = MarkupDocumentationPage.parse(column);
|
|
22
|
+
let formattedColumn = '';
|
|
23
|
+
document.forEach((doc) => {
|
|
24
|
+
if('markup_ref' === doc.type) {
|
|
25
|
+
const link = this.props.linkReferences.get(doc.value.refName);
|
|
26
|
+
if(undefined !== link) {
|
|
27
|
+
formattedColumn += `[${'' !== doc.value.text ? doc.value.text : link.text}](${link.path}:::${link.type})`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
formattedColumn += doc.value;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return (
|
|
35
|
+
<td key={cIndex}>
|
|
36
|
+
<ComponetMarkupRemarkable inner preview={this.props.preview} value={formattedColumn} />
|
|
37
|
+
</td>
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
return (
|
|
41
|
+
<tr key={index}>
|
|
42
|
+
{values}
|
|
43
|
+
</tr>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
renderTableRows(rows) {
|
|
48
|
+
const values = [];
|
|
49
|
+
for(let i = 2; i < rows.length; ++i) {
|
|
50
|
+
values.push(this.renderTableRow(rows[i], i));
|
|
51
|
+
}
|
|
52
|
+
return (
|
|
53
|
+
<tbody>
|
|
54
|
+
{values}
|
|
55
|
+
</tbody>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
renderTableHeading(rows) {
|
|
60
|
+
if(2 <= rows.length) {
|
|
61
|
+
const headings = rows[1].columns.map((heading, index) => {
|
|
62
|
+
return (<th key={index}>{heading}</th>);
|
|
63
|
+
});
|
|
64
|
+
return (
|
|
65
|
+
<thead>
|
|
66
|
+
<tr>
|
|
67
|
+
{headings}
|
|
68
|
+
</tr>
|
|
69
|
+
</thead>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
renderTable() {
|
|
75
|
+
return this.props.values.objects.map((rows, index) => {
|
|
76
|
+
const row0 = rows[0];
|
|
77
|
+
const name = 1 <= row0.columns.length ? row0.columns[0] : '';
|
|
78
|
+
const classHeading = this.props.values.config.classHeading ? ` ${this.props.values.config.classHeading}` : '';
|
|
79
|
+
return (
|
|
80
|
+
<div key={index} className={this.props.classTable}>
|
|
81
|
+
<div className={`panel-heading ${this.props.classHeading}${classHeading}`}>{name}</div>
|
|
82
|
+
<table className={`${this.props.classRow} table table-bordered table-striped table-condensed table-hover`}>
|
|
83
|
+
{this.renderTableHeading(rows)}
|
|
84
|
+
{this.renderTableRows(rows)}
|
|
85
|
+
</table>
|
|
86
|
+
</div>
|
|
87
|
+
);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
render() {
|
|
92
|
+
return this.renderTable();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
module.exports = ComponentImageTable;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import ComponentMarkup from './component-markup';
|
|
5
|
+
import Link from 'z-abs-complayer-router-client/client/react-component/link';
|
|
6
|
+
import ReactComponentBase from 'z-abs-corelayer-client/client/react-component/react-component-base';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ComponentLocalNote extends ReactComponentBase {
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super(props);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
shouldUpdate(nextProps, nextState) {
|
|
16
|
+
return !this.shallowCompare(this.props, nextProps);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
renderNote() {
|
|
20
|
+
if(!this.props.note || !this.props.note.created) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return (
|
|
24
|
+
<div className="local_note_outer">
|
|
25
|
+
<div className="local_note_inner" data-line-start={this.props.dataLineStart} data-line-stop={this.props.dataLineStart} data-line-object-index="0">
|
|
26
|
+
<ComponentMarkup inner={this.props.inner} document={this.props.note.document} addClass="markup_local_note"/>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
renderAddNote() {
|
|
33
|
+
if(this.props.note && this.props.note.created) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return (
|
|
37
|
+
<li className="local_document_choice">
|
|
38
|
+
<Link onClick={(e) => {
|
|
39
|
+
this.props.onAddNote && this.props.onAddNote();
|
|
40
|
+
}}>Add Note
|
|
41
|
+
</Link>
|
|
42
|
+
</li>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
renderEditNote() {
|
|
47
|
+
if(!this.props.note || !this.props.note.created) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return (
|
|
51
|
+
<li className="local_document_choice">
|
|
52
|
+
<Link onClick={(e) => {
|
|
53
|
+
this.props.onEditNote && this.props.onEditNote();
|
|
54
|
+
}}>Edit Note
|
|
55
|
+
</Link>
|
|
56
|
+
</li>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
renderDeleteNote() {
|
|
61
|
+
if(!this.props.note || !this.props.note.created) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return (
|
|
65
|
+
<li className="local_document_choice">
|
|
66
|
+
<Link onClick={(e) => {
|
|
67
|
+
this.props.onDeleteNote && this.props.onDeleteNote();
|
|
68
|
+
}}>Delete Note
|
|
69
|
+
</Link>
|
|
70
|
+
</li>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
renderLocalItem() {
|
|
75
|
+
return (
|
|
76
|
+
<div className="dropdown local_document_choice">
|
|
77
|
+
<button className="btn btn-xs dropdown-toggle local_document_choice" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
78
|
+
<span className="caret"></span>
|
|
79
|
+
</button>
|
|
80
|
+
<ul className="dropdown-menu dropdown-menu-right local_document_choice" aria-labelledby="dropdownMenu1">
|
|
81
|
+
{this.renderAddNote()}
|
|
82
|
+
{this.renderEditNote()}
|
|
83
|
+
{this.renderDeleteNote()}
|
|
84
|
+
</ul>
|
|
85
|
+
</div>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
render() {
|
|
90
|
+
return (
|
|
91
|
+
<>
|
|
92
|
+
{this.renderLocalItem()}
|
|
93
|
+
{this.renderNote()}
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
module.exports = ComponentLocalNote;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import ReactComponentBase from 'z-abs-corelayer-client/client/react-component/react-component-base';
|
|
5
|
+
import { Remarkable, utils } from 'remarkable';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ComponetMarkupRemarkable extends ReactComponentBase {
|
|
10
|
+
constructor(props) {
|
|
11
|
+
super(props);
|
|
12
|
+
this.md = new Remarkable('full', {
|
|
13
|
+
breaks: true,
|
|
14
|
+
html: true
|
|
15
|
+
});
|
|
16
|
+
this.md.renderer.rules.paragraph_open = this._paragraph_open.bind(this);
|
|
17
|
+
this.md.renderer.rules.heading_open = this._heading_open.bind(this);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
_paragraph_open(tokens, idx) {
|
|
21
|
+
if(tokens[idx].lines && tokens[idx].level === 0 && this.props.dataLineStart) {
|
|
22
|
+
const start = this.props.dataLineStart + tokens[idx].lines[0];
|
|
23
|
+
return `<p class="data-line" class="data-line" data-line-start="${start}" data-line-stop="${start}" data-line-object-index="0">`;
|
|
24
|
+
}
|
|
25
|
+
return tokens[idx].tight ? '' : '<p>';
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_heading_open(tokens, idx) {
|
|
29
|
+
if(tokens[idx].lines && tokens[idx].level === 0 && this.props.dataLineStart) {
|
|
30
|
+
const start = this.props.dataLineStart + tokens[idx].lines[0];
|
|
31
|
+
return `<h${tokens[idx].hLevel} class="data-line" data-line-start="${start}" data-line-stop="${start}" data-line-object-index="0">`;
|
|
32
|
+
}
|
|
33
|
+
return `<h${tokens[idx].hLevel}>`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_link_open(tokens, idx, options) {
|
|
37
|
+
const href = tokens[idx].href;
|
|
38
|
+
const index = href.indexOf(':::');
|
|
39
|
+
const text = -1 !== index ? href.substring(0, index) : href;
|
|
40
|
+
const type = -1 !== index ? href.substring(index + 3) : 'link';
|
|
41
|
+
if(this.props.preview) {
|
|
42
|
+
const classJsType = 'link' === type ? '' : ` doc_nav_${type}`;
|
|
43
|
+
return `<a class="doc_nav_preview${classJsType}">`;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const classAndClassJsType = 'link' === type ? '' : `class="doc_nav_${type}"`;
|
|
47
|
+
const title = tokens[idx].title ? (' title="' + utils.escapeHtml(utils.replaceEntities(tokens[idx].title)) + '"') : '';
|
|
48
|
+
const target = options.linkTarget ? (' target="' + options.linkTarget + '"') : '';
|
|
49
|
+
return `<a ${classAndClassJsType} href="` + utils.escapeHtml(text) + '"' + title + target + '>';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
shouldUpdate(nextProps, nextState) {
|
|
54
|
+
return !this.shallowCompare(this.props, nextProps);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
render() {
|
|
58
|
+
if(undefined === this.props.value) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const value = this.props.value;
|
|
62
|
+
if(0 === value.length) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const link_openOriginal = this.md.renderer.rules.link_open;
|
|
66
|
+
this.md.renderer.rules.link_open = this._link_open.bind(this);
|
|
67
|
+
let rawMarkup = this.md.render(value);
|
|
68
|
+
this.md.renderer.rules.link_open = link_openOriginal;
|
|
69
|
+
if(this.props.inner) {
|
|
70
|
+
rawMarkup = rawMarkup.substring(3, rawMarkup.length - 5);
|
|
71
|
+
}
|
|
72
|
+
return (
|
|
73
|
+
<span dangerouslySetInnerHTML={{__html: rawMarkup}} />
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
module.exports = ComponetMarkupRemarkable;
|