@dative-gpi/foundation-shared-components 0.0.147 → 0.0.148

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.
@@ -56,7 +56,8 @@
56
56
  v-for="(language, index) in languages"
57
57
  :editable="$props.editable"
58
58
  :key="index"
59
- v-model="innerTranslations[language.code]"
59
+ :modelValue="getTranslation(language.code)"
60
+ @update:modelValue="setTranslation(language.code, $event)"
60
61
  >
61
62
  <template
62
63
  #label
@@ -134,10 +135,15 @@ export default defineComponent({
134
135
  required: false,
135
136
  default: null
136
137
  },
138
+ property: {
139
+ type: String as PropType<string>,
140
+ required: false,
141
+ default: "label"
142
+ },
137
143
  translations: {
138
- type: Object as PropType<{ [key: string]: string }>,
144
+ type: Array as PropType<{ languageCode: string; [key: string]: string }[]>,
139
145
  required: false,
140
- default: () => ({})
146
+ default: () => []
141
147
  },
142
148
  buttonColor: {
143
149
  type: String as PropType<ColorBase>,
@@ -155,7 +161,7 @@ export default defineComponent({
155
161
  const { getMany: getManyLanguages, fetching: fetchingLanguages, entities: languages } = useLanguages();
156
162
  const { getColors } = useColors();
157
163
 
158
- const innerTranslations = ref(props.translations ?? {});
164
+ const innerTranslations = ref(props.translations);
159
165
  const dialog = ref(false);
160
166
 
161
167
  const lights = getColors(ColorEnum.Light);
@@ -172,6 +178,37 @@ export default defineComponent({
172
178
  };
173
179
  });
174
180
 
181
+ const getTranslation = (languageCode: string): string => {
182
+ if (!innerTranslations.value) {
183
+ return "";
184
+ }
185
+ const translation = innerTranslations.value.find((t) => t.languageCode === languageCode);
186
+ if (!translation || !translation[props.property]) {
187
+ return "";
188
+ }
189
+ return translation[props.property];
190
+ };
191
+
192
+ const setTranslation = (languageCode: string, value: string): void => {
193
+ if (!innerTranslations.value) {
194
+ innerTranslations.value = [{
195
+ languageCode,
196
+ [props.property]: value
197
+ }]
198
+ return;
199
+ }
200
+ const translation = innerTranslations.value.find((t) => t.languageCode === languageCode);
201
+ if (translation) {
202
+ translation[props.property] = value;
203
+ }
204
+ else {
205
+ innerTranslations.value.push({
206
+ languageCode,
207
+ [props.property]: value
208
+ });
209
+ }
210
+ };
211
+
175
212
  const onSubmit = (): void => {
176
213
  dialog.value = false;
177
214
  if (props.editable) {
@@ -190,6 +227,8 @@ export default defineComponent({
190
227
  languages,
191
228
  dialog,
192
229
  style,
230
+ getTranslation,
231
+ setTranslation,
193
232
  onSubmit
194
233
  };
195
234
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dative-gpi/foundation-shared-components",
3
3
  "sideEffects": false,
4
- "version": "0.0.147",
4
+ "version": "0.0.148",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@dative-gpi/foundation-shared-domain": "0.0.147",
14
- "@dative-gpi/foundation-shared-services": "0.0.147",
13
+ "@dative-gpi/foundation-shared-domain": "0.0.148",
14
+ "@dative-gpi/foundation-shared-services": "0.0.148",
15
15
  "@fontsource/montserrat": "^5.0.16",
16
16
  "@lexical/clipboard": "^0.12.5",
17
17
  "@lexical/history": "^0.12.5",
@@ -32,5 +32,5 @@
32
32
  "sass": "^1.69.5",
33
33
  "sass-loader": "^13.3.2"
34
34
  },
35
- "gitHead": "934e88a527b32b21e1efb86f5328fdc938a36410"
35
+ "gitHead": "ec24a9fa023be6aac4fbad69217572f9e34c87f8"
36
36
  }