@kaspernj/api-maker 1.0.409 → 1.0.411
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 +1 -1
- package/src/table/header-column.jsx +38 -8
- package/src/table/model-row.jsx +1 -1
- package/src/table/table.jsx +31 -13
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import classNames from "classnames"
|
|
|
3
3
|
import {digs} from "diggerize"
|
|
4
4
|
import Header from "./components/header"
|
|
5
5
|
import {memo} from "react"
|
|
6
|
-
import {Pressable, Text, View} from "react-native"
|
|
6
|
+
import {Platform, Pressable, Text, View} from "react-native"
|
|
7
7
|
import PropTypes from "prop-types"
|
|
8
8
|
import propTypesExact from "prop-types-exact"
|
|
9
9
|
import {shapeComponent} from "set-state-compare/src/shape-component"
|
|
@@ -14,6 +14,7 @@ import Widths from "./widths"
|
|
|
14
14
|
export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseComponent {
|
|
15
15
|
static propTypes = propTypesExact({
|
|
16
16
|
column: PropTypes.object.isRequired,
|
|
17
|
+
resizing: PropTypes.bool.isRequired,
|
|
17
18
|
table: PropTypes.object.isRequired,
|
|
18
19
|
tableSettingColumn: PropTypes.object.isRequired,
|
|
19
20
|
width: PropTypes.number.isRequired,
|
|
@@ -32,7 +33,7 @@ export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseC
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
render() {
|
|
35
|
-
const {column, table, tableSettingColumn, width} = this.p
|
|
36
|
+
const {column, resizing, table, tableSettingColumn, width} = this.p
|
|
36
37
|
const {defaultParams} = table.props
|
|
37
38
|
const {styleForHeader, styleForHeaderText} = table.tt
|
|
38
39
|
const {query} = digs(table.collection, "query")
|
|
@@ -44,7 +45,10 @@ export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseC
|
|
|
44
45
|
identifier: tableSettingColumn.identifier()
|
|
45
46
|
}}
|
|
46
47
|
onLayout={this.tt.onLayout}
|
|
47
|
-
style={styleForHeader({style: {
|
|
48
|
+
style={styleForHeader({style: {
|
|
49
|
+
cursor: resizing ? "col-resize" : undefined,
|
|
50
|
+
width: `${width}%`
|
|
51
|
+
}})}
|
|
48
52
|
{...table.columnProps(column)}
|
|
49
53
|
>
|
|
50
54
|
<View style={{display: "flex", flexDirection: "row", alignItems: "center"}}>
|
|
@@ -63,12 +67,20 @@ export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseC
|
|
|
63
67
|
{table.headerLabelForColumn(column)}
|
|
64
68
|
</Text>
|
|
65
69
|
}
|
|
66
|
-
<Pressable onPressIn={this.tt.onResizePressIn} style={{marginLeft: "auto", cursor: "col-resize"}}>
|
|
67
|
-
<Text>
|
|
68
|
-
|
|
|
69
|
-
</Text>
|
|
70
|
-
</Pressable>
|
|
71
70
|
</View>
|
|
71
|
+
<Pressable
|
|
72
|
+
onMouseDown={Platform.OS == "web" ? this.tt.onResizeMouseDown : undefined}
|
|
73
|
+
onPressIn={this.tt.onResizePressIn}
|
|
74
|
+
style={{
|
|
75
|
+
position: "absolute",
|
|
76
|
+
top: 0,
|
|
77
|
+
right: 0,
|
|
78
|
+
width: 10,
|
|
79
|
+
height: "100%",
|
|
80
|
+
cursor: "col-resize",
|
|
81
|
+
zIndex: 9999
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
72
84
|
</Header>
|
|
73
85
|
)
|
|
74
86
|
}
|
|
@@ -81,12 +93,29 @@ export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseC
|
|
|
81
93
|
|
|
82
94
|
onResizeEnd = async () => {
|
|
83
95
|
this.setState({cursorX: undefined, resizing: false})
|
|
96
|
+
this.p.table.setState({resizing: false})
|
|
84
97
|
|
|
85
98
|
const width = this.p.widths.getWidthOfColumn(this.p.tableSettingColumn.identifier())
|
|
86
99
|
|
|
87
100
|
await this.p.tableSettingColumn.update({width})
|
|
88
101
|
}
|
|
89
102
|
|
|
103
|
+
// Otherwise text is selectable on web
|
|
104
|
+
onResizeMouseDown = (e) => {
|
|
105
|
+
e.preventDefault()
|
|
106
|
+
e.stopPropagation()
|
|
107
|
+
|
|
108
|
+
const originalWidth = this.currentWidth
|
|
109
|
+
const cursorX = e.nativeEvent.pageX
|
|
110
|
+
|
|
111
|
+
this.setState({
|
|
112
|
+
cursorX,
|
|
113
|
+
originalWidth,
|
|
114
|
+
resizing: true
|
|
115
|
+
})
|
|
116
|
+
this.p.table.setState({resizing: true})
|
|
117
|
+
}
|
|
118
|
+
|
|
90
119
|
onResizePressIn = (e) => {
|
|
91
120
|
e.preventDefault()
|
|
92
121
|
e.stopPropagation()
|
|
@@ -99,6 +128,7 @@ export default memo(shapeComponent(class ApiMakerTableHeaderColumn extends BaseC
|
|
|
99
128
|
originalWidth,
|
|
100
129
|
resizing: true
|
|
101
130
|
})
|
|
131
|
+
this.p.table.setState({resizing: true})
|
|
102
132
|
}
|
|
103
133
|
|
|
104
134
|
onWindowMouseMove = (e) => {
|
package/src/table/model-row.jsx
CHANGED
|
@@ -64,7 +64,7 @@ export default memo(shapeComponent(class ApiMakerBootStrapLiveTableModelRow exte
|
|
|
64
64
|
</Column>
|
|
65
65
|
}
|
|
66
66
|
{columns && this.columnsContentFromColumns(model, even)}
|
|
67
|
-
<Column dataSet={{class: "actions-column"}} style={styleForColumn({even, style: {
|
|
67
|
+
<Column dataSet={{class: "actions-column"}} style={styleForColumn({even, style: {}, type: "actions"})}>
|
|
68
68
|
{actionsContent && actionsContent(this.modelCallbackArgs)}
|
|
69
69
|
{viewPath &&
|
|
70
70
|
<Link dataSet={{class: "view-button"}} to={viewPath}>
|
package/src/table/table.jsx
CHANGED
|
@@ -115,6 +115,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
115
115
|
queryQName: () => `${queryName}_q`,
|
|
116
116
|
queryPageName: () => `${queryName}_page`,
|
|
117
117
|
querySName,
|
|
118
|
+
resizing: false,
|
|
118
119
|
showFilters: () => Boolean(queryParams[querySName]),
|
|
119
120
|
showSettings: false,
|
|
120
121
|
tableSetting: undefined,
|
|
@@ -356,7 +357,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
356
357
|
onLayout={this.tt.onFlatListLayout}
|
|
357
358
|
renderItem={this.tt.renderItem}
|
|
358
359
|
showsHorizontalScrollIndicator
|
|
359
|
-
style={{overflowX: "auto"}}
|
|
360
|
+
style={{border: "1px solid #dbdbdb", borderRadius: 5, overflowX: "auto"}}
|
|
360
361
|
{...restProps}
|
|
361
362
|
/>
|
|
362
363
|
)
|
|
@@ -464,7 +465,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
464
465
|
</Header>
|
|
465
466
|
}
|
|
466
467
|
{this.headersContentFromColumns()}
|
|
467
|
-
<Header style={this.styleForHeader({style: {}})} />
|
|
468
|
+
<Header style={this.styleForHeader({style: {}, type: "actions"})} />
|
|
468
469
|
</Row>
|
|
469
470
|
)
|
|
470
471
|
}
|
|
@@ -487,23 +488,40 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
487
488
|
)
|
|
488
489
|
}
|
|
489
490
|
|
|
490
|
-
styleForColumn({column, columnIndex, even, style}) {
|
|
491
|
+
styleForColumn({column, columnIndex, even, style, type}) {
|
|
492
|
+
const defaultStyle = {
|
|
493
|
+
justifyContent: "center",
|
|
494
|
+
padding: 8,
|
|
495
|
+
backgroundColor: even ? "#f5f5f5" : undefined
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
if (type == "actions") {
|
|
499
|
+
defaultStyle.flexDirection = "row"
|
|
500
|
+
defaultStyle.alignItems = "center"
|
|
501
|
+
defaultStyle.marginLeft = "auto"
|
|
502
|
+
} else {
|
|
503
|
+
defaultStyle.borderRight = "1px solid #dbdbdb"
|
|
504
|
+
}
|
|
505
|
+
|
|
491
506
|
const actualStyle = Object.assign(
|
|
492
|
-
|
|
493
|
-
padding: 8,
|
|
494
|
-
backgroundColor: even ? "#f5f5f5" : undefined,
|
|
495
|
-
},
|
|
507
|
+
defaultStyle,
|
|
496
508
|
style
|
|
497
509
|
)
|
|
498
510
|
|
|
499
511
|
return actualStyle
|
|
500
512
|
}
|
|
501
513
|
|
|
502
|
-
styleForHeader({column, columnIndex, style}) {
|
|
514
|
+
styleForHeader({column, columnIndex, style, type}) {
|
|
515
|
+
const defaultStyle = {
|
|
516
|
+
padding: 8
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
if (type != "actions") {
|
|
520
|
+
defaultStyle.borderRight = "1px solid #dbdbdb"
|
|
521
|
+
}
|
|
522
|
+
|
|
503
523
|
const actualStyle = Object.assign(
|
|
504
|
-
|
|
505
|
-
padding: 8
|
|
506
|
-
},
|
|
524
|
+
defaultStyle,
|
|
507
525
|
style
|
|
508
526
|
)
|
|
509
527
|
|
|
@@ -519,8 +537,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
519
537
|
styleForRow({even} = {}) {
|
|
520
538
|
const actualStyle = {
|
|
521
539
|
flex: 1,
|
|
522
|
-
alignItems: "
|
|
523
|
-
borderBottom: "1px solid #f2f2f2"
|
|
540
|
+
alignItems: "stretch"
|
|
524
541
|
}
|
|
525
542
|
|
|
526
543
|
if (even) {
|
|
@@ -614,6 +631,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
|
|
|
614
631
|
<HeaderColumn
|
|
615
632
|
column={column}
|
|
616
633
|
key={tableSettingColumn.identifier()}
|
|
634
|
+
resizing={this.s.resizing}
|
|
617
635
|
table={this}
|
|
618
636
|
tableSettingColumn={tableSettingColumn}
|
|
619
637
|
width={width}
|