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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ywana-core8",
3
- "version": "0.0.431",
3
+ "version": "0.0.434",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -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
- const EntityViewer = (props) => {
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
- { columns.map(column => <th>{column.name}</th>)}
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>
@@ -128,6 +128,7 @@
128
128
  justify-content: center;
129
129
  align-items: center;
130
130
  border-right: dotted 1px var(--divider-color);
131
+ border: solid 3px red;
131
132
  }
132
133
 
133
134
  .photoshoot-icon {
@@ -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
- return (
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
- let style = { backgroundColor : "red", color: "white" }
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: "1", lane: "lane1", date: "2022-03-01", color: "red", title : "Event One", Renderer: EventCard },
36
- { id: "2", lane: "lane1", date: "2022-03-22", color: "red", title : "Event One", Renderer: EventCard },
37
- { id: "3", lane: "lane1", date: "2022-04-03", color: "red", title : "Event One", Renderer: EventCard },
38
- { id: "4", lane: "lane1", date: "2022-03-04", color: "red", title : "Event One", Renderer: EventCard },
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
- <Planner title="Planner 1" lanes={lanes} events={events} navigation={true} onSelectCell={console.log} focusEvent={event}>
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
  }
@@ -102,6 +102,10 @@
102
102
  background-color: rgba(200,200,200,.2);
103
103
  }
104
104
 
105
+ .planner .cell.drag-over {
106
+ border: dashed 2px var(--divider-color);
107
+ }
108
+
105
109
  .event-card {
106
110
  width: 100%;
107
111
  border: solid 1px var(--divider-color);