@bottlebooks/valid-values 2.1.0 → 3.1.0

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.
Files changed (237) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +2 -1
  3. package/dist/core/translate.d.ts +2 -2
  4. package/dist/core/translate.d.ts.map +1 -1
  5. package/dist/core/translate.js +3 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +7 -1
  8. package/dist/locales/po/bg.d.ts +3 -1
  9. package/dist/locales/po/bg.d.ts.map +1 -1
  10. package/dist/locales/po/bg.js +3 -1
  11. package/dist/locales/po/cs.d.ts +3 -1
  12. package/dist/locales/po/cs.d.ts.map +1 -1
  13. package/dist/locales/po/cs.js +3 -1
  14. package/dist/locales/po/da.d.ts +3 -1
  15. package/dist/locales/po/da.d.ts.map +1 -1
  16. package/dist/locales/po/da.js +3 -1
  17. package/dist/locales/po/de.d.ts +3 -1
  18. package/dist/locales/po/de.d.ts.map +1 -1
  19. package/dist/locales/po/de.js +3 -1
  20. package/dist/locales/po/ee.d.ts +3 -1
  21. package/dist/locales/po/ee.d.ts.map +1 -1
  22. package/dist/locales/po/ee.js +3 -1
  23. package/dist/locales/po/el.d.ts +3 -1
  24. package/dist/locales/po/el.d.ts.map +1 -1
  25. package/dist/locales/po/el.js +3 -1
  26. package/dist/locales/po/en.d.ts +3 -1
  27. package/dist/locales/po/en.d.ts.map +1 -1
  28. package/dist/locales/po/en.js +3 -1
  29. package/dist/locales/po/es.d.ts +3 -1
  30. package/dist/locales/po/es.d.ts.map +1 -1
  31. package/dist/locales/po/es.js +3 -1
  32. package/dist/locales/po/fi.d.ts +3 -1
  33. package/dist/locales/po/fi.d.ts.map +1 -1
  34. package/dist/locales/po/fi.js +3 -1
  35. package/dist/locales/po/fr.d.ts +3 -1
  36. package/dist/locales/po/fr.d.ts.map +1 -1
  37. package/dist/locales/po/fr.js +3 -1
  38. package/dist/locales/po/ga.d.ts +3 -1
  39. package/dist/locales/po/ga.d.ts.map +1 -1
  40. package/dist/locales/po/ga.js +3 -1
  41. package/dist/locales/po/hr.d.ts +3 -1
  42. package/dist/locales/po/hr.d.ts.map +1 -1
  43. package/dist/locales/po/hr.js +3 -1
  44. package/dist/locales/po/hu.d.ts +3 -1
  45. package/dist/locales/po/hu.d.ts.map +1 -1
  46. package/dist/locales/po/hu.js +3 -1
  47. package/dist/locales/po/it.d.ts +3 -1
  48. package/dist/locales/po/it.d.ts.map +1 -1
  49. package/dist/locales/po/it.js +3 -1
  50. package/dist/locales/po/lt.d.ts +3 -1
  51. package/dist/locales/po/lt.d.ts.map +1 -1
  52. package/dist/locales/po/lt.js +3 -1
  53. package/dist/locales/po/lv.d.ts +3 -1
  54. package/dist/locales/po/lv.d.ts.map +1 -1
  55. package/dist/locales/po/lv.js +3 -1
  56. package/dist/locales/po/mt.d.ts +3 -1
  57. package/dist/locales/po/mt.d.ts.map +1 -1
  58. package/dist/locales/po/mt.js +3 -1
  59. package/dist/locales/po/nl.d.ts +3 -1
  60. package/dist/locales/po/nl.d.ts.map +1 -1
  61. package/dist/locales/po/nl.js +3 -1
  62. package/dist/locales/po/pl.d.ts +3 -1
  63. package/dist/locales/po/pl.d.ts.map +1 -1
  64. package/dist/locales/po/pl.js +3 -1
  65. package/dist/locales/po/pt.d.ts +3 -1
  66. package/dist/locales/po/pt.d.ts.map +1 -1
  67. package/dist/locales/po/pt.js +3 -1
  68. package/dist/locales/po/ro.d.ts +3 -1
  69. package/dist/locales/po/ro.d.ts.map +1 -1
  70. package/dist/locales/po/ro.js +3 -1
  71. package/dist/locales/po/se.d.ts +3 -1
  72. package/dist/locales/po/se.d.ts.map +1 -1
  73. package/dist/locales/po/se.js +3 -1
  74. package/dist/locales/po/si.d.ts +3 -1
  75. package/dist/locales/po/si.d.ts.map +1 -1
  76. package/dist/locales/po/si.js +3 -1
  77. package/dist/locales/po/sk.d.ts +3 -1
  78. package/dist/locales/po/sk.d.ts.map +1 -1
  79. package/dist/locales/po/sk.js +3 -1
  80. package/dist/main.d.ts.map +1 -1
  81. package/dist/main.js +14 -14
  82. package/dist/validValues/award.d.ts +214 -21
  83. package/dist/validValues/award.d.ts.map +1 -1
  84. package/dist/validValues/award.js +665 -662
  85. package/dist/validValues/awardMedal.d.ts +233 -18
  86. package/dist/validValues/awardMedal.d.ts.map +1 -1
  87. package/dist/validValues/awardMedal.js +921 -1148
  88. package/dist/validValues/beerStyle.d.ts +96 -18
  89. package/dist/validValues/beerStyle.d.ts.map +1 -1
  90. package/dist/validValues/beerStyle.js +381 -473
  91. package/dist/validValues/certification.d.ts +33 -19
  92. package/dist/validValues/certification.d.ts.map +1 -1
  93. package/dist/validValues/certification.js +144 -143
  94. package/dist/validValues/containerColor.d.ts +11 -18
  95. package/dist/validValues/containerColor.d.ts.map +1 -1
  96. package/dist/validValues/containerColor.js +41 -48
  97. package/dist/validValues/containerType.d.ts +8 -18
  98. package/dist/validValues/containerType.d.ts.map +1 -1
  99. package/dist/validValues/containerType.js +29 -33
  100. package/dist/validValues/country.d.ts +154 -23
  101. package/dist/validValues/country.d.ts.map +1 -1
  102. package/dist/validValues/country.js +452 -451
  103. package/dist/validValues/designation.d.ts +57 -629
  104. package/dist/validValues/designation.d.ts.map +1 -1
  105. package/dist/validValues/designation.js +109 -104
  106. package/dist/validValues/ingredient.d.ts +65 -30
  107. package/dist/validValues/ingredient.d.ts.map +1 -1
  108. package/dist/validValues/ingredient.js +271 -257
  109. package/dist/validValues/packagingCertification.d.ts +9 -33
  110. package/dist/validValues/packagingCertification.d.ts.map +1 -1
  111. package/dist/validValues/packagingCertification.js +29 -28
  112. package/dist/validValues/packagingMaterialType.d.ts +54 -28
  113. package/dist/validValues/packagingMaterialType.d.ts.map +1 -1
  114. package/dist/validValues/packagingMaterialType.js +265 -313
  115. package/dist/validValues/productType.d.ts +44 -22
  116. package/dist/validValues/productType.d.ts.map +1 -1
  117. package/dist/validValues/productType.js +126 -125
  118. package/dist/validValues/productionMethod.d.ts +15 -18
  119. package/dist/validValues/productionMethod.d.ts.map +1 -1
  120. package/dist/validValues/productionMethod.js +57 -68
  121. package/dist/validValues/region.d.ts +487 -16
  122. package/dist/validValues/region.d.ts.map +1 -1
  123. package/dist/validValues/region.js +4799 -4803
  124. package/dist/validValues/responsibleConsumptionLogo.d.ts +10 -19
  125. package/dist/validValues/responsibleConsumptionLogo.d.ts.map +1 -1
  126. package/dist/validValues/responsibleConsumptionLogo.js +29 -32
  127. package/dist/validValues/subregion.d.ts +1393 -12
  128. package/dist/validValues/subregion.d.ts.map +1 -1
  129. package/dist/validValues/subregion.js +12493 -11115
  130. package/dist/validValues/types/ValidValueDefinition.d.ts +23 -14
  131. package/dist/validValues/types/ValidValueDefinition.d.ts.map +1 -1
  132. package/dist/validValues/types/award_p85_100.js +2 -2
  133. package/dist/validValues/types/productTypesSpirit.js +2 -2
  134. package/dist/validValues/types/productTypesWine.js +2 -2
  135. package/dist/validValues/utils/createValidValues.d.ts +4 -3
  136. package/dist/validValues/utils/createValidValues.d.ts.map +1 -1
  137. package/dist/validValues/utils/createValidValues.js +1 -1
  138. package/dist/validValues/utils/loadLocalizedData.d.ts +6 -0
  139. package/dist/validValues/utils/loadLocalizedData.d.ts.map +1 -0
  140. package/dist/validValues/utils/loadLocalizedData.js +20 -0
  141. package/dist/validValues/varietyName.d.ts +1961 -18
  142. package/dist/validValues/varietyName.d.ts.map +1 -1
  143. package/dist/validValues/varietyName.js +5883 -7840
  144. package/dist/validValues/wineColor.d.ts +7 -18
  145. package/dist/validValues/wineColor.d.ts.map +1 -1
  146. package/dist/validValues/wineColor.js +25 -28
  147. package/dist/validValues/wineType.d.ts +7 -18
  148. package/dist/validValues/wineType.d.ts.map +1 -1
  149. package/dist/validValues/wineType.js +25 -28
  150. package/dist/validValues.js +20 -20
  151. package/package.json +2 -2
  152. package/src/core/translate.ts +6 -5
  153. package/src/index.ts +3 -2
  154. package/src/locales/po/bg.po +10 -2
  155. package/src/locales/po/bg.ts +1 -1
  156. package/src/locales/po/cs.po +10 -2
  157. package/src/locales/po/cs.ts +1 -1
  158. package/src/locales/po/da.po +10 -2
  159. package/src/locales/po/da.ts +1 -1
  160. package/src/locales/po/de.po +10 -2
  161. package/src/locales/po/de.ts +1 -1
  162. package/src/locales/po/ee.po +10 -2
  163. package/src/locales/po/ee.ts +1 -1
  164. package/src/locales/po/el.po +10 -2
  165. package/src/locales/po/el.ts +1 -1
  166. package/src/locales/po/en.po +12 -4
  167. package/src/locales/po/en.ts +1 -1
  168. package/src/locales/po/es.po +10 -2
  169. package/src/locales/po/es.ts +1 -1
  170. package/src/locales/po/fi.po +10 -2
  171. package/src/locales/po/fi.ts +1 -1
  172. package/src/locales/po/fr.po +10 -2
  173. package/src/locales/po/fr.ts +1 -1
  174. package/src/locales/po/ga.po +10 -2
  175. package/src/locales/po/ga.ts +1 -1
  176. package/src/locales/po/hr.po +10 -2
  177. package/src/locales/po/hr.ts +1 -1
  178. package/src/locales/po/hu.po +10 -2
  179. package/src/locales/po/hu.ts +1 -1
  180. package/src/locales/po/it.po +10 -2
  181. package/src/locales/po/it.ts +1 -1
  182. package/src/locales/po/lt.po +10 -2
  183. package/src/locales/po/lt.ts +1 -1
  184. package/src/locales/po/lv.po +10 -2
  185. package/src/locales/po/lv.ts +1 -1
  186. package/src/locales/po/mt.po +10 -2
  187. package/src/locales/po/mt.ts +1 -1
  188. package/src/locales/po/nl.po +10 -2
  189. package/src/locales/po/nl.ts +1 -1
  190. package/src/locales/po/pl.po +10 -2
  191. package/src/locales/po/pl.ts +1 -1
  192. package/src/locales/po/pt.po +10 -2
  193. package/src/locales/po/pt.ts +1 -1
  194. package/src/locales/po/ro.po +10 -2
  195. package/src/locales/po/ro.ts +1 -1
  196. package/src/locales/po/se.po +10 -2
  197. package/src/locales/po/se.ts +1 -1
  198. package/src/locales/po/si.po +10 -2
  199. package/src/locales/po/si.ts +1 -1
  200. package/src/locales/po/sk.po +10 -2
  201. package/src/locales/po/sk.ts +1 -1
  202. package/src/main.ts +12 -23
  203. package/src/scripts/transformArchitectureVV.js +34 -31
  204. package/src/scripts/transformServerVV.js +3 -3
  205. package/src/scripts/writeFields.not.test.js +38 -3
  206. package/src/validValues/award.ts +639 -841
  207. package/src/validValues/awardMedal.ts +695 -915
  208. package/src/validValues/beerStyle.ts +290 -375
  209. package/src/validValues/certification.ts +154 -139
  210. package/src/validValues/containerColor.ts +35 -35
  211. package/src/validValues/containerType.ts +26 -23
  212. package/src/validValues/country.ts +457 -452
  213. package/src/validValues/designation.ts +44 -87
  214. package/src/validValues/ingredient.ts +252 -230
  215. package/src/validValues/json/region.js +1 -0
  216. package/src/validValues/json/subregion.js +7 -0
  217. package/src/validValues/packagingCertification.ts +38 -42
  218. package/src/validValues/packagingMaterialType.ts +222 -268
  219. package/src/validValues/productType.ts +128 -126
  220. package/src/validValues/productionMethod.ts +47 -51
  221. package/src/validValues/region.ts +1464 -1947
  222. package/src/validValues/responsibleConsumptionLogo.ts +34 -24
  223. package/src/validValues/subregion.ts +4181 -4193
  224. package/src/validValues/types/ValidValueDefinition.ts +27 -14
  225. package/src/validValues/utils/loadLocalizedData.ts +11 -0
  226. package/src/validValues/varietyName.ts +5884 -7836
  227. package/src/validValues/wineColor.ts +23 -19
  228. package/src/validValues/wineType.ts +23 -19
  229. package/dist/validValues/json/appelation.d.ts +0 -2
  230. package/dist/validValues/json/appelation.d.ts.map +0 -1
  231. package/dist/validValues/types/Award.d.ts +0 -35
  232. package/dist/validValues/types/Award.d.ts.map +0 -1
  233. package/dist/validValues/types/Award.js +0 -5
  234. package/dist/validValues/types/Country.d.ts +0 -35
  235. package/dist/validValues/types/Country.d.ts.map +0 -1
  236. package/dist/validValues/types/Country.js +0 -5
  237. package/src/validValues/utils/createValidValues.ts +0 -76
