ywana-core8 0.0.516 → 0.0.519

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.516",
3
+ "version": "0.0.519",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
package/src/css/html.css CHANGED
@@ -42,4 +42,16 @@ td.actions {
42
42
  */
43
43
  body > iframe[style*="2147483647"]:not([id="webpack-dev-server-client-overlay"]) {
44
44
  display: none;
45
+ }
46
+
47
+ .empty-message {
48
+ width: 100%;
49
+ height: 100%;
50
+ min-height: 10rem;
51
+ flex: 1;
52
+ display: flex;
53
+ flex-direction: column;
54
+ justify-content: center;
55
+ align-items: center;
56
+ color: var(--text-color-lighter)
45
57
  }
@@ -213,12 +213,7 @@ export const CollectionTree = (props) => {
213
213
  })
214
214
  }
215
215
 
216
- const items = sorter ? all.sort((a,b) => {
217
- const labelA = `${a.studio}${a.name}`
218
- const labelB = `${b.studio}${b.name}`
219
- return labelA.localeCompare(labelB)
220
- }) : all
221
-
216
+ const items = sorter ? sorter(all) : all
222
217
  const nodes = generateNodes(levels, items)
223
218
  return (
224
219
  <main>
package/src/html/table.js CHANGED
@@ -110,10 +110,19 @@ export const DataTable = (props) => {
110
110
  </tr>
111
111
  </thead>
112
112
  <tbody>
113
- {
113
+ {rows.length > 0 ?
114
114
  multiSort(rows, sortDir).map(row => (
115
115
  <DataTableRow key={row.id} row={row} columns={columns} onSelect={select} onDrop={moveRow} editable={editable} expanded={expanded} />
116
- ))
116
+ )) : (
117
+ <tr>
118
+ <td colSpan={columns.length+1}>
119
+ <div className='empty-message'>
120
+ <Icon icon="search_off" />
121
+ <Text>No Result Found</Text>
122
+ </div>
123
+ </td>
124
+ </tr>
125
+ )
117
126
  }
118
127
  </tbody>
119
128
  </table>
@@ -194,7 +203,7 @@ const EntityCellViewer = ({ id, item, value }) => {
194
203
 
195
204
  const fields = Object.values(item).filter(field => field.column === true)
196
205
  const locale = window.navigator.userLanguage || window.navigator.language;
197
-
206
+
198
207
  return fields.map(field => {
199
208
 
200
209
  let text = value[field.id]
@@ -35,7 +35,7 @@ export const TableTest = (prop) => {
35
35
  setRows(next)
36
36
  }
37
37
 
38
- const table = {
38
+ const table1 = {
39
39
  className: "xxx",
40
40
  editable: true,
41
41
  columns : [
@@ -49,9 +49,23 @@ export const TableTest = (prop) => {
49
49
  rows
50
50
  }
51
51
 
52
+ const table2 = {
53
+ className: "xxx",
54
+ editable: true,
55
+ columns : [
56
+ { id: "checked", onChange: check },
57
+ { id: "name", label: "Name", type: "String", onChange: editCell },
58
+ { id: "name", label: "Name", type: "String", sortable: true },
59
+ { id: "thumb", label: "Thumb", type: "String", format: FORMATS.IMG },
60
+ { id: "color", label: "Color", type: "String", format: FORMATS.COLOR },
61
+ { id: "date", label: "Date", type: "String", format: FORMATS.DATE },
62
+ ],
63
+ rows: []
64
+ }
65
+
52
66
  return (
53
67
  <div style={{ maxHeight: "20rem", overflow: "hidden", border: "solid 1px red", margin: "2rem" }}>
54
- <DataTable {...table} onRowSelection={select} onCheckAll={checkAll}/>
68
+ <DataTable {...table2} onRowSelection={select} onCheckAll={checkAll}/>
55
69
  </div>
56
70
  )
57
71
  }
@@ -43,6 +43,11 @@
43
43
  width: var(--column-width);
44
44
  background-color: var(--paper-color);
45
45
  height: 2.6rem;
46
+ border: solid 3px red;
47
+ }
48
+
49
+ .thisWeek {
50
+ background-color: red;
46
51
  }
47
52
 
48
53
  .date-header {
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useMemo, useState } from "react";
2
- import { DropDown, Header, Icon, Text, TextField } from "../../html";
2
+ import { DropDown, Header, Icon, Text, TextField, Button } from "../../html";
3
3
  import moment from "moment";
4
4
  import { extendMoment } from "moment-range";
5
5
  import "./Planner2.css";
@@ -21,6 +21,10 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
21
21
  const [from, setFrom] = useState(config.from);
22
22
  const [to, setTo] = useState(config.to);
23
23
 
24
+ useEffect(() => {
25
+ showThisWeek()
26
+ }, [])
27
+
24
28
  useEffect(() => {
25
29
  const element = document.getElementById(focusEvent)
26
30
  if (element) element.scrollIntoView({
@@ -60,6 +64,15 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
60
64
  if (onSelectCell) onSelectCell(lane, date);
61
65
  }
62
66
 
67
+ function showThisWeek() {
68
+ const element = document.querySelector(".thisMonday")
69
+ if (element) element.scrollIntoView({
70
+ behavior: 'smooth',
71
+ block: 'start',
72
+ inline: 'start'
73
+ })
74
+ }
75
+
63
76
  const period = useMemo(() => {
64
77
  const start = ranges(from, "YYYY-MM-DD");
65
78
  const end = ranges(to, "YYYY-MM-DD");
@@ -79,6 +92,8 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
79
92
 
80
93
  {navigation ? (
81
94
  <Header title={label}>
95
+ &nbsp;&nbsp;
96
+ <Button label="Esta Semana" outlined action={showThisWeek}/>
82
97
  <Icon icon="chevron_right" clickable action={next} />
83
98
  <TextField id="to" type="date" label="To" value={to} onChange={(id, value) => setTo(value)} />
84
99
  <div className="expand"></div>
@@ -117,9 +132,10 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
117
132
  {period.map((date) => {
118
133
  const isWekend = [0, 6].includes(date.moment.day());
119
134
  const weekend = isWekend ? "weekend" : "";
135
+ const thisWeek = moment().startOf('week').isSame(date.moment, "week") ? "thisWeek" : "";
120
136
  return (
121
137
  <div className="column-header">
122
- <div className={`date-header ${weekend}`}>
138
+ <div className={`date-header ${weekend} ${thisWeek}`}>
123
139
  <Text use="headline6">{date.moment.format("DD")}</Text>
124
140
  &nbsp;
125
141
  <Text use="caption">{date.moment.format("ddd")}</Text>
@@ -206,9 +222,13 @@ const PlannerCell = ({ lane, events, date, disabled = false, onAdd, onDelete, on
206
222
 
207
223
  const isWekend = [0, 6].includes(date.moment.day());
208
224
  const weekend = isWekend ? "weekend" : "";
225
+
226
+ const today = moment()
227
+ var weekStart = today.clone().startOf('week')
228
+ const thisMonday = (date.moment.isSame(weekStart)) ? "thisMonday" : ""
209
229
  const dragOverStyle = dragOver ? "drag-over" : ""
210
230
  return (
211
- <div className={`cell ${weekend} ${dragOverStyle}`} onDragOver={onDragOver} onDragLeave={onDragLeave} onDrop={drop} onClick={select}>
231
+ <div className={`cell ${thisMonday} ${weekend} ${dragOverStyle}`} onDragOver={onDragOver} onDragLeave={onDragLeave} onDrop={drop} onClick={select}>
212
232
  {events.map(event => {
213
233
  const { Renderer = EventCard } = event
214
234
  return <Renderer key={event.id} event={event} />
@@ -49,8 +49,8 @@ const PlannerTest = (prop) => {
49
49
  lanes={lanes}
50
50
  events={events}
51
51
  navigation={true}
52
- onSelectCell={console.log}
53
- focusEvent={event}
52
+ onSelectCell={console.log}
53
+
54
54
  onChange={(data) => console.log('D&D', data)}
55
55
  >
56
56
 
@@ -38,6 +38,13 @@
38
38
  border-bottom: solid 1px var(--divider-color);
39
39
  }
40
40
 
41
+ .planner .date-header.thisWeek {
42
+ background-color: rgb(10, 176, 35);
43
+ border-radius: 3px;
44
+ padding: .2rem;
45
+ color: var(--paper-color);
46
+ }
47
+
41
48
  .planner .row-header {
42
49
  width: var(--column-width);
43
50
  background-color: var(--paper-color);