dn-react-router-toolkit 0.5.4 → 0.5.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/crud/crud_form.js +36 -0
- package/dist/crud/crud_form.mjs +42 -1
- package/dist/crud/crud_form_provider.d.mts +2 -2
- package/dist/crud/crud_form_provider.d.ts +2 -2
- package/dist/crud/crud_page.js +36 -0
- package/dist/crud/crud_page.mjs +42 -1
- package/dist/crud/index.js +36 -0
- package/dist/crud/index.mjs +42 -1
- package/package.json +1 -1
package/dist/crud/crud_form.js
CHANGED
|
@@ -48,6 +48,8 @@ function useFormContext() {
|
|
|
48
48
|
var import_store2 = require("dn-react-toolkit/store");
|
|
49
49
|
var import_react3 = __toESM(require("react"));
|
|
50
50
|
var import_utils = require("dn-react-toolkit/utils");
|
|
51
|
+
var import_text_editor = require("dn-react-toolkit/text_editor");
|
|
52
|
+
var textarea = (0, import_text_editor.createTextEditor)();
|
|
51
53
|
function CrudForm({ AdminLayout }) {
|
|
52
54
|
const form = useFormContext();
|
|
53
55
|
return /* @__PURE__ */ import_react3.default.createElement(
|
|
@@ -67,6 +69,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
67
69
|
if (value.type === "checkbox") {
|
|
68
70
|
return /* @__PURE__ */ import_react3.default.createElement(import_store2.SyncSwitch, { store: form.store, property: key });
|
|
69
71
|
}
|
|
72
|
+
if (value.type === "number") {
|
|
73
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
74
|
+
import_store2.SyncInput,
|
|
75
|
+
{
|
|
76
|
+
store: form.store,
|
|
77
|
+
property: key,
|
|
78
|
+
className: "input-form",
|
|
79
|
+
type: "number",
|
|
80
|
+
serializer: (value2) => {
|
|
81
|
+
if (value2 === void 0 || value2 === null) {
|
|
82
|
+
return "";
|
|
83
|
+
}
|
|
84
|
+
return String(value2);
|
|
85
|
+
},
|
|
86
|
+
deserializer: (value2) => {
|
|
87
|
+
const parsed = Number(value2);
|
|
88
|
+
if (isNaN(parsed)) {
|
|
89
|
+
return void 0;
|
|
90
|
+
}
|
|
91
|
+
return parsed;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
70
96
|
if (value.type === "datetime") {
|
|
71
97
|
return /* @__PURE__ */ import_react3.default.createElement(
|
|
72
98
|
import_store2.SyncInput,
|
|
@@ -90,6 +116,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
90
116
|
}
|
|
91
117
|
);
|
|
92
118
|
}
|
|
119
|
+
if (value.type === "textarea") {
|
|
120
|
+
const Editor = (0, import_store2.useSyncTextEditor)(textarea);
|
|
121
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
122
|
+
Editor.SyncTextEditor,
|
|
123
|
+
{
|
|
124
|
+
store: form.store,
|
|
125
|
+
property: key
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
}
|
|
93
129
|
if (value.options) {
|
|
94
130
|
const Component = value.options;
|
|
95
131
|
return /* @__PURE__ */ import_react3.default.createElement(import_store2.SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ import_react3.default.createElement(Component, null));
|
package/dist/crud/crud_form.mjs
CHANGED
|
@@ -9,9 +9,16 @@ function useFormContext() {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
// src/crud/crud_form.tsx
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
SyncInput,
|
|
14
|
+
SyncSelect,
|
|
15
|
+
SyncSwitch,
|
|
16
|
+
useSyncTextEditor
|
|
17
|
+
} from "dn-react-toolkit/store";
|
|
13
18
|
import React2 from "react";
|
|
14
19
|
import { moment } from "dn-react-toolkit/utils";
|
|
20
|
+
import { createTextEditor } from "dn-react-toolkit/text_editor";
|
|
21
|
+
var textarea = createTextEditor();
|
|
15
22
|
function CrudForm({ AdminLayout }) {
|
|
16
23
|
const form = useFormContext();
|
|
17
24
|
return /* @__PURE__ */ React2.createElement(
|
|
@@ -31,6 +38,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
31
38
|
if (value.type === "checkbox") {
|
|
32
39
|
return /* @__PURE__ */ React2.createElement(SyncSwitch, { store: form.store, property: key });
|
|
33
40
|
}
|
|
41
|
+
if (value.type === "number") {
|
|
42
|
+
return /* @__PURE__ */ React2.createElement(
|
|
43
|
+
SyncInput,
|
|
44
|
+
{
|
|
45
|
+
store: form.store,
|
|
46
|
+
property: key,
|
|
47
|
+
className: "input-form",
|
|
48
|
+
type: "number",
|
|
49
|
+
serializer: (value2) => {
|
|
50
|
+
if (value2 === void 0 || value2 === null) {
|
|
51
|
+
return "";
|
|
52
|
+
}
|
|
53
|
+
return String(value2);
|
|
54
|
+
},
|
|
55
|
+
deserializer: (value2) => {
|
|
56
|
+
const parsed = Number(value2);
|
|
57
|
+
if (isNaN(parsed)) {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
return parsed;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
34
65
|
if (value.type === "datetime") {
|
|
35
66
|
return /* @__PURE__ */ React2.createElement(
|
|
36
67
|
SyncInput,
|
|
@@ -54,6 +85,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
54
85
|
}
|
|
55
86
|
);
|
|
56
87
|
}
|
|
88
|
+
if (value.type === "textarea") {
|
|
89
|
+
const Editor = useSyncTextEditor(textarea);
|
|
90
|
+
return /* @__PURE__ */ React2.createElement(
|
|
91
|
+
Editor.SyncTextEditor,
|
|
92
|
+
{
|
|
93
|
+
store: form.store,
|
|
94
|
+
property: key
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
57
98
|
if (value.options) {
|
|
58
99
|
const Component = value.options;
|
|
59
100
|
return /* @__PURE__ */ React2.createElement(SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ React2.createElement(Component, null));
|
|
@@ -6,7 +6,7 @@ type FormState<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TMo
|
|
|
6
6
|
};
|
|
7
7
|
type FormColumnValue<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TModel ? "id" : never> = {
|
|
8
8
|
label: string;
|
|
9
|
-
type?: React.HTMLInputTypeAttribute;
|
|
9
|
+
type?: React.HTMLInputTypeAttribute | "textarea";
|
|
10
10
|
component?: React.FC<{
|
|
11
11
|
store: RxStore<FormState<TModel, TPrimaryKey>>;
|
|
12
12
|
property: string;
|
|
@@ -23,7 +23,7 @@ declare function useFormContext<TModel, TPrimaryKey extends keyof TModel = "id"
|
|
|
23
23
|
store: RxStore<FormState<TModel, TPrimaryKey>>;
|
|
24
24
|
submit: () => Promise<void>;
|
|
25
25
|
delete: () => Promise<void>;
|
|
26
|
-
columns: FormColumns<TModel>;
|
|
26
|
+
columns: FormColumns<TModel, TPrimaryKey>;
|
|
27
27
|
};
|
|
28
28
|
type CrudFormProps<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TModel ? "id" : never> = {
|
|
29
29
|
primaryKey?: TPrimaryKey;
|
|
@@ -6,7 +6,7 @@ type FormState<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TMo
|
|
|
6
6
|
};
|
|
7
7
|
type FormColumnValue<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TModel ? "id" : never> = {
|
|
8
8
|
label: string;
|
|
9
|
-
type?: React.HTMLInputTypeAttribute;
|
|
9
|
+
type?: React.HTMLInputTypeAttribute | "textarea";
|
|
10
10
|
component?: React.FC<{
|
|
11
11
|
store: RxStore<FormState<TModel, TPrimaryKey>>;
|
|
12
12
|
property: string;
|
|
@@ -23,7 +23,7 @@ declare function useFormContext<TModel, TPrimaryKey extends keyof TModel = "id"
|
|
|
23
23
|
store: RxStore<FormState<TModel, TPrimaryKey>>;
|
|
24
24
|
submit: () => Promise<void>;
|
|
25
25
|
delete: () => Promise<void>;
|
|
26
|
-
columns: FormColumns<TModel>;
|
|
26
|
+
columns: FormColumns<TModel, TPrimaryKey>;
|
|
27
27
|
};
|
|
28
28
|
type CrudFormProps<TModel, TPrimaryKey extends keyof TModel = "id" extends keyof TModel ? "id" : never> = {
|
|
29
29
|
primaryKey?: TPrimaryKey;
|
package/dist/crud/crud_page.js
CHANGED
|
@@ -564,6 +564,8 @@ function createTablePage({
|
|
|
564
564
|
var import_store2 = require("dn-react-toolkit/store");
|
|
565
565
|
var import_react8 = __toESM(require("react"));
|
|
566
566
|
var import_utils3 = require("dn-react-toolkit/utils");
|
|
567
|
+
var import_text_editor = require("dn-react-toolkit/text_editor");
|
|
568
|
+
var textarea = (0, import_text_editor.createTextEditor)();
|
|
567
569
|
function CrudForm({ AdminLayout }) {
|
|
568
570
|
const form = useFormContext();
|
|
569
571
|
return /* @__PURE__ */ import_react8.default.createElement(
|
|
@@ -583,6 +585,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
583
585
|
if (value.type === "checkbox") {
|
|
584
586
|
return /* @__PURE__ */ import_react8.default.createElement(import_store2.SyncSwitch, { store: form.store, property: key });
|
|
585
587
|
}
|
|
588
|
+
if (value.type === "number") {
|
|
589
|
+
return /* @__PURE__ */ import_react8.default.createElement(
|
|
590
|
+
import_store2.SyncInput,
|
|
591
|
+
{
|
|
592
|
+
store: form.store,
|
|
593
|
+
property: key,
|
|
594
|
+
className: "input-form",
|
|
595
|
+
type: "number",
|
|
596
|
+
serializer: (value2) => {
|
|
597
|
+
if (value2 === void 0 || value2 === null) {
|
|
598
|
+
return "";
|
|
599
|
+
}
|
|
600
|
+
return String(value2);
|
|
601
|
+
},
|
|
602
|
+
deserializer: (value2) => {
|
|
603
|
+
const parsed = Number(value2);
|
|
604
|
+
if (isNaN(parsed)) {
|
|
605
|
+
return void 0;
|
|
606
|
+
}
|
|
607
|
+
return parsed;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
);
|
|
611
|
+
}
|
|
586
612
|
if (value.type === "datetime") {
|
|
587
613
|
return /* @__PURE__ */ import_react8.default.createElement(
|
|
588
614
|
import_store2.SyncInput,
|
|
@@ -606,6 +632,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
606
632
|
}
|
|
607
633
|
);
|
|
608
634
|
}
|
|
635
|
+
if (value.type === "textarea") {
|
|
636
|
+
const Editor = (0, import_store2.useSyncTextEditor)(textarea);
|
|
637
|
+
return /* @__PURE__ */ import_react8.default.createElement(
|
|
638
|
+
Editor.SyncTextEditor,
|
|
639
|
+
{
|
|
640
|
+
store: form.store,
|
|
641
|
+
property: key
|
|
642
|
+
}
|
|
643
|
+
);
|
|
644
|
+
}
|
|
609
645
|
if (value.options) {
|
|
610
646
|
const Component = value.options;
|
|
611
647
|
return /* @__PURE__ */ import_react8.default.createElement(import_store2.SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ import_react8.default.createElement(Component, null));
|
package/dist/crud/crud_page.mjs
CHANGED
|
@@ -533,9 +533,16 @@ function createTablePage({
|
|
|
533
533
|
}
|
|
534
534
|
|
|
535
535
|
// src/crud/crud_form.tsx
|
|
536
|
-
import {
|
|
536
|
+
import {
|
|
537
|
+
SyncInput,
|
|
538
|
+
SyncSelect,
|
|
539
|
+
SyncSwitch,
|
|
540
|
+
useSyncTextEditor
|
|
541
|
+
} from "dn-react-toolkit/store";
|
|
537
542
|
import React7 from "react";
|
|
538
543
|
import { moment } from "dn-react-toolkit/utils";
|
|
544
|
+
import { createTextEditor } from "dn-react-toolkit/text_editor";
|
|
545
|
+
var textarea = createTextEditor();
|
|
539
546
|
function CrudForm({ AdminLayout }) {
|
|
540
547
|
const form = useFormContext();
|
|
541
548
|
return /* @__PURE__ */ React7.createElement(
|
|
@@ -555,6 +562,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
555
562
|
if (value.type === "checkbox") {
|
|
556
563
|
return /* @__PURE__ */ React7.createElement(SyncSwitch, { store: form.store, property: key });
|
|
557
564
|
}
|
|
565
|
+
if (value.type === "number") {
|
|
566
|
+
return /* @__PURE__ */ React7.createElement(
|
|
567
|
+
SyncInput,
|
|
568
|
+
{
|
|
569
|
+
store: form.store,
|
|
570
|
+
property: key,
|
|
571
|
+
className: "input-form",
|
|
572
|
+
type: "number",
|
|
573
|
+
serializer: (value2) => {
|
|
574
|
+
if (value2 === void 0 || value2 === null) {
|
|
575
|
+
return "";
|
|
576
|
+
}
|
|
577
|
+
return String(value2);
|
|
578
|
+
},
|
|
579
|
+
deserializer: (value2) => {
|
|
580
|
+
const parsed = Number(value2);
|
|
581
|
+
if (isNaN(parsed)) {
|
|
582
|
+
return void 0;
|
|
583
|
+
}
|
|
584
|
+
return parsed;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
);
|
|
588
|
+
}
|
|
558
589
|
if (value.type === "datetime") {
|
|
559
590
|
return /* @__PURE__ */ React7.createElement(
|
|
560
591
|
SyncInput,
|
|
@@ -578,6 +609,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
578
609
|
}
|
|
579
610
|
);
|
|
580
611
|
}
|
|
612
|
+
if (value.type === "textarea") {
|
|
613
|
+
const Editor = useSyncTextEditor(textarea);
|
|
614
|
+
return /* @__PURE__ */ React7.createElement(
|
|
615
|
+
Editor.SyncTextEditor,
|
|
616
|
+
{
|
|
617
|
+
store: form.store,
|
|
618
|
+
property: key
|
|
619
|
+
}
|
|
620
|
+
);
|
|
621
|
+
}
|
|
581
622
|
if (value.options) {
|
|
582
623
|
const Component = value.options;
|
|
583
624
|
return /* @__PURE__ */ React7.createElement(SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ React7.createElement(Component, null));
|
package/dist/crud/index.js
CHANGED
|
@@ -162,6 +162,8 @@ function CrudFormProvider({
|
|
|
162
162
|
var import_store2 = require("dn-react-toolkit/store");
|
|
163
163
|
var import_react3 = __toESM(require("react"));
|
|
164
164
|
var import_utils = require("dn-react-toolkit/utils");
|
|
165
|
+
var import_text_editor = require("dn-react-toolkit/text_editor");
|
|
166
|
+
var textarea = (0, import_text_editor.createTextEditor)();
|
|
165
167
|
function CrudForm({ AdminLayout }) {
|
|
166
168
|
const form = useFormContext();
|
|
167
169
|
return /* @__PURE__ */ import_react3.default.createElement(
|
|
@@ -181,6 +183,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
181
183
|
if (value.type === "checkbox") {
|
|
182
184
|
return /* @__PURE__ */ import_react3.default.createElement(import_store2.SyncSwitch, { store: form.store, property: key });
|
|
183
185
|
}
|
|
186
|
+
if (value.type === "number") {
|
|
187
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
188
|
+
import_store2.SyncInput,
|
|
189
|
+
{
|
|
190
|
+
store: form.store,
|
|
191
|
+
property: key,
|
|
192
|
+
className: "input-form",
|
|
193
|
+
type: "number",
|
|
194
|
+
serializer: (value2) => {
|
|
195
|
+
if (value2 === void 0 || value2 === null) {
|
|
196
|
+
return "";
|
|
197
|
+
}
|
|
198
|
+
return String(value2);
|
|
199
|
+
},
|
|
200
|
+
deserializer: (value2) => {
|
|
201
|
+
const parsed = Number(value2);
|
|
202
|
+
if (isNaN(parsed)) {
|
|
203
|
+
return void 0;
|
|
204
|
+
}
|
|
205
|
+
return parsed;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
}
|
|
184
210
|
if (value.type === "datetime") {
|
|
185
211
|
return /* @__PURE__ */ import_react3.default.createElement(
|
|
186
212
|
import_store2.SyncInput,
|
|
@@ -204,6 +230,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
204
230
|
}
|
|
205
231
|
);
|
|
206
232
|
}
|
|
233
|
+
if (value.type === "textarea") {
|
|
234
|
+
const Editor = (0, import_store2.useSyncTextEditor)(textarea);
|
|
235
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
236
|
+
Editor.SyncTextEditor,
|
|
237
|
+
{
|
|
238
|
+
store: form.store,
|
|
239
|
+
property: key
|
|
240
|
+
}
|
|
241
|
+
);
|
|
242
|
+
}
|
|
207
243
|
if (value.options) {
|
|
208
244
|
const Component = value.options;
|
|
209
245
|
return /* @__PURE__ */ import_react3.default.createElement(import_store2.SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ import_react3.default.createElement(Component, null));
|
package/dist/crud/index.mjs
CHANGED
|
@@ -117,9 +117,16 @@ function CrudFormProvider({
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
// src/crud/crud_form.tsx
|
|
120
|
-
import {
|
|
120
|
+
import {
|
|
121
|
+
SyncInput,
|
|
122
|
+
SyncSelect,
|
|
123
|
+
SyncSwitch,
|
|
124
|
+
useSyncTextEditor
|
|
125
|
+
} from "dn-react-toolkit/store";
|
|
121
126
|
import React2 from "react";
|
|
122
127
|
import { moment } from "dn-react-toolkit/utils";
|
|
128
|
+
import { createTextEditor } from "dn-react-toolkit/text_editor";
|
|
129
|
+
var textarea = createTextEditor();
|
|
123
130
|
function CrudForm({ AdminLayout }) {
|
|
124
131
|
const form = useFormContext();
|
|
125
132
|
return /* @__PURE__ */ React2.createElement(
|
|
@@ -139,6 +146,30 @@ function CrudForm({ AdminLayout }) {
|
|
|
139
146
|
if (value.type === "checkbox") {
|
|
140
147
|
return /* @__PURE__ */ React2.createElement(SyncSwitch, { store: form.store, property: key });
|
|
141
148
|
}
|
|
149
|
+
if (value.type === "number") {
|
|
150
|
+
return /* @__PURE__ */ React2.createElement(
|
|
151
|
+
SyncInput,
|
|
152
|
+
{
|
|
153
|
+
store: form.store,
|
|
154
|
+
property: key,
|
|
155
|
+
className: "input-form",
|
|
156
|
+
type: "number",
|
|
157
|
+
serializer: (value2) => {
|
|
158
|
+
if (value2 === void 0 || value2 === null) {
|
|
159
|
+
return "";
|
|
160
|
+
}
|
|
161
|
+
return String(value2);
|
|
162
|
+
},
|
|
163
|
+
deserializer: (value2) => {
|
|
164
|
+
const parsed = Number(value2);
|
|
165
|
+
if (isNaN(parsed)) {
|
|
166
|
+
return void 0;
|
|
167
|
+
}
|
|
168
|
+
return parsed;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
}
|
|
142
173
|
if (value.type === "datetime") {
|
|
143
174
|
return /* @__PURE__ */ React2.createElement(
|
|
144
175
|
SyncInput,
|
|
@@ -162,6 +193,16 @@ function CrudForm({ AdminLayout }) {
|
|
|
162
193
|
}
|
|
163
194
|
);
|
|
164
195
|
}
|
|
196
|
+
if (value.type === "textarea") {
|
|
197
|
+
const Editor = useSyncTextEditor(textarea);
|
|
198
|
+
return /* @__PURE__ */ React2.createElement(
|
|
199
|
+
Editor.SyncTextEditor,
|
|
200
|
+
{
|
|
201
|
+
store: form.store,
|
|
202
|
+
property: key
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
}
|
|
165
206
|
if (value.options) {
|
|
166
207
|
const Component = value.options;
|
|
167
208
|
return /* @__PURE__ */ React2.createElement(SyncSelect, { store: form.store, property: key }, /* @__PURE__ */ React2.createElement(Component, null));
|