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.
@@ -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
- }
@@ -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 = {}));
@@ -1,2 +0,0 @@
1
- export declare const parseLocationHash: <T extends {}>(search: string) => T | null;
2
- export declare const serializeLocationHash: (params: {}) => string;
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("&")}`;
@@ -1,3 +0,0 @@
1
- export declare const localeFormat: (date: Date | number, dateFormat: string) => string;
2
- export declare const localeFormatInTimeZone: (date: Date | number, timezone: string, dateFormat: string) => string;
3
- export declare const timeZone: string;
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;
@@ -1,2 +0,0 @@
1
- import { SchemaObject } from "openapi3-ts/oas31";
2
- export declare function getEmptyObject<T>(schema: SchemaObject): T;
@@ -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
- }
@@ -1,2 +0,0 @@
1
- export declare function uncamel(camel: string): string;
2
- export declare function defaultTranslate(key: string, ...args: any[]): string;
@@ -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
@@ -1,2 +0,0 @@
1
- import SchemaTable from "./SchemaTable";
2
- export { SchemaTable };
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 {};