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.
@@ -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));
@@ -9,9 +9,16 @@ function useFormContext() {
9
9
  }
10
10
 
11
11
  // src/crud/crud_form.tsx
12
- import { SyncInput, SyncSelect, SyncSwitch } from "dn-react-toolkit/store";
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;
@@ -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));
@@ -533,9 +533,16 @@ function createTablePage({
533
533
  }
534
534
 
535
535
  // src/crud/crud_form.tsx
536
- import { SyncInput, SyncSelect, SyncSwitch } from "dn-react-toolkit/store";
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));
@@ -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));
@@ -117,9 +117,16 @@ function CrudFormProvider({
117
117
  }
118
118
 
119
119
  // src/crud/crud_form.tsx
120
- import { SyncInput, SyncSelect, SyncSwitch } from "dn-react-toolkit/store";
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));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dn-react-router-toolkit",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.js",