diff --git a/Configuration/Settings.yaml b/Configuration/Settings.yaml
index 10ff336..1c5ec0c 100644
--- a/Configuration/Settings.yaml
+++ b/Configuration/Settings.yaml
@@ -44,7 +44,19 @@ Neos:
javascript:
"Neos.Form.Builder:PlaceholderInsert":
resource: '${"resource://Neos.Form.Builder/Public/JavaScript/PlaceholderInsert/Plugin.js"}'
-
+ frontendConfiguration:
+ 'Neos.Form.Builder:PlaceholderInsert':
+ # ignore node types in dropdown
+ ignoreNodeTypeInDropdown:
+ 'Neos.Form.Builder:Section': true
+ 'Neos.Form.Builder:StaticText': true
+ 'Neos.Form.Builder:ElementCollection': true
+ 'Neos.Form.Builder:SelectOptionCollection': true
+ 'Neos.Form.Builder:ValidatorCollection': true
+ # ignore all child nodes of node type in dropdown
+ ignoreAllChildNodesOfNodeTypeInDropdown:
+ 'Neos.Form.Builder:SelectOptionCollection': true
+ 'Neos.Form.Builder:ValidatorCollection': true
ContentRepositoryRegistry:
presets:
'default':
diff --git a/README.md b/README.md
index 4981aef..81604c9 100644
--- a/README.md
+++ b/README.md
@@ -384,7 +384,33 @@ selectable:
}
```
+### Example: Allow specific NodeTypes in the Placeholder-Insert
+
+By default, all Form-Element NodeTypes are visible in the Placeholder-Insert (except StaticText and Section).
+
+If you want to hide specific Form-Elements from the Placeholder-Insert, add the NodeType with the value `true` to the `ignoreNodeTypeInDropdown` setting.
+
+To exclude all child NodeTypes of a NodeType, add the NodeType with the value `true` to the `ignoreChildNodeTypesInDropdown` setting.
+```yaml
+# Settings.yaml
+
+Neos:
+ Neos:
+ Ui:
+ frontendConfiguration:
+ 'Neos.Form.Builder:PlaceholderInsert':
+ # ignore node types in dropdown
+ ignoreNodeTypeInDropdown:
+ 'Some.Package:HoneypotField': true
+ 'Some.Package:Image': true
+ 'Some.Package:Gallery': true
+ # ignore all child nodes of a node type in dropdown
+ ignoreAllChildNodesOfNodeTypeInDropdown:
+ 'Some.Package:GalleryCollection': true
+```
+
## Upgrade to version 3
+
### Neos.Form.Builder:SelectOptionCollection
The `Neos.Form.Builder:SelectOptionCollection` prototype has been changed and uses now `items` instead of `collection`.
diff --git a/Resources/Private/PlaceholderInsert/src/PlaceholderInsertDropdown.js b/Resources/Private/PlaceholderInsert/src/PlaceholderInsertDropdown.js
index 48697ae..adb6ee2 100644
--- a/Resources/Private/PlaceholderInsert/src/PlaceholderInsertDropdown.js
+++ b/Resources/Private/PlaceholderInsert/src/PlaceholderInsertDropdown.js
@@ -29,31 +29,48 @@ export const parentNodeContextPath = contextPath => {
i18nRegistry: globalRegistry.get("i18n"),
nodeTypeRegistry: globalRegistry.get(
"@neos-project/neos-ui-contentrepository"
- )
+ ),
+ frontendConfiguration: globalRegistry.get('frontendConfiguration')
}))
+
export default class PlaceholderInsertDropdown extends PureComponent {
handleOnSelect = value => {
this.props.executeCommand("placeholderInsert", value);
};
render() {
+ let options = [];
+
const [formPath, workspace] = parentNodeContextPath(
parentNodeContextPath(this.props.focusedNode.contextPath)
).split("@");
+ // get options of first page
const elementsPath = `${formPath}/elements@${workspace}`;
const elementsNode = this.props.nodesByContextPath[elementsPath];
if (!elementsNode) {
return null;
}
- const options = elementsNode.children
- .map(node => this.props.nodesByContextPath[node.contextPath])
- .map(node => ({
- value: node.properties.identifier || node.identifier,
- label:
- node.properties.label || node.properties.identifier || node.identifier
- }));
+ const firstPageOptions = this.getOptionsRecursively(elementsNode.children);
+ if (firstPageOptions && firstPageOptions.length > 0) {
+ options = options.concat(firstPageOptions);
+ }
+
+ // get options of further pages
+ const furtherPagesPath = `${formPath}/furtherpages@${workspace}`;
+ const furtherPagesNode = this.props.nodesByContextPath[furtherPagesPath];
+ if (furtherPagesNode && furtherPagesNode.children && furtherPagesNode.children.length > 0) {
+ furtherPagesNode.children.forEach(furtherPageChildren => {
+ if (furtherPageChildren) {
+ const pageOptions = this.getOptionsOfPage(furtherPageChildren);
+
+ if (pageOptions && pageOptions.length > 0) {
+ options = options.concat(pageOptions);
+ }
+ }
+ });
+ }
if (options.length === 0) {
return null;
@@ -73,4 +90,49 @@ export default class PlaceholderInsertDropdown extends PureComponent {
/>
);
}
+
+ getOptionsOfPage(page) {
+ const [path, workspace] = page.contextPath.split("@");
+ const elementsPath = `${path}/elements@${workspace}`;
+ const elementsNode = this.props.nodesByContextPath[elementsPath];
+ if (!elementsNode) {
+ return null;
+ }
+
+ return this.getOptionsRecursively(elementsNode.children);
+ }
+
+ getOptionsRecursively(elements) {
+ const {frontendConfiguration} = this.props;
+ const ignoreNodeTypeInDropdown = frontendConfiguration.get('Neos.Form.Builder:PlaceholderInsert').ignoreNodeTypeInDropdown;
+ const ignoreAllChildNodesOfNodeTypeInDropdown = frontendConfiguration.get('Neos.Form.Builder:PlaceholderInsert').ignoreAllChildNodesOfNodeTypeInDropdown;
+ const returnValues = [];
+
+ elements.forEach((element) => {
+ const node = this.props.nodesByContextPath[element.contextPath];
+ if (!node) {
+ return null;
+ }
+
+ if (!(ignoreNodeTypeInDropdown.hasOwnProperty(node.nodeType) && ignoreNodeTypeInDropdown[node.nodeType] === true)) {
+ returnValues.push({
+ value: node.properties.identifier || node.identifier,
+ label: node.properties.label || node.properties.identifier || node.identifier
+ });
+ }
+
+ if (!(ignoreAllChildNodesOfNodeTypeInDropdown.hasOwnProperty(node.nodeType) && ignoreAllChildNodesOfNodeTypeInDropdown[node.nodeType] === true)) {
+ const childNodes = this.props.nodesByContextPath[element.contextPath].children;
+ const childOptions = this.getOptionsRecursively(childNodes);
+
+ if (Array.isArray(childOptions)) {
+ childOptions.forEach(childOption => {
+ returnValues.push(childOption);
+ });
+ }
+ }
+ });
+
+ return returnValues;
+ }
}
diff --git a/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js b/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js
index 8b2c08e..625cc94 100644
--- a/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js
+++ b/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js
@@ -1,2 +1,2 @@
-(()=>{var Z=Object.create;var g=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var i=(e,t)=>()=>(e&&(t=e(e=0)),t);var u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var N=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ee(t))!re.call(e,s)&&s!==r&&g(e,s,{get:()=>t[s],enumerable:!(o=A(t,s))||o.enumerable});return e};var d=(e,t,r)=>(r=e!=null?Z(te(e)):{},N(t||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),oe=e=>N(g({},"__esModule",{value:!0}),e),w=(e,t,r,o)=>{for(var s=o>1?void 0:o?A(t,r):t,a=e.length-1,p;a>=0;a--)(p=e[a])&&(s=(o?p(t,r,s):p(s))||s);return o&&s&&g(t,r,s),s};var C=i(()=>{});var O=i(()=>{C()});function n(e){return(...t)=>{if(window["@Neos:HostPluginAPI"]&&window["@Neos:HostPluginAPI"][`@${e}`])return window["@Neos:HostPluginAPI"][`@${e}`](...t);throw new Error("You are trying to read from a consumer api that hasn't been initialized yet!")}}var c=i(()=>{});var S=i(()=>{});var I=i(()=>{});var x=i(()=>{S();I()});var R=i(()=>{x()});var W=i(()=>{x();R()});var j,F=i(()=>{O();c();W();j=n("manifest")});var K=u((je,E)=>{c();E.exports=n("vendor")().reactRedux});var B=u((Ee,v)=>{c();v.exports=n("NeosProjectPackages")().ReactUiComponents});var T=u((ve,M)=>{c();M.exports=n("vendor")().React});var $=u((Me,V)=>{c();V.exports=n("NeosProjectPackages")().NeosUiDecorators});var k=u((Ve,U)=>{c();U.exports=n("NeosProjectPackages")().NeosUiReduxStore});var L,Y,y,q,b,H,f,z=i(()=>{L=d(K()),Y=d(B()),y=d(T()),q=d($()),b=d(k()),H=e=>{if(typeof e!="string")return console.error("`contextPath` must be a string!"),null;let[t,r]=e.split("@");return t.length===0?null:`${t.substr(0,t.lastIndexOf("/"))}@${r}`},f=class extends y.PureComponent{constructor(){super(...arguments);this.handleOnSelect=r=>{this.props.executeCommand("placeholderInsert",r)}}render(){let[r,o]=H(H(this.props.focusedNode.contextPath)).split("@"),s=`${r}/elements@${o}`,a=this.props.nodesByContextPath[s];if(!a)return null;let p=a.children.map(l=>this.props.nodesByContextPath[l.contextPath]).map(l=>({value:l.properties.identifier||l.identifier,label:l.properties.label||l.properties.identifier||l.identifier}));if(p.length===0)return null;let X=this.props.i18nRegistry.translate("Neos.Form.Builder:Main:placeholder","Insert placeholder");return y.default.createElement(Y.SelectBox,{placeholder:X,options:p,onValueChange:this.handleOnSelect,value:null})}};f=w([(0,L.connect)(e=>({nodesByContextPath:b.selectors.CR.Nodes.nodesByContextPathSelector(e),focusedNode:b.selectors.CR.Nodes.focusedSelector(e)})),(0,q.neos)(e=>({i18nRegistry:e.get("i18n"),nodeTypeRegistry:e.get("@neos-project/neos-ui-contentrepository")}))],f)});var G=u((He,D)=>{c();D.exports=n("vendor")().CkEditor5});var m,P,h,J=i(()=>{m=d(G()),P=class extends m.Command{execute(t){let r=this.editor.model,s=r.document.selection,a=new m.ModelText("{"+t+"}");r.insertContent(a,s)}},h=class extends m.Plugin{static get pluginName(){return"PlaceholderInsert"}init(){this.editor.commands.add("placeholderInsert",new P(this.editor))}}});var ie={};var ne,Q=i(()=>{F();z();J();ne=(e,t)=>(r,o)=>!t||t(o.editorOptions,o)?(r.plugins=r.plugins||[],{...r,plugins:[...r.plugins??[],e]}):r;j("Neos.Form.Builder:PlaceholderInsert",{},e=>{e.get("ckEditor5").get("richtextToolbar").set("placeholderInsertt",{component:f,isVisible:o=>o?.formatting?.placeholderInsert}),e.get("ckEditor5").get("config").set("placeholderInsert",ne(h,o=>o?.formatting?.placeholderInsert))})});Q();})();
+(()=>{var oe=Object.create;var b=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,ie=Object.prototype.hasOwnProperty;var l=(e,t)=>()=>(e&&(t=e(e=0)),t);var h=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var S=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of se(t))!ie.call(e,s)&&s!==r&&b(e,s,{get:()=>t[s],enumerable:!(o=I(t,s))||o.enumerable});return e};var m=(e,t,r)=>(r=e!=null?oe(ne(e)):{},S(t||!e||!e.__esModule?b(r,"default",{value:e,enumerable:!0}):r,e)),ce=e=>S(b({},"__esModule",{value:!0}),e),R=(e,t,r,o)=>{for(var s=o>1?void 0:o?I(t,r):t,c=e.length-1,i;c>=0;c--)(i=e[c])&&(s=(o?i(t,r,s):i(s))||s);return o&&s&&b(t,r,s),s};var _=l(()=>{});var E=l(()=>{_()});function n(e){return(...t)=>{if(window["@Neos:HostPluginAPI"]&&window["@Neos:HostPluginAPI"][`@${e}`])return window["@Neos:HostPluginAPI"][`@${e}`](...t);throw new Error("You are trying to read from a consumer api that hasn't been initialized yet!")}}var p=l(()=>{});var F=l(()=>{});var T=l(()=>{});var w=l(()=>{F();T()});var W=l(()=>{w()});var j=l(()=>{w();W()});var B,K=l(()=>{E();p();j();B=n("manifest")});var M=h((je,$)=>{p();$.exports=n("vendor")().reactRedux});var k=h((Ke,V)=>{p();V.exports=n("NeosProjectPackages")().ReactUiComponents});var U=h((Me,D)=>{p();D.exports=n("vendor")().React});var L=h((ke,H)=>{p();H.exports=n("NeosProjectPackages")().NeosUiDecorators});var q=h((Ue,Y)=>{p();Y.exports=n("NeosProjectPackages")().NeosUiReduxStore});var G,J,N,Q,C,z,f,X=l(()=>{G=m(M()),J=m(k()),N=m(U()),Q=m(L()),C=m(q()),z=e=>{if(typeof e!="string")return console.error("`contextPath` must be a string!"),null;let[t,r]=e.split("@");return t.length===0?null:`${t.substr(0,t.lastIndexOf("/"))}@${r}`},f=class extends N.PureComponent{constructor(){super(...arguments);this.handleOnSelect=r=>{this.props.executeCommand("placeholderInsert",r)}}render(){let r=[],[o,s]=z(z(this.props.focusedNode.contextPath)).split("@"),c=`${o}/elements@${s}`,i=this.props.nodesByContextPath[c];if(!i)return null;let d=this.getOptionsRecursively(i.children);d&&d.length>0&&(r=r.concat(d));let a=`${o}/furtherpages@${s}`,u=this.props.nodesByContextPath[a];if(u&&u.children&&u.children.length>0&&u.children.forEach(P=>{if(P){let O=this.getOptionsOfPage(P);O&&O.length>0&&(r=r.concat(O))}}),r.length===0)return null;let x=this.props.i18nRegistry.translate("Neos.Form.Builder:Main:placeholder","Insert placeholder");return N.default.createElement(J.SelectBox,{placeholder:x,options:r,onValueChange:this.handleOnSelect,value:null})}getOptionsOfPage(r){let[o,s]=r.contextPath.split("@"),c=`${o}/elements@${s}`,i=this.props.nodesByContextPath[c];return i?this.getOptionsRecursively(i.children):null}getOptionsRecursively(r){let{frontendConfiguration:o}=this.props,s=o.get("Neos.Form.Builder:PlaceholderInsert").ignoreNodeTypeInDropdown,c=o.get("Neos.Form.Builder:PlaceholderInsert").ignoreAllChildNodesOfNodeTypeInDropdown,i=[];return r.forEach(d=>{let a=this.props.nodesByContextPath[d.contextPath];if(!a)return null;if(s.hasOwnProperty(a.nodeType)&&s[a.nodeType]===!0||i.push({value:a.properties.identifier||a.identifier,label:a.properties.label||a.properties.identifier||a.identifier}),!(c.hasOwnProperty(a.nodeType)&&c[a.nodeType]===!0)){let u=this.props.nodesByContextPath[d.contextPath].children,x=this.getOptionsRecursively(u);Array.isArray(x)&&x.forEach(P=>{i.push(P)})}}),i}};f=R([(0,G.connect)(e=>({nodesByContextPath:C.selectors.CR.Nodes.nodesByContextPathSelector(e),focusedNode:C.selectors.CR.Nodes.focusedSelector(e)})),(0,Q.neos)(e=>({i18nRegistry:e.get("i18n"),nodeTypeRegistry:e.get("@neos-project/neos-ui-contentrepository"),frontendConfiguration:e.get("frontendConfiguration")}))],f)});var ee=h((qe,Z)=>{p();Z.exports=n("vendor")().CkEditor5});var g,A,y,te=l(()=>{g=m(ee()),A=class extends g.Command{execute(t){let r=this.editor.model,s=r.document.selection,c=new g.ModelText("{"+t+"}");r.insertContent(c,s)}},y=class extends g.Plugin{static get pluginName(){return"PlaceholderInsert"}init(){this.editor.commands.add("placeholderInsert",new A(this.editor))}}});var pe={};var le,re=l(()=>{K();X();te();le=(e,t)=>(r,o)=>!t||t(o.editorOptions,o)?(r.plugins=r.plugins||[],{...r,plugins:[...r.plugins??[],e]}):r;B("Neos.Form.Builder:PlaceholderInsert",{},e=>{e.get("ckEditor5").get("richtextToolbar").set("placeholderInsertt",{component:f,isVisible:o=>o?.formatting?.placeholderInsert}),e.get("ckEditor5").get("config").set("placeholderInsert",le(y,o=>o?.formatting?.placeholderInsert))})});re();})();
//# sourceMappingURL=Plugin.js.map
diff --git a/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js.map b/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js.map
index ea993a8..6182b4b 100644
--- a/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js.map
+++ b/Resources/Public/JavaScript/PlaceholderInsert/Plugin.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/manifest.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/createConsumerApi.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/readFromConsumerApi.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/registry/AbstractRegistry.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/positional-array-sorter/src/positionalArraySorter.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/registry/SynchronousRegistry.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/registry/SynchronousMetaRegistry.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/registry/index.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/index.ts", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react-redux/index.js", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/react-ui-components/index.js", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react/index.js", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-decorators/index.js", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-redux-store/index.js", "../../../Private/PlaceholderInsert/src/PlaceholderInsertDropdown.js", "../../../Private/PlaceholderInsert/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/ckeditor5-exports/index.js", "../../../Private/PlaceholderInsert/src/placeholderInsertPlugin.js", "../../../Private/PlaceholderInsert/src/manifest.js", "../../../Private/PlaceholderInsert/src/index.js"],
- "sourcesContent": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import { connect } from \"react-redux\";\nimport { SelectBox } from \"@neos-project/react-ui-components\";\nimport React, { PureComponent } from \"react\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\nimport { selectors } from \"@neos-project/neos-ui-redux-store\";\n\nexport const parentNodeContextPath = contextPath => {\n if (typeof contextPath !== \"string\") {\n console.error(\"`contextPath` must be a string!\"); // tslint:disable-line\n return null;\n }\n const [path, context] = contextPath.split(\"@\");\n\n if (path.length === 0) {\n // We are at top level; so there is no parent anymore!\n return null;\n }\n\n return `${path.substr(0, path.lastIndexOf(\"/\"))}@${context}`;\n};\n\n@connect(\n state => ({\n nodesByContextPath: selectors.CR.Nodes.nodesByContextPathSelector(state),\n focusedNode: selectors.CR.Nodes.focusedSelector(state)\n })\n)\n@neos(globalRegistry => ({\n i18nRegistry: globalRegistry.get(\"i18n\"),\n nodeTypeRegistry: globalRegistry.get(\n \"@neos-project/neos-ui-contentrepository\"\n )\n}))\nexport default class PlaceholderInsertDropdown extends PureComponent {\n handleOnSelect = value => {\n this.props.executeCommand(\"placeholderInsert\", value);\n };\n\n render() {\n const [formPath, workspace] = parentNodeContextPath(\n parentNodeContextPath(this.props.focusedNode.contextPath)\n ).split(\"@\");\n\n const elementsPath = `${formPath}/elements@${workspace}`;\n\n const elementsNode = this.props.nodesByContextPath[elementsPath];\n if (!elementsNode) {\n return null;\n }\n const options = elementsNode.children\n .map(node => this.props.nodesByContextPath[node.contextPath])\n .map(node => ({\n value: node.properties.identifier || node.identifier,\n label:\n node.properties.label || node.properties.identifier || node.identifier\n }));\n\n if (options.length === 0) {\n return null;\n }\n\n const placeholderLabel = this.props.i18nRegistry.translate(\n \"Neos.Form.Builder:Main:placeholder\",\n \"Insert placeholder\"\n );\n\n return (\n \n );\n }\n}\n", null, "import { ModelText, Command, Plugin } from \"ckeditor5-exports\";\n\nclass PlaceholderInsertCommand extends Command {\n execute(value) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const placeholder = new ModelText(\"{\" + value + \"}\");\n model.insertContent(placeholder, selection);\n }\n}\n\nexport default class PlaceholderInsertPlugin extends Plugin {\n static get pluginName() {\n return \"PlaceholderInsert\";\n }\n init() {\n const editor = this.editor;\n\n editor.commands.add(\n \"placeholderInsert\",\n new PlaceholderInsertCommand(this.editor)\n );\n }\n}\n", "import manifest from \"@neos-project/neos-ui-extensibility\";\nimport PlaceholderInsertDropdown from \"./PlaceholderInsertDropdown\";\nimport placeholderInsertPlugin from \"./placeholderInsertPlugin\";\n\nconst addPlugin = (Plugin, isEnabled) => (ckEditorConfiguration, options) => {\n if (!isEnabled || isEnabled(options.editorOptions, options)) {\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n return {\n ...ckEditorConfiguration,\n plugins: [\n ...(ckEditorConfiguration.plugins ?? []),\n Plugin\n ]\n };\n }\n return ckEditorConfiguration;\n};\n\nmanifest(\"Neos.Form.Builder:PlaceholderInsert\", {}, globalRegistry => {\n const richtextToolbar = globalRegistry\n .get(\"ckEditor5\")\n .get(\"richtextToolbar\");\n richtextToolbar.set(\"placeholderInsertt\", {\n component: PlaceholderInsertDropdown,\n isVisible: editorOptions => editorOptions?.formatting?.placeholderInsert\n });\n\n const config = globalRegistry.get(\"ckEditor5\").get(\"config\");\n config.set(\n \"placeholderInsert\",\n addPlugin(placeholderInsertPlugin, editorOptions => editorOptions?.formatting?.placeholderInsert)\n );\n});\n", "require(\"./manifest\");\n"],
- "mappings": "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",
- "names": ["init_manifest", "__esmMin", "init_createConsumerApi", "__esmMin", "init_manifest", "readFromConsumerApi", "key", "args", "init_readFromConsumerApi", "__esmMin", "init_AbstractRegistry", "__esmMin", "init_positionalArraySorter", "__esmMin", "init_SynchronousRegistry", "__esmMin", "init_AbstractRegistry", "init_positionalArraySorter", "init_SynchronousMetaRegistry", "__esmMin", "init_SynchronousRegistry", "init_registry", "__esmMin", "init_SynchronousRegistry", "init_SynchronousMetaRegistry", "dist_default", "init_dist", "__esmMin", "init_createConsumerApi", "init_readFromConsumerApi", "init_registry", "readFromConsumerApi", "require_react_redux", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_ui_components", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_decorators", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_redux_store", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "import_react_redux", "import_react_ui_components", "import_react", "import_neos_ui_decorators", "import_neos_ui_redux_store", "parentNodeContextPath", "PlaceholderInsertDropdown", "init_PlaceholderInsertDropdown", "__esmMin", "contextPath", "path", "context", "value", "formPath", "workspace", "elementsPath", "elementsNode", "options", "node", "placeholderLabel", "React", "__decorateClass", "state", "globalRegistry", "require_ckeditor5_exports", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "import_ckeditor5_exports", "PlaceholderInsertCommand", "PlaceholderInsertPlugin", "init_placeholderInsertPlugin", "__esmMin", "value", "model", "selection", "placeholder", "manifest_exports", "addPlugin", "init_manifest", "__esmMin", "init_dist", "init_PlaceholderInsertDropdown", "init_placeholderInsertPlugin", "Plugin", "isEnabled", "ckEditorConfiguration", "options", "dist_default", "globalRegistry", "PlaceholderInsertDropdown", "editorOptions", "PlaceholderInsertPlugin"]
+ "sourcesContent": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import { connect } from \"react-redux\";\nimport { SelectBox } from \"@neos-project/react-ui-components\";\nimport React, { PureComponent } from \"react\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\nimport { selectors } from \"@neos-project/neos-ui-redux-store\";\n\nexport const parentNodeContextPath = contextPath => {\n if (typeof contextPath !== \"string\") {\n console.error(\"`contextPath` must be a string!\"); // tslint:disable-line\n return null;\n }\n const [path, context] = contextPath.split(\"@\");\n\n if (path.length === 0) {\n // We are at top level; so there is no parent anymore!\n return null;\n }\n\n return `${path.substr(0, path.lastIndexOf(\"/\"))}@${context}`;\n};\n\n@connect(\n state => ({\n nodesByContextPath: selectors.CR.Nodes.nodesByContextPathSelector(state),\n focusedNode: selectors.CR.Nodes.focusedSelector(state)\n })\n)\n@neos(globalRegistry => ({\n i18nRegistry: globalRegistry.get(\"i18n\"),\n nodeTypeRegistry: globalRegistry.get(\n \"@neos-project/neos-ui-contentrepository\"\n ),\n frontendConfiguration: globalRegistry.get('frontendConfiguration')\n}))\n\nexport default class PlaceholderInsertDropdown extends PureComponent {\n handleOnSelect = value => {\n this.props.executeCommand(\"placeholderInsert\", value);\n };\n\n render() {\n let options = [];\n\n const [formPath, workspace] = parentNodeContextPath(\n parentNodeContextPath(this.props.focusedNode.contextPath)\n ).split(\"@\");\n\n // get options of first page\n const elementsPath = `${formPath}/elements@${workspace}`;\n\n const elementsNode = this.props.nodesByContextPath[elementsPath];\n if (!elementsNode) {\n return null;\n }\n const firstPageOptions = this.getOptionsRecursively(elementsNode.children);\n if (firstPageOptions && firstPageOptions.length > 0) {\n options = options.concat(firstPageOptions);\n }\n\n // get options of further pages\n const furtherPagesPath = `${formPath}/furtherpages@${workspace}`;\n const furtherPagesNode = this.props.nodesByContextPath[furtherPagesPath];\n if (furtherPagesNode && furtherPagesNode.children && furtherPagesNode.children.length > 0) {\n furtherPagesNode.children.forEach(furtherPageChildren => {\n if (furtherPageChildren) {\n const pageOptions = this.getOptionsOfPage(furtherPageChildren);\n\n if (pageOptions && pageOptions.length > 0) {\n options = options.concat(pageOptions);\n }\n }\n });\n }\n\n if (options.length === 0) {\n return null;\n }\n\n const placeholderLabel = this.props.i18nRegistry.translate(\n \"Neos.Form.Builder:Main:placeholder\",\n \"Insert placeholder\"\n );\n\n return (\n \n );\n }\n\n getOptionsOfPage(page) {\n const [path, workspace] = page.contextPath.split(\"@\");\n const elementsPath = `${path}/elements@${workspace}`;\n const elementsNode = this.props.nodesByContextPath[elementsPath];\n if (!elementsNode) {\n return null;\n }\n\n return this.getOptionsRecursively(elementsNode.children);\n }\n\n getOptionsRecursively(elements) {\n const {frontendConfiguration} = this.props;\n const ignoreNodeTypeInDropdown = frontendConfiguration.get('Neos.Form.Builder:PlaceholderInsert').ignoreNodeTypeInDropdown;\n const ignoreAllChildNodesOfNodeTypeInDropdown = frontendConfiguration.get('Neos.Form.Builder:PlaceholderInsert').ignoreAllChildNodesOfNodeTypeInDropdown;\n const returnValues = [];\n\n elements.forEach((element) => {\n const node = this.props.nodesByContextPath[element.contextPath];\n if (!node) {\n return null;\n }\n\n if (!(ignoreNodeTypeInDropdown.hasOwnProperty(node.nodeType) && ignoreNodeTypeInDropdown[node.nodeType] === true)) {\n returnValues.push({\n value: node.properties.identifier || node.identifier,\n label: node.properties.label || node.properties.identifier || node.identifier\n });\n }\n\n if (!(ignoreAllChildNodesOfNodeTypeInDropdown.hasOwnProperty(node.nodeType) && ignoreAllChildNodesOfNodeTypeInDropdown[node.nodeType] === true)) {\n const childNodes = this.props.nodesByContextPath[element.contextPath].children;\n const childOptions = this.getOptionsRecursively(childNodes);\n\n if (Array.isArray(childOptions)) {\n childOptions.forEach(childOption => {\n returnValues.push(childOption);\n });\n }\n }\n });\n\n return returnValues;\n }\n}\n", null, "import { ModelText, Command, Plugin } from \"ckeditor5-exports\";\n\nclass PlaceholderInsertCommand extends Command {\n execute(value) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const placeholder = new ModelText(\"{\" + value + \"}\");\n model.insertContent(placeholder, selection);\n }\n}\n\nexport default class PlaceholderInsertPlugin extends Plugin {\n static get pluginName() {\n return \"PlaceholderInsert\";\n }\n init() {\n const editor = this.editor;\n\n editor.commands.add(\n \"placeholderInsert\",\n new PlaceholderInsertCommand(this.editor)\n );\n }\n}\n", "import manifest from \"@neos-project/neos-ui-extensibility\";\nimport PlaceholderInsertDropdown from \"./PlaceholderInsertDropdown\";\nimport placeholderInsertPlugin from \"./placeholderInsertPlugin\";\n\nconst addPlugin = (Plugin, isEnabled) => (ckEditorConfiguration, options) => {\n if (!isEnabled || isEnabled(options.editorOptions, options)) {\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n return {\n ...ckEditorConfiguration,\n plugins: [\n ...(ckEditorConfiguration.plugins ?? []),\n Plugin\n ]\n };\n }\n return ckEditorConfiguration;\n};\n\nmanifest(\"Neos.Form.Builder:PlaceholderInsert\", {}, globalRegistry => {\n const richtextToolbar = globalRegistry\n .get(\"ckEditor5\")\n .get(\"richtextToolbar\");\n richtextToolbar.set(\"placeholderInsertt\", {\n component: PlaceholderInsertDropdown,\n isVisible: editorOptions => editorOptions?.formatting?.placeholderInsert\n });\n\n const config = globalRegistry.get(\"ckEditor5\").get(\"config\");\n config.set(\n \"placeholderInsert\",\n addPlugin(placeholderInsertPlugin, editorOptions => editorOptions?.formatting?.placeholderInsert)\n );\n});\n", "require(\"./manifest\");\n"],
+ "mappings": "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",
+ "names": ["init_manifest", "__esmMin", "init_createConsumerApi", "__esmMin", "init_manifest", "readFromConsumerApi", "key", "args", "init_readFromConsumerApi", "__esmMin", "init_AbstractRegistry", "__esmMin", "init_positionalArraySorter", "__esmMin", "init_SynchronousRegistry", "__esmMin", "init_AbstractRegistry", "init_positionalArraySorter", "init_SynchronousMetaRegistry", "__esmMin", "init_SynchronousRegistry", "init_registry", "__esmMin", "init_SynchronousRegistry", "init_SynchronousMetaRegistry", "dist_default", "init_dist", "__esmMin", "init_createConsumerApi", "init_readFromConsumerApi", "init_registry", "readFromConsumerApi", "require_react_redux", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_ui_components", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_decorators", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_redux_store", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "import_react_redux", "import_react_ui_components", "import_react", "import_neos_ui_decorators", "import_neos_ui_redux_store", "parentNodeContextPath", "PlaceholderInsertDropdown", "init_PlaceholderInsertDropdown", "__esmMin", "contextPath", "path", "context", "value", "options", "formPath", "workspace", "elementsPath", "elementsNode", "firstPageOptions", "furtherPagesPath", "furtherPagesNode", "furtherPageChildren", "pageOptions", "placeholderLabel", "React", "page", "elements", "frontendConfiguration", "ignoreNodeTypeInDropdown", "ignoreAllChildNodesOfNodeTypeInDropdown", "returnValues", "element", "node", "childNodes", "childOptions", "childOption", "__decorateClass", "state", "globalRegistry", "require_ckeditor5_exports", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "import_ckeditor5_exports", "PlaceholderInsertCommand", "PlaceholderInsertPlugin", "init_placeholderInsertPlugin", "__esmMin", "value", "model", "selection", "placeholder", "manifest_exports", "addPlugin", "init_manifest", "__esmMin", "init_dist", "init_PlaceholderInsertDropdown", "init_placeholderInsertPlugin", "Plugin", "isEnabled", "ckEditorConfiguration", "options", "dist_default", "globalRegistry", "PlaceholderInsertDropdown", "editorOptions", "PlaceholderInsertPlugin"]
}