mig-schema-table 4.0.4 → 4.0.6
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-BAWwGDLp.mjs +16162 -0
- package/dist/index-DnHilIb1.mjs +25093 -0
- package/dist/index.d.ts +6 -3
- package/dist/mig-schema-table.es.js +9 -0
- package/dist/mig-schema-table.umd.js +117 -0
- package/dist/style.css +1 -0
- package/package.json +54 -67
- package/dist/SchemaTable/ColumnResizers/index.d.ts +0 -9
- package/dist/SchemaTable/ColumnResizers/index.js +0 -34
- package/dist/SchemaTable/Td/index.d.ts +0 -24
- package/dist/SchemaTable/Td/index.js +0 -121
- package/dist/SchemaTable/Th/index.d.ts +0 -29
- package/dist/SchemaTable/Th/index.js +0 -133
- package/dist/SchemaTable/ThMenu/FilterMenuComponent/index.d.ts +0 -14
- package/dist/SchemaTable/ThMenu/FilterMenuComponent/index.js +0 -132
- package/dist/SchemaTable/ThMenu/index.d.ts +0 -25
- package/dist/SchemaTable/ThMenu/index.js +0 -56
- package/dist/SchemaTable/constants.d.ts +0 -2
- package/dist/SchemaTable/constants.js +0 -2
- package/dist/SchemaTable/index.d.ts +0 -67
- package/dist/SchemaTable/index.js +0 -715
- package/dist/inc/constant.d.ts +0 -9
- package/dist/inc/constant.js +0 -10
- package/dist/inc/data.d.ts +0 -2
- package/dist/inc/data.js +0 -50
- package/dist/inc/date.d.ts +0 -3
- package/dist/inc/date.js +0 -7
- package/dist/inc/schema.d.ts +0 -2
- package/dist/inc/schema.js +0 -32
- package/dist/inc/string.d.ts +0 -2
- package/dist/inc/string.js +0 -31
- package/dist/index.css +0 -208
- package/dist/index.js +0 -2
- package/dist/types.d.ts +0 -31
- package/dist/types.js +0 -1
package/dist/inc/constant.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const DEFAULT_DATE_FORMAT = "dd MMM yyyy";
|
|
2
|
-
export declare const DEFAULT_DATE_TIME_FORMAT = "dd MMM yyyy HH:mm";
|
|
3
|
-
export declare const MINIMUM_COLUMN_WIDTH = 25;
|
|
4
|
-
export declare const COLUMN_WIDTH = 3;
|
|
5
|
-
export declare enum ENumberColumnFilterOperation {
|
|
6
|
-
"GT" = "GT",
|
|
7
|
-
"LT" = "LT",
|
|
8
|
-
"EQ" = "EQ"
|
|
9
|
-
}
|
package/dist/inc/constant.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_DATE_FORMAT = "dd MMM yyyy";
|
|
2
|
-
export const DEFAULT_DATE_TIME_FORMAT = "dd MMM yyyy HH:mm";
|
|
3
|
-
export const MINIMUM_COLUMN_WIDTH = 25;
|
|
4
|
-
export const COLUMN_WIDTH = 3;
|
|
5
|
-
export var ENumberColumnFilterOperation;
|
|
6
|
-
(function (ENumberColumnFilterOperation) {
|
|
7
|
-
ENumberColumnFilterOperation["GT"] = "GT";
|
|
8
|
-
ENumberColumnFilterOperation["LT"] = "LT";
|
|
9
|
-
ENumberColumnFilterOperation["EQ"] = "EQ";
|
|
10
|
-
})(ENumberColumnFilterOperation || (ENumberColumnFilterOperation = {}));
|
package/dist/inc/data.d.ts
DELETED
package/dist/inc/data.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const unserializeDates = (serializedObject) => {
|
|
2
|
-
if (serializedObject instanceof Object) {
|
|
3
|
-
if (serializedObject.$Date) {
|
|
4
|
-
return new Date(serializedObject.$Date);
|
|
5
|
-
}
|
|
6
|
-
return Object.entries(serializedObject).reduce((prev, [prop, value]) => {
|
|
7
|
-
prev[prop] = unserializeDates(value);
|
|
8
|
-
return prev;
|
|
9
|
-
}, {});
|
|
10
|
-
}
|
|
11
|
-
return serializedObject;
|
|
12
|
-
};
|
|
13
|
-
export const parseLocationHash = (search) => {
|
|
14
|
-
if (!search.length) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
const result = {};
|
|
18
|
-
search
|
|
19
|
-
.substring(1)
|
|
20
|
-
.split("&")
|
|
21
|
-
.forEach((pair) => {
|
|
22
|
-
if (!pair) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const splitPair = pair.split("=");
|
|
26
|
-
if (splitPair.length !== 2) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
result[decodeURIComponent(splitPair[0])] = unserializeDates(JSON.parse(decodeURIComponent(splitPair[1])));
|
|
31
|
-
});
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
const serializeDates = (object) => {
|
|
35
|
-
if (!(object instanceof Object)) {
|
|
36
|
-
return object;
|
|
37
|
-
}
|
|
38
|
-
if (object instanceof Date) {
|
|
39
|
-
return {
|
|
40
|
-
$Date: object.toISOString(),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
return Object.entries(object).reduce((prev, [prop, value]) => {
|
|
44
|
-
prev[prop] = serializeDates(value);
|
|
45
|
-
return prev;
|
|
46
|
-
}, {});
|
|
47
|
-
};
|
|
48
|
-
export const serializeLocationHash = (params) => `${Object.entries(params)
|
|
49
|
-
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(JSON.stringify(serializeDates(value)))}`)
|
|
50
|
-
.join("&")}`;
|
package/dist/inc/date.d.ts
DELETED
package/dist/inc/date.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { format } from "date-fns";
|
|
2
|
-
import { formatInTimeZone } from "date-fns-tz";
|
|
3
|
-
import nl from "date-fns/locale/nl";
|
|
4
|
-
export const localeFormat = (date, dateFormat) => format(date, dateFormat, { locale: nl });
|
|
5
|
-
export const localeFormatInTimeZone = (date, timezone, dateFormat) => formatInTimeZone(date, timezone, dateFormat, { locale: nl });
|
|
6
|
-
// E.g. Europe/Amsterdam, Europe/Berlin, Asia/Jakarta, Asia/Bangkok...
|
|
7
|
-
export const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
package/dist/inc/schema.d.ts
DELETED
package/dist/inc/schema.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export function getEmptyObject(schema) {
|
|
2
|
-
const { properties = {} } = schema;
|
|
3
|
-
return Object.keys(properties).reduce((prev, propName) => {
|
|
4
|
-
const prop = properties[propName];
|
|
5
|
-
let propValue;
|
|
6
|
-
switch (prop.type) {
|
|
7
|
-
case "string":
|
|
8
|
-
propValue = prop.enum ? prop.enum[0] : prop.default || "";
|
|
9
|
-
break;
|
|
10
|
-
case "array":
|
|
11
|
-
propValue = prop.default || [];
|
|
12
|
-
break;
|
|
13
|
-
case "number":
|
|
14
|
-
case "integer":
|
|
15
|
-
propValue = prop.default || 0;
|
|
16
|
-
break;
|
|
17
|
-
case "boolean":
|
|
18
|
-
propValue = prop.default || false;
|
|
19
|
-
break;
|
|
20
|
-
case "object":
|
|
21
|
-
propValue = prop.default || getEmptyObject(prop);
|
|
22
|
-
break;
|
|
23
|
-
// eslint-disable-next-line no-fallthrough
|
|
24
|
-
default:
|
|
25
|
-
console.log(prop);
|
|
26
|
-
throw new Error("Unsupported property");
|
|
27
|
-
}
|
|
28
|
-
// @ts-ignore
|
|
29
|
-
prev[propName] = propValue;
|
|
30
|
-
return prev;
|
|
31
|
-
}, {});
|
|
32
|
-
}
|
package/dist/inc/string.d.ts
DELETED
package/dist/inc/string.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { upperFirst } from "lodash";
|
|
2
|
-
function isUpperCase(letter) {
|
|
3
|
-
return !!letter.match(/[A-Z]/);
|
|
4
|
-
}
|
|
5
|
-
export function uncamel(camel) {
|
|
6
|
-
return upperFirst(camel.replaceAll(/[A-Z]/g, (letter, position) => {
|
|
7
|
-
const prevLetter = camel[position - 1];
|
|
8
|
-
const prevIsUppercase = prevLetter ? isUpperCase(prevLetter) : false;
|
|
9
|
-
const nextLetter = camel[position + 1];
|
|
10
|
-
const nextIsUppercase = nextLetter ? isUpperCase(nextLetter) : false;
|
|
11
|
-
if (position === 0 ||
|
|
12
|
-
(prevIsUppercase && (!nextLetter || nextIsUppercase))) {
|
|
13
|
-
return letter;
|
|
14
|
-
}
|
|
15
|
-
return ` ${nextIsUppercase ? letter : letter.toLowerCase()}`;
|
|
16
|
-
}));
|
|
17
|
-
}
|
|
18
|
-
const db = {
|
|
19
|
-
"Europe/Amsterdam": "AMS",
|
|
20
|
-
"Europe/Berlin": "AMS",
|
|
21
|
-
"Asia/Jakarta": "JKT",
|
|
22
|
-
"Asia/Bangkok": "JKT",
|
|
23
|
-
showingFilteredCountOfTotalCount: "Showing {0} of {1}",
|
|
24
|
-
};
|
|
25
|
-
export function defaultTranslate(key, ...args) {
|
|
26
|
-
let string = db[key] || uncamel(key);
|
|
27
|
-
args.forEach((arg, index) => {
|
|
28
|
-
string = string.replace(`{${index}}`, arg);
|
|
29
|
-
});
|
|
30
|
-
return string;
|
|
31
|
-
}
|
package/dist/index.css
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
.mig-schema-table,
|
|
2
|
-
.mig-schema-table * {
|
|
3
|
-
box-sizing: border-box;
|
|
4
|
-
}
|
|
5
|
-
.mig-schema-table button {
|
|
6
|
-
border: 1px solid #e4e4e4;
|
|
7
|
-
padding: 8px;
|
|
8
|
-
}
|
|
9
|
-
.mig-schema-table button:enabled {
|
|
10
|
-
background-color: #f6f6f6;
|
|
11
|
-
color: #404040;
|
|
12
|
-
}
|
|
13
|
-
.mig-schema-table button:enabled:hover {
|
|
14
|
-
border-color: #dbdbdb;
|
|
15
|
-
background-color: #ececec;
|
|
16
|
-
}
|
|
17
|
-
.mig-schema-table input {
|
|
18
|
-
padding: 8px;
|
|
19
|
-
border: 1px solid #888;
|
|
20
|
-
}
|
|
21
|
-
.mig-schema-table input:hover {
|
|
22
|
-
border-color: lightblue;
|
|
23
|
-
}
|
|
24
|
-
.mig-schema-table select {
|
|
25
|
-
height: 33px;
|
|
26
|
-
}
|
|
27
|
-
.mig-schema-table__custom_element_placeholder {
|
|
28
|
-
flex: 1;
|
|
29
|
-
}
|
|
30
|
-
.mig-schema-table__tbody {
|
|
31
|
-
overflow-x: hidden !important;
|
|
32
|
-
border-collapse: collapse;
|
|
33
|
-
width: 100%;
|
|
34
|
-
}
|
|
35
|
-
.mig-schema-table__th-row {
|
|
36
|
-
overflow: hidden !important;
|
|
37
|
-
}
|
|
38
|
-
.mig-schema-table--clickable-rows .mig-schema-table__td {
|
|
39
|
-
cursor: pointer;
|
|
40
|
-
}
|
|
41
|
-
.mig-schema-table__action-container {
|
|
42
|
-
display: flex;
|
|
43
|
-
flex-direction: row;
|
|
44
|
-
padding: 0.5rem;
|
|
45
|
-
align-items: center;
|
|
46
|
-
}
|
|
47
|
-
.mig-schema-table__row_counter {
|
|
48
|
-
margin-left: 8px;
|
|
49
|
-
font-size: 0.835rem;
|
|
50
|
-
}
|
|
51
|
-
.mig-schema-table__column_resize_container {
|
|
52
|
-
position: relative;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.mig-schema-table__th {
|
|
56
|
-
background-color: #fcfcfc;
|
|
57
|
-
border-right: 1px solid #ddd;
|
|
58
|
-
border-top: 1px solid #ddd;
|
|
59
|
-
border-bottom: 1px solid #ddd;
|
|
60
|
-
color: #666;
|
|
61
|
-
display: flex;
|
|
62
|
-
align-items: center;
|
|
63
|
-
padding-left: 8px;
|
|
64
|
-
padding-right: 8px;
|
|
65
|
-
user-select: none;
|
|
66
|
-
}
|
|
67
|
-
.mig-schema-table__th:first-child {
|
|
68
|
-
border-left: 1px solid #ddd;
|
|
69
|
-
}
|
|
70
|
-
.mig-schema-table__th div {
|
|
71
|
-
overflow: hidden;
|
|
72
|
-
white-space: nowrap;
|
|
73
|
-
text-overflow: ellipsis;
|
|
74
|
-
}
|
|
75
|
-
.mig-schema-table__th--sorted {
|
|
76
|
-
background-color: #eff6fb;
|
|
77
|
-
}
|
|
78
|
-
.mig-schema-table__th--dragging {
|
|
79
|
-
opacity: 0.5;
|
|
80
|
-
}
|
|
81
|
-
.mig-schema-table__th--dragging .mig-schema-table__th__trigger-el {
|
|
82
|
-
display: none !important;
|
|
83
|
-
}
|
|
84
|
-
.mig-schema-table__th--drop-target {
|
|
85
|
-
border-right: 3px dashed green;
|
|
86
|
-
}
|
|
87
|
-
.mig-schema-table__th--drop-target .mig-schema-table__th__trigger-el {
|
|
88
|
-
display: none !important;
|
|
89
|
-
}
|
|
90
|
-
.mig-schema-table__th--filter-ACTIVE .mig-schema-table__th__label-body-text {
|
|
91
|
-
text-decoration: underline;
|
|
92
|
-
font-style: italic;
|
|
93
|
-
}
|
|
94
|
-
.mig-schema-table__th__label-body {
|
|
95
|
-
display: flex;
|
|
96
|
-
flex: 1;
|
|
97
|
-
font-size: 14px;
|
|
98
|
-
align-items: center;
|
|
99
|
-
}
|
|
100
|
-
.mig-schema-table__th__label-body-text {
|
|
101
|
-
overflow: hidden;
|
|
102
|
-
white-space: nowrap;
|
|
103
|
-
text-overflow: ellipsis;
|
|
104
|
-
}
|
|
105
|
-
.mig-schema-table__th__trigger-el {
|
|
106
|
-
display: none;
|
|
107
|
-
position: absolute;
|
|
108
|
-
border: 1px solid #ddd;
|
|
109
|
-
top: 0;
|
|
110
|
-
right: 0;
|
|
111
|
-
bottom: 0;
|
|
112
|
-
width: 24px;
|
|
113
|
-
cursor: pointer;
|
|
114
|
-
background-color: #eff6fb;
|
|
115
|
-
color: #666;
|
|
116
|
-
font-size: 28px;
|
|
117
|
-
text-align: center;
|
|
118
|
-
padding: 5px 0 0 !important;
|
|
119
|
-
}
|
|
120
|
-
.mig-schema-table__th__sort-icon {
|
|
121
|
-
font-size: 24px;
|
|
122
|
-
width: 32px;
|
|
123
|
-
display: block;
|
|
124
|
-
text-align: center;
|
|
125
|
-
}
|
|
126
|
-
.mig-schema-table__th:hover {
|
|
127
|
-
background-color: #eff6fb;
|
|
128
|
-
}
|
|
129
|
-
.mig-schema-table__th:hover .mig-schema-table__th__trigger-el {
|
|
130
|
-
display: block !important;
|
|
131
|
-
}
|
|
132
|
-
.mig-schema-table__th svg {
|
|
133
|
-
vertical-align: baseline;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.mig-schema-table__th-menu {
|
|
137
|
-
background-color: white;
|
|
138
|
-
z-index: 99999;
|
|
139
|
-
}
|
|
140
|
-
.mig-schema-table__th-menu label {
|
|
141
|
-
flex: 1;
|
|
142
|
-
}
|
|
143
|
-
.mig-schema-table__th-menu .mig-schema-table__th-menu__sub-menu-indicator {
|
|
144
|
-
padding-left: 8px;
|
|
145
|
-
margin-left: 8px;
|
|
146
|
-
}
|
|
147
|
-
.mig-schema-table__th-menu__icon {
|
|
148
|
-
display: block;
|
|
149
|
-
width: 24px;
|
|
150
|
-
overflow: hidden;
|
|
151
|
-
text-align: center;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
.mig-schema-table__th-menu__sub-menu {
|
|
155
|
-
background-color: white;
|
|
156
|
-
border: 1px solid #ddd;
|
|
157
|
-
z-index: 99999;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.mig-schema-table-menu {
|
|
161
|
-
font-size: 14px;
|
|
162
|
-
list-style: none outside;
|
|
163
|
-
padding: 0;
|
|
164
|
-
margin: 0;
|
|
165
|
-
}
|
|
166
|
-
.mig-schema-table-menu li {
|
|
167
|
-
display: flex;
|
|
168
|
-
border: 1px solid #ddd;
|
|
169
|
-
align-items: center;
|
|
170
|
-
cursor: pointer;
|
|
171
|
-
}
|
|
172
|
-
.mig-schema-table-menu li .react-datepicker {
|
|
173
|
-
width: 20.5rem;
|
|
174
|
-
}
|
|
175
|
-
.mig-schema-table-menu li:hover {
|
|
176
|
-
background-color: #eff6fb;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.mig-schema-table__td {
|
|
180
|
-
overflow: hidden;
|
|
181
|
-
white-space: nowrap;
|
|
182
|
-
text-overflow: ellipsis;
|
|
183
|
-
padding-left: 8px;
|
|
184
|
-
padding-right: 8px;
|
|
185
|
-
align-content: center;
|
|
186
|
-
}
|
|
187
|
-
.mig-schema-table__td--odd {
|
|
188
|
-
background-color: var(--bs-gray-100, #f8f9fa);
|
|
189
|
-
}
|
|
190
|
-
.mig-schema-table__td--even {
|
|
191
|
-
background-color: var(--bs-white, #fff);
|
|
192
|
-
}
|
|
193
|
-
.mig-schema-table__td--selected {
|
|
194
|
-
background-color: var(--bs-gray-300, #dee2e6);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.mig-schema-table__column_resizer {
|
|
198
|
-
position: absolute;
|
|
199
|
-
top: 0;
|
|
200
|
-
user-select: none;
|
|
201
|
-
background-color: transparent;
|
|
202
|
-
cursor: e-resize;
|
|
203
|
-
width: 3px;
|
|
204
|
-
}
|
|
205
|
-
.mig-schema-table__column_resizer--dragged, .mig-schema-table__column_resizer:hover {
|
|
206
|
-
background-color: #bbb;
|
|
207
|
-
bottom: 0 !important;
|
|
208
|
-
}
|
package/dist/index.js
DELETED
package/dist/types.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { TColumnFilterValue } from "./SchemaTable";
|
|
3
|
-
import { IFilterMenuComponentProps } from "./SchemaTable/ThMenu/FilterMenuComponent";
|
|
4
|
-
export interface ITdBodyProps<T = any> {
|
|
5
|
-
rowData: T;
|
|
6
|
-
dataIndex: number;
|
|
7
|
-
rowIndex: number;
|
|
8
|
-
}
|
|
9
|
-
export interface IColumnConfig<T> {
|
|
10
|
-
FilterMenu?: React.ComponentType<IFilterMenuComponentProps>;
|
|
11
|
-
align?: "start" | "center" | "end";
|
|
12
|
-
dateFormat?: string;
|
|
13
|
-
defaultSortDesc?: boolean;
|
|
14
|
-
filter?: (rowData: T, columnFilterValue: TColumnFilterValue) => boolean;
|
|
15
|
-
hidden?: boolean;
|
|
16
|
-
hoverTitle?: string;
|
|
17
|
-
isFilterable?: boolean;
|
|
18
|
-
order?: number;
|
|
19
|
-
TdBody?: React.ComponentType<ITdBodyProps<T>>;
|
|
20
|
-
renderData?: (rowData: T, dataIndex: number) => string;
|
|
21
|
-
showTimezones?: false;
|
|
22
|
-
sort?: (a: T, b: T, sortAsc: boolean) => number;
|
|
23
|
-
sortByValue?: boolean;
|
|
24
|
-
isSortable?: boolean;
|
|
25
|
-
title?: string | React.ReactElement;
|
|
26
|
-
width?: number;
|
|
27
|
-
}
|
|
28
|
-
export interface IRenderData {
|
|
29
|
-
_index: number;
|
|
30
|
-
[key: string]: string | any;
|
|
31
|
-
}
|
package/dist/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|