@mgarlik/datastore 0.1.21 → 0.1.23
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.cjs +64 -126
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +76 -59
- package/dist/index.d.ts +76 -59
- package/dist/index.js +64 -126
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,65 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
+
import { filterType } from '@mgarlik/json-filter';
|
|
2
3
|
import { D as DataStoreStorage } from './storage-D_xv8gFb.cjs';
|
|
3
4
|
|
|
5
|
+
type formTypes = "textInput" | "select" | "switch" | "dateTime" | "radio";
|
|
6
|
+
|
|
7
|
+
type textInputProps = {
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
multiline?: boolean;
|
|
10
|
+
numberOfLines?: number;
|
|
11
|
+
secure: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type switchProps = {
|
|
15
|
+
thumbColor?: string;
|
|
16
|
+
trackColor?: { true: string; false: string };
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
type dateTimeProps = {
|
|
20
|
+
mode: "date" | "time" | "datetime";
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type DataSourceOptions = {
|
|
24
|
+
dataProvider: string;
|
|
25
|
+
filter?: filterType;
|
|
26
|
+
map: Record<string, string>;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
type selectProps = {
|
|
30
|
+
multiple?: boolean;
|
|
31
|
+
options?:
|
|
32
|
+
| Array<{ value: string | number; label: string }>
|
|
33
|
+
| { dataSource: DataSourceOptions };
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// type selectProps = {
|
|
37
|
+
// multiple?: boolean;
|
|
38
|
+
// options?:
|
|
39
|
+
// Array<{ value: string | number; label: string }>
|
|
40
|
+
// | {
|
|
41
|
+
// dataSource: ProviderDataSourceType & {
|
|
42
|
+
// map: { value: string; label: string };
|
|
43
|
+
// };
|
|
44
|
+
// };
|
|
45
|
+
// };
|
|
46
|
+
|
|
47
|
+
type FormTypeMap = {
|
|
48
|
+
textInput: textInputProps;
|
|
49
|
+
select: selectProps;
|
|
50
|
+
switch: switchProps;
|
|
51
|
+
dateTime: dateTimeProps;
|
|
52
|
+
radio: never; // zatím žádné props
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
type FormTypeObject = {
|
|
56
|
+
[K in keyof FormTypeMap]: FormTypeMap[K] extends never
|
|
57
|
+
? { type: K; props?: never }
|
|
58
|
+
: { type: K; props?: FormTypeMap[K] };
|
|
59
|
+
}[keyof FormTypeMap];
|
|
60
|
+
|
|
61
|
+
type formType = formTypes | FormTypeObject;
|
|
62
|
+
|
|
4
63
|
type ProviderDataSourceType = {
|
|
5
64
|
/**
|
|
6
65
|
* Adresa pro CRUD data
|
|
@@ -16,6 +75,7 @@ type ProviderDataSourceType = {
|
|
|
16
75
|
delete?: string;
|
|
17
76
|
// updates?: { [key: string]: string };
|
|
18
77
|
};
|
|
78
|
+
dataProvider?: string;
|
|
19
79
|
/**
|
|
20
80
|
* Prime zadani pole dat
|
|
21
81
|
* */
|
|
@@ -29,7 +89,7 @@ type ProviderDataSourceType = {
|
|
|
29
89
|
* Nacist vsechny pole bez ohledu na schema
|
|
30
90
|
*/
|
|
31
91
|
readAllFields?: boolean;
|
|
32
|
-
filter?:
|
|
92
|
+
filter?: filterType;
|
|
33
93
|
/**
|
|
34
94
|
* Nazvy naslouchajicich socketu
|
|
35
95
|
*/
|
|
@@ -41,9 +101,6 @@ type DataProviderActionType = "create" | "update" | "delete";
|
|
|
41
101
|
//TODO: Rule type
|
|
42
102
|
type RuleType = {};
|
|
43
103
|
|
|
44
|
-
//TODO: Filter type
|
|
45
|
-
type FilterType$1 = {};
|
|
46
|
-
|
|
47
104
|
type ProviderEditorType = {
|
|
48
105
|
title?: string;
|
|
49
106
|
/**
|
|
@@ -69,18 +126,18 @@ type ProviderLayoutType = {
|
|
|
69
126
|
description?: string;
|
|
70
127
|
footer?: string;
|
|
71
128
|
tooltip?: string | React.ReactNode;
|
|
72
|
-
visible?: boolean |
|
|
129
|
+
visible?: boolean | filterType;
|
|
73
130
|
items: Array<{
|
|
74
131
|
field: string;
|
|
75
|
-
form?:
|
|
132
|
+
form?: formType;
|
|
76
133
|
label?: string; // jen override
|
|
77
|
-
visible?: boolean |
|
|
134
|
+
visible?: boolean | filterType;
|
|
78
135
|
tooltip?: string | React.ReactNode;
|
|
79
136
|
}>;
|
|
80
137
|
}[];
|
|
81
138
|
};
|
|
82
139
|
|
|
83
|
-
type
|
|
140
|
+
type BasicProviderSchemaItemType = {
|
|
84
141
|
/**
|
|
85
142
|
* Zdrojove pole pro hodnotu (např. "name" nebo "price"). Pokud není uvedeno, očekává se, že hodnota bude přímo v kořenovém objektu.
|
|
86
143
|
*/
|
|
@@ -89,44 +146,28 @@ type ProviderSchemaItemType = {
|
|
|
89
146
|
* Výchozí hodnota pole, která se použije, pokud není poskytnuta žádná jiná hodnota. Může být typu string, number, boolean nebo jiného vhodného typu v závislosti na kontextu použití.
|
|
90
147
|
*/
|
|
91
148
|
default?: any;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
type ProviderSchemaItemType = BasicProviderSchemaItemType & {
|
|
152
|
+
/** Typ hodnoty */
|
|
153
|
+
type?: "string" | "number" | "date" | "boolean";
|
|
92
154
|
/**
|
|
93
155
|
* Povolene hodnoty
|
|
94
156
|
*
|
|
95
157
|
*/
|
|
96
158
|
enum?: any[];
|
|
97
159
|
/**
|
|
98
|
-
* Je pole vyžadováno pri
|
|
160
|
+
* Je pole vyžadováno pro model ( pri create nebo pri update )?
|
|
99
161
|
*/
|
|
100
162
|
required?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Je pole pri editaci viditelné?
|
|
103
|
-
*/
|
|
104
|
-
visibility?: "hidden" | "visible";
|
|
105
163
|
/**
|
|
106
164
|
* Polozku lze editovat
|
|
107
165
|
*/
|
|
108
166
|
editable?: boolean | RuleType;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
multiple?: boolean;
|
|
112
|
-
mode?: "screen";
|
|
113
|
-
title?: string;
|
|
114
|
-
placeholder?: string;
|
|
115
|
-
// Pro select a radio
|
|
116
|
-
options?: { value: any; label?: string, icon?: string }[] | {
|
|
117
|
-
dataProvider: ProviderTypes;
|
|
118
|
-
optionKeys?: { value: string; label: LabelProps | { title: string; icon: string } };
|
|
119
|
-
filter?: string | RuleType;
|
|
120
|
-
};
|
|
167
|
+
form?: formType;
|
|
168
|
+
label?: string;
|
|
121
169
|
description?: string;
|
|
122
|
-
/** TODO: Divna definice labelu */
|
|
123
|
-
optionKeys?: { value: string; label: LabelProps | { title: string; icon: string } };
|
|
124
170
|
validations?: ValidationType;
|
|
125
|
-
/**
|
|
126
|
-
* Text input nezobrazuje znaky
|
|
127
|
-
*/
|
|
128
|
-
secure?: boolean;
|
|
129
|
-
hidden?: boolean;
|
|
130
171
|
};
|
|
131
172
|
|
|
132
173
|
type DataProviderType = {
|
|
@@ -392,35 +433,11 @@ interface UseDataProviderResult {
|
|
|
392
433
|
/** Vytvoří novou položku providera. */
|
|
393
434
|
createItem: (data: JSONType, callback?: (value: JSONType) => void) => Promise<JSONType>;
|
|
394
435
|
}
|
|
395
|
-
|
|
396
|
-
* Zaregistruje/zpřístupní providera a vrátí normalizované dokumenty spolu s CRUD helpery.
|
|
397
|
-
*
|
|
398
|
-
* @param id Provider id nebo inline definice providera.
|
|
399
|
-
* @param params Parametry šablony používané při renderu URI/definice.
|
|
400
|
-
* @param dataFilter Volitelný client-side filtr dokumentů providera.
|
|
401
|
-
* @param settings Volitelný závislý dokument použitý pro přepočet dat.
|
|
402
|
-
*/
|
|
403
|
-
declare const useDataProvider: (
|
|
404
|
-
/**
|
|
405
|
-
* Provider id nebo objekt data {key: value}
|
|
406
|
-
*/
|
|
407
|
-
id: string | {
|
|
436
|
+
declare const useDataProvider: (id: string | {
|
|
408
437
|
[key: string]: any;
|
|
409
|
-
} | false,
|
|
410
|
-
/**
|
|
411
|
-
* Parametry pro prerenderovani providera (profiles/<%= profileId %>)
|
|
412
|
-
*/
|
|
413
|
-
params?: {
|
|
438
|
+
} | false, params?: {
|
|
414
439
|
[key: string]: string;
|
|
415
|
-
} | null,
|
|
416
|
-
/**
|
|
417
|
-
* Filtrovani dat
|
|
418
|
-
*/
|
|
419
|
-
dataFilter?: JSONType | null,
|
|
420
|
-
/**
|
|
421
|
-
* Nejake nastaveni
|
|
422
|
-
*/
|
|
423
|
-
settings?: {
|
|
440
|
+
} | null, dataFilter?: filterType | null, settings?: {
|
|
424
441
|
documentId?: string;
|
|
425
442
|
document?: JSONType;
|
|
426
443
|
}) => UseDataProviderResult;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,65 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
+
import { filterType } from '@mgarlik/json-filter';
|
|
2
3
|
import { D as DataStoreStorage } from './storage-D_xv8gFb.js';
|
|
3
4
|
|
|
5
|
+
type formTypes = "textInput" | "select" | "switch" | "dateTime" | "radio";
|
|
6
|
+
|
|
7
|
+
type textInputProps = {
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
multiline?: boolean;
|
|
10
|
+
numberOfLines?: number;
|
|
11
|
+
secure: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type switchProps = {
|
|
15
|
+
thumbColor?: string;
|
|
16
|
+
trackColor?: { true: string; false: string };
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
type dateTimeProps = {
|
|
20
|
+
mode: "date" | "time" | "datetime";
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type DataSourceOptions = {
|
|
24
|
+
dataProvider: string;
|
|
25
|
+
filter?: filterType;
|
|
26
|
+
map: Record<string, string>;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
type selectProps = {
|
|
30
|
+
multiple?: boolean;
|
|
31
|
+
options?:
|
|
32
|
+
| Array<{ value: string | number; label: string }>
|
|
33
|
+
| { dataSource: DataSourceOptions };
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// type selectProps = {
|
|
37
|
+
// multiple?: boolean;
|
|
38
|
+
// options?:
|
|
39
|
+
// Array<{ value: string | number; label: string }>
|
|
40
|
+
// | {
|
|
41
|
+
// dataSource: ProviderDataSourceType & {
|
|
42
|
+
// map: { value: string; label: string };
|
|
43
|
+
// };
|
|
44
|
+
// };
|
|
45
|
+
// };
|
|
46
|
+
|
|
47
|
+
type FormTypeMap = {
|
|
48
|
+
textInput: textInputProps;
|
|
49
|
+
select: selectProps;
|
|
50
|
+
switch: switchProps;
|
|
51
|
+
dateTime: dateTimeProps;
|
|
52
|
+
radio: never; // zatím žádné props
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
type FormTypeObject = {
|
|
56
|
+
[K in keyof FormTypeMap]: FormTypeMap[K] extends never
|
|
57
|
+
? { type: K; props?: never }
|
|
58
|
+
: { type: K; props?: FormTypeMap[K] };
|
|
59
|
+
}[keyof FormTypeMap];
|
|
60
|
+
|
|
61
|
+
type formType = formTypes | FormTypeObject;
|
|
62
|
+
|
|
4
63
|
type ProviderDataSourceType = {
|
|
5
64
|
/**
|
|
6
65
|
* Adresa pro CRUD data
|
|
@@ -16,6 +75,7 @@ type ProviderDataSourceType = {
|
|
|
16
75
|
delete?: string;
|
|
17
76
|
// updates?: { [key: string]: string };
|
|
18
77
|
};
|
|
78
|
+
dataProvider?: string;
|
|
19
79
|
/**
|
|
20
80
|
* Prime zadani pole dat
|
|
21
81
|
* */
|
|
@@ -29,7 +89,7 @@ type ProviderDataSourceType = {
|
|
|
29
89
|
* Nacist vsechny pole bez ohledu na schema
|
|
30
90
|
*/
|
|
31
91
|
readAllFields?: boolean;
|
|
32
|
-
filter?:
|
|
92
|
+
filter?: filterType;
|
|
33
93
|
/**
|
|
34
94
|
* Nazvy naslouchajicich socketu
|
|
35
95
|
*/
|
|
@@ -41,9 +101,6 @@ type DataProviderActionType = "create" | "update" | "delete";
|
|
|
41
101
|
//TODO: Rule type
|
|
42
102
|
type RuleType = {};
|
|
43
103
|
|
|
44
|
-
//TODO: Filter type
|
|
45
|
-
type FilterType$1 = {};
|
|
46
|
-
|
|
47
104
|
type ProviderEditorType = {
|
|
48
105
|
title?: string;
|
|
49
106
|
/**
|
|
@@ -69,18 +126,18 @@ type ProviderLayoutType = {
|
|
|
69
126
|
description?: string;
|
|
70
127
|
footer?: string;
|
|
71
128
|
tooltip?: string | React.ReactNode;
|
|
72
|
-
visible?: boolean |
|
|
129
|
+
visible?: boolean | filterType;
|
|
73
130
|
items: Array<{
|
|
74
131
|
field: string;
|
|
75
|
-
form?:
|
|
132
|
+
form?: formType;
|
|
76
133
|
label?: string; // jen override
|
|
77
|
-
visible?: boolean |
|
|
134
|
+
visible?: boolean | filterType;
|
|
78
135
|
tooltip?: string | React.ReactNode;
|
|
79
136
|
}>;
|
|
80
137
|
}[];
|
|
81
138
|
};
|
|
82
139
|
|
|
83
|
-
type
|
|
140
|
+
type BasicProviderSchemaItemType = {
|
|
84
141
|
/**
|
|
85
142
|
* Zdrojove pole pro hodnotu (např. "name" nebo "price"). Pokud není uvedeno, očekává se, že hodnota bude přímo v kořenovém objektu.
|
|
86
143
|
*/
|
|
@@ -89,44 +146,28 @@ type ProviderSchemaItemType = {
|
|
|
89
146
|
* Výchozí hodnota pole, která se použije, pokud není poskytnuta žádná jiná hodnota. Může být typu string, number, boolean nebo jiného vhodného typu v závislosti na kontextu použití.
|
|
90
147
|
*/
|
|
91
148
|
default?: any;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
type ProviderSchemaItemType = BasicProviderSchemaItemType & {
|
|
152
|
+
/** Typ hodnoty */
|
|
153
|
+
type?: "string" | "number" | "date" | "boolean";
|
|
92
154
|
/**
|
|
93
155
|
* Povolene hodnoty
|
|
94
156
|
*
|
|
95
157
|
*/
|
|
96
158
|
enum?: any[];
|
|
97
159
|
/**
|
|
98
|
-
* Je pole vyžadováno pri
|
|
160
|
+
* Je pole vyžadováno pro model ( pri create nebo pri update )?
|
|
99
161
|
*/
|
|
100
162
|
required?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Je pole pri editaci viditelné?
|
|
103
|
-
*/
|
|
104
|
-
visibility?: "hidden" | "visible";
|
|
105
163
|
/**
|
|
106
164
|
* Polozku lze editovat
|
|
107
165
|
*/
|
|
108
166
|
editable?: boolean | RuleType;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
multiple?: boolean;
|
|
112
|
-
mode?: "screen";
|
|
113
|
-
title?: string;
|
|
114
|
-
placeholder?: string;
|
|
115
|
-
// Pro select a radio
|
|
116
|
-
options?: { value: any; label?: string, icon?: string }[] | {
|
|
117
|
-
dataProvider: ProviderTypes;
|
|
118
|
-
optionKeys?: { value: string; label: LabelProps | { title: string; icon: string } };
|
|
119
|
-
filter?: string | RuleType;
|
|
120
|
-
};
|
|
167
|
+
form?: formType;
|
|
168
|
+
label?: string;
|
|
121
169
|
description?: string;
|
|
122
|
-
/** TODO: Divna definice labelu */
|
|
123
|
-
optionKeys?: { value: string; label: LabelProps | { title: string; icon: string } };
|
|
124
170
|
validations?: ValidationType;
|
|
125
|
-
/**
|
|
126
|
-
* Text input nezobrazuje znaky
|
|
127
|
-
*/
|
|
128
|
-
secure?: boolean;
|
|
129
|
-
hidden?: boolean;
|
|
130
171
|
};
|
|
131
172
|
|
|
132
173
|
type DataProviderType = {
|
|
@@ -392,35 +433,11 @@ interface UseDataProviderResult {
|
|
|
392
433
|
/** Vytvoří novou položku providera. */
|
|
393
434
|
createItem: (data: JSONType, callback?: (value: JSONType) => void) => Promise<JSONType>;
|
|
394
435
|
}
|
|
395
|
-
|
|
396
|
-
* Zaregistruje/zpřístupní providera a vrátí normalizované dokumenty spolu s CRUD helpery.
|
|
397
|
-
*
|
|
398
|
-
* @param id Provider id nebo inline definice providera.
|
|
399
|
-
* @param params Parametry šablony používané při renderu URI/definice.
|
|
400
|
-
* @param dataFilter Volitelný client-side filtr dokumentů providera.
|
|
401
|
-
* @param settings Volitelný závislý dokument použitý pro přepočet dat.
|
|
402
|
-
*/
|
|
403
|
-
declare const useDataProvider: (
|
|
404
|
-
/**
|
|
405
|
-
* Provider id nebo objekt data {key: value}
|
|
406
|
-
*/
|
|
407
|
-
id: string | {
|
|
436
|
+
declare const useDataProvider: (id: string | {
|
|
408
437
|
[key: string]: any;
|
|
409
|
-
} | false,
|
|
410
|
-
/**
|
|
411
|
-
* Parametry pro prerenderovani providera (profiles/<%= profileId %>)
|
|
412
|
-
*/
|
|
413
|
-
params?: {
|
|
438
|
+
} | false, params?: {
|
|
414
439
|
[key: string]: string;
|
|
415
|
-
} | null,
|
|
416
|
-
/**
|
|
417
|
-
* Filtrovani dat
|
|
418
|
-
*/
|
|
419
|
-
dataFilter?: JSONType | null,
|
|
420
|
-
/**
|
|
421
|
-
* Nejake nastaveni
|
|
422
|
-
*/
|
|
423
|
-
settings?: {
|
|
440
|
+
} | null, dataFilter?: filterType | null, settings?: {
|
|
424
441
|
documentId?: string;
|
|
425
442
|
document?: JSONType;
|
|
426
443
|
}) => UseDataProviderResult;
|