@@ -1,38 +1,42 @@
1
1
  import { defineMessage } from '@lingui/macro';
2
- import createValidValues from './utils/createValidValues.js';
3
2
  import { ValidValueDefinition } from './types/ValidValueDefinition';
3
+
4
4
  export interface WineColor extends ValidValueDefinition {}
5
- export default createValidValues<WineColor>({
6
- orange: {
5
+
6
+ /** Makes sure errors are displayed where the error is introduced. */
7
+ const wineColor = (value: WineColor) => value;
8
+
9
+ const allWineColors = {
10
+ orange: wineColor({
7
11
  key: 'orange',
8
- title: defineMessage({
12
+ label: defineMessage({
9
13
  id: 'validValues.wineColor.orange',
10
14
  message: 'Orange',
11
15
  }),
12
- form: {},
13
- },
14
- red: {
16
+ }),
17
+ red: wineColor({
15
18
  key: 'red',
16
- title: defineMessage({
19
+ label: defineMessage({
17
20
  id: 'validValues.wineColor.red',
18
21
  message: 'Red',
19
22
  }),
20
- form: {},
21
- },
22
- rose: {
23
+ }),
24
+ rose: wineColor({
23
25
  key: 'rose',
24
- title: defineMessage({
26
+ label: defineMessage({
25
27
  id: 'validValues.wineColor.rose',
26
28
  message: 'Rosé',
27
29
  }),
28
- form: {},
29
- },
30
- white: {
30
+ }),
31
+ white: wineColor({
31
32
  key: 'white',
32
- title: defineMessage({
33
+ label: defineMessage({
33
34
  id: 'validValues.wineColor.white',
34
35
  message: 'White',
35
36
  }),
36
- form: {},
37
- },
38
- });
37
+ }),
38
+ } as const;
39
+
40
+ export type WineColorKey = keyof typeof allWineColors;
41
+
42
+ export default allWineColors;
@@ -1,38 +1,42 @@
1
1
  import { defineMessage } from '@lingui/macro';
2
- import createValidValues from './utils/createValidValues.js';
3
2
  import { ValidValueDefinition } from './types/ValidValueDefinition';
3
+
4
4
  export interface WineType extends ValidValueDefinition {}
5
- export default createValidValues<WineType>({
6
- fortified: {
5
+
6
+ /** Makes sure errors are displayed where the error is introduced. */
7
+ const wineType = (value: WineType) => value;
8
+
9
+ const allWineTypes = {
10
+ fortified: wineType({
7
11
  key: 'fortified',
8
- title: defineMessage({
12
+ label: defineMessage({
9
13
  id: 'validValues.wineType.fortified',
10
14
  message: 'Fortified',
11
15
  }),
12
- form: {},
13
- },
14
- pearlwine: {
16
+ }),
17
+ pearlwine: wineType({
15
18
  key: 'pearlwine',
16
- title: defineMessage({
19
+ label: defineMessage({
17
20
  id: 'validValues.wineType.pearlwine',
18
21
  message: 'Pearl wine',
19
22
  }),
20
- form: {},
21
- },
22
- sparkling: {
23
+ }),
24
+ sparkling: wineType({
23
25
  key: 'sparkling',
24
- title: defineMessage({
26
+ label: defineMessage({
25
27
  id: 'validValues.wineType.sparkling',
26
28
  message: 'Sparkling wine',
27
29
  }),
28
- form: {},
29
- },
30
- wine: {
30
+ }),
31
+ wine: wineType({
31
32
  key: 'wine',
32
- title: defineMessage({
33
+ label: defineMessage({
33
34
  id: 'validValues.wineType.wine',
34
35
  message: 'Still wine',
35
36
  }),
36
- form: {},
37
- },
38
- });
37
+ }),
38
+ } as const;
39
+
40
+ export type WineTypeKey = keyof typeof allWineTypes;
41
+
42
+ export default allWineTypes;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=appelation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appelation.d.ts","sourceRoot":"","sources":["../../../src/validValues/json/appelation.js"],"names":[],"mappings":""}
@@ -1,35 +0,0 @@
1
- import type { MessageDescriptor } from '@lingui/core';
2
- interface ValidValueEnabledFor {
3
- field: string;
4
- value: string;
5
- }
6
- export interface Award {
7
- key: string;
8
- enabledFor?: ValidValueEnabledFor[];
9
- /**
10
- * The translatable title of the valid value.
11
- *
12
- * Define it using `defineMessage()` from @lingui/macro.
13
- */
14
- title?: string | MessageDescriptor;
15
- /**
16
- * Fields that will never be stored in the database,
17
- * because they are not relevant to the frontend rendering.
18
- * They are only used for the form, like grouping values for easier entry.
19
- */
20
- form?: {};
21
- medals?: string[];
22
- /**
23
- * Fields that are stored in the database together with each lookup value,
24
- * because they affect the frontend rendering.
25
- * They are also included in the hash values to detect breaking changes.
26
- *
27
- * We should try to avoid them if possible because if false positives:
28
- * Any change in one of those fields would lead to
29
- * eLabels that are marked as incompatible,
30
- * although there might be no user-visible changes.
31
- */
32
- frontend?: {};
33
- }
34
- export {};
35
- //# sourceMappingURL=Award.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Award.d.ts","sourceRoot":"","sources":["../../../src/validValues/types/Award.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACnC;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAKN,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC;CACf"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,35 +0,0 @@
1
- import type { MessageDescriptor } from '@lingui/core';
2
- interface ValidValueEnabledFor {
3
- field: string;
4
- value: string;
5
- }
6
- export interface Country {
7
- key: string;
8
- enabledFor?: ValidValueEnabledFor[];
9
- /**
10
- * The translatable title of the valid value.
11
- *
12
- * Define it using `defineMessage()` from @lingui/macro.
13
- */
14
- title?: string | MessageDescriptor;
15
- /**
16
- * Fields that will never be stored in the database,
17
- * because they are not relevant to the frontend rendering.
18
- * They are only used for the form, like grouping values for easier entry.
19
- */
20
- form?: {};
21
- regions?: string[];
22
- /**
23
- * Fields that are stored in the database together with each lookup value,
24
- * because they affect the frontend rendering.
25
- * They are also included in the hash values to detect breaking changes.
26
- *
27
- * We should try to avoid them if possible because if false positives:
28
- * Any change in one of those fields would lead to
29
- * eLabels that are marked as incompatible,
30
- * although there might be no user-visible changes.
31
- */
32
- frontend?: {};
33
- }
34
- export {};
35
- //# sourceMappingURL=Country.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Country.d.ts","sourceRoot":"","sources":["../../../src/validValues/types/Country.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACnC;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAKN,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC;CACf"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,76 +0,0 @@
1
- import { transform } from '@babel/core';
2
- import { i18n } from '@lingui/core';
3
- import { allLocaleData, allMessages } from '../../locales/locales.js';
4
- const allSupportedLocales = Object.keys(allLocaleData);
5
- import { ValidValueDefinition } from '../types/ValidValueDefinition';
6
- import { ValidValueLocale } from '../types/ValidValueLocale';
7
-
8
- i18n.loadLocaleData(allLocaleData);
9
- i18n.load(allMessages);
10
- export type Locale = keyof typeof allMessages;
11
-
12
- export default function createValidValues<
13
- ValidValue extends ValidValueDefinition = ValidValueDefinition
14
- >(values: Record<string, ValidValue>) {
15
- // TODO if we provide locale argument here we can avoid getTitle without locale argument which can help in .map functions
16
- // const initialLocale = locale;
17
- const list = Object.entries(values).map(([id, value]) => {
18
- const { key, title, form, frontend } = value;
19
- if (!title) throw new Error('missing_required:title');
20
-
21
- function getTitle(locale?: Locale) {
22
- if (typeof title === 'string') {
23
- return title;
24
- } else if (title) {
25
- i18n.activate(locale || 'en');
26
- const translation = i18n._(title) || '';
27
- if (translation === title.id) {
28
- console.log(
29
- '%c' + `WARNING: translation_missing:${title.id}:${locale}`,
30
- 'color: #d0011b;'
31
- );
32
- i18n.activate('en');
33
- return i18n._(title) || '';
34
- }
35
- return translation;
36
- } else {
37
- return key;
38
- }
39
- }
40
-
41
- return {
42
- /** The value identifier. */
43
- id,
44
- ...value,
45
- /** Returns the localized title of a lookup value. */
46
- getTitle,
47
- /** Returns the translatet titles for multiple locales. */
48
- getTitles(locales: Locale[] = allSupportedLocales as Locale[]) {
49
- const translations = Object.fromEntries(
50
- locales.map((locale) => {
51
- return [locale, getTitle(locale)];
52
- })
53
- ) as Record<Locale, string>;
54
- return translations;
55
- },
56
- form: value.form
57
- ? {
58
- ...value.form,
59
- /** Returns the localized description of a lookup value. */
60
- // getDescription(locale: Locale) {
61
- // if (!value?.form?.description) return undefined;
62
- // i18n.activate(locale);
63
- // return i18n._(value.form?.description);
64
- // },
65
- }
66
- : undefined,
67
- };
68
- });
69
-
70
- return {
71
- list,
72
- byId: () => {
73
- return Object.fromEntries(list.map((value) => [value.id, value]));
74
- },
75
- };
76
- }