ywana-core8 0.0.431 → 0.0.434
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 +32 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +20 -1
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +32 -9
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +32 -9
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/ContentViewer.css +16 -1
- package/src/domain/ContentViewer.js +13 -5
- package/src/widgets/planner/Planner.css +1 -0
- package/src/widgets/planner/Planner.js +15 -10
- package/src/widgets/planner/Planner.test.js +25 -13
- package/src/widgets/planner/Planner2.css +4 -0
package/package.json
CHANGED
@@ -2,7 +2,22 @@
|
|
2
2
|
border-bottom: solid 1px var(--divider-color);
|
3
3
|
}
|
4
4
|
|
5
|
-
.entity-viewer>header
|
5
|
+
.entity-viewer>header,
|
6
|
+
.array-viewer>header {
|
6
7
|
padding: .5rem;
|
7
8
|
background-color: rgba(240,240,240,.5);
|
9
|
+
}
|
10
|
+
|
11
|
+
.array-viewer>table {
|
12
|
+
width: 100%;
|
13
|
+
border: solid 1px var(--divider-color);
|
14
|
+
}
|
15
|
+
|
16
|
+
.array-viewer>table tbody {
|
17
|
+
max-height: 20vh;
|
18
|
+
overflow: auto;
|
19
|
+
}
|
20
|
+
|
21
|
+
.array-viewer>table td {
|
22
|
+
border-bottom: solid 1px var(--divider-color);
|
8
23
|
}
|
@@ -55,7 +55,7 @@ const FieldViewer = (props) => {
|
|
55
55
|
case TYPES.ENTITY:
|
56
56
|
return <EntityViewer field={field} value={value} />
|
57
57
|
case TYPES.ARRAY:
|
58
|
-
return <ArrayViewer item={item} value={value} />
|
58
|
+
return <ArrayViewer label={label} item={item} value={value} />
|
59
59
|
default:
|
60
60
|
return <div>{label}</div>
|
61
61
|
}
|
@@ -64,7 +64,7 @@ const FieldViewer = (props) => {
|
|
64
64
|
/**
|
65
65
|
* EntityViewer
|
66
66
|
*/
|
67
|
-
|
67
|
+
const EntityViewer = (props) => {
|
68
68
|
const { field, value } = props
|
69
69
|
const { item, label } = field
|
70
70
|
const content = new Content(item, value)
|
@@ -87,16 +87,24 @@ const FieldViewer = (props) => {
|
|
87
87
|
* Array Viewer
|
88
88
|
*/
|
89
89
|
const ArrayViewer = (props) => {
|
90
|
-
const { item, value } = props
|
90
|
+
const { label, item, value } = props
|
91
91
|
const columns = Object.keys(item).map(key => item[key]["label"])
|
92
|
+
console.log("ARRAYVIEWER", item, value, columns)
|
92
93
|
return (
|
93
94
|
<div className="array-viewer">
|
95
|
+
<header>
|
96
|
+
{label}
|
97
|
+
</header>
|
94
98
|
<table>
|
95
99
|
<thead>
|
96
|
-
{
|
100
|
+
{columns.map(column => <th>{column}</th>)}
|
97
101
|
</thead>
|
98
102
|
<tbody>
|
99
|
-
|
103
|
+
{value.map(v => (
|
104
|
+
<tr>
|
105
|
+
{ Object.keys(item).map(key => <td>{v[key]}</td>) }
|
106
|
+
</tr>
|
107
|
+
))}
|
100
108
|
</tbody>
|
101
109
|
</table>
|
102
110
|
</div>
|
@@ -9,12 +9,13 @@ const ranges = extendMoment(moment);
|
|
9
9
|
const DATE_RANGE = [
|
10
10
|
{ label: "Week", value: "week" },
|
11
11
|
{ label: "Month", value: "month" },
|
12
|
+
{ label: "Year", value: "year" },
|
12
13
|
];
|
13
14
|
|
14
15
|
/**
|
15
16
|
* Planner
|
16
17
|
*/
|
17
|
-
export const Planner = ({ title, events = [], lanes = [], navigation = true, onSelectCell, focusEvent }) => {
|
18
|
+
export const Planner = ({ title, events = [], lanes = [], navigation = true, onSelectCell, focusEvent, onChange }) => {
|
18
19
|
|
19
20
|
const [dateRange, setDateRange] = useState("month");
|
20
21
|
const [from, setFrom] = useState("2021-02-26");
|
@@ -88,7 +89,6 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
|
|
88
89
|
</Header>
|
89
90
|
) : null}
|
90
91
|
|
91
|
-
|
92
92
|
<main className="planner">
|
93
93
|
|
94
94
|
<div className="column0">
|
@@ -129,7 +129,7 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
|
|
129
129
|
})}
|
130
130
|
</div>
|
131
131
|
|
132
|
-
{lanes.map((lane) => <PlannerRow lane={lane} events={events} period={period} onSelectCell={selectCell} />)}
|
132
|
+
{lanes.map((lane) => <PlannerRow lane={lane} events={events} period={period} onSelectCell={selectCell} onChange={onChange}/>)}
|
133
133
|
|
134
134
|
</div>
|
135
135
|
</main>
|
@@ -142,9 +142,14 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
|
|
142
142
|
*/
|
143
143
|
const PlannerRow = (props) => {
|
144
144
|
|
145
|
-
const { lane, events = [], period, onSelectCell } = props
|
145
|
+
const { lane, events = [], period, onSelectCell, onChange } = props
|
146
146
|
const rowEvents = events.filter(event => event.lane === lane.id)
|
147
147
|
|
148
|
+
|
149
|
+
function change(data) {
|
150
|
+
if (onChange) onChange(data)
|
151
|
+
}
|
152
|
+
|
148
153
|
return (
|
149
154
|
<div className="row">
|
150
155
|
{period.map((date) => {
|
@@ -156,7 +161,7 @@ const PlannerRow = (props) => {
|
|
156
161
|
return eventDate.getTime() === slotDate.getTime();
|
157
162
|
})
|
158
163
|
return (
|
159
|
-
<PlannerCell lane={lane} date={date} events={cellEvents} onSelect={onSelectCell} />
|
164
|
+
<PlannerCell lane={lane} date={date} events={cellEvents} onSelect={onSelectCell} onDrop={change}/>
|
160
165
|
);
|
161
166
|
})}
|
162
167
|
</div>
|
@@ -196,13 +201,14 @@ const PlannerCell = ({ lane, events, date, disabled = false, onAdd, onDelete, on
|
|
196
201
|
lane: lane.id,
|
197
202
|
date: date.moment.format("YYYY-MM-DD")
|
198
203
|
});
|
204
|
+
setDragOver(false);
|
199
205
|
}
|
200
206
|
|
201
207
|
const isWekend = [0, 6].includes(date.moment.day());
|
202
208
|
const weekend = isWekend ? "weekend" : "";
|
203
|
-
|
204
|
-
|
205
|
-
<div className={`cell ${weekend}`} onDragOver={onDragOver} onDragLeave={onDragLeave} onDrop={drop} onClick={select}>
|
209
|
+
const dragOverStyle = dragOver ? "drag-over" : ""
|
210
|
+
return (
|
211
|
+
<div className={`cell ${weekend} ${dragOverStyle}`} onDragOver={onDragOver} onDragLeave={onDragLeave} onDrop={drop} onClick={select}>
|
206
212
|
{events.map(event => {
|
207
213
|
const { Renderer = EventCard } = event
|
208
214
|
return <Renderer event={event} />
|
@@ -214,10 +220,9 @@ const PlannerCell = ({ lane, events, date, disabled = false, onAdd, onDelete, on
|
|
214
220
|
const EventCard = (props) => {
|
215
221
|
const { event } = props
|
216
222
|
const { title, color } = event
|
217
|
-
|
218
223
|
let style = { backgroundColor: color, color: "white" }
|
219
224
|
return (
|
220
|
-
<div className={`event-card`} style={style}>
|
225
|
+
<div draggable="true" className={`event-card`} style={style}>
|
221
226
|
{title}
|
222
227
|
</div>
|
223
228
|
)
|
@@ -1,16 +1,20 @@
|
|
1
|
-
import React, {useEffect, useState} from 'react'
|
1
|
+
import React, { useEffect, useState } from 'react'
|
2
2
|
import { Planner } from './Planner'
|
3
3
|
|
4
4
|
const EventCard = (props) => {
|
5
|
-
const { event={} } = props
|
5
|
+
const { event = {} } = props
|
6
6
|
const { id, title, color } = event
|
7
7
|
|
8
|
-
|
8
|
+
function drag(ev) {
|
9
|
+
ev.dataTransfer.setData("text", id);
|
10
|
+
}
|
11
|
+
|
12
|
+
let style = { backgroundColor: "red", color: "white" }
|
9
13
|
return (
|
10
|
-
<div id={id} className={`event-card`} style={style}>
|
14
|
+
<div draggable onDragStart={drag} id={id} className={`event-card`} style={style}>
|
11
15
|
{title}
|
12
16
|
</div>
|
13
|
-
)
|
17
|
+
)
|
14
18
|
}
|
15
19
|
|
16
20
|
const PlannerTest = (prop) => {
|
@@ -30,19 +34,27 @@ const PlannerTest = (prop) => {
|
|
30
34
|
{ id: "lane6", label: "Lane 6" },
|
31
35
|
{ id: "lane7", label: "Lane 7" },
|
32
36
|
]
|
33
|
-
|
37
|
+
|
34
38
|
const events = [
|
35
|
-
{ id: "
|
36
|
-
{ id: "
|
37
|
-
{ id: "
|
38
|
-
{ id: "4", lane: "lane1", date: "2022-03-
|
39
|
+
{ id: "3", lane: "lane1", date: "2022-04-04", color: "yellow", title: "Event One", Renderer: EventCard },
|
40
|
+
{ id: "1", lane: "lane1", date: "2022-04-05", color: "red", title: "Event One", Renderer: EventCard },
|
41
|
+
{ id: "2", lane: "lane1", date: "2022-04-06", color: "blue", title: "Event One", Renderer: EventCard },
|
42
|
+
{ id: "4", lane: "lane1", date: "2022-03-07", color: "red", title: "Event One", Renderer: EventCard },
|
39
43
|
]
|
40
44
|
|
41
45
|
|
42
46
|
return (
|
43
|
-
|
47
|
+
<Planner
|
48
|
+
title="Planner 1"
|
49
|
+
lanes={lanes}
|
50
|
+
events={events}
|
51
|
+
navigation={true}
|
52
|
+
onSelectCell={console.log}
|
53
|
+
focusEvent={event}
|
54
|
+
onChange={(data) => console.log('D&D', data)}
|
55
|
+
>
|
56
|
+
|
57
|
+
</Planner>
|
44
58
|
|
45
|
-
</Planner>
|
46
|
-
|
47
59
|
)
|
48
60
|
}
|