nextjs-cms 0.5.9 → 0.5.11
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/api/axios/axiosInstance.d.ts +1 -1
- package/dist/api/axios/axiosInstance.js +8 -8
- package/dist/api/index.d.ts +855 -855
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +12 -12
- package/dist/api/lib/serverActions.d.ts +239 -239
- package/dist/api/lib/serverActions.d.ts.map +1 -1
- package/dist/api/lib/serverActions.js +834 -834
- package/dist/api/root.d.ts +828 -828
- package/dist/api/root.js +30 -30
- package/dist/api/routers/accountSettings.d.ts +60 -60
- package/dist/api/routers/accountSettings.js +108 -108
- package/dist/api/routers/admins.d.ts +105 -105
- package/dist/api/routers/admins.js +219 -219
- package/dist/api/routers/auth.d.ts +47 -47
- package/dist/api/routers/auth.js +25 -25
- package/dist/api/routers/categorySection.d.ts +103 -103
- package/dist/api/routers/categorySection.js +38 -38
- package/dist/api/routers/cmsSettings.d.ts +48 -48
- package/dist/api/routers/cmsSettings.js +51 -51
- package/dist/api/routers/cpanel.d.ts +83 -83
- package/dist/api/routers/cpanel.js +216 -216
- package/dist/api/routers/files.d.ts +47 -47
- package/dist/api/routers/files.js +23 -23
- package/dist/api/routers/gallery.d.ts +35 -35
- package/dist/api/routers/gallery.js +62 -62
- package/dist/api/routers/googleAnalytics.d.ts +30 -30
- package/dist/api/routers/googleAnalytics.js +7 -7
- package/dist/api/routers/hasItemsSection.d.ts +139 -139
- package/dist/api/routers/hasItemsSection.js +34 -34
- package/dist/api/routers/navigation.d.ts +51 -51
- package/dist/api/routers/navigation.js +11 -11
- package/dist/api/routers/simpleSection.d.ts +57 -57
- package/dist/api/routers/simpleSection.js +12 -12
- package/dist/api/trpc.d.ts +106 -106
- package/dist/api/trpc.js +72 -72
- package/dist/auth/axios/axiosInstance.d.ts +1 -1
- package/dist/auth/axios/axiosInstance.js +8 -8
- package/dist/auth/csrf.d.ts +29 -29
- package/dist/auth/csrf.js +76 -76
- package/dist/auth/hooks/index.d.ts +3 -3
- package/dist/auth/hooks/index.d.ts.map +1 -1
- package/dist/auth/hooks/index.js +3 -3
- package/dist/auth/hooks/useAxiosPrivate.d.ts +4 -4
- package/dist/auth/hooks/useAxiosPrivate.js +74 -74
- package/dist/auth/hooks/useRefreshToken.d.ts +6 -6
- package/dist/auth/hooks/useRefreshToken.js +79 -79
- package/dist/auth/index.d.ts +22 -22
- package/dist/auth/index.js +44 -44
- package/dist/auth/jwt.d.ts +5 -5
- package/dist/auth/jwt.js +25 -25
- package/dist/auth/lib/actions.d.ts +32 -32
- package/dist/auth/lib/actions.d.ts.map +1 -1
- package/dist/auth/lib/actions.js +209 -209
- package/dist/auth/lib/client.d.ts +3 -3
- package/dist/auth/lib/client.js +46 -46
- package/dist/auth/lib/index.d.ts +2 -2
- package/dist/auth/lib/index.d.ts.map +1 -1
- package/dist/auth/lib/index.js +2 -2
- package/dist/auth/react.d.ts +105 -105
- package/dist/auth/react.d.ts.map +1 -1
- package/dist/auth/react.js +347 -347
- package/dist/auth/trpc.d.ts +5 -5
- package/dist/auth/trpc.d.ts.map +1 -1
- package/dist/auth/trpc.js +81 -81
- package/dist/core/config/config-loader.d.ts +91 -91
- package/dist/core/config/config-loader.js +230 -230
- package/dist/core/config/index.d.ts +2 -2
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +42 -42
- package/dist/core/db/index.d.ts +1 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +1 -1
- package/dist/core/db/table-checker/DbTable.d.ts +5 -5
- package/dist/core/db/table-checker/DbTable.js +5 -5
- package/dist/core/db/table-checker/MysqlTable.d.ts +33 -33
- package/dist/core/db/table-checker/MysqlTable.d.ts.map +1 -1
- package/dist/core/db/table-checker/MysqlTable.js +94 -94
- package/dist/core/db/table-checker/index.d.ts +1 -1
- package/dist/core/db/table-checker/index.d.ts.map +1 -1
- package/dist/core/db/table-checker/index.js +1 -1
- package/dist/core/factories/FieldFactory.d.ts +123 -123
- package/dist/core/factories/FieldFactory.d.ts.map +1 -1
- package/dist/core/factories/FieldFactory.js +411 -411
- package/dist/core/factories/SectionFactory.d.ts +109 -109
- package/dist/core/factories/SectionFactory.d.ts.map +1 -1
- package/dist/core/factories/SectionFactory.js +415 -415
- package/dist/core/factories/index.d.ts +2 -2
- package/dist/core/factories/index.d.ts.map +1 -1
- package/dist/core/factories/index.js +2 -2
- package/dist/core/fields/checkbox.d.ts +62 -62
- package/dist/core/fields/checkbox.d.ts.map +1 -1
- package/dist/core/fields/checkbox.js +62 -62
- package/dist/core/fields/color.d.ts +83 -83
- package/dist/core/fields/color.d.ts.map +1 -1
- package/dist/core/fields/color.js +91 -91
- package/dist/core/fields/date.d.ts +99 -99
- package/dist/core/fields/date.d.ts.map +1 -1
- package/dist/core/fields/date.js +108 -108
- package/dist/core/fields/document.d.ts +179 -179
- package/dist/core/fields/document.d.ts.map +1 -1
- package/dist/core/fields/document.js +277 -277
- package/dist/core/fields/field-group.d.ts +17 -17
- package/dist/core/fields/field-group.d.ts.map +1 -1
- package/dist/core/fields/field-group.js +6 -6
- package/dist/core/fields/field.d.ts +125 -125
- package/dist/core/fields/field.d.ts.map +1 -1
- package/dist/core/fields/field.js +148 -148
- package/dist/core/fields/fileField.d.ts +14 -14
- package/dist/core/fields/fileField.d.ts.map +1 -1
- package/dist/core/fields/fileField.js +5 -5
- package/dist/core/fields/index.d.ts +64 -64
- package/dist/core/fields/index.d.ts.map +1 -1
- package/dist/core/fields/index.js +18 -18
- package/dist/core/fields/map.d.ts +166 -166
- package/dist/core/fields/map.d.ts.map +1 -1
- package/dist/core/fields/map.js +152 -152
- package/dist/core/fields/number.d.ts +185 -185
- package/dist/core/fields/number.d.ts.map +1 -1
- package/dist/core/fields/number.js +241 -241
- package/dist/core/fields/password.d.ts +108 -108
- package/dist/core/fields/password.d.ts.map +1 -1
- package/dist/core/fields/password.js +133 -133
- package/dist/core/fields/photo.d.ts +288 -288
- package/dist/core/fields/photo.d.ts.map +1 -1
- package/dist/core/fields/photo.js +410 -410
- package/dist/core/fields/richText.d.ts +294 -294
- package/dist/core/fields/richText.d.ts.map +1 -1
- package/dist/core/fields/richText.js +338 -338
- package/dist/core/fields/select.d.ts +365 -365
- package/dist/core/fields/select.d.ts.map +1 -1
- package/dist/core/fields/select.js +499 -499
- package/dist/core/fields/selectMultiple.d.ts +235 -235
- package/dist/core/fields/selectMultiple.d.ts.map +1 -1
- package/dist/core/fields/selectMultiple.js +417 -417
- package/dist/core/fields/tags.d.ts +130 -130
- package/dist/core/fields/tags.d.ts.map +1 -1
- package/dist/core/fields/tags.js +105 -105
- package/dist/core/fields/text.d.ts +135 -135
- package/dist/core/fields/text.d.ts.map +1 -1
- package/dist/core/fields/text.js +157 -157
- package/dist/core/fields/textArea.d.ts +106 -106
- package/dist/core/fields/textArea.d.ts.map +1 -1
- package/dist/core/fields/textArea.js +126 -126
- package/dist/core/fields/video.d.ts +147 -147
- package/dist/core/fields/video.d.ts.map +1 -1
- package/dist/core/fields/video.js +248 -248
- package/dist/core/helpers/entity.d.ts +7 -7
- package/dist/core/helpers/entity.js +27 -27
- package/dist/core/helpers/index.d.ts +4 -4
- package/dist/core/helpers/index.d.ts.map +1 -1
- package/dist/core/helpers/index.js +3 -3
- package/dist/core/index.d.ts +7 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -7
- package/dist/core/sections/category.d.ts +282 -282
- package/dist/core/sections/category.d.ts.map +1 -1
- package/dist/core/sections/category.js +147 -147
- package/dist/core/sections/hasItems.d.ts +631 -631
- package/dist/core/sections/hasItems.d.ts.map +1 -1
- package/dist/core/sections/hasItems.js +144 -144
- package/dist/core/sections/index.d.ts +4 -4
- package/dist/core/sections/index.d.ts.map +1 -1
- package/dist/core/sections/index.js +4 -4
- package/dist/core/sections/section.d.ts +225 -225
- package/dist/core/sections/section.d.ts.map +1 -1
- package/dist/core/sections/section.js +341 -341
- package/dist/core/sections/simple.d.ts +98 -98
- package/dist/core/sections/simple.d.ts.map +1 -1
- package/dist/core/sections/simple.js +95 -95
- package/dist/core/security/dom.d.ts +10 -10
- package/dist/core/security/dom.js +92 -92
- package/dist/core/submit/ItemEditSubmit.d.ts +75 -75
- package/dist/core/submit/ItemEditSubmit.js +186 -186
- package/dist/core/submit/NewItemSubmit.d.ts +13 -13
- package/dist/core/submit/NewItemSubmit.js +93 -93
- package/dist/core/submit/SimpleSectionSubmit.d.ts +12 -12
- package/dist/core/submit/SimpleSectionSubmit.js +93 -93
- package/dist/core/submit/index.d.ts +4 -4
- package/dist/core/submit/index.js +4 -4
- package/dist/core/submit/submit.d.ts +115 -115
- package/dist/core/submit/submit.js +479 -479
- package/dist/core/types/index.d.ts +279 -279
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -1
- package/dist/db/client.d.ts +8 -8
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +19 -19
- package/dist/db/config.d.ts +5 -5
- package/dist/db/config.js +22 -22
- package/dist/db/drizzle.config.d.ts +5 -5
- package/dist/db/drizzle.config.js +18 -18
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.js +3 -3
- package/dist/db/schema.d.ts +638 -638
- package/dist/db/schema.js +73 -73
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/translations/index.d.ts +2 -2
- package/dist/translations/index.js +15 -15
- package/dist/utils/CpanelApi.d.ts +24 -24
- package/dist/utils/CpanelApi.js +64 -64
- package/dist/utils/constants.d.ts +13 -13
- package/dist/utils/constants.js +61 -61
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/utils.d.ts +59 -59
- package/dist/utils/utils.js +132 -132
- package/dist/validators/checkbox.d.ts +3 -3
- package/dist/validators/checkbox.d.ts.map +1 -1
- package/dist/validators/checkbox.js +12 -12
- package/dist/validators/color.d.ts +3 -3
- package/dist/validators/color.d.ts.map +1 -1
- package/dist/validators/color.js +7 -7
- package/dist/validators/date.d.ts +3 -3
- package/dist/validators/date.d.ts.map +1 -1
- package/dist/validators/date.js +5 -5
- package/dist/validators/document.d.ts +3 -3
- package/dist/validators/document.d.ts.map +1 -1
- package/dist/validators/document.js +57 -57
- package/dist/validators/index.d.ts +14 -14
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +14 -14
- package/dist/validators/map.d.ts +3 -3
- package/dist/validators/map.d.ts.map +1 -1
- package/dist/validators/map.js +5 -5
- package/dist/validators/number.d.ts +3 -3
- package/dist/validators/number.d.ts.map +1 -1
- package/dist/validators/number.js +20 -20
- package/dist/validators/password.d.ts +3 -3
- package/dist/validators/password.d.ts.map +1 -1
- package/dist/validators/password.js +11 -11
- package/dist/validators/photo.d.ts +3 -3
- package/dist/validators/photo.d.ts.map +1 -1
- package/dist/validators/photo.js +100 -100
- package/dist/validators/richText.d.ts +3 -3
- package/dist/validators/richText.d.ts.map +1 -1
- package/dist/validators/richText.js +8 -8
- package/dist/validators/select-multiple.d.ts +9 -9
- package/dist/validators/select-multiple.d.ts.map +1 -1
- package/dist/validators/select-multiple.js +20 -20
- package/dist/validators/select.d.ts +3 -3
- package/dist/validators/select.d.ts.map +1 -1
- package/dist/validators/select.js +5 -5
- package/dist/validators/text.d.ts +3 -3
- package/dist/validators/text.d.ts.map +1 -1
- package/dist/validators/text.js +7 -7
- package/dist/validators/textarea.d.ts +3 -3
- package/dist/validators/textarea.d.ts.map +1 -1
- package/dist/validators/textarea.js +7 -7
- package/dist/validators/video.d.ts +3 -3
- package/dist/validators/video.d.ts.map +1 -1
- package/dist/validators/video.js +57 -57
- package/package.json +4 -5
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
import type { BaseFieldConfig } from
|
|
2
|
-
import { Field } from
|
|
3
|
-
import { entityKind } from
|
|
4
|
-
import * as z from 'zod';
|
|
5
|
-
declare const configSchema: z.ZodObject<{
|
|
6
|
-
/**
|
|
7
|
-
* A destination table where the values will be saved
|
|
8
|
-
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
9
|
-
*/
|
|
10
|
-
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
11
|
-
table: z.ZodString;
|
|
12
|
-
itemIdentifier: z.ZodString;
|
|
13
|
-
selectIdentifier: z.ZodString;
|
|
14
|
-
}, z.core.$strict>>;
|
|
15
|
-
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
16
|
-
table: z.ZodString;
|
|
17
|
-
column: z.ZodString;
|
|
18
|
-
}, z.core.$strict>>;
|
|
19
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
20
|
-
/**
|
|
21
|
-
* Whether to sanitize the value before saving it to the database.
|
|
22
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
23
|
-
* If false, the value will be saved as is (raw input).
|
|
24
|
-
* @default false
|
|
25
|
-
*/
|
|
26
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
-
}, z.core.$strict>;
|
|
28
|
-
type Config = z.infer<typeof configSchema>;
|
|
29
|
-
export declare class TagsField extends Field<'tags', Config> {
|
|
30
|
-
static readonly [entityKind]: string;
|
|
31
|
-
readonly destinationDb?: {
|
|
32
|
-
table: string;
|
|
33
|
-
itemIdentifier: string;
|
|
34
|
-
selectIdentifier: string;
|
|
35
|
-
};
|
|
36
|
-
readonly placeholder: string;
|
|
37
|
-
readonly sanitize: boolean;
|
|
38
|
-
constructor(config: BaseFieldConfig<Config>);
|
|
39
|
-
getValue(): any;
|
|
40
|
-
exportForClient(): {
|
|
41
|
-
placeholder: string;
|
|
42
|
-
sanitize: boolean;
|
|
43
|
-
type: "tags";
|
|
44
|
-
name: string;
|
|
45
|
-
label: string;
|
|
46
|
-
required: boolean;
|
|
47
|
-
conditionalFields: import("../types.js").ConditionalField[];
|
|
48
|
-
readonly: boolean;
|
|
49
|
-
defaultValue: any;
|
|
50
|
-
value: any;
|
|
51
|
-
};
|
|
52
|
-
checkRequired(): void;
|
|
53
|
-
prepareForSubmission(): Promise<void>;
|
|
54
|
-
}
|
|
55
|
-
export type TagsFieldClientConfig = ReturnType<TagsField['exportForClient']>;
|
|
56
|
-
declare const optionsSchema: z.ZodObject<{
|
|
57
|
-
/**
|
|
58
|
-
* A destination table where the values will be saved
|
|
59
|
-
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
60
|
-
*/
|
|
61
|
-
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
62
|
-
table: z.ZodString;
|
|
63
|
-
itemIdentifier: z.ZodString;
|
|
64
|
-
selectIdentifier: z.ZodString;
|
|
65
|
-
}, z.core.$strict>>;
|
|
66
|
-
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
67
|
-
table: z.ZodString;
|
|
68
|
-
column: z.ZodString;
|
|
69
|
-
}, z.core.$strict>>;
|
|
70
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
71
|
-
/**
|
|
72
|
-
* Whether to sanitize the value before saving it to the database.
|
|
73
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
74
|
-
* If false, the value will be saved as is (raw input).
|
|
75
|
-
* @default false
|
|
76
|
-
*/
|
|
77
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
78
|
-
name: z.ZodString;
|
|
79
|
-
label: z.ZodOptional<z.ZodString>;
|
|
80
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
-
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
82
|
-
order: z.ZodOptional<z.ZodNumber>;
|
|
83
|
-
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types.js").ConditionalRule, import("../types.js").ConditionalRule>>>;
|
|
84
|
-
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
85
|
-
}, z.core.$strict>;
|
|
86
|
-
declare const tagsFieldConfigSchema: z.ZodObject<{
|
|
87
|
-
type: z.ZodLiteral<"tags">;
|
|
88
|
-
build: z.ZodFunction<z.core.$ZodFunctionArgs, z.ZodCustom<TagsField, TagsField>>;
|
|
89
|
-
/**
|
|
90
|
-
* A destination table where the values will be saved
|
|
91
|
-
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
92
|
-
*/
|
|
93
|
-
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
94
|
-
table: z.ZodString;
|
|
95
|
-
itemIdentifier: z.ZodString;
|
|
96
|
-
selectIdentifier: z.ZodString;
|
|
97
|
-
}, z.core.$strict>>;
|
|
98
|
-
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
99
|
-
table: z.ZodString;
|
|
100
|
-
column: z.ZodString;
|
|
101
|
-
}, z.core.$strict>>;
|
|
102
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
103
|
-
/**
|
|
104
|
-
* Whether to sanitize the value before saving it to the database.
|
|
105
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
106
|
-
* If false, the value will be saved as is (raw input).
|
|
107
|
-
* @default false
|
|
108
|
-
*/
|
|
109
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
-
name: z.ZodString;
|
|
111
|
-
label: z.ZodOptional<z.ZodString>;
|
|
112
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
-
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
114
|
-
order: z.ZodOptional<z.ZodNumber>;
|
|
115
|
-
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types.js").ConditionalRule, import("../types.js").ConditionalRule>>>;
|
|
116
|
-
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
117
|
-
}, z.core.$strict>;
|
|
118
|
-
/**
|
|
119
|
-
* Tags field configuration type
|
|
120
|
-
* This is a plain object that can be serialized and used anywhere
|
|
121
|
-
* The build() method allows creating a TagsField instance when needed
|
|
122
|
-
*/
|
|
123
|
-
export type TagsFieldConfig = z.infer<typeof tagsFieldConfigSchema>;
|
|
124
|
-
/**
|
|
125
|
-
* Helper function to create a tags field configuration
|
|
126
|
-
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
127
|
-
* @param field
|
|
128
|
-
*/
|
|
129
|
-
export declare function tagsField(field: z.infer<typeof optionsSchema>): TagsFieldConfig;
|
|
130
|
-
export {};
|
|
1
|
+
import type { BaseFieldConfig } from './field.js';
|
|
2
|
+
import { Field } from './field.js';
|
|
3
|
+
import { entityKind } from '../helpers/index.js';
|
|
4
|
+
import * as z from 'zod';
|
|
5
|
+
declare const configSchema: z.ZodObject<{
|
|
6
|
+
/**
|
|
7
|
+
* A destination table where the values will be saved
|
|
8
|
+
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
9
|
+
*/
|
|
10
|
+
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
table: z.ZodString;
|
|
12
|
+
itemIdentifier: z.ZodString;
|
|
13
|
+
selectIdentifier: z.ZodString;
|
|
14
|
+
}, z.core.$strict>>;
|
|
15
|
+
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
16
|
+
table: z.ZodString;
|
|
17
|
+
column: z.ZodString;
|
|
18
|
+
}, z.core.$strict>>;
|
|
19
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to sanitize the value before saving it to the database.
|
|
22
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
23
|
+
* If false, the value will be saved as is (raw input).
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
type Config = z.infer<typeof configSchema>;
|
|
29
|
+
export declare class TagsField extends Field<'tags', Config> {
|
|
30
|
+
static readonly [entityKind]: string;
|
|
31
|
+
readonly destinationDb?: {
|
|
32
|
+
table: string;
|
|
33
|
+
itemIdentifier: string;
|
|
34
|
+
selectIdentifier: string;
|
|
35
|
+
};
|
|
36
|
+
readonly placeholder: string;
|
|
37
|
+
readonly sanitize: boolean;
|
|
38
|
+
constructor(config: BaseFieldConfig<Config>);
|
|
39
|
+
getValue(): any;
|
|
40
|
+
exportForClient(): {
|
|
41
|
+
placeholder: string;
|
|
42
|
+
sanitize: boolean;
|
|
43
|
+
type: "tags";
|
|
44
|
+
name: string;
|
|
45
|
+
label: string;
|
|
46
|
+
required: boolean;
|
|
47
|
+
conditionalFields: import("../types/index.js").ConditionalField[];
|
|
48
|
+
readonly: boolean;
|
|
49
|
+
defaultValue: any;
|
|
50
|
+
value: any;
|
|
51
|
+
};
|
|
52
|
+
checkRequired(): void;
|
|
53
|
+
prepareForSubmission(): Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
export type TagsFieldClientConfig = ReturnType<TagsField['exportForClient']>;
|
|
56
|
+
declare const optionsSchema: z.ZodObject<{
|
|
57
|
+
/**
|
|
58
|
+
* A destination table where the values will be saved
|
|
59
|
+
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
60
|
+
*/
|
|
61
|
+
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
62
|
+
table: z.ZodString;
|
|
63
|
+
itemIdentifier: z.ZodString;
|
|
64
|
+
selectIdentifier: z.ZodString;
|
|
65
|
+
}, z.core.$strict>>;
|
|
66
|
+
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
67
|
+
table: z.ZodString;
|
|
68
|
+
column: z.ZodString;
|
|
69
|
+
}, z.core.$strict>>;
|
|
70
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
71
|
+
/**
|
|
72
|
+
* Whether to sanitize the value before saving it to the database.
|
|
73
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
74
|
+
* If false, the value will be saved as is (raw input).
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
78
|
+
name: z.ZodString;
|
|
79
|
+
label: z.ZodOptional<z.ZodString>;
|
|
80
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
+
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
82
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types/index.js").ConditionalRule, import("../types/index.js").ConditionalRule>>>;
|
|
84
|
+
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
85
|
+
}, z.core.$strict>;
|
|
86
|
+
declare const tagsFieldConfigSchema: z.ZodObject<{
|
|
87
|
+
type: z.ZodLiteral<"tags">;
|
|
88
|
+
build: z.ZodFunction<z.core.$ZodFunctionArgs, z.ZodCustom<TagsField, TagsField>>;
|
|
89
|
+
/**
|
|
90
|
+
* A destination table where the values will be saved
|
|
91
|
+
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
92
|
+
*/
|
|
93
|
+
destinationDb: z.ZodOptional<z.ZodObject<{
|
|
94
|
+
table: z.ZodString;
|
|
95
|
+
itemIdentifier: z.ZodString;
|
|
96
|
+
selectIdentifier: z.ZodString;
|
|
97
|
+
}, z.core.$strict>>;
|
|
98
|
+
autoCompletion: z.ZodOptional<z.ZodObject<{
|
|
99
|
+
table: z.ZodString;
|
|
100
|
+
column: z.ZodString;
|
|
101
|
+
}, z.core.$strict>>;
|
|
102
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
103
|
+
/**
|
|
104
|
+
* Whether to sanitize the value before saving it to the database.
|
|
105
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
106
|
+
* If false, the value will be saved as is (raw input).
|
|
107
|
+
* @default false
|
|
108
|
+
*/
|
|
109
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
name: z.ZodString;
|
|
111
|
+
label: z.ZodOptional<z.ZodString>;
|
|
112
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
114
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
115
|
+
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types/index.js").ConditionalRule, import("../types/index.js").ConditionalRule>>>;
|
|
116
|
+
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
117
|
+
}, z.core.$strict>;
|
|
118
|
+
/**
|
|
119
|
+
* Tags field configuration type
|
|
120
|
+
* This is a plain object that can be serialized and used anywhere
|
|
121
|
+
* The build() method allows creating a TagsField instance when needed
|
|
122
|
+
*/
|
|
123
|
+
export type TagsFieldConfig = z.infer<typeof tagsFieldConfigSchema>;
|
|
124
|
+
/**
|
|
125
|
+
* Helper function to create a tags field configuration
|
|
126
|
+
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
127
|
+
* @param field
|
|
128
|
+
*/
|
|
129
|
+
export declare function tagsField(field: z.infer<typeof optionsSchema>): TagsFieldConfig;
|
|
130
|
+
export {};
|
|
131
131
|
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/core/fields/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/core/fields/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,QAAA,MAAM,YAAY;IACd;;;OAGG;;;;;;;;;;;IAiBH;;;;;OAKG;;kBAEL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,SAAU,SAAQ,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;IAChD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAc;IAC3D,SAAkB,aAAa,CAAC,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAA;QACb,cAAc,EAAE,MAAM,CAAA;QACtB,gBAAgB,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAO3C,QAAQ;IAIQ,eAAe;;;;;;;;;;;;IAQ/B,aAAa;IAMP,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAa9C;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE5E,QAAA,MAAM,aAAa;IAnFf;;;OAGG;;;;;;;;;;;IAiBH;;;;;OAKG;;;;;;;;;kBA6DL,CAAA;AAEF,QAAA,MAAM,qBAAqB;;;IAxFvB;;;OAGG;;;;;;;;;;;IAiBH;;;;;OAKG;;;;;;;;;kBAmEL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,eAAe,CAmB/E"}
|
package/dist/core/fields/tags.js
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
import { Field, baseFieldConfigSchema } from
|
|
2
|
-
import { entityKind } from
|
|
3
|
-
import * as z from 'zod';
|
|
4
|
-
import { escapeHTML } from
|
|
5
|
-
const configSchema = z.strictObject({
|
|
6
|
-
/**
|
|
7
|
-
* A destination table where the values will be saved
|
|
8
|
-
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
9
|
-
*/
|
|
10
|
-
destinationDb: z
|
|
11
|
-
.strictObject({
|
|
12
|
-
table: z.string().describe('The destination table name'),
|
|
13
|
-
itemIdentifier: z.string().describe('The identifier of the item that has this tags field as a field'),
|
|
14
|
-
selectIdentifier: z.string().describe('An identifier name for the value of the values in the tags field'),
|
|
15
|
-
})
|
|
16
|
-
.optional()
|
|
17
|
-
.describe('Destination table configuration'),
|
|
18
|
-
autoCompletion: z
|
|
19
|
-
.strictObject({
|
|
20
|
-
table: z.string().describe('The table where the auto completion values are stored'),
|
|
21
|
-
column: z.string().describe('The column where the values are stored'),
|
|
22
|
-
})
|
|
23
|
-
.optional()
|
|
24
|
-
.describe('Auto completion configuration'),
|
|
25
|
-
placeholder: z.string().optional().describe('The placeholder text for the field'),
|
|
26
|
-
/**
|
|
27
|
-
* Whether to sanitize the value before saving it to the database.
|
|
28
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
29
|
-
* If false, the value will be saved as is (raw input).
|
|
30
|
-
* @default false
|
|
31
|
-
*/
|
|
32
|
-
sanitize: z.boolean().optional().describe('Sanitize the value before saving'),
|
|
33
|
-
});
|
|
34
|
-
export class TagsField extends Field {
|
|
35
|
-
static [entityKind] = 'TagsField';
|
|
36
|
-
destinationDb;
|
|
37
|
-
placeholder;
|
|
38
|
-
sanitize;
|
|
39
|
-
constructor(config) {
|
|
40
|
-
super(config, 'tags');
|
|
41
|
-
this.destinationDb = config.destinationDb;
|
|
42
|
-
this.placeholder = config.placeholder || '';
|
|
43
|
-
this.sanitize = config.sanitize ?? false;
|
|
44
|
-
}
|
|
45
|
-
getValue() {
|
|
46
|
-
return this.value;
|
|
47
|
-
}
|
|
48
|
-
exportForClient() {
|
|
49
|
-
return {
|
|
50
|
-
...super.exportForClient(),
|
|
51
|
-
placeholder: this.placeholder,
|
|
52
|
-
sanitize: this.sanitize,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
checkRequired() {
|
|
56
|
-
if (this.required && (!this.value || this.value.length === 0)) {
|
|
57
|
-
throw new Error(`Field ${this.label} is required`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
async prepareForSubmission() {
|
|
61
|
-
if (this.value) {
|
|
62
|
-
if (!Array.isArray(this.value)) {
|
|
63
|
-
throw new Error(`Field ${this.label} must be an array of tags`);
|
|
64
|
-
}
|
|
65
|
-
if (this.value.some((tag) => typeof tag !== 'string')) {
|
|
66
|
-
throw new Error(`Field ${this.label} must contain only string tags`);
|
|
67
|
-
}
|
|
68
|
-
if (this.sanitize) {
|
|
69
|
-
this.value = this.value.map((tag) => escapeHTML(tag) || tag);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
const optionsSchema = z.strictObject({
|
|
75
|
-
...baseFieldConfigSchema.shape,
|
|
76
|
-
...configSchema.shape,
|
|
77
|
-
});
|
|
78
|
-
const tagsFieldConfigSchema = z.strictObject({
|
|
79
|
-
...optionsSchema.shape,
|
|
80
|
-
type: z.literal('tags').describe('The type of the field'),
|
|
81
|
-
build: z.function().output(z.instanceof(TagsField)).describe('Build a TagsField instance from this config'),
|
|
82
|
-
});
|
|
83
|
-
/**
|
|
84
|
-
* Helper function to create a tags field configuration
|
|
85
|
-
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
86
|
-
* @param field
|
|
87
|
-
*/
|
|
88
|
-
export function tagsField(field) {
|
|
89
|
-
/**
|
|
90
|
-
* Validate the field config
|
|
91
|
-
*/
|
|
92
|
-
const result = optionsSchema.safeParse(field);
|
|
93
|
-
if (!result.success) {
|
|
94
|
-
throw new Error(`[Field: ${field.name}]: ${z.prettifyError(result.error)}`);
|
|
95
|
-
}
|
|
96
|
-
const config = {
|
|
97
|
-
...field,
|
|
98
|
-
type: 'tags',
|
|
99
|
-
build() {
|
|
100
|
-
// Use the original field config directly (it doesn't have build() method)
|
|
101
|
-
return new TagsField(field);
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
return config;
|
|
105
|
-
}
|
|
1
|
+
import { Field, baseFieldConfigSchema } from './field.js';
|
|
2
|
+
import { entityKind } from '../helpers/index.js';
|
|
3
|
+
import * as z from 'zod';
|
|
4
|
+
import { escapeHTML } from '../security/dom.js';
|
|
5
|
+
const configSchema = z.strictObject({
|
|
6
|
+
/**
|
|
7
|
+
* A destination table where the values will be saved
|
|
8
|
+
* When this is set, the value of the field will only be saved in the destination table as one row per each value
|
|
9
|
+
*/
|
|
10
|
+
destinationDb: z
|
|
11
|
+
.strictObject({
|
|
12
|
+
table: z.string().describe('The destination table name'),
|
|
13
|
+
itemIdentifier: z.string().describe('The identifier of the item that has this tags field as a field'),
|
|
14
|
+
selectIdentifier: z.string().describe('An identifier name for the value of the values in the tags field'),
|
|
15
|
+
})
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Destination table configuration'),
|
|
18
|
+
autoCompletion: z
|
|
19
|
+
.strictObject({
|
|
20
|
+
table: z.string().describe('The table where the auto completion values are stored'),
|
|
21
|
+
column: z.string().describe('The column where the values are stored'),
|
|
22
|
+
})
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Auto completion configuration'),
|
|
25
|
+
placeholder: z.string().optional().describe('The placeholder text for the field'),
|
|
26
|
+
/**
|
|
27
|
+
* Whether to sanitize the value before saving it to the database.
|
|
28
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
29
|
+
* If false, the value will be saved as is (raw input).
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
sanitize: z.boolean().optional().describe('Sanitize the value before saving'),
|
|
33
|
+
});
|
|
34
|
+
export class TagsField extends Field {
|
|
35
|
+
static [entityKind] = 'TagsField';
|
|
36
|
+
destinationDb;
|
|
37
|
+
placeholder;
|
|
38
|
+
sanitize;
|
|
39
|
+
constructor(config) {
|
|
40
|
+
super(config, 'tags');
|
|
41
|
+
this.destinationDb = config.destinationDb;
|
|
42
|
+
this.placeholder = config.placeholder || '';
|
|
43
|
+
this.sanitize = config.sanitize ?? false;
|
|
44
|
+
}
|
|
45
|
+
getValue() {
|
|
46
|
+
return this.value;
|
|
47
|
+
}
|
|
48
|
+
exportForClient() {
|
|
49
|
+
return {
|
|
50
|
+
...super.exportForClient(),
|
|
51
|
+
placeholder: this.placeholder,
|
|
52
|
+
sanitize: this.sanitize,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
checkRequired() {
|
|
56
|
+
if (this.required && (!this.value || this.value.length === 0)) {
|
|
57
|
+
throw new Error(`Field ${this.label} is required`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async prepareForSubmission() {
|
|
61
|
+
if (this.value) {
|
|
62
|
+
if (!Array.isArray(this.value)) {
|
|
63
|
+
throw new Error(`Field ${this.label} must be an array of tags`);
|
|
64
|
+
}
|
|
65
|
+
if (this.value.some((tag) => typeof tag !== 'string')) {
|
|
66
|
+
throw new Error(`Field ${this.label} must contain only string tags`);
|
|
67
|
+
}
|
|
68
|
+
if (this.sanitize) {
|
|
69
|
+
this.value = this.value.map((tag) => escapeHTML(tag) || tag);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const optionsSchema = z.strictObject({
|
|
75
|
+
...baseFieldConfigSchema.shape,
|
|
76
|
+
...configSchema.shape,
|
|
77
|
+
});
|
|
78
|
+
const tagsFieldConfigSchema = z.strictObject({
|
|
79
|
+
...optionsSchema.shape,
|
|
80
|
+
type: z.literal('tags').describe('The type of the field'),
|
|
81
|
+
build: z.function().output(z.instanceof(TagsField)).describe('Build a TagsField instance from this config'),
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Helper function to create a tags field configuration
|
|
85
|
+
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
86
|
+
* @param field
|
|
87
|
+
*/
|
|
88
|
+
export function tagsField(field) {
|
|
89
|
+
/**
|
|
90
|
+
* Validate the field config
|
|
91
|
+
*/
|
|
92
|
+
const result = optionsSchema.safeParse(field);
|
|
93
|
+
if (!result.success) {
|
|
94
|
+
throw new Error(`[Field: ${field.name}]: ${z.prettifyError(result.error)}`);
|
|
95
|
+
}
|
|
96
|
+
const config = {
|
|
97
|
+
...field,
|
|
98
|
+
type: 'tags',
|
|
99
|
+
build() {
|
|
100
|
+
// Use the original field config directly (it doesn't have build() method)
|
|
101
|
+
return new TagsField(field);
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
return config;
|
|
105
|
+
}
|