diff --git a/packages/editor/src/helpers/util.ts b/packages/editor/src/helpers/util.ts deleted file mode 100644 index cc2d0f30c..000000000 --- a/packages/editor/src/helpers/util.ts +++ /dev/null @@ -1,108 +0,0 @@ -import * as _ from 'lodash'; -import { - combineReducers, - createStore, - Store -} from 'redux'; -import { - Actions, - jsonformsReducer, -} from '@jsonforms/core'; -import { editorReducer } from '../reducers/index'; - -export interface LabelDefinition { - /** A constant label value displayed for every object for which this label definition applies. */ - constant?: string; - /** The property name that is used to get a variable part of an object's label. */ - property?: string; -} - -/** - * Resolves the given local data path against the root data. - * - * @param rootData the root data to resolve the data from - * @param path The path to resolve against the root data - * @return the resolved data or {null} if the path is not a valid path in the root data - */ -export const resolveLocalData = (rootData: Object, path: string): Object => { - let resolvedData = rootData; - for (const segment of path.split('/')) { - if (segment === '#' || _.isEmpty(segment)) { - continue; - } - if (_.isEmpty(resolvedData) || !resolvedData.hasOwnProperty(segment)) { - console.error(`The local path '${path}' cannot be resolved in the given data:`, rootData); - - return null; - } - resolvedData = resolvedData[segment]; - } - - return resolvedData; - }; - -/** - * Extract the array index from the given path. - */ -export const indexFromPath = (path: string): number => { - return parseInt(_.last(path.split('.')), 10); -}; - -/** - * Gets the parent path from the given path by cutting of the last segment - * - * @param path The path to get the parent path from - */ -export const parentPath = (path: string): string => { - return path.substring(0, path.lastIndexOf('.')); -}; - -// TODO instead of this method with lots of parameters use a fluent pattern -// that allows to configure each parameter with a separate method call. -/** - * Inits a store for a json editor - * - * @param data The initial data - * @param schema The root JSON Schema - * @param uischema The UI Schema - * @param fields The renderer fields (e.g. vanilla or material) - * @param renderers The renderer set (e.g. vanilla or material) - * @param imageMapping The image mapping for the tree's icons - * @param labelMapping The label mapping for the labels shown in the tree - * @param modelMapping The model mapping - * @param uiSchemata The object containing the UI Schemata for the data types displayed by the - * editor. The keys are the schema ids and the values the actual UI Schemata - * @param containerProperties Calculated properties for the given schema - */ -export const createEditorStore = ( - data = {}, - schema, - uischema, - fields, - renderers, - imageMapping?, - labelMapping?, - modelMapping?, - uiSchemata = {}, - containerProperties = {}): Store => { - const store = createStore( - combineReducers({ jsonforms: jsonformsReducer({ editor: editorReducer }) }), - { - jsonforms: { - renderers, - fields, - editor: { - imageMapping, - labelMapping, - modelMapping, - uiSchemata, - containerProperties - } - } - } - ); - - store.dispatch(Actions.init(data, schema, uischema)); - - return store; -}; diff --git a/packages/editor/src/tree/Dialog.tsx b/packages/editor/src/tree/Dialog.tsx deleted file mode 100644 index ffec78dab..000000000 --- a/packages/editor/src/tree/Dialog.tsx +++ /dev/null @@ -1,116 +0,0 @@ -// tslint:disable:jsx-no-multiline-js -// tslint:disable:jsx-no-lambda -import * as React from 'react'; -import * as _ from 'lodash'; -import { connect } from 'react-redux'; -import { - getData, - getSchema, - Paths, - Resolve, - update -} from '@jsonforms/core'; -import { findPropertyLabel, retrieveContainerProperties } from '../services/property.util'; -import { getContainerProperties } from '../reducers'; - -const Dialog = ( - { - add, - path, - closeDialog, - dialogProps, - setSelection, - rootData, - /** - * Self contained schemas of the corresponding schema - */ - containerProperties - }) => { - - return ( - - -
- { - containerProperties - .map(prop => - - ) - } -
- -
- ); -}; - -const mapStateToProps = (state, ownProps) => { - const containerProps = getContainerProperties(state); - let containerProperties; - if (_.has(containerProps, ownProps.schema.id)) { - containerProperties = containerProps[ownProps.schema.id]; - } else { - containerProperties = retrieveContainerProperties(ownProps.schema, ownProps.schema); - } - return { - rootData: getData(state), - containerProperties, - rootSchema: getSchema(state), - }; -}; - -const mapDispatchToProps = dispatch => ({ - add(path, prop, newData) { - dispatch( - update( - Paths.compose(path, prop.property), - array => { - if (_.isEmpty(array)) { - return [newData]; - } - array.push(newData); - - return array; - } - ) - ); - } -}); - -export default connect( - mapStateToProps, - mapDispatchToProps -)(Dialog); diff --git a/packages/example/package.json b/packages/example/package.json index b7b499904..416f62fcc 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -19,7 +19,7 @@ "scripts": { "start": "react-scripts start", "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", + "test": "echo 'Nothing to do'", "eject": "react-scripts eject" } } diff --git a/packages/editor/README.md b/packages/material-tree-renderer/README.md similarity index 100% rename from packages/editor/README.md rename to packages/material-tree-renderer/README.md diff --git a/packages/editor/example/App.tsx b/packages/material-tree-renderer/example/App.tsx similarity index 93% rename from packages/editor/example/App.tsx rename to packages/material-tree-renderer/example/App.tsx index 93962238b..b617a2c65 100644 --- a/packages/editor/example/App.tsx +++ b/packages/material-tree-renderer/example/App.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { Provider } from 'react-redux'; -import EditorIde from '../src/EditorIde'; +import EditorIde from '../src/ThemedTreeWithDetail'; import EditorBar from './app-bar/EditorBar'; import { getData, diff --git a/packages/editor/example/app-bar/EditorBar.tsx b/packages/material-tree-renderer/example/app-bar/EditorBar.tsx similarity index 100% rename from packages/editor/example/app-bar/EditorBar.tsx rename to packages/material-tree-renderer/example/app-bar/EditorBar.tsx diff --git a/packages/editor/example/app-bar/dialogs/ModelSchemaDialog.tsx b/packages/material-tree-renderer/example/app-bar/dialogs/ModelSchemaDialog.tsx similarity index 100% rename from packages/editor/example/app-bar/dialogs/ModelSchemaDialog.tsx rename to packages/material-tree-renderer/example/app-bar/dialogs/ModelSchemaDialog.tsx diff --git a/packages/editor/example/config.ts b/packages/material-tree-renderer/example/config.ts similarity index 100% rename from packages/editor/example/config.ts rename to packages/material-tree-renderer/example/config.ts diff --git a/packages/editor/example/example.css b/packages/material-tree-renderer/example/example.css similarity index 100% rename from packages/editor/example/example.css rename to packages/material-tree-renderer/example/example.css diff --git a/packages/editor/example/icons/Task.png b/packages/material-tree-renderer/example/icons/Task.png similarity index 100% rename from packages/editor/example/icons/Task.png rename to packages/material-tree-renderer/example/icons/Task.png diff --git a/packages/editor/example/icons/User.png b/packages/material-tree-renderer/example/icons/User.png similarity index 100% rename from packages/editor/example/icons/User.png rename to packages/material-tree-renderer/example/icons/User.png diff --git a/packages/editor/example/icons/UserGroup.png b/packages/material-tree-renderer/example/icons/UserGroup.png similarity index 100% rename from packages/editor/example/icons/UserGroup.png rename to packages/material-tree-renderer/example/icons/UserGroup.png diff --git a/packages/editor/example/index.html b/packages/material-tree-renderer/example/index.html similarity index 100% rename from packages/editor/example/index.html rename to packages/material-tree-renderer/example/index.html diff --git a/packages/editor/example/index.ts b/packages/material-tree-renderer/example/index.ts similarity index 100% rename from packages/editor/example/index.ts rename to packages/material-tree-renderer/example/index.ts diff --git a/packages/editor/example/schema.ts b/packages/material-tree-renderer/example/schema.ts similarity index 100% rename from packages/editor/example/schema.ts rename to packages/material-tree-renderer/example/schema.ts diff --git a/packages/editor/example/uischema-example/config.ts b/packages/material-tree-renderer/example/uischema-example/config.ts similarity index 100% rename from packages/editor/example/uischema-example/config.ts rename to packages/material-tree-renderer/example/uischema-example/config.ts diff --git a/packages/editor/example/uischema-example/schema.ts b/packages/material-tree-renderer/example/uischema-example/schema.ts similarity index 100% rename from packages/editor/example/uischema-example/schema.ts rename to packages/material-tree-renderer/example/uischema-example/schema.ts diff --git a/packages/editor/example/uischemata.ts b/packages/material-tree-renderer/example/uischemata.ts similarity index 100% rename from packages/editor/example/uischemata.ts rename to packages/material-tree-renderer/example/uischemata.ts diff --git a/packages/editor/package.json b/packages/material-tree-renderer/package.json similarity index 87% rename from packages/editor/package.json rename to packages/material-tree-renderer/package.json index ac8cac60d..5853ce9d3 100644 --- a/packages/editor/package.json +++ b/packages/material-tree-renderer/package.json @@ -1,7 +1,7 @@ { - "name": "@jsonforms/editor", + "name": "@jsonforms/material-tree-renderer", "version": "2.0.2", - "description": "Editor package for JSON Forms", + "description": "Material-based tree renderer for JSON Forms", "repository": "https://github.com/eclipsesource/jsonforms", "bugs": "https://github.com/eclipsesource/jsonforms/issues", "homepage": "http://jsonforms.io/", @@ -26,7 +26,7 @@ "test": "jest --no-cache", "test-cov": "jest --no-cache", "report": "../../node_modules/.bin/nyc report --reporter=html", - "doc": "../../node_modules/.bin/typedoc --name 'JSON Forms Editor' --mode file --excludeExternals --theme ../../typedoc-jsonforms --out docs src" + "doc": "../../node_modules/.bin/typedoc --name 'JSON Forms Material Tree Renderer' --mode file --excludeExternals --theme ../../typedoc-jsonforms --out docs src" }, "jest": { "moduleFileExtensions": [ @@ -54,7 +54,6 @@ "dependencies": { "@jsonforms/core": "^2.0.2", "@jsonforms/react": "^2.0.2", - "@jsonforms/webcomponent": "^2.0.2", "@material-ui/core": "^1.2.1", "@material-ui/icons": "^1.0.0", "ajv": "^6.4.0", @@ -71,7 +70,6 @@ }, "devDependencies": { "@jsonforms/material-renderers": "^2.0.2", - "@jsonforms/vanilla-renderers": "^2.0.2", "@types/lodash": "^4.14.104", "@types/node": "^8.0.0", "awesome-typescript-loader": "^3.1.3", diff --git a/packages/editor/src/EditorIde.tsx b/packages/material-tree-renderer/src/ThemedTreeWithDetail.tsx similarity index 71% rename from packages/editor/src/EditorIde.tsx rename to packages/material-tree-renderer/src/ThemedTreeWithDetail.tsx index a8ca45353..ee17f6fa0 100644 --- a/packages/editor/src/EditorIde.tsx +++ b/packages/material-tree-renderer/src/ThemedTreeWithDetail.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { TreeRenderer } from './tree/TreeRenderer'; +import { TreeWithDetailRenderer } from './tree/TreeWithDetailRenderer'; import { createMuiTheme, MuiThemeProvider, withStyles } from '@material-ui/core/styles'; const theme = createMuiTheme({ @@ -12,18 +12,18 @@ const theme = createMuiTheme({ }); const styles = { - editor: { + treeWithDetail: { margin: 'auto', width: '100%' }, }; -const EditorIde = props => { +const ThemedTreeWithDetail = props => { const { classes, uischema, schema, filterPredicate, labelProvider, imageProvider} = props; return ( - { ); }; -export default withStyles(styles)(EditorIde); +export default withStyles(styles)(ThemedTreeWithDetail); diff --git a/packages/editor/src/master-detail-layout.ts b/packages/material-tree-renderer/src/TreeWithDetail.ts similarity index 68% rename from packages/editor/src/master-detail-layout.ts rename to packages/material-tree-renderer/src/TreeWithDetail.ts index bcea3a4ff..54d8e80ac 100644 --- a/packages/editor/src/master-detail-layout.ts +++ b/packages/material-tree-renderer/src/TreeWithDetail.ts @@ -4,8 +4,8 @@ import { UISchemaElement } from '@jsonforms/core'; -export interface MasterDetailLayout extends UISchemaElement, Scopable { - type: 'MasterDetailLayout'; +export interface TreeWithDetail extends UISchemaElement, Scopable { + type: 'TreeWithDetail'; /** * An optional label that will be associated with the control */ diff --git a/packages/editor/src/editor-context.ts b/packages/material-tree-renderer/src/editor-context.ts similarity index 87% rename from packages/editor/src/editor-context.ts rename to packages/material-tree-renderer/src/editor-context.ts index ee2c5c551..f66b999db 100644 --- a/packages/editor/src/editor-context.ts +++ b/packages/material-tree-renderer/src/editor-context.ts @@ -2,16 +2,23 @@ import { JsonSchema7 } from '@jsonforms/core'; import { ModelMapping } from './helpers/container.util'; // TODO remove when it is no longer needed by the schema service impl: Besides that it is obsolete +/** + * @deprecated + */ export interface EditorContext { dataSchema: JsonSchema7; identifyingProperty: string; modelMapping: ModelMapping; } - +/** + * @deprecated + */ export interface StringMap { [property: string]: string; } - +/** + * @deprecated + */ export interface ModelMapping { attribute: string; mapping: StringMap; diff --git a/packages/editor/src/editor.ts b/packages/material-tree-renderer/src/editor.ts similarity index 94% rename from packages/editor/src/editor.ts rename to packages/material-tree-renderer/src/editor.ts index e049febca..1c54da308 100644 --- a/packages/editor/src/editor.ts +++ b/packages/material-tree-renderer/src/editor.ts @@ -2,6 +2,8 @@ import { JsonSchema } from '@jsonforms/core'; /** * Interface defining a minimal interface for a JsonSchema-based editor. + * + * @deprecated */ export interface Editor { /** diff --git a/packages/editor/src/helpers/container.util.ts b/packages/material-tree-renderer/src/helpers/container.util.ts similarity index 89% rename from packages/editor/src/helpers/container.util.ts rename to packages/material-tree-renderer/src/helpers/container.util.ts index c669bb955..e069465c3 100644 --- a/packages/editor/src/helpers/container.util.ts +++ b/packages/material-tree-renderer/src/helpers/container.util.ts @@ -7,10 +7,9 @@ import { Property } from '../services/property.util'; * * @param data The data object to match * @param properties The array of properties of root schema - * @param modelMapping The model mapping used to filter properties of the given data + * @param filterPredicate used to filter properties of the given data * @return The matching {@link Property} */ -// TODO type model mapping export const matchContainerProperty = (data: Object, properties: Property[], filterPredicate: any) => { // TODO improve handling diff --git a/packages/material-tree-renderer/src/helpers/util.ts b/packages/material-tree-renderer/src/helpers/util.ts new file mode 100644 index 000000000..15427dff7 --- /dev/null +++ b/packages/material-tree-renderer/src/helpers/util.ts @@ -0,0 +1,48 @@ +import * as _ from 'lodash'; + +export interface LabelDefinition { + /** A constant label value displayed for every object for which this label definition applies. */ + constant?: string; + /** The property name that is used to get a variable part of an object's label. */ + property?: string; +} + +/** + * Resolves the given local data path against the root data. + * + * @param rootData the root data to resolve the data from + * @param path The path to resolve against the root data + * @return the resolved data or {null} if the path is not a valid path in the root data + */ +export const resolveLocalData = (rootData: Object, path: string): Object => { + let resolvedData = rootData; + for (const segment of path.split('/')) { + if (segment === '#' || _.isEmpty(segment)) { + continue; + } + if (_.isEmpty(resolvedData) || !resolvedData.hasOwnProperty(segment)) { + console.warn(`The local path '${path}' cannot be resolved in the given data:`, rootData); + + return null; + } + resolvedData = resolvedData[segment]; + } + + return resolvedData; + }; + +/** + * Extract the array index from the given path. + */ +export const indexFromPath = (path: string): number => { + return parseInt(_.last(path.split('.')), 10); +}; + +/** + * Gets the parent path from the given path by cutting of the last segment + * + * @param path The path to get the parent path from + */ +export const parentPath = (path: string): string => { + return path.substring(0, path.lastIndexOf('.')); +}; diff --git a/packages/editor/src/index.ts b/packages/material-tree-renderer/src/index.ts similarity index 70% rename from packages/editor/src/index.ts rename to packages/material-tree-renderer/src/index.ts index 7898ff032..243f22238 100644 --- a/packages/editor/src/index.ts +++ b/packages/material-tree-renderer/src/index.ts @@ -1,7 +1,7 @@ -export * from './EditorIde'; -export * from './master-detail-layout'; +export * from './ThemedTreeWithDetail'; +export * from './TreeWithDetail'; export * from './editor'; -export * from './tree/TreeRenderer'; +export * from './tree/TreeWithDetailRenderer'; export * from './helpers/util'; export * from './reducers/index'; diff --git a/packages/editor/src/reducers/index.ts b/packages/material-tree-renderer/src/reducers/index.ts similarity index 83% rename from packages/editor/src/reducers/index.ts rename to packages/material-tree-renderer/src/reducers/index.ts index 5cc924113..147b16b4e 100644 --- a/packages/editor/src/reducers/index.ts +++ b/packages/material-tree-renderer/src/reducers/index.ts @@ -2,27 +2,30 @@ import * as _ from 'lodash'; import { ModelMapping } from '../editor-context'; import { Property } from '../services/property.util'; -export const ADD_UI_SCHEMA: 'jsonforms/editor/ADD_UISCHEMA' = 'jsonforms/editor/ADD_UISCHEMA'; +export const ADD_UI_SCHEMA: 'jsonforms/treeWithDetail/ADD_UISCHEMA' = + 'jsonforms/treeWithDetail/ADD_UISCHEMA'; export const SET_CONTAINER_PROPERTIES: - 'jsonforms/editor/SET_CONTAINER_PROPERTIES' = - 'jsonforms/editor/SET_CONTAINER_PROPERTIES'; + 'jsonforms/treeWithDetail/SET_CONTAINER_PROPERTIES' = + 'jsonforms/treeWithDetail/SET_CONTAINER_PROPERTIES'; -export const getUiSchemata = state => extractUiSchemata(state.jsonforms.editor); -export const getImageMapping = state => extractImageMapping(state.jsonforms.editor); -export const getLabelMapping = state => extractLabelMapping(state.jsonforms.editor); -export const getModelMapping = state => extractModelMapping(state.jsonforms.editor); -export const getResources = state => extractResources(state.jsonforms.editor); -export const getIdentifyingProperty = state => extractIdentifyingProperty(state.jsonforms.editor); -export const getContainerProperties = state => extractContainerProperties(state.jsonforms.editor); +export const getUiSchemata = state => extractUiSchemata(state.jsonforms.treeWithDetail); +export const getImageMapping = state => extractImageMapping(state.jsonforms.treeWithDetail); +export const getLabelMapping = state => extractLabelMapping(state.jsonforms.treeWithDetail); +export const getModelMapping = state => extractModelMapping(state.jsonforms.treeWithDetail); +export const getResources = state => extractResources(state.jsonforms.treeWithDetail); +export const getIdentifyingProperty = state => + extractIdentifyingProperty(state.jsonforms.treeWithDetail); +export const getContainerProperties = state => + extractContainerProperties(state.jsonforms.treeWithDetail); export interface AddUiSchemaAction { - type: 'jsonforms/editor/ADD_UISCHEMA'; + type: 'jsonforms/treeWithDetail/ADD_UISCHEMA'; schemaId: string; uiSchema: any; } export interface SetContainerPropertiesAction { - type: 'jsonforms/editor/SET_CONTAINER_PROPERTIES'; + type: 'jsonforms/treeWithDetail/SET_CONTAINER_PROPERTIES'; containerProperties: { [schemaId: string]: Property[] }; } @@ -37,7 +40,7 @@ const extractContainerProperties = state => state.containerProperties; // TODO Add action to add a resource when referencing is implemented /** - * Creates an action to add a detail UI schema for the editor. + * Creates an action to add a detail UI schema for the Tree with detail. * If there already is a UI Schema for the given schema id, * it is overwritten with the given one. * @@ -57,7 +60,7 @@ export const addUiSchema = (schemaId: string, uiSchema): AddUiSchemaAction => { * If there already are container properties for the given schema id * they are overwritten with the given one * - * @param {[schemaId: string]: Property[]} containerProperties + * @param containerProperties * @returns {SetContainerPropertiesAction} */ export const setContainerProperties = @@ -69,10 +72,10 @@ export const setContainerProperties = }; }; -export interface EditorState { +export interface TreeWithDetailState { uiSchemata?: { [uiSchemaId: string]: any }; /** - * Configures the image mappings for the types defined in the editor's schema. + * Configures the image mappings for the types defined in the treeWithDetail's schema. * An image mapping maps from a schema id to the schema's image name. * This name is used to resolve the css style that configure a label * for instances of the type in the containment tree. @@ -80,7 +83,7 @@ export interface EditorState { */ imageMapping?: { [schemaId: string]: string }; /** - * Configures the label mappings for the types defined in the editor's schema. + * Configures the label mappings for the types defined in the treeWithDetail's schema. * A label mapping maps from a schema id to a property defined in this schema. * This property defines the name of a rendered object in the containment tree. * Both the id and the property name are configured as Strings. @@ -124,12 +127,12 @@ export interface EditorState { containerProperties: { [schemaId: string]: Property[] }; } -export const editorReducer = ( - state: EditorState = { +export const treeWithDetailReducer = ( + state: TreeWithDetailState = { uiSchemata: {}, containerProperties: {} }, - action): EditorState => { + action): TreeWithDetailState => { switch (action.type) { case ADD_UI_SCHEMA: if (_.isEmpty(action.schemaId)) { diff --git a/packages/editor/src/resources/resource-set.ts b/packages/material-tree-renderer/src/resources/resource-set.ts similarity index 100% rename from packages/editor/src/resources/resource-set.ts rename to packages/material-tree-renderer/src/resources/resource-set.ts diff --git a/packages/editor/src/resources/resources.ts b/packages/material-tree-renderer/src/resources/resources.ts similarity index 100% rename from packages/editor/src/resources/resources.ts rename to packages/material-tree-renderer/src/resources/resources.ts diff --git a/packages/editor/src/services/property.util.ts b/packages/material-tree-renderer/src/services/property.util.ts similarity index 100% rename from packages/editor/src/services/property.util.ts rename to packages/material-tree-renderer/src/services/property.util.ts diff --git a/packages/editor/src/services/reference.service.ts b/packages/material-tree-renderer/src/services/reference.service.ts similarity index 100% rename from packages/editor/src/services/reference.service.ts rename to packages/material-tree-renderer/src/services/reference.service.ts diff --git a/packages/editor/src/tree/EditorDialog.tsx b/packages/material-tree-renderer/src/tree/AddItemDialog.tsx similarity index 95% rename from packages/editor/src/tree/EditorDialog.tsx rename to packages/material-tree-renderer/src/tree/AddItemDialog.tsx index 3683f8121..0695a0e47 100644 --- a/packages/editor/src/tree/EditorDialog.tsx +++ b/packages/material-tree-renderer/src/tree/AddItemDialog.tsx @@ -22,7 +22,7 @@ import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; -export interface EditorDialogProps { +export interface AddItemDialogProps { rootData: any; containerProperties: any; rootSchema: any; @@ -34,7 +34,7 @@ export interface EditorDialogProps { add?: any; } -class EditorDialog extends React.Component { +class AddItemDialog extends React.Component { render() { const { @@ -142,4 +142,4 @@ const mapDispatchToProps = dispatch => ({ } }); -export default connect(mapStateToProps, mapDispatchToProps)(EditorDialog); +export default connect(mapStateToProps, mapDispatchToProps)(AddItemDialog); diff --git a/packages/editor/src/tree/ExpandArray.tsx b/packages/material-tree-renderer/src/tree/ExpandArray.tsx similarity index 100% rename from packages/editor/src/tree/ExpandArray.tsx rename to packages/material-tree-renderer/src/tree/ExpandArray.tsx diff --git a/packages/editor/src/tree/ExpandRootArray.tsx b/packages/material-tree-renderer/src/tree/ExpandRootArray.tsx similarity index 100% rename from packages/editor/src/tree/ExpandRootArray.tsx rename to packages/material-tree-renderer/src/tree/ExpandRootArray.tsx diff --git a/packages/editor/src/tree/ObjectListItem.tsx b/packages/material-tree-renderer/src/tree/ObjectListItem.tsx similarity index 100% rename from packages/editor/src/tree/ObjectListItem.tsx rename to packages/material-tree-renderer/src/tree/ObjectListItem.tsx diff --git a/packages/editor/src/tree/TreeRenderer.tsx b/packages/material-tree-renderer/src/tree/TreeWithDetailRenderer.tsx similarity index 96% rename from packages/editor/src/tree/TreeRenderer.tsx rename to packages/material-tree-renderer/src/tree/TreeWithDetailRenderer.tsx index 838b34c59..fd312c1b2 100644 --- a/packages/editor/src/tree/TreeRenderer.tsx +++ b/packages/material-tree-renderer/src/tree/TreeWithDetailRenderer.tsx @@ -14,18 +14,15 @@ import { Runtime, UISchemaElement, } from '@jsonforms/core'; -import { - Control, - JsonForms -} from '@jsonforms/react'; +import { Control, JsonForms } from '@jsonforms/react'; import { connect } from 'react-redux'; import ObjectListItem from './ObjectListItem'; import ExpandRootArray from './ExpandRootArray'; -import EditorDialog from './EditorDialog'; +import AddItemDialog from './AddItemDialog'; import HTML5Backend from 'react-dnd-html5-backend'; // import TouchBackend from 'react-dnd-touch-backend'; import { DragDropContext } from 'react-dnd'; -import { MasterDetailLayout } from '../master-detail-layout'; +import { TreeWithDetail } from '../TreeWithDetail'; import { getUiSchemata } from '../reducers'; import { StyleRulesCallback, @@ -187,7 +184,7 @@ export class TreeMasterDetail extends Control componentWillMount() { const { uischema, resolvedRootData, resolvedSchema } = this.props; - const controlElement = uischema as MasterDetailLayout; + const controlElement = uischema as TreeWithDetail; this.setState({ dialog: { open: false, @@ -249,7 +246,7 @@ export class TreeMasterDetail extends Control render() { const { uischema, schema, resolvedSchema, visible, path, resolvedRootData, rootData, addToRoot, uiSchemata, filterPredicate, labelProvider, imageProvider, classes } = this.props; - const controlElement = uischema as MasterDetailLayout; + const controlElement = uischema as TreeWithDetail; const dialogProps = { open: this.state.dialog.open }; @@ -315,7 +312,7 @@ export class TreeMasterDetail extends Control
{ this.state.dialog.open && - => { + const store = createStore( + combineReducers({ jsonforms: jsonformsReducer({ treeWithDetail: treeWithDetailReducer }) }), + { + jsonforms: { + renderers, + fields, + treeWithDetail: { + imageMapping, + labelMapping, + modelMapping, + uiSchemata, + containerProperties + } + } + } + ); + + store.dispatch(Actions.init(data, schema, uischema)); + + return store; +}; const taskSchema = { 'type': 'object', diff --git a/packages/editor/test/services/property.util.test.ts b/packages/material-tree-renderer/test/services/property.util.test.ts similarity index 100% rename from packages/editor/test/services/property.util.test.ts rename to packages/material-tree-renderer/test/services/property.util.test.ts diff --git a/packages/editor/test/services/reference.service.test.ts b/packages/material-tree-renderer/test/services/reference.service.test.ts similarity index 100% rename from packages/editor/test/services/reference.service.test.ts rename to packages/material-tree-renderer/test/services/reference.service.test.ts diff --git a/packages/editor/test/tsconfig.test.json b/packages/material-tree-renderer/test/tsconfig.test.json similarity index 100% rename from packages/editor/test/tsconfig.test.json rename to packages/material-tree-renderer/test/tsconfig.test.json diff --git a/packages/editor/tsconfig.json b/packages/material-tree-renderer/tsconfig.json similarity index 100% rename from packages/editor/tsconfig.json rename to packages/material-tree-renderer/tsconfig.json diff --git a/packages/editor/webpack/webpack.build.js b/packages/material-tree-renderer/webpack/webpack.build.js similarity index 100% rename from packages/editor/webpack/webpack.build.js rename to packages/material-tree-renderer/webpack/webpack.build.js diff --git a/packages/editor/webpack/webpack.dev.js b/packages/material-tree-renderer/webpack/webpack.dev.js similarity index 100% rename from packages/editor/webpack/webpack.dev.js rename to packages/material-tree-renderer/webpack/webpack.dev.js