@encatch/schema 0.0.1
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/README.md +7 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/schemas/fields/answer-schema.js +103 -0
- package/dist/cjs/schemas/fields/answer-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/auto-trigger-schema.js +49 -0
- package/dist/cjs/schemas/fields/auto-trigger-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/field-schema.js +678 -0
- package/dist/cjs/schemas/fields/field-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/form-properties-schema.js +136 -0
- package/dist/cjs/schemas/fields/form-properties-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/form-schema.js +123 -0
- package/dist/cjs/schemas/fields/form-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/other-screen-schema.js +169 -0
- package/dist/cjs/schemas/fields/other-screen-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/theme-schema.js +85 -0
- package/dist/cjs/schemas/fields/theme-schema.js.map +1 -0
- package/dist/cjs/schemas/fields/translations-example.js +187 -0
- package/dist/cjs/schemas/fields/translations-example.js.map +1 -0
- package/dist/cjs/schemas/fields/translations-schema.js +198 -0
- package/dist/cjs/schemas/fields/translations-schema.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/schemas/fields/answer-schema.js +100 -0
- package/dist/esm/schemas/fields/answer-schema.js.map +1 -0
- package/dist/esm/schemas/fields/auto-trigger-schema.js +46 -0
- package/dist/esm/schemas/fields/auto-trigger-schema.js.map +1 -0
- package/dist/esm/schemas/fields/field-schema.js +675 -0
- package/dist/esm/schemas/fields/field-schema.js.map +1 -0
- package/dist/esm/schemas/fields/form-properties-schema.js +133 -0
- package/dist/esm/schemas/fields/form-properties-schema.js.map +1 -0
- package/dist/esm/schemas/fields/form-schema.js +120 -0
- package/dist/esm/schemas/fields/form-schema.js.map +1 -0
- package/dist/esm/schemas/fields/other-screen-schema.js +166 -0
- package/dist/esm/schemas/fields/other-screen-schema.js.map +1 -0
- package/dist/esm/schemas/fields/theme-schema.js +82 -0
- package/dist/esm/schemas/fields/theme-schema.js.map +1 -0
- package/dist/esm/schemas/fields/translations-example.js +181 -0
- package/dist/esm/schemas/fields/translations-example.js.map +1 -0
- package/dist/esm/schemas/fields/translations-schema.js +193 -0
- package/dist/esm/schemas/fields/translations-schema.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/schemas/fields/answer-schema.d.ts +77 -0
- package/dist/types/schemas/fields/auto-trigger-schema.d.ts +21 -0
- package/dist/types/schemas/fields/field-schema.d.ts +1114 -0
- package/dist/types/schemas/fields/form-properties-schema.d.ts +1035 -0
- package/dist/types/schemas/fields/form-schema.d.ts +68 -0
- package/dist/types/schemas/fields/other-screen-schema.d.ts +58 -0
- package/dist/types/schemas/fields/theme-schema.d.ts +91 -0
- package/dist/types/schemas/fields/translations-example.d.ts +10 -0
- package/dist/types/schemas/fields/translations-schema.d.ts +863 -0
- package/package.json +33 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { createTranslationProvider } from './translations-schema';
|
|
2
|
+
// Example translation data following the structure:
|
|
3
|
+
// {
|
|
4
|
+
// "languageCode": {
|
|
5
|
+
// "question_id": {
|
|
6
|
+
// translated schema
|
|
7
|
+
// }
|
|
8
|
+
// }
|
|
9
|
+
// }
|
|
10
|
+
export const exampleTranslations = {
|
|
11
|
+
defaultLanguage: "en",
|
|
12
|
+
version: "1.0.0",
|
|
13
|
+
languages: [
|
|
14
|
+
{
|
|
15
|
+
languageCode: "en",
|
|
16
|
+
questions: {
|
|
17
|
+
"rating-q1": {
|
|
18
|
+
type: "rating",
|
|
19
|
+
translations: {
|
|
20
|
+
title: { text: "How satisfied are you?" },
|
|
21
|
+
description: { text: "Please rate your experience on a scale of 1-5" },
|
|
22
|
+
minLabel: { text: "Not satisfied" },
|
|
23
|
+
maxLabel: { text: "Very satisfied" }
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"choice-q2": {
|
|
27
|
+
type: "single_choice",
|
|
28
|
+
translations: {
|
|
29
|
+
title: { text: "What is your favorite color?" },
|
|
30
|
+
description: { text: "Choose one option from the list below" },
|
|
31
|
+
options: {
|
|
32
|
+
"opt-red": { label: { text: "Red" } },
|
|
33
|
+
"opt-blue": { label: { text: "Blue" } },
|
|
34
|
+
"opt-green": { label: { text: "Green" } }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"nps-q3": {
|
|
39
|
+
type: "nps",
|
|
40
|
+
translations: {
|
|
41
|
+
title: { text: "How likely are you to recommend us?" },
|
|
42
|
+
description: { text: "Rate from 0 to 10" },
|
|
43
|
+
minLabel: { text: "Not at all likely" },
|
|
44
|
+
maxLabel: { text: "Extremely likely" },
|
|
45
|
+
scaleLabels: {
|
|
46
|
+
0: { text: "Not at all likely" },
|
|
47
|
+
5: { text: "Neutral" },
|
|
48
|
+
10: { text: "Extremely likely" }
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"text-q4": {
|
|
53
|
+
type: "short_answer",
|
|
54
|
+
translations: {
|
|
55
|
+
title: { text: "What improvements would you suggest?" },
|
|
56
|
+
placeholder: { text: "Enter your suggestions here..." }
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"nested-q5": {
|
|
60
|
+
type: "nested_selection",
|
|
61
|
+
translations: {
|
|
62
|
+
title: { text: "Select your location" },
|
|
63
|
+
placeholder: { text: "Choose a country first..." },
|
|
64
|
+
nestedOptions: {
|
|
65
|
+
"country-us": { label: { text: "United States" } },
|
|
66
|
+
"country-in": { label: { text: "India" } },
|
|
67
|
+
"state-ca": { label: { text: "California" } },
|
|
68
|
+
"state-ny": { label: { text: "New York" } }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
languageCode: "hi", // Hindi
|
|
76
|
+
questions: {
|
|
77
|
+
"rating-q1": {
|
|
78
|
+
type: "rating",
|
|
79
|
+
translations: {
|
|
80
|
+
title: { text: "आप कितने संतुष्ट हैं?" },
|
|
81
|
+
description: { text: "कृपया 1-5 स्केल पर अपनी संतुष्टि दर करें" },
|
|
82
|
+
minLabel: { text: "असंतुष्ट" },
|
|
83
|
+
maxLabel: { text: "बहुत संतुष्ट" }
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"choice-q2": {
|
|
87
|
+
type: "single_choice",
|
|
88
|
+
translations: {
|
|
89
|
+
title: { text: "आपका पसंदीदा रंग क्या है?" },
|
|
90
|
+
options: {
|
|
91
|
+
"opt-red": { label: { text: "लाल" } },
|
|
92
|
+
"opt-blue": { label: { text: "नीला" } },
|
|
93
|
+
"opt-green": { label: { text: "हरा" } }
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
languageCode: "es", // Spanish
|
|
101
|
+
questions: {
|
|
102
|
+
"rating-q1": {
|
|
103
|
+
type: "rating",
|
|
104
|
+
translations: {
|
|
105
|
+
title: { text: "¿Qué tan satisfecho estás?" },
|
|
106
|
+
minLabel: { text: "No satisfecho" },
|
|
107
|
+
maxLabel: { text: "Muy satisfecho" }
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"choice-q2": {
|
|
111
|
+
type: "single_choice",
|
|
112
|
+
translations: {
|
|
113
|
+
title: { text: "¿Cuál es tu color favorito?" },
|
|
114
|
+
options: {
|
|
115
|
+
"opt-red": { label: { text: "Rojo" } },
|
|
116
|
+
"opt-blue": { label: { text: "Azul" } },
|
|
117
|
+
"opt-green": { label: { text: "Verde" } }
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
};
|
|
125
|
+
// Define available languages using your existing schema
|
|
126
|
+
export const availableLanguages = [
|
|
127
|
+
{
|
|
128
|
+
value: "en",
|
|
129
|
+
label: "English",
|
|
130
|
+
isFixed: true
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
value: "hi",
|
|
134
|
+
label: "हिन्दी",
|
|
135
|
+
isFixed: false
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
value: "es",
|
|
139
|
+
label: "Español",
|
|
140
|
+
isFixed: false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
value: "fr",
|
|
144
|
+
label: "Français",
|
|
145
|
+
isFixed: false
|
|
146
|
+
}
|
|
147
|
+
];
|
|
148
|
+
// Create translation provider
|
|
149
|
+
export const translationProvider = createTranslationProvider(exampleTranslations);
|
|
150
|
+
// Helper function to get language display name
|
|
151
|
+
export function getLanguageDisplayName(languageCode) {
|
|
152
|
+
const language = availableLanguages.find(lang => lang.value === languageCode);
|
|
153
|
+
return language?.label || languageCode;
|
|
154
|
+
}
|
|
155
|
+
// Helper function to get supported languages
|
|
156
|
+
export function getSupportedLanguages() {
|
|
157
|
+
return availableLanguages.filter(lang => exampleTranslations.languages.some(t => t.languageCode === lang.value));
|
|
158
|
+
}
|
|
159
|
+
// Usage examples
|
|
160
|
+
export function demonstrateUsage() {
|
|
161
|
+
console.log("=== Translation System with Language Integration ===\n");
|
|
162
|
+
// Get translations for a specific question
|
|
163
|
+
const ratingTranslations = translationProvider.getQuestionTranslations("rating-q1", "hi");
|
|
164
|
+
console.log("Hindi rating title:", ratingTranslations?.translations.title.text);
|
|
165
|
+
// Get specific translation text
|
|
166
|
+
const titleText = translationProvider.getTranslationText("choice-q2", "es", ["title"]);
|
|
167
|
+
console.log("Spanish choice title:", titleText);
|
|
168
|
+
// Get option translation
|
|
169
|
+
const optionText = translationProvider.getTranslationText("choice-q2", "hi", ["options", "opt-red", "label"]);
|
|
170
|
+
console.log("Hindi red option:", optionText);
|
|
171
|
+
// Language integration examples
|
|
172
|
+
console.log("\n=== Language Integration ===");
|
|
173
|
+
console.log("Available languages:", translationProvider.getAvailableLanguages());
|
|
174
|
+
console.log("Supported languages with display names:");
|
|
175
|
+
getSupportedLanguages().forEach(lang => {
|
|
176
|
+
console.log(` ${lang.value}: ${lang.label}`);
|
|
177
|
+
});
|
|
178
|
+
console.log("\nDefault language:", translationProvider.getDefaultLanguage());
|
|
179
|
+
console.log("Is French supported?", translationProvider.isLanguageSupported("fr"));
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=translations-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations-example.js","sourceRoot":"","sources":["../../../../src/schemas/fields/translations-example.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// Base translation entry
|
|
3
|
+
export const translationEntrySchema = z
|
|
4
|
+
.object({
|
|
5
|
+
text: z.string().min(1).describe("Translated text content"),
|
|
6
|
+
context: z.string().optional().describe("Optional context for translators"),
|
|
7
|
+
})
|
|
8
|
+
.describe("Translation entry with translated text");
|
|
9
|
+
// Rating question translations
|
|
10
|
+
export const ratingTranslationsSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
13
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
14
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
15
|
+
minLabel: translationEntrySchema.optional().describe("Minimum rating label translation"),
|
|
16
|
+
maxLabel: translationEntrySchema.optional().describe("Maximum rating label translation"),
|
|
17
|
+
})
|
|
18
|
+
.describe("Translation schema for rating questions");
|
|
19
|
+
// Single choice question translations
|
|
20
|
+
export const singleChoiceTranslationsSchema = z
|
|
21
|
+
.object({
|
|
22
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
23
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
24
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
25
|
+
placeholder: translationEntrySchema.optional().describe("Input placeholder translation"),
|
|
26
|
+
options: z.record(z.string(), z.object({
|
|
27
|
+
label: translationEntrySchema.describe("Option label translation"),
|
|
28
|
+
hint: translationEntrySchema.optional().describe("Option hint translation"),
|
|
29
|
+
})).describe("Option translations keyed by option ID"),
|
|
30
|
+
})
|
|
31
|
+
.describe("Translation schema for single choice questions");
|
|
32
|
+
// Multiple choice question translations
|
|
33
|
+
export const multipleChoiceTranslationsSchema = z
|
|
34
|
+
.object({
|
|
35
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
36
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
37
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
38
|
+
placeholder: translationEntrySchema.optional().describe("Input placeholder translation"),
|
|
39
|
+
options: z.record(z.string(), z.object({
|
|
40
|
+
label: translationEntrySchema.describe("Option label translation"),
|
|
41
|
+
hint: translationEntrySchema.optional().describe("Option hint translation"),
|
|
42
|
+
})).describe("Option translations keyed by option ID"),
|
|
43
|
+
})
|
|
44
|
+
.describe("Translation schema for multiple choice questions");
|
|
45
|
+
// NPS question translations
|
|
46
|
+
export const npsTranslationsSchema = z
|
|
47
|
+
.object({
|
|
48
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
49
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
50
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
51
|
+
minLabel: translationEntrySchema.optional().describe("Minimum NPS label (0) translation"),
|
|
52
|
+
maxLabel: translationEntrySchema.optional().describe("Maximum NPS label (10) translation"),
|
|
53
|
+
scaleLabels: z.record(z.number().int().min(0).max(10), translationEntrySchema)
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Scale label translations for specific NPS values (0-10)"),
|
|
56
|
+
})
|
|
57
|
+
.describe("Translation schema for NPS questions");
|
|
58
|
+
// Short answer question translations
|
|
59
|
+
export const shortAnswerTranslationsSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
62
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
63
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
64
|
+
placeholder: translationEntrySchema.optional().describe("Input placeholder translation"),
|
|
65
|
+
})
|
|
66
|
+
.describe("Translation schema for short answer questions");
|
|
67
|
+
// Long answer question translations
|
|
68
|
+
export const longAnswerTranslationsSchema = z
|
|
69
|
+
.object({
|
|
70
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
71
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
72
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
73
|
+
placeholder: translationEntrySchema.optional().describe("Textarea placeholder translation"),
|
|
74
|
+
})
|
|
75
|
+
.describe("Translation schema for long answer questions");
|
|
76
|
+
// Nested selection question translations
|
|
77
|
+
export const nestedSelectionTranslationsSchema = z
|
|
78
|
+
.object({
|
|
79
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
80
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
81
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
82
|
+
placeholder: translationEntrySchema.optional().describe("Dropdown placeholder translation"),
|
|
83
|
+
nestedOptions: z.record(z.string(), z.object({
|
|
84
|
+
label: translationEntrySchema.describe("Nested option label translation"),
|
|
85
|
+
hint: translationEntrySchema.optional().describe("Nested option hint translation"),
|
|
86
|
+
})).describe("Nested option translations keyed by option ID"),
|
|
87
|
+
})
|
|
88
|
+
.describe("Translation schema for nested selection questions");
|
|
89
|
+
// Annotation question translations
|
|
90
|
+
export const annotationTranslationsSchema = z
|
|
91
|
+
.object({
|
|
92
|
+
title: translationEntrySchema.describe("Question title translation"),
|
|
93
|
+
description: translationEntrySchema.optional().describe("Question description translation"),
|
|
94
|
+
errorMessage: translationEntrySchema.optional().describe("Error message translation"),
|
|
95
|
+
annotationText: translationEntrySchema.optional().describe("Annotation display text translation"),
|
|
96
|
+
noAnnotationText: translationEntrySchema.optional().describe("No annotation display text translation"),
|
|
97
|
+
})
|
|
98
|
+
.describe("Translation schema for annotation questions");
|
|
99
|
+
// Discriminated union of all translation types
|
|
100
|
+
export const questionTranslationsSchema = z
|
|
101
|
+
.discriminatedUnion("type", [
|
|
102
|
+
z.object({ type: z.literal("rating"), translations: ratingTranslationsSchema }),
|
|
103
|
+
z.object({ type: z.literal("single_choice"), translations: singleChoiceTranslationsSchema }),
|
|
104
|
+
z.object({ type: z.literal("multiple_choice_multiple"), translations: multipleChoiceTranslationsSchema }),
|
|
105
|
+
z.object({ type: z.literal("nps"), translations: npsTranslationsSchema }),
|
|
106
|
+
z.object({ type: z.literal("short_answer"), translations: shortAnswerTranslationsSchema }),
|
|
107
|
+
z.object({ type: z.literal("long_text"), translations: longAnswerTranslationsSchema }),
|
|
108
|
+
z.object({ type: z.literal("nested_selection"), translations: nestedSelectionTranslationsSchema }),
|
|
109
|
+
z.object({ type: z.literal("annotation"), translations: annotationTranslationsSchema }),
|
|
110
|
+
])
|
|
111
|
+
.describe("Discriminated union of all question type translation schemas");
|
|
112
|
+
// Language-specific translations keyed by question ID
|
|
113
|
+
export const languageTranslationsSchema = z
|
|
114
|
+
.object({
|
|
115
|
+
languageCode: z.string().describe("Language code matching LanguagesSchema values"),
|
|
116
|
+
questions: z.record(z.string(), questionTranslationsSchema)
|
|
117
|
+
.describe("Question translations keyed by question ID"),
|
|
118
|
+
})
|
|
119
|
+
.describe("Language-specific translation set keyed by question IDs");
|
|
120
|
+
// Complete translation schema
|
|
121
|
+
export const translationsSchema = z
|
|
122
|
+
.object({
|
|
123
|
+
defaultLanguage: z.string().describe("Default/fallback language code"),
|
|
124
|
+
languages: z.array(languageTranslationsSchema).min(1)
|
|
125
|
+
.describe("Available language translations"),
|
|
126
|
+
version: z.string().optional().describe("Translation version for cache management"),
|
|
127
|
+
})
|
|
128
|
+
.describe("Complete translation schema keyed by question IDs");
|
|
129
|
+
// Translation helper class
|
|
130
|
+
export class TranslationProvider {
|
|
131
|
+
constructor(translations) {
|
|
132
|
+
this.translations = translations;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get translations for a specific question in a specific language
|
|
136
|
+
*/
|
|
137
|
+
getQuestionTranslations(questionId, languageCode) {
|
|
138
|
+
const languageData = this.translations.languages.find(lang => lang.languageCode === languageCode);
|
|
139
|
+
if (!languageData) {
|
|
140
|
+
// Fallback to default language
|
|
141
|
+
const defaultLang = this.translations.languages.find(lang => lang.languageCode === this.translations.defaultLanguage);
|
|
142
|
+
if (!defaultLang)
|
|
143
|
+
return null;
|
|
144
|
+
return defaultLang.questions[questionId] || null;
|
|
145
|
+
}
|
|
146
|
+
return languageData.questions[questionId] || null;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get a specific translation text
|
|
150
|
+
*/
|
|
151
|
+
getTranslationText(questionId, languageCode, path) {
|
|
152
|
+
const questionTranslations = this.getQuestionTranslations(questionId, languageCode);
|
|
153
|
+
if (!questionTranslations)
|
|
154
|
+
return null;
|
|
155
|
+
let current = questionTranslations.translations;
|
|
156
|
+
for (const key of path) {
|
|
157
|
+
if (current && typeof current === 'object' && key in current) {
|
|
158
|
+
current = current[key];
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Handle nested structures like options
|
|
165
|
+
if (current && typeof current === 'object' && 'text' in current) {
|
|
166
|
+
return current.text;
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all available languages
|
|
172
|
+
*/
|
|
173
|
+
getAvailableLanguages() {
|
|
174
|
+
return this.translations.languages.map(lang => lang.languageCode);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a language is supported
|
|
178
|
+
*/
|
|
179
|
+
isLanguageSupported(languageCode) {
|
|
180
|
+
return this.translations.languages.some(lang => lang.languageCode === languageCode);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get the default language
|
|
184
|
+
*/
|
|
185
|
+
getDefaultLanguage() {
|
|
186
|
+
return this.translations.defaultLanguage;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Factory function to create translation provider
|
|
190
|
+
export function createTranslationProvider(translations) {
|
|
191
|
+
return new TranslationProvider(translations);
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=translations-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations-schema.js","sourceRoot":"","sources":["../../../../src/schemas/fields/translations-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './schemas/fields/field-schema';
|
|
2
|
+
export * from './schemas/fields/answer-schema';
|
|
3
|
+
export * from './schemas/fields/form-schema';
|
|
4
|
+
export * from './schemas/fields/form-properties-schema';
|
|
5
|
+
export * from './schemas/fields/other-screen-schema';
|
|
6
|
+
export * from './schemas/fields/theme-schema';
|
|
7
|
+
export * from './schemas/fields/translations-schema';
|
|
8
|
+
export * from './schemas/fields/auto-trigger-schema';
|
|
9
|
+
export { z } from 'zod';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const SimpleAnswerSchema: z.ZodObject<{
|
|
3
|
+
type: z.ZodLiteral<"simple">;
|
|
4
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const ChoiceAnswerSchema: z.ZodObject<{
|
|
7
|
+
type: z.ZodLiteral<"choice">;
|
|
8
|
+
selectedOptionId: z.ZodString;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export declare const MultipleChoiceAnswerSchema: z.ZodObject<{
|
|
11
|
+
type: z.ZodLiteral<"multiple_choice">;
|
|
12
|
+
selectedOptionIds: z.ZodArray<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export declare const ScaleAnswerSchema: z.ZodObject<{
|
|
15
|
+
type: z.ZodLiteral<"scale">;
|
|
16
|
+
value: z.ZodNumber;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export declare const ContinuousSumAnswerSchema: z.ZodObject<{
|
|
19
|
+
type: z.ZodLiteral<"continuous_sum">;
|
|
20
|
+
values: z.ZodArray<z.ZodObject<{
|
|
21
|
+
optionId: z.ZodString;
|
|
22
|
+
value: z.ZodNumber;
|
|
23
|
+
}, z.core.$strip>>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export declare const RankingAnswerSchema: z.ZodObject<{
|
|
26
|
+
type: z.ZodLiteral<"ranking">;
|
|
27
|
+
ranks: z.ZodArray<z.ZodObject<{
|
|
28
|
+
optionId: z.ZodString;
|
|
29
|
+
rank: z.ZodNumber;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export declare const TextAnswerSchema: z.ZodObject<{
|
|
33
|
+
type: z.ZodLiteral<"text">;
|
|
34
|
+
values: z.ZodArray<z.ZodObject<{
|
|
35
|
+
fieldId: z.ZodString;
|
|
36
|
+
text: z.ZodString;
|
|
37
|
+
}, z.core.$strip>>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export declare const AnswerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
40
|
+
type: z.ZodLiteral<"simple">;
|
|
41
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
|
|
42
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
43
|
+
type: z.ZodLiteral<"choice">;
|
|
44
|
+
selectedOptionId: z.ZodString;
|
|
45
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
46
|
+
type: z.ZodLiteral<"multiple_choice">;
|
|
47
|
+
selectedOptionIds: z.ZodArray<z.ZodString>;
|
|
48
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
49
|
+
type: z.ZodLiteral<"scale">;
|
|
50
|
+
value: z.ZodNumber;
|
|
51
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
52
|
+
type: z.ZodLiteral<"continuous_sum">;
|
|
53
|
+
values: z.ZodArray<z.ZodObject<{
|
|
54
|
+
optionId: z.ZodString;
|
|
55
|
+
value: z.ZodNumber;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
58
|
+
type: z.ZodLiteral<"ranking">;
|
|
59
|
+
ranks: z.ZodArray<z.ZodObject<{
|
|
60
|
+
optionId: z.ZodString;
|
|
61
|
+
rank: z.ZodNumber;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
64
|
+
type: z.ZodLiteral<"text">;
|
|
65
|
+
values: z.ZodArray<z.ZodObject<{
|
|
66
|
+
fieldId: z.ZodString;
|
|
67
|
+
text: z.ZodString;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
}, z.core.$strip>], "type">;
|
|
70
|
+
export type SimpleAnswer = z.infer<typeof SimpleAnswerSchema>;
|
|
71
|
+
export type ChoiceAnswer = z.infer<typeof ChoiceAnswerSchema>;
|
|
72
|
+
export type MultipleChoiceAnswer = z.infer<typeof MultipleChoiceAnswerSchema>;
|
|
73
|
+
export type ScaleAnswer = z.infer<typeof ScaleAnswerSchema>;
|
|
74
|
+
export type ContinuousSumAnswer = z.infer<typeof ContinuousSumAnswerSchema>;
|
|
75
|
+
export type RankingAnswer = z.infer<typeof RankingAnswerSchema>;
|
|
76
|
+
export type TextAnswer = z.infer<typeof TextAnswerSchema>;
|
|
77
|
+
export type Answer = z.infer<typeof AnswerSchema>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const audienceSegmentSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
isImportant: z.ZodBoolean;
|
|
6
|
+
when: z.ZodString;
|
|
7
|
+
who: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const audienceTriggerPropertiesSchema: z.ZodObject<{
|
|
10
|
+
isAuto: z.ZodBoolean;
|
|
11
|
+
isManual: z.ZodBoolean;
|
|
12
|
+
segments: z.ZodArray<z.ZodObject<{
|
|
13
|
+
id: z.ZodString;
|
|
14
|
+
name: z.ZodString;
|
|
15
|
+
isImportant: z.ZodBoolean;
|
|
16
|
+
when: z.ZodString;
|
|
17
|
+
who: z.ZodString;
|
|
18
|
+
}, z.core.$strip>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type AudienceSegment = z.infer<typeof audienceSegmentSchema>;
|
|
21
|
+
export type AudienceTriggerProperties = z.infer<typeof audienceTriggerPropertiesSchema>;
|