From 8f66031103e09cb2cd90a4730243c3cd396f2153 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 9 Dec 2021 16:22:13 +0100 Subject: [PATCH] wip --- addons/docs/package.json | 2 +- lib/components/package.json | 18 +- lib/components/scripts/prebundle.js | 42 ++++ lib/components/src/blocks/Preview.tsx | 2 +- lib/components/src/blocks/Story.tsx | 5 +- lib/components/src/blocks/StorySkeleton.tsx | 4 + .../{JsonAddValue.js => JsonAddValue.tsx} | 18 +- .../{JsonArray.js => JsonArray.tsx} | 22 +- ...FunctionValue.js => JsonFunctionValue.tsx} | 15 +- .../components/{JsonNode.js => JsonNode.tsx} | 9 +- .../{JsonObject.js => JsonObject.tsx} | 19 +- .../{JsonValue.js => JsonValue.tsx} | 13 +- .../{index.js => index.tsx} | 37 +-- .../types/{dataTypes.js => dataTypes.ts} | 0 .../types/{deltaTypes.js => deltaTypes.ts} | 0 ...{inputUsageTypes.js => inputUsageTypes.ts} | 0 .../utils/{objectTypes.js => objectTypes.ts} | 0 .../utils/{parse.js => parse.ts} | 2 +- .../utils/{styles.js => styles.ts} | 0 lib/core-client/scripts/prebundle.js | 9 +- yarn.lock | 225 +++++++++++++++++- 21 files changed, 363 insertions(+), 79 deletions(-) create mode 100644 lib/components/scripts/prebundle.js create mode 100644 lib/components/src/blocks/StorySkeleton.tsx rename lib/components/src/controls/react-editable-json-tree/components/{JsonAddValue.js => JsonAddValue.tsx} (93%) rename lib/components/src/controls/react-editable-json-tree/components/{JsonArray.js => JsonArray.tsx} (95%) rename lib/components/src/controls/react-editable-json-tree/components/{JsonFunctionValue.js => JsonFunctionValue.tsx} (95%) rename lib/components/src/controls/react-editable-json-tree/components/{JsonNode.js => JsonNode.tsx} (98%) rename lib/components/src/controls/react-editable-json-tree/components/{JsonObject.js => JsonObject.tsx} (96%) rename lib/components/src/controls/react-editable-json-tree/components/{JsonValue.js => JsonValue.tsx} (95%) rename lib/components/src/controls/react-editable-json-tree/{index.js => index.tsx} (82%) rename lib/components/src/controls/react-editable-json-tree/types/{dataTypes.js => dataTypes.ts} (100%) rename lib/components/src/controls/react-editable-json-tree/types/{deltaTypes.js => deltaTypes.ts} (100%) rename lib/components/src/controls/react-editable-json-tree/types/{inputUsageTypes.js => inputUsageTypes.ts} (100%) rename lib/components/src/controls/react-editable-json-tree/utils/{objectTypes.js => objectTypes.ts} (100%) rename lib/components/src/controls/react-editable-json-tree/utils/{parse.js => parse.ts} (92%) rename lib/components/src/controls/react-editable-json-tree/utils/{styles.js => styles.ts} (100%) diff --git a/addons/docs/package.json b/addons/docs/package.json index abc86f63fa07..6474e27435bd 100644 --- a/addons/docs/package.json +++ b/addons/docs/package.json @@ -68,7 +68,7 @@ "@storybook/builder-webpack4": "6.5.0-alpha.1", "@storybook/client-logger": "6.5.0-alpha.1", "@storybook/components": "6.5.0-alpha.1", - "@storybook/core": "6.5.0-alpha.1", + "@storybook/core-common": "6.5.0-alpha.1", "@storybook/core-events": "6.5.0-alpha.1", "@storybook/csf": "0.0.2--canary.87bc651.0", "@storybook/csf-tools": "6.5.0-alpha.1", diff --git a/lib/components/package.json b/lib/components/package.json index 0d6813e77580..a5e9bd7f4f9a 100644 --- a/lib/components/package.json +++ b/lib/components/package.json @@ -20,8 +20,8 @@ }, "license": "MIT", "sideEffects": false, - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "main": "bundle/index.js", + "module": "bundle/index.js", "types": "dist/ts3.9/index.d.ts", "typesVersions": { "<3.8": { @@ -37,7 +37,8 @@ "*.d.ts" ], "scripts": { - "prepare": "node ../../scripts/prepare.js" + "prepare": "node ../../scripts/prepare.js", + "prebundle": "node ./scripts/prebundle.js" }, "dependencies": { "@popperjs/core": "^2.6.0", @@ -66,8 +67,15 @@ "util-deprecate": "^1.0.2" }, "devDependencies": { + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-typescript": "^8.3.0", "css": "^3.0.0", - "jest": "^26.6.3" + "jest": "^26.6.3", + "rollup": "^2.60.2", + "rollup-plugin-jsx": "^1.0.3" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0", @@ -77,5 +85,5 @@ "access": "public" }, "gitHead": "fbf6e247a099ec45c30f8594f255a088847b7957", - "sbmodern": "dist/modern/index.js" + "sbmodern": "bundle/index.js" } diff --git a/lib/components/scripts/prebundle.js b/lib/components/scripts/prebundle.js new file mode 100644 index 000000000000..fd5e388b9865 --- /dev/null +++ b/lib/components/scripts/prebundle.js @@ -0,0 +1,42 @@ +const { resolve } = require('path'); +const rollup = require('rollup'); + +const rollupTypescript = require('@rollup/plugin-typescript'); +const { nodeResolve } = require('@rollup/plugin-node-resolve'); +const commonjs = require('@rollup/plugin-commonjs'); +const json = require('@rollup/plugin-json'); +const { babel } = require('@rollup/plugin-babel'); + +const previewInputOptions = { + input: resolve(__dirname, '../src/index.ts'), // conditionally required + plugins: [ + nodeResolve(), + commonjs(), + json(), + babel({ babelHelpers: 'bundled' }), + rollupTypescript(), + ], + external: ['@storybook/addons', '@storybook/theming', 'react', 'react-dom', '@storybook/csf'], +}; + +const previewOutputOptions = { + dir: resolve(__dirname, '../bundle'), + format: 'es', // required +}; + +// see below for details on the options + +async function build() { + // create a bundle + const bundle = await rollup.rollup(previewInputOptions); + + await bundle.generate(previewOutputOptions); + + // or write the bundle to disk + await bundle.write(previewOutputOptions); + + // closes the bundle + await bundle.close(); +} + +build(); diff --git a/lib/components/src/blocks/Preview.tsx b/lib/components/src/blocks/Preview.tsx index 1d142a66f4f9..2735989b6e35 100644 --- a/lib/components/src/blocks/Preview.tsx +++ b/lib/components/src/blocks/Preview.tsx @@ -17,7 +17,7 @@ import { ActionBar, ActionItem } from '../ActionBar/ActionBar'; import { Toolbar } from './Toolbar'; import { ZoomContext } from './ZoomContext'; import { Zoom } from '../Zoom/Zoom'; -import { StorySkeleton } from '.'; +import { StorySkeleton } from './StorySkeleton'; export interface PreviewProps { isLoading?: true; diff --git a/lib/components/src/blocks/Story.tsx b/lib/components/src/blocks/Story.tsx index e32962a6242b..5da475dc4575 100644 --- a/lib/components/src/blocks/Story.tsx +++ b/lib/components/src/blocks/Story.tsx @@ -5,7 +5,6 @@ import type { Parameters } from '@storybook/api'; import { IFrame } from './IFrame'; import { EmptyBlock } from './EmptyBlock'; import { ZoomContext } from './ZoomContext'; -import { Loader } from '..'; const BASE_URL = 'iframe.html'; @@ -91,6 +90,4 @@ const Story: FunctionComponent ; - -export { Story, StorySkeleton }; +export { Story }; diff --git a/lib/components/src/blocks/StorySkeleton.tsx b/lib/components/src/blocks/StorySkeleton.tsx new file mode 100644 index 000000000000..20ea47d72c52 --- /dev/null +++ b/lib/components/src/blocks/StorySkeleton.tsx @@ -0,0 +1,4 @@ +import React from 'react'; +import { Loader } from '../Loader/Loader'; + +export const StorySkeleton = () => ; diff --git a/lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.js b/lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.tsx similarity index 93% rename from lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.js rename to lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.tsx index 55971aafb60f..ecefb5d6112b 100644 --- a/lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.js +++ b/lib/components/src/controls/react-editable-json-tree/components/JsonAddValue.tsx @@ -3,8 +3,8 @@ import PropTypes from 'prop-types'; import inputUsageTypes from '../types/inputUsageTypes'; -class JsonAddValue extends Component { - constructor(props) { +class JsonAddValue extends Component { + constructor(props: any) { super(props); this.state = { inputRefKey: null, @@ -36,7 +36,7 @@ class JsonAddValue extends Component { document.removeEventListener('keydown', this.onKeydown); } - onKeydown(event) { + onKeydown(event: KeyboardEvent) { if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return; if (event.code === 'Enter' || event.key === 'Enter') { event.preventDefault(); @@ -51,7 +51,7 @@ class JsonAddValue extends Component { onSubmit() { const { handleAdd, onlyValue, onSubmitValueParser, keyPath, deep } = this.props; const { inputRefKey, inputRefValue } = this.state; - const result = {}; + const result: any = {}; // Check if we have the key if (!onlyValue) { // Check that there is a key @@ -66,11 +66,13 @@ class JsonAddValue extends Component { handleAdd(result); } - refInputKey(node) { + refInputKey(node: any) { + //@ts-ignore this.state.inputRefKey = node; } - - refInputValue(node) { + + refInputValue(node:any) { + //@ts-ignore this.state.inputRefValue = node; } @@ -116,6 +118,7 @@ class JsonAddValue extends Component { } } +//@ts-ignore JsonAddValue.propTypes = { handleAdd: PropTypes.func.isRequired, handleCancel: PropTypes.func.isRequired, @@ -128,6 +131,7 @@ JsonAddValue.propTypes = { onSubmitValueParser: PropTypes.func.isRequired, }; +//@ts-ignore JsonAddValue.defaultProps = { onlyValue: false, addButtonElement: , diff --git a/lib/components/src/controls/react-editable-json-tree/components/JsonArray.js b/lib/components/src/controls/react-editable-json-tree/components/JsonArray.tsx similarity index 95% rename from lib/components/src/controls/react-editable-json-tree/components/JsonArray.js rename to lib/components/src/controls/react-editable-json-tree/components/JsonArray.tsx index 61bf8240aa2f..d548e24ed1e4 100644 --- a/lib/components/src/controls/react-editable-json-tree/components/JsonArray.js +++ b/lib/components/src/controls/react-editable-json-tree/components/JsonArray.tsx @@ -5,8 +5,8 @@ import JsonNode from './JsonNode'; import JsonAddValue from './JsonAddValue'; import { ADD_DELTA_TYPE, REMOVE_DELTA_TYPE, UPDATE_DELTA_TYPE } from '../types/deltaTypes'; -class JsonArray extends Component { - constructor(props) { +class JsonArray extends Component { + constructor(props: any) { super(props); const keyPath = [...props.keyPath, props.name]; this.state = { @@ -31,11 +31,11 @@ class JsonArray extends Component { this.renderNotCollapsed = this.renderNotCollapsed.bind(this); } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props:any, state:any) { return props.data !== state.data ? { data: props.data } : null; } - onChildUpdate(childKey, childData) { + onChildUpdate(childKey:any, childData:any) { const { data, keyPath } = this.state; // Update data data[childKey] = childData; @@ -56,12 +56,12 @@ class JsonArray extends Component { } handleCollapseMode() { - this.setState((state) => ({ + this.setState((state:any) => ({ collapsed: !state.collapsed, })); } - handleRemoveItem(index) { + handleRemoveItem(index:any) { return () => { const { beforeRemoveAction, logger } = this.props; const { data, keyPath, nextDeep: deep } = this.state; @@ -91,7 +91,7 @@ class JsonArray extends Component { }; } - handleAddValueAdd({ newValue }) { + handleAddValueAdd({ newValue }:any) { const { data, keyPath, nextDeep: deep } = this.state; const { beforeAddAction, logger } = this.props; @@ -125,7 +125,7 @@ class JsonArray extends Component { }); } - handleEditValue({ key, value }) { + handleEditValue({ key, value }:any) { return new Promise((resolve, reject) => { const { beforeUpdateAction } = this.props; const { data, keyPath, nextDeep: deep } = this.state; @@ -155,6 +155,7 @@ class JsonArray extends Component { oldValue, }); // Resolve + //@ts-ignore resolve(); }) .catch(reject); @@ -233,7 +234,7 @@ class JsonArray extends Component { {!addFormVisible && addItemButton}
    - {data.map((item, index) => ( + {data.map((item:any, index:number) => ( { + constructor(props:any) { super(props); const keyPath = [...props.keyPath, props.name]; this.state = { @@ -25,7 +25,7 @@ class JsonFunctionValue extends Component { this.onKeydown = this.onKeydown.bind(this); } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props:any, state:any) { return props.value !== state.value ? { value: props.value } : null; } @@ -47,7 +47,7 @@ class JsonFunctionValue extends Component { document.removeEventListener('keydown', this.onKeydown); } - onKeydown(event) { + onKeydown(event:KeyboardEvent) { if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return; if (event.code === 'Enter' || event.key === 'Enter') { event.preventDefault(); @@ -88,7 +88,8 @@ class JsonFunctionValue extends Component { }); } - refInput(node) { + refInput(node:any) { + //@ts-ignore this.state.inputRef = node; } @@ -178,6 +179,7 @@ class JsonFunctionValue extends Component { } } +//@ts-ignore JsonFunctionValue.propTypes = { name: PropTypes.string.isRequired, value: PropTypes.any.isRequired, @@ -197,7 +199,8 @@ JsonFunctionValue.propTypes = { onSubmitValueParser: PropTypes.func.isRequired, }; -JsonFunctionValue.defaultProps = { +//@ts-ignore + JsonFunctionValue.defaultProps = { keyPath: [], deep: 0, handleUpdateValue: () => {}, diff --git a/lib/components/src/controls/react-editable-json-tree/components/JsonNode.js b/lib/components/src/controls/react-editable-json-tree/components/JsonNode.tsx similarity index 98% rename from lib/components/src/controls/react-editable-json-tree/components/JsonNode.js rename to lib/components/src/controls/react-editable-json-tree/components/JsonNode.tsx index ca46745edc6c..36ffc4f23585 100644 --- a/lib/components/src/controls/react-editable-json-tree/components/JsonNode.js +++ b/lib/components/src/controls/react-editable-json-tree/components/JsonNode.tsx @@ -8,8 +8,8 @@ import JsonFunctionValue from './JsonFunctionValue'; import { getObjectType } from '../utils/objectTypes'; import dataTypes from '../types/dataTypes'; -class JsonNode extends Component { - constructor(props) { +class JsonNode extends Component { + constructor(props: any) { super(props); this.state = { data: props.data, @@ -19,7 +19,7 @@ class JsonNode extends Component { }; } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props:any, state:any) { return props.data !== state.data ? { data: props.data } : null; } @@ -308,6 +308,7 @@ class JsonNode extends Component { } } +//@ts-ignore JsonNode.propTypes = { name: PropTypes.string.isRequired, data: PropTypes.any, @@ -333,7 +334,7 @@ JsonNode.propTypes = { logger: PropTypes.object.isRequired, onSubmitValueParser: PropTypes.func.isRequired, }; - +//@ts-ignore JsonNode.defaultProps = { keyPath: [], deep: 0, diff --git a/lib/components/src/controls/react-editable-json-tree/components/JsonObject.js b/lib/components/src/controls/react-editable-json-tree/components/JsonObject.tsx similarity index 96% rename from lib/components/src/controls/react-editable-json-tree/components/JsonObject.js rename to lib/components/src/controls/react-editable-json-tree/components/JsonObject.tsx index 7e3c298e97d8..1410d654dd0a 100644 --- a/lib/components/src/controls/react-editable-json-tree/components/JsonObject.js +++ b/lib/components/src/controls/react-editable-json-tree/components/JsonObject.tsx @@ -5,8 +5,8 @@ import JsonNode from './JsonNode'; import JsonAddValue from './JsonAddValue'; import { ADD_DELTA_TYPE, REMOVE_DELTA_TYPE, UPDATE_DELTA_TYPE } from '../types/deltaTypes'; -class JsonObject extends Component { - constructor(props) { +class JsonObject extends Component { + constructor(props: any) { super(props); const keyPath = props.deep === -1 ? [] : [...props.keyPath, props.name]; this.state = { @@ -31,11 +31,11 @@ class JsonObject extends Component { this.renderNotCollapsed = this.renderNotCollapsed.bind(this); } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props: any, state: any) { return props.data !== state.data ? { data: props.data } : null; } - onChildUpdate(childKey, childData) { + onChildUpdate(childKey: any, childData: any) { const { data, keyPath } = this.state; // Update data data[childKey] = childData; @@ -61,7 +61,7 @@ class JsonObject extends Component { }); } - handleAddValueAdd({ key, newValue }) { + handleAddValueAdd({ key, newValue }: any) { const { data, keyPath, nextDeep: deep } = this.state; const { beforeAddAction, logger } = this.props; @@ -89,7 +89,7 @@ class JsonObject extends Component { .catch(logger.error); } - handleRemoveValue(key) { + handleRemoveValue(key: any) { return () => { const { beforeRemoveAction, logger } = this.props; const { data, keyPath, nextDeep: deep } = this.state; @@ -119,12 +119,12 @@ class JsonObject extends Component { } handleCollapseMode() { - this.setState((state) => ({ + this.setState((state: any) => ({ collapsed: !state.collapsed, })); } - handleEditValue({ key, value }) { + handleEditValue({ key, value }: any) { return new Promise((resolve, reject) => { const { beforeUpdateAction } = this.props; const { data, keyPath, nextDeep: deep } = this.state; @@ -154,6 +154,7 @@ class JsonObject extends Component { oldValue, }); // Resolve + //@ts-ignore resolve(); }) .catch(reject); @@ -310,6 +311,7 @@ class JsonObject extends Component { } } +//@ts-ignore JsonObject.propTypes = { data: PropTypes.object.isRequired, name: PropTypes.string.isRequired, @@ -336,6 +338,7 @@ JsonObject.propTypes = { onSubmitValueParser: PropTypes.func.isRequired, }; +//@ts-ignore JsonObject.defaultProps = { keyPath: [], deep: 0, diff --git a/lib/components/src/controls/react-editable-json-tree/components/JsonValue.js b/lib/components/src/controls/react-editable-json-tree/components/JsonValue.tsx similarity index 95% rename from lib/components/src/controls/react-editable-json-tree/components/JsonValue.js rename to lib/components/src/controls/react-editable-json-tree/components/JsonValue.tsx index f2bf4dcd056f..4269defb0e1d 100644 --- a/lib/components/src/controls/react-editable-json-tree/components/JsonValue.js +++ b/lib/components/src/controls/react-editable-json-tree/components/JsonValue.tsx @@ -4,8 +4,8 @@ import PropTypes from 'prop-types'; import { isComponentWillChange } from '../utils/objectTypes'; import inputUsageTypes from '../types/inputUsageTypes'; -class JsonValue extends Component { - constructor(props) { +class JsonValue extends Component { + constructor(props: any) { super(props); const keyPath = [...props.keyPath, props.name]; this.state = { @@ -25,7 +25,7 @@ class JsonValue extends Component { this.onKeydown = this.onKeydown.bind(this); } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props: any, state:any) { return props.value !== state.value ? { value: props.value } : null; } @@ -47,7 +47,7 @@ class JsonValue extends Component { document.removeEventListener('keydown', this.onKeydown); } - onKeydown(event) { + onKeydown(event:any) { if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return; if (event.code === 'Enter' || event.key === 'Enter') { event.preventDefault(); @@ -88,7 +88,8 @@ class JsonValue extends Component { }); } - refInput(node) { + refInput(node: any) { + //@ts-ignore this.state.inputRef = node; } @@ -167,6 +168,7 @@ class JsonValue extends Component { } } +//@ts-ignore JsonValue.propTypes = { name: PropTypes.string.isRequired, value: PropTypes.any.isRequired, @@ -186,6 +188,7 @@ JsonValue.propTypes = { onSubmitValueParser: PropTypes.func.isRequired, }; +//@ts-ignore JsonValue.defaultProps = { keyPath: [], deep: 0, diff --git a/lib/components/src/controls/react-editable-json-tree/index.js b/lib/components/src/controls/react-editable-json-tree/index.tsx similarity index 82% rename from lib/components/src/controls/react-editable-json-tree/index.js rename to lib/components/src/controls/react-editable-json-tree/index.tsx index cc55b51b9ba1..55ba2ca9e89f 100644 --- a/lib/components/src/controls/react-editable-json-tree/index.js +++ b/lib/components/src/controls/react-editable-json-tree/index.tsx @@ -9,8 +9,8 @@ import DATA_TYPES from './types/dataTypes'; import INPUT_USAGE_TYPES from './types/inputUsageTypes'; import parse from './utils/parse'; -class JsonTree extends Component { - constructor(props) { +class JsonTree extends Component { + constructor(props:any) { super(props); this.state = { data: props.data, @@ -21,7 +21,7 @@ class JsonTree extends Component { this.removeRoot = this.removeRoot.bind(this); } - static getDerivedStateFromProps(props, state) { + static getDerivedStateFromProps(props:any, state:any) { if (props.data !== state.data || props.rootName !== state.rootName) { return { data: props.data, @@ -31,7 +31,7 @@ class JsonTree extends Component { return null; } - onUpdate(key, data) { + onUpdate(key:any, data:any) { this.setState({ data }); this.props.onFullyUpdate(data); } @@ -113,6 +113,7 @@ class JsonTree extends Component { } } +//@ts-ignore JsonTree.propTypes = { data: PropTypes.any.isRequired, rootName: PropTypes.string, @@ -135,10 +136,11 @@ JsonTree.propTypes = { onSubmitValueParser: PropTypes.func, }; +//@ts-ignore JsonTree.defaultProps = { rootName: 'root', - isCollapsed: (keyPath, deep) => deep !== -1, - getStyle: (keyName, data, keyPath, deep, dataType) => { + isCollapsed: (keyPath:any, deep:any) => deep !== -1, + getStyle: (keyName:any, data:any, keyPath:any, deep:any, dataType:any) => { switch (dataType) { case 'Object': case 'Error': @@ -149,19 +151,20 @@ JsonTree.defaultProps = { return value; } }, - /* eslint-disable no-unused-vars */ - readOnly: (keyName, data, keyPath, deep, dataType) => false, - onFullyUpdate: (data) => {}, - onDeltaUpdate: ({ type, keyPath, deep, key, newValue, oldValue }) => {}, - beforeRemoveAction: (key, keyPath, deep, oldValue) => new Promise((resolve) => resolve()), - beforeAddAction: (key, keyPath, deep, newValue) => new Promise((resolve) => resolve()), - beforeUpdateAction: (key, keyPath, deep, oldValue, newValue) => + readOnly: () => false, + onFullyUpdate: () => {}, + onDeltaUpdate: () => {}, + //@ts-ignore + beforeRemoveAction: () => new Promise((resolve) => resolve()), + //@ts-ignore + beforeAddAction: () => new Promise((resolve) => resolve()), + beforeUpdateAction: () => + //@ts-ignore new Promise((resolve) => resolve()), logger: { error: () => {} }, - onSubmitValueParser: (isEditMode, keyPath, deep, name, rawValue) => parse(rawValue), - inputElement: (usage, keyPath, deep, keyName, data, dataType) => , - textareaElement: (usage, keyPath, deep, keyName, data, dataType) =>