Skip to content

Commit 1db9375

Browse files
committed
TASK: provide documentNode to ClientEval
1 parent ed8e0ec commit 1db9375

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The script replaces trailing `\\` with trailing double spaces on your content, s
3434

3535
### ClientEval
3636
`ClientEval:` is implemented for the (translated) content.
37-
You can use `node` and `parentNode` in the context.
37+
You can use `node`, `parentNode` and `documentNode` in the context.
3838

3939
### Asynchronous Content
4040
If [ClientEval](#clienteval) returns a Promise, the resolved value will be loaded as content.

Resources/Private/Plugin/src/view.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { neos } from '@neos-project/neos-ui-decorators';
66
import { selectors } from '@neos-project/neos-ui-redux-store';
77

88
const evaluate = (context, _expression) => {
9-
const { node, parentNode } = context; // jshint ignore:line
9+
const { node, parentNode, documentNode } = context; // jshint ignore:line
1010
return eval(_expression.replace('ClientEval:', '')); // jshint ignore:line
1111
}
1212

@@ -16,10 +16,12 @@ const evaluate = (context, _expression) => {
1616
@connect(state => {
1717
const focusedNode = selectors.CR.Nodes.focusedSelector(state);
1818
const parentNode = selectors.CR.Nodes.nodeByContextPath(state)(focusedNode.parent);
19+
const documentNode = selectors.CR.Nodes.documentNodeSelector(state);
1920

2021
return {
2122
focusedNode,
2223
parentNode,
24+
documentNode,
2325
};
2426
})
2527
export default class MarkdownView extends PureComponent {
@@ -32,6 +34,7 @@ export default class MarkdownView extends PureComponent {
3234
disallowedElements: PropTypes.arrayOf(PropTypes.string),
3335
focusedNode: PropTypes.object,
3436
parentNode: PropTypes.object,
37+
documentNode: PropTypes.object,
3538
}).isRequired,
3639
i18nRegistry: PropTypes.object.isRequired,
3740
}
@@ -55,6 +58,7 @@ export default class MarkdownView extends PureComponent {
5558
const context = {
5659
node: this.props.focusedNode,
5760
parentNode: this.props.parentNode,
61+
documentNode: this.props.documentNode,
5862
};
5963
content = evaluate(context, content.replace('ClientEval:', ''));
6064
}

Resources/Public/JavaScript/Plugin/Plugin.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20783,7 +20783,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
2078320783

2078420784
var evaluate = function evaluate(context, _expression) {
2078520785
var node = context.node,
20786-
parentNode = context.parentNode; // jshint ignore:line
20786+
parentNode = context.parentNode,
20787+
documentNode = context.documentNode; // jshint ignore:line
2078720788

2078820789
return eval(_expression.replace('ClientEval:', '')); // jshint ignore:line
2078920790
};
@@ -20795,10 +20796,12 @@ var MarkdownView = (_dec = (0, _neosUiDecorators.neos)(function (globalRegistry)
2079520796
}), _dec2 = (0, _reactRedux.connect)(function (state) {
2079620797
var focusedNode = _neosUiReduxStore.selectors.CR.Nodes.focusedSelector(state);
2079720798
var parentNode = _neosUiReduxStore.selectors.CR.Nodes.nodeByContextPath(state)(focusedNode.parent);
20799+
var documentNode = _neosUiReduxStore.selectors.CR.Nodes.documentNodeSelector(state);
2079820800

2079920801
return {
2080020802
focusedNode: focusedNode,
20801-
parentNode: parentNode
20803+
parentNode: parentNode,
20804+
documentNode: documentNode
2080220805
};
2080320806
}), _dec(_class = _dec2(_class = (_temp = _class2 = function (_PureComponent) {
2080420807
_inherits(MarkdownView, _PureComponent);
@@ -20829,7 +20832,8 @@ var MarkdownView = (_dec = (0, _neosUiDecorators.neos)(function (globalRegistry)
2082920832
if (content.startsWith('ClientEval:')) {
2083020833
var context = {
2083120834
node: this.props.focusedNode,
20832-
parentNode: this.props.parentNode
20835+
parentNode: this.props.parentNode,
20836+
documentNode: this.props.documentNode
2083320837
};
2083420838
content = evaluate(context, content.replace('ClientEval:', ''));
2083520839
}
@@ -20879,7 +20883,8 @@ var MarkdownView = (_dec = (0, _neosUiDecorators.neos)(function (globalRegistry)
2087920883
allowedElements: _propTypes2.default.arrayOf(_propTypes2.default.string),
2088020884
disallowedElements: _propTypes2.default.arrayOf(_propTypes2.default.string),
2088120885
focusedNode: _propTypes2.default.object,
20882-
parentNode: _propTypes2.default.object
20886+
parentNode: _propTypes2.default.object,
20887+
documentNode: _propTypes2.default.object
2088320888
}).isRequired,
2088420889
i18nRegistry: _propTypes2.default.object.isRequired
2088520890
}, _temp)) || _class) || _class);

Resources/Public/JavaScript/Plugin/Plugin.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)