,
+ S extends ComponentModelEditorState>
+
+ extends React.Component {
+
+ constructor(props: ComponentModelEditorProps) {
+
+ super(props as any);
+
+ this.setState({
+ ...this.state as any,
+ dialogExpanded: "dialogClosed",
+ });
}
public abstract renderPropertyList(): React.ReactFragment;
@@ -914,7 +930,7 @@ abstract class AbstractComponentModelEditor
public render(): React.ReactNode {
- return
+ return
- Key
- {this.props.component.key}
@@ -922,11 +938,46 @@ abstract class AbstractComponentModelEditor
- {this.props.component.type}
{this.renderPropertyList}
+
+
;
}
+
+ private toggleEditorDialog(
+ event: React.MouseEvent): void {
+
+ if (this.state.dialogExpanded === "dialogExpanded") {
+ this.setState({
+ ...this.state as any,
+ dialogExpanded: "dialogClosed",
+ });
+ } else {
+ this.setState({
+ ...this.state as any,
+ dialogExpanded: "dialogExpanded",
+ });
+ }
+ }
}
-class DefaultComponentModelEditor extends AbstractComponentModelEditor {
+class DefaultComponentModelEditor
+ extends AbstractComponentModelEditor<
+ ComponentModel,
+ ComponentModelEditorProps,
+ ComponentModelEditorState> {
+
+ constructor(props: ComponentModelEditorProps) {
+
+ super(props);
+
+ this.setState({
+ dialogExpanded: "dialogClosed",
+ });
+ }
public renderPropertyList(): React.ReactFragment {
@@ -974,6 +1025,9 @@ class PageModelEditor
public static getAvailableComponents(): {
[type: string]: (component: ComponentModel) => React.ReactFragment} {
+ console.log("Available editors:");
+ console.log(PageModelEditor.componentModelEditors.toString());
+
return {
...PageModelEditor.componentModelEditors,
};
diff --git a/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css b/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
index 040de0a63..da7e1f1c6 100644
--- a/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
+++ b/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
@@ -2064,3 +2064,24 @@ div.errorPanel {
bottom: 5em;
left: 5em;
} */
+
+li.componentModelEditor dialog.closed {
+ display: none;
+}
+
+li.componentModelEditor dialog.closed {
+
+ border: 2px solid #ccc;
+ border-radius: 3em;
+
+ display: block;
+
+ position: fixed;
+ top: 10vh;
+ right: 10vw;
+ bottom: 10vh;
+ left: 10vw;
+
+ width: 80vw;
+ height: 80vh;
+}