ywana-core8 0.0.158 → 0.0.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +75 -54
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +75 -54
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +75 -54
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/ContentEditor.js +25 -20
- package/src/domain/TablePage.js +10 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { Fragment, useState } from 'react';
|
2
2
|
import { Button, CheckBox, DataTable, DropDown, Icon, Stack, Tab, Tabs, Text, TextField, Tree, TreeNode, TreeItem, TokenField, Property } from '../html';
|
3
|
-
import { Content, TYPES } from './ContentType';
|
3
|
+
import { CHECK, Content, TYPES } from './ContentType';
|
4
4
|
import './ContentEditor.css';
|
5
5
|
import { FORMATS } from './ContentType';
|
6
6
|
|
@@ -28,7 +28,7 @@ export const ContentEditor = ({ content, filter, onChange }) => {
|
|
28
28
|
|
29
29
|
return filtered.length > 0 ? (
|
30
30
|
<section key={title}>
|
31
|
-
{
|
31
|
+
{title && title.length > 0 ? <header>{title}</header> : null}
|
32
32
|
<main>
|
33
33
|
{filtered.map((field) => <FieldEditor key={field.id} field={field} onChange={change} outlined={true} />)}
|
34
34
|
</main>
|
@@ -168,7 +168,7 @@ export const TreededContentEditor = ({ content, filter, onChange }) => {
|
|
168
168
|
* FieldEditor
|
169
169
|
*/
|
170
170
|
export const FieldEditor = ({ field, onChange, content, outlined = false }) => {
|
171
|
-
const { id, type, item, label, editable, options } = field
|
171
|
+
const { id, type, item, label, editable, options, hidden = false } = field
|
172
172
|
|
173
173
|
function change(id, value) {
|
174
174
|
if (onChange) onChange(id, value)
|
@@ -176,21 +176,26 @@ export const FieldEditor = ({ field, onChange, content, outlined = false }) => {
|
|
176
176
|
|
177
177
|
function renderField() {
|
178
178
|
const value1 = field.value ? field.value : field.default
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
179
|
+
const isHidden = CHECK['isFunction'](hidden) ? hidden(field, value1) : hidden
|
180
|
+
if (isHidden) {
|
181
|
+
return null
|
182
|
+
} else {
|
183
|
+
switch (type) {
|
184
|
+
case TYPES.ENTITY:
|
185
|
+
return <EntityEditor field={field} value={value1} onChange={change} />
|
186
|
+
case TYPES.STRING:
|
187
|
+
return <StringEditor outlined={outlined} field={field} value={value1} onChange={change} content={content} />
|
188
|
+
case TYPES.BOOLEAN:
|
189
|
+
return <CheckBox outlined id={id} label={label} value={value1} onChange={change} />
|
190
|
+
case TYPES.NUMBER:
|
191
|
+
return <NumberEditor outlined={outlined} field={field} value={value1} onChange={change} />
|
192
|
+
case TYPES.ARRAY:
|
193
|
+
return item === TYPES.STRING ?
|
194
|
+
options ? <MultiSelectionEditor content={content} field={field} value={value1} onChange={change} /> : <ListEditor field={field} value={value1} onChange={change} />
|
195
|
+
: <CollectionEditor field={field} value={value1} onChange={change} />
|
196
|
+
default:
|
197
|
+
return <div>{label}</div>
|
198
|
+
}
|
194
199
|
}
|
195
200
|
}
|
196
201
|
return renderField()
|
@@ -229,7 +234,7 @@ const EntityEditor = ({ field, value = {}, onChange }) => {
|
|
229
234
|
* String Editor
|
230
235
|
*/
|
231
236
|
export const StringEditor = ({ field, value = '', onChange, content, outlined }) => {
|
232
|
-
const { id, format, label, options, editable = true } = field
|
237
|
+
const { id, format, label, options, editable = true, predictive = false } = field
|
233
238
|
|
234
239
|
function change(id, value) {
|
235
240
|
if (onChange) onChange(id, value)
|
@@ -244,7 +249,7 @@ export const StringEditor = ({ field, value = '', onChange, content, outlined })
|
|
244
249
|
<div className='field-editor string-editor'>
|
245
250
|
{
|
246
251
|
format === FORMATS.DATE ? <TextField outlined={outlined} id={id} type="date" label={label} value={value} onChange={change} readOnly={!editable} /> :
|
247
|
-
options ? <DropDown outlined={outlined} id={id} label={label} value={value} onChange={change} options={buildOptions()} readOnly={!editable} canFilter={
|
252
|
+
options ? <DropDown outlined={outlined} id={id} label={label} value={value} onChange={change} options={buildOptions()} readOnly={!editable} canFilter={predictive} /> :
|
248
253
|
<TextField outlined={outlined} id={id} label={label} value={value} onChange={change} readOnly={!editable} />
|
249
254
|
}
|
250
255
|
</div>
|
package/src/domain/TablePage.js
CHANGED
@@ -19,7 +19,7 @@ export const TablePage = (props) => {
|
|
19
19
|
const { id = "table",
|
20
20
|
icon, title, name,
|
21
21
|
schema, url, field,
|
22
|
-
actions, dev = false, tableActions, selectionActions = [],
|
22
|
+
actions = [], dev = false, tableActions, selectionActions = [],
|
23
23
|
editable, canFilter = false, canQuery = false, canAdd = true, canDelete = true,
|
24
24
|
autosave = true, delay = 1000,
|
25
25
|
groupBy, validator, scenario,
|
@@ -103,6 +103,14 @@ export const TablePage = (props) => {
|
|
103
103
|
return null;
|
104
104
|
}
|
105
105
|
|
106
|
+
function renderActions() {
|
107
|
+
return actions.map(element => {
|
108
|
+
const action = () => element.props.action(ctx)
|
109
|
+
const clone = React.cloneElement(element, [ action ])
|
110
|
+
return clone
|
111
|
+
})
|
112
|
+
}
|
113
|
+
|
106
114
|
return (
|
107
115
|
<Fragment>
|
108
116
|
<Header className="table-page" title={<Text>{title}</Text>}>
|
@@ -113,6 +121,7 @@ export const TablePage = (props) => {
|
|
113
121
|
</MenuIcon>
|
114
122
|
) : null}
|
115
123
|
{actions}
|
124
|
+
{renderActions()}
|
116
125
|
</Header>
|
117
126
|
<menu className="table-page">
|
118
127
|
{canQuery ? <TableQueries schema={schema} /> : null}
|