@bottlebooks/valid-values 1.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.
- package/.babelrc +9 -0
- package/.eslintrc +11 -0
- package/CHANGELOG.md +53 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/locales/locales.d.ts +68 -0
- package/dist/locales/locales.d.ts.map +1 -0
- package/dist/locales/locales.js +135 -0
- package/dist/locales/po/bg.d.js +5 -0
- package/dist/locales/po/bg.d.ts +2462 -0
- package/dist/locales/po/bg.d.ts.map +1 -0
- package/dist/locales/po/bg.js +2470 -0
- package/dist/locales/po/de.d.js +5 -0
- package/dist/locales/po/de.d.ts +2462 -0
- package/dist/locales/po/de.d.ts.map +1 -0
- package/dist/locales/po/de.js +2470 -0
- package/dist/locales/po/ee.d.js +5 -0
- package/dist/locales/po/ee.d.ts +2462 -0
- package/dist/locales/po/ee.d.ts.map +1 -0
- package/dist/locales/po/ee.js +2470 -0
- package/dist/locales/po/en.d.js +5 -0
- package/dist/locales/po/en.d.ts +2462 -0
- package/dist/locales/po/en.d.ts.map +1 -0
- package/dist/locales/po/en.js +2470 -0
- package/dist/locales/po/es.d.js +5 -0
- package/dist/locales/po/es.d.ts +2462 -0
- package/dist/locales/po/es.d.ts.map +1 -0
- package/dist/locales/po/es.js +2470 -0
- package/dist/locales/po/fi.d.js +5 -0
- package/dist/locales/po/fi.d.ts +2462 -0
- package/dist/locales/po/fi.d.ts.map +1 -0
- package/dist/locales/po/fi.js +2470 -0
- package/dist/locales/po/fr.d.js +5 -0
- package/dist/locales/po/fr.d.ts +2462 -0
- package/dist/locales/po/fr.d.ts.map +1 -0
- package/dist/locales/po/fr.js +2470 -0
- package/dist/locales/po/hr.d.js +5 -0
- package/dist/locales/po/hr.d.ts +2462 -0
- package/dist/locales/po/hr.d.ts.map +1 -0
- package/dist/locales/po/hr.js +2470 -0
- package/dist/locales/po/hu.d.js +5 -0
- package/dist/locales/po/hu.d.ts +2462 -0
- package/dist/locales/po/hu.d.ts.map +1 -0
- package/dist/locales/po/hu.js +2470 -0
- package/dist/locales/po/it.d.js +5 -0
- package/dist/locales/po/it.d.ts +2462 -0
- package/dist/locales/po/it.d.ts.map +1 -0
- package/dist/locales/po/it.js +2470 -0
- package/dist/locales/po/lt.d.js +5 -0
- package/dist/locales/po/lt.d.ts +2462 -0
- package/dist/locales/po/lt.d.ts.map +1 -0
- package/dist/locales/po/lt.js +2470 -0
- package/dist/locales/po/lv.d.js +5 -0
- package/dist/locales/po/lv.d.ts +2462 -0
- package/dist/locales/po/lv.d.ts.map +1 -0
- package/dist/locales/po/lv.js +2470 -0
- package/dist/locales/po/mt.d.js +5 -0
- package/dist/locales/po/mt.d.ts +2462 -0
- package/dist/locales/po/mt.d.ts.map +1 -0
- package/dist/locales/po/mt.js +2470 -0
- package/dist/locales/po/nl.d.js +5 -0
- package/dist/locales/po/nl.d.ts +2462 -0
- package/dist/locales/po/nl.d.ts.map +1 -0
- package/dist/locales/po/nl.js +2470 -0
- package/dist/locales/po/pl.d.js +5 -0
- package/dist/locales/po/pl.d.ts +2462 -0
- package/dist/locales/po/pl.d.ts.map +1 -0
- package/dist/locales/po/pl.js +2470 -0
- package/dist/locales/po/pt.d.js +5 -0
- package/dist/locales/po/pt.d.ts +2462 -0
- package/dist/locales/po/pt.d.ts.map +1 -0
- package/dist/locales/po/pt.js +2470 -0
- package/dist/locales/po/ro.d.js +5 -0
- package/dist/locales/po/ro.d.ts +2462 -0
- package/dist/locales/po/ro.d.ts.map +1 -0
- package/dist/locales/po/ro.js +2470 -0
- package/dist/locales/po/se.d.js +5 -0
- package/dist/locales/po/se.d.ts +2462 -0
- package/dist/locales/po/se.d.ts.map +1 -0
- package/dist/locales/po/se.js +2470 -0
- package/dist/locales/po/si.d.js +5 -0
- package/dist/locales/po/si.d.ts +2462 -0
- package/dist/locales/po/si.d.ts.map +1 -0
- package/dist/locales/po/si.js +2470 -0
- package/dist/locales/po/sk.d.js +5 -0
- package/dist/locales/po/sk.d.ts +2462 -0
- package/dist/locales/po/sk.d.ts.map +1 -0
- package/dist/locales/po/sk.js +2470 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +52 -0
- package/dist/validValues/award.d.ts +21 -0
- package/dist/validValues/award.d.ts.map +1 -0
- package/dist/validValues/award.js +1269 -0
- package/dist/validValues/awardMedal.d.ts +21 -0
- package/dist/validValues/awardMedal.d.ts.map +1 -0
- package/dist/validValues/awardMedal.js +2297 -0
- package/dist/validValues/beerStyle.d.ts +23 -0
- package/dist/validValues/beerStyle.d.ts.map +1 -0
- package/dist/validValues/beerStyle.js +947 -0
- package/dist/validValues/certification.d.ts +21 -0
- package/dist/validValues/certification.d.ts.map +1 -0
- package/dist/validValues/certification.js +285 -0
- package/dist/validValues/country.d.ts +21 -0
- package/dist/validValues/country.d.ts.map +1 -0
- package/dist/validValues/country.js +1634 -0
- package/dist/validValues/designation.d.ts +748 -0
- package/dist/validValues/designation.d.ts.map +1 -0
- package/dist/validValues/designation.js +165 -0
- package/dist/validValues/ingredient.d.ts +36 -0
- package/dist/validValues/ingredient.d.ts.map +1 -0
- package/dist/validValues/ingredient.js +719 -0
- package/dist/validValues/json/awards.d.ts +2 -0
- package/dist/validValues/json/awards.d.ts.map +1 -0
- package/dist/validValues/json/awardsMedals.d.ts +2 -0
- package/dist/validValues/json/awardsMedals.d.ts.map +1 -0
- package/dist/validValues/json/beerStyle.d.ts +2 -0
- package/dist/validValues/json/beerStyle.d.ts.map +1 -0
- package/dist/validValues/json/country.d.ts +2 -0
- package/dist/validValues/json/country.d.ts.map +1 -0
- package/dist/validValues/json/designation.d.ts +2 -0
- package/dist/validValues/json/designation.d.ts.map +1 -0
- package/dist/validValues/json/eLabelCertification.d.ts +2 -0
- package/dist/validValues/json/eLabelCertification.d.ts.map +1 -0
- package/dist/validValues/json/ingredient.d.ts +2 -0
- package/dist/validValues/json/ingredient.d.ts.map +1 -0
- package/dist/validValues/json/packagingCertification.d.ts +2 -0
- package/dist/validValues/json/packagingCertification.d.ts.map +1 -0
- package/dist/validValues/json/packagingCertifications.d.ts +2 -0
- package/dist/validValues/json/packagingCertifications.d.ts.map +1 -0
- package/dist/validValues/json/productType.d.ts +2 -0
- package/dist/validValues/json/productType.d.ts.map +1 -0
- package/dist/validValues/json/productionMethod.d.ts +2 -0
- package/dist/validValues/json/productionMethod.d.ts.map +1 -0
- package/dist/validValues/json/region.d.ts +2 -0
- package/dist/validValues/json/region.d.ts.map +1 -0
- package/dist/validValues/json/responsibleConsumptionLogo.d.ts +2 -0
- package/dist/validValues/json/responsibleConsumptionLogo.d.ts.map +1 -0
- package/dist/validValues/json/responsibleConsumptionLogos.d.ts +2 -0
- package/dist/validValues/json/responsibleConsumptionLogos.d.ts.map +1 -0
- package/dist/validValues/json/subregion.d.ts +2 -0
- package/dist/validValues/json/subregion.d.ts.map +1 -0
- package/dist/validValues/json/varietyName.d.ts +2 -0
- package/dist/validValues/json/varietyName.d.ts.map +1 -0
- package/dist/validValues/json/wineColor.d.ts +2 -0
- package/dist/validValues/json/wineColor.d.ts.map +1 -0
- package/dist/validValues/json/wineType.d.ts +2 -0
- package/dist/validValues/json/wineType.d.ts.map +1 -0
- package/dist/validValues/packagingCertification.d.ts +36 -0
- package/dist/validValues/packagingCertification.d.ts.map +1 -0
- package/dist/validValues/packagingCertification.js +55 -0
- package/dist/validValues/productType.d.ts +21 -0
- package/dist/validValues/productType.d.ts.map +1 -0
- package/dist/validValues/productType.js +407 -0
- package/dist/validValues/productionMethod.d.ts +23 -0
- package/dist/validValues/productionMethod.d.ts.map +1 -0
- package/dist/validValues/productionMethod.js +137 -0
- package/dist/validValues/region.d.ts +21 -0
- package/dist/validValues/region.d.ts.map +1 -0
- package/dist/validValues/region.js +5264 -0
- package/dist/validValues/responsibleConsumptionLogo.d.ts +21 -0
- package/dist/validValues/responsibleConsumptionLogo.d.ts.map +1 -0
- package/dist/validValues/responsibleConsumptionLogo.js +69 -0
- package/dist/validValues/subregion.d.ts +21 -0
- package/dist/validValues/subregion.d.ts.map +1 -0
- package/dist/validValues/subregion.js +13867 -0
- package/dist/validValues/types/Award.d.ts +35 -0
- package/dist/validValues/types/Award.d.ts.map +1 -0
- package/dist/validValues/types/Award.js +5 -0
- package/dist/validValues/types/Certification.d.ts +17 -0
- package/dist/validValues/types/Certification.d.ts.map +1 -0
- package/dist/validValues/types/Certification.js +5 -0
- package/dist/validValues/types/CertificationTag.d.ts +2 -0
- package/dist/validValues/types/CertificationTag.d.ts.map +1 -0
- package/dist/validValues/types/CertificationTag.js +5 -0
- package/dist/validValues/types/Country.d.ts +35 -0
- package/dist/validValues/types/Country.d.ts.map +1 -0
- package/dist/validValues/types/Country.js +5 -0
- package/dist/validValues/types/Ingredient.d.ts +21 -0
- package/dist/validValues/types/Ingredient.d.ts.map +1 -0
- package/dist/validValues/types/Ingredient.js +5 -0
- package/dist/validValues/types/IngredientTag.d.ts +2 -0
- package/dist/validValues/types/IngredientTag.d.ts.map +1 -0
- package/dist/validValues/types/IngredientTag.js +5 -0
- package/dist/validValues/types/LocalizedValidValue.d.ts +12 -0
- package/dist/validValues/types/LocalizedValidValue.d.ts.map +1 -0
- package/dist/validValues/types/LocalizedValidValue.js +5 -0
- package/dist/validValues/types/ProductType.d.ts +6 -0
- package/dist/validValues/types/ProductType.d.ts.map +1 -0
- package/dist/validValues/types/ProductType.js +5 -0
- package/dist/validValues/types/ProductTypeKey.d.ts +2 -0
- package/dist/validValues/types/ProductTypeKey.d.ts.map +1 -0
- package/dist/validValues/types/ProductTypeKey.js +5 -0
- package/dist/validValues/types/Region.d.ts +35 -0
- package/dist/validValues/types/Region.d.ts.map +1 -0
- package/dist/validValues/types/Region.js +5 -0
- package/dist/validValues/types/ResponsibleConsumptionLogo.d.ts +15 -0
- package/dist/validValues/types/ResponsibleConsumptionLogo.d.ts.map +1 -0
- package/dist/validValues/types/ResponsibleConsumptionLogo.js +5 -0
- package/dist/validValues/types/ValidValueDefinition.d.ts +34 -0
- package/dist/validValues/types/ValidValueDefinition.d.ts.map +1 -0
- package/dist/validValues/types/ValidValueDefinition.js +5 -0
- package/dist/validValues/types/ValidValueLocale.d.ts +3 -0
- package/dist/validValues/types/ValidValueLocale.d.ts.map +1 -0
- package/dist/validValues/types/ValidValueLocale.js +5 -0
- package/dist/validValues/utils/createValidValues.d.ts +29 -0
- package/dist/validValues/utils/createValidValues.d.ts.map +1 -0
- package/dist/validValues/utils/createValidValues.js +101 -0
- package/dist/validValues/varietyName.d.ts +23 -0
- package/dist/validValues/varietyName.d.ts.map +1 -0
- package/dist/validValues/varietyName.js +9800 -0
- package/dist/validValues/wineColor.d.ts +23 -0
- package/dist/validValues/wineColor.d.ts.map +1 -0
- package/dist/validValues/wineColor.js +57 -0
- package/dist/validValues/wineType.d.ts +23 -0
- package/dist/validValues/wineType.d.ts.map +1 -0
- package/dist/validValues/wineType.js +57 -0
- package/dist/validValues.d.ts +17 -0
- package/dist/validValues.d.ts.map +1 -0
- package/dist/validValues.js +135 -0
- package/dist/vite-env.d.js +2 -0
- package/index.html +12 -0
- package/lingui.config.ts +39 -0
- package/package.json +36 -0
- package/src/index.ts +10 -0
- package/src/locales/json/bg.json +51 -0
- package/src/locales/json/cz.json +51 -0
- package/src/locales/json/de.json +51 -0
- package/src/locales/json/dk.json +51 -0
- package/src/locales/json/ee.json +51 -0
- package/src/locales/json/en.json +41 -0
- package/src/locales/json/es.json +51 -0
- package/src/locales/json/fi.json +51 -0
- package/src/locales/json/fr.json +51 -0
- package/src/locales/json/gr.json +51 -0
- package/src/locales/json/hr.json +51 -0
- package/src/locales/json/hu.json +51 -0
- package/src/locales/json/ie.json +51 -0
- package/src/locales/json/it.json +51 -0
- package/src/locales/json/json.json +50 -0
- package/src/locales/json/lt.json +51 -0
- package/src/locales/json/lv.json +51 -0
- package/src/locales/json/mt.json +51 -0
- package/src/locales/json/nl.json +51 -0
- package/src/locales/json/pl.json +51 -0
- package/src/locales/json/props.json +3 -0
- package/src/locales/json/pt.json +51 -0
- package/src/locales/json/ro.json +51 -0
- package/src/locales/json/se.json +50 -0
- package/src/locales/json/si.json +51 -0
- package/src/locales/json/sk.json +3 -0
- package/src/locales/locales.ts +91 -0
- package/src/locales/po/bg.d.ts +4 -0
- package/src/locales/po/bg.po +9848 -0
- package/src/locales/po/bg.ts +1 -0
- package/src/locales/po/cz.po +156 -0
- package/src/locales/po/de.d.ts +4 -0
- package/src/locales/po/de.po +9848 -0
- package/src/locales/po/de.ts +1 -0
- package/src/locales/po/dk.po +156 -0
- package/src/locales/po/ee.d.ts +4 -0
- package/src/locales/po/ee.po +9848 -0
- package/src/locales/po/ee.ts +1 -0
- package/src/locales/po/en.d.ts +4 -0
- package/src/locales/po/en.po +9850 -0
- package/src/locales/po/en.ts +1 -0
- package/src/locales/po/es.d.ts +4 -0
- package/src/locales/po/es.po +9848 -0
- package/src/locales/po/es.ts +1 -0
- package/src/locales/po/fi.d.ts +4 -0
- package/src/locales/po/fi.po +9848 -0
- package/src/locales/po/fi.ts +1 -0
- package/src/locales/po/fr.d.ts +4 -0
- package/src/locales/po/fr.po +9848 -0
- package/src/locales/po/fr.ts +1 -0
- package/src/locales/po/gr.po +156 -0
- package/src/locales/po/hr.d.ts +4 -0
- package/src/locales/po/hr.po +9848 -0
- package/src/locales/po/hr.ts +1 -0
- package/src/locales/po/hu.d.ts +4 -0
- package/src/locales/po/hu.po +9848 -0
- package/src/locales/po/hu.ts +1 -0
- package/src/locales/po/ie.po +156 -0
- package/src/locales/po/it.d.ts +4 -0
- package/src/locales/po/it.po +9848 -0
- package/src/locales/po/it.ts +1 -0
- package/src/locales/po/lt.d.ts +4 -0
- package/src/locales/po/lt.po +9848 -0
- package/src/locales/po/lt.ts +1 -0
- package/src/locales/po/lv.d.ts +4 -0
- package/src/locales/po/lv.po +9848 -0
- package/src/locales/po/lv.ts +1 -0
- package/src/locales/po/mt.d.ts +4 -0
- package/src/locales/po/mt.po +9848 -0
- package/src/locales/po/mt.ts +1 -0
- package/src/locales/po/nl.d.ts +4 -0
- package/src/locales/po/nl.po +9848 -0
- package/src/locales/po/nl.ts +1 -0
- package/src/locales/po/pl.d.ts +4 -0
- package/src/locales/po/pl.po +9848 -0
- package/src/locales/po/pl.ts +1 -0
- package/src/locales/po/pt.d.ts +4 -0
- package/src/locales/po/pt.po +9848 -0
- package/src/locales/po/pt.ts +1 -0
- package/src/locales/po/ro.d.ts +4 -0
- package/src/locales/po/ro.po +9848 -0
- package/src/locales/po/ro.ts +1 -0
- package/src/locales/po/se.d.ts +4 -0
- package/src/locales/po/se.po +9848 -0
- package/src/locales/po/se.ts +1 -0
- package/src/locales/po/si.d.ts +4 -0
- package/src/locales/po/si.po +9848 -0
- package/src/locales/po/si.ts +1 -0
- package/src/locales/po/sk.d.ts +4 -0
- package/src/locales/po/sk.po +9848 -0
- package/src/locales/po/sk.ts +1 -0
- package/src/main.ts +44 -0
- package/src/scripts/README.md +6 -0
- package/src/scripts/transformArchitectureVV.js +143 -0
- package/src/scripts/transformServerVV.js +70 -0
- package/src/scripts/writeFields.not.test.js +60 -0
- package/src/style.css +96 -0
- package/src/validValues/award.ts +2490 -0
- package/src/validValues/awardMedal.ts +1830 -0
- package/src/validValues/beerStyle.ts +750 -0
- package/src/validValues/certification.ts +275 -0
- package/src/validValues/country.ts +1844 -0
- package/src/validValues/designation.ts +198 -0
- package/src/validValues/ingredient.ts +932 -0
- package/src/validValues/json/awards.js +3194 -0
- package/src/validValues/json/awardsMedals.js +1828 -0
- package/src/validValues/json/beerStyle.js +748 -0
- package/src/validValues/json/country.js +2039 -0
- package/src/validValues/json/designation.js +114 -0
- package/src/validValues/json/eLabelCertification.js +328 -0
- package/src/validValues/json/ingredient.js +913 -0
- package/src/validValues/json/packagingCertification.js +52 -0
- package/src/validValues/json/packagingCertifications.js +64 -0
- package/src/validValues/json/productType.js +315 -0
- package/src/validValues/json/productionMethod.js +100 -0
- package/src/validValues/json/region.js +5801 -0
- package/src/validValues/json/responsibleConsumptionLogo.js +48 -0
- package/src/validValues/json/responsibleConsumptionLogos.js +48 -0
- package/src/validValues/json/subregion.js +11084 -0
- package/src/validValues/json/varietyName.js +9789 -0
- package/src/validValues/json/wineColor.js +36 -0
- package/src/validValues/json/wineType.js +36 -0
- package/src/validValues/packagingCertification.ts +65 -0
- package/src/validValues/productType.ts +318 -0
- package/src/validValues/productionMethod.ts +102 -0
- package/src/validValues/region.ts +5803 -0
- package/src/validValues/responsibleConsumptionLogo.ts +50 -0
- package/src/validValues/subregion.ts +11085 -0
- package/src/validValues/types/Award.ts +39 -0
- package/src/validValues/types/Certification.ts +18 -0
- package/src/validValues/types/CertificationTag.ts +1 -0
- package/src/validValues/types/Country.ts +39 -0
- package/src/validValues/types/Ingredient.ts +22 -0
- package/src/validValues/types/IngredientTag.ts +19 -0
- package/src/validValues/types/LocalizedValidValue.ts +17 -0
- package/src/validValues/types/ProductType.ts +7 -0
- package/src/validValues/types/ProductTypeKey.ts +40 -0
- package/src/validValues/types/Region.ts +39 -0
- package/src/validValues/types/ResponsibleConsumptionLogo.ts +17 -0
- package/src/validValues/types/ValidValueDefinition.ts +38 -0
- package/src/validValues/types/ValidValueLocale.ts +4 -0
- package/src/validValues/utils/createValidValues.ts +74 -0
- package/src/validValues/varietyName.ts +9791 -0
- package/src/validValues/wineColor.ts +38 -0
- package/src/validValues/wineType.ts +38 -0
- package/src/validValues.ts +18 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.json +28 -0
- package/vite.config.js +41 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
interface ValidValueEnabledFor {
|
|
3
|
+
field: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface Award {
|
|
8
|
+
key: string;
|
|
9
|
+
enabledFor?: ValidValueEnabledFor[];
|
|
10
|
+
/**
|
|
11
|
+
* The translatable title of the valid value.
|
|
12
|
+
*
|
|
13
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
14
|
+
*/
|
|
15
|
+
title?: string | MessageDescriptor;
|
|
16
|
+
/**
|
|
17
|
+
* Fields that will never be stored in the database,
|
|
18
|
+
* because they are not relevant to the frontend rendering.
|
|
19
|
+
* They are only used for the form, like grouping values for easier entry.
|
|
20
|
+
*/
|
|
21
|
+
form?: {
|
|
22
|
+
/**
|
|
23
|
+
* A helpful description shown only when using the form.
|
|
24
|
+
*/
|
|
25
|
+
// description?: MessageDescriptor;
|
|
26
|
+
};
|
|
27
|
+
medals?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Fields that are stored in the database together with each lookup value,
|
|
30
|
+
* because they affect the frontend rendering.
|
|
31
|
+
* They are also included in the hash values to detect breaking changes.
|
|
32
|
+
*
|
|
33
|
+
* We should try to avoid them if possible because if false positives:
|
|
34
|
+
* Any change in one of those fields would lead to
|
|
35
|
+
* eLabels that are marked as incompatible,
|
|
36
|
+
* although there might be no user-visible changes.
|
|
37
|
+
*/
|
|
38
|
+
frontend?: {};
|
|
39
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
import { ValidValueDefinition } from './ValidValueDefinition';
|
|
3
|
+
import { CertificationTag } from './CertificationTag';
|
|
4
|
+
|
|
5
|
+
export interface Certification extends ValidValueDefinition {
|
|
6
|
+
/**
|
|
7
|
+
* Name which should not be translated. It is an alternative to a translatable title
|
|
8
|
+
*/
|
|
9
|
+
title: string;
|
|
10
|
+
|
|
11
|
+
form?: {
|
|
12
|
+
tags: CertificationTag[];
|
|
13
|
+
description?: MessageDescriptor;
|
|
14
|
+
};
|
|
15
|
+
frontend: {
|
|
16
|
+
logo?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CertificationTag = 'internationalCertification'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
interface ValidValueEnabledFor {
|
|
3
|
+
field: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface Country {
|
|
8
|
+
key: string;
|
|
9
|
+
enabledFor?: ValidValueEnabledFor[];
|
|
10
|
+
/**
|
|
11
|
+
* The translatable title of the valid value.
|
|
12
|
+
*
|
|
13
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
14
|
+
*/
|
|
15
|
+
title?: string | MessageDescriptor;
|
|
16
|
+
/**
|
|
17
|
+
* Fields that will never be stored in the database,
|
|
18
|
+
* because they are not relevant to the frontend rendering.
|
|
19
|
+
* They are only used for the form, like grouping values for easier entry.
|
|
20
|
+
*/
|
|
21
|
+
form?: {
|
|
22
|
+
/**
|
|
23
|
+
* A helpful description shown only when using the form.
|
|
24
|
+
*/
|
|
25
|
+
// description?: MessageDescriptor;
|
|
26
|
+
};
|
|
27
|
+
regions?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Fields that are stored in the database together with each lookup value,
|
|
30
|
+
* because they affect the frontend rendering.
|
|
31
|
+
* They are also included in the hash values to detect breaking changes.
|
|
32
|
+
*
|
|
33
|
+
* We should try to avoid them if possible because if false positives:
|
|
34
|
+
* Any change in one of those fields would lead to
|
|
35
|
+
* eLabels that are marked as incompatible,
|
|
36
|
+
* although there might be no user-visible changes.
|
|
37
|
+
*/
|
|
38
|
+
frontend?: {};
|
|
39
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
import { ValidValueDefinition } from './ValidValueDefinition';
|
|
3
|
+
import { ProductType } from './ProductTypeKey';
|
|
4
|
+
import { IngredientTag } from './IngredientTag';
|
|
5
|
+
|
|
6
|
+
export interface Ingredient extends ValidValueDefinition {
|
|
7
|
+
/**
|
|
8
|
+
* The translatable title of the valid value.
|
|
9
|
+
*
|
|
10
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
11
|
+
*/
|
|
12
|
+
title: MessageDescriptor;
|
|
13
|
+
|
|
14
|
+
form: {
|
|
15
|
+
productType: ProductType[];
|
|
16
|
+
tags: IngredientTag[];
|
|
17
|
+
/**
|
|
18
|
+
* A helpful description shown only when using the form.
|
|
19
|
+
*/
|
|
20
|
+
description?: MessageDescriptor;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type IngredientTag =
|
|
2
|
+
| 'ALLERGENS'
|
|
3
|
+
| 'ADDITIVES'
|
|
4
|
+
| 'SUGARS'
|
|
5
|
+
| 'RAW_MATERIAL'
|
|
6
|
+
| 'ALLERGEN'
|
|
7
|
+
| 'PRESERVATIVE'
|
|
8
|
+
| 'ENRICHMENT_SUBSTANCE'
|
|
9
|
+
| 'ENRICHMENT_SUBSTANCE'
|
|
10
|
+
| 'NATURALLY_ADDED_ACID'
|
|
11
|
+
| 'SWEETENER'
|
|
12
|
+
| 'ACIDITY_REGULATOR'
|
|
13
|
+
| 'STABILISER'
|
|
14
|
+
| 'OTHER_INGREDIENT'
|
|
15
|
+
| 'ANTIOXIDANT'
|
|
16
|
+
| 'PROCESSING_AID'
|
|
17
|
+
| 'FLAVOURING'
|
|
18
|
+
| 'COLOUR'
|
|
19
|
+
| 'ALCOHOL';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
import { ValidValueDefinition } from './ValidValueDefinition';
|
|
3
|
+
import { ProductType } from './ProductTypeKey';
|
|
4
|
+
import { IngredientTag } from './IngredientTag';
|
|
5
|
+
|
|
6
|
+
export interface LocalizedValidValue extends ValidValueDefinition {
|
|
7
|
+
title: MessageDescriptor;
|
|
8
|
+
|
|
9
|
+
form: {
|
|
10
|
+
productType: ProductType[];
|
|
11
|
+
tags: IngredientTag[];
|
|
12
|
+
/**
|
|
13
|
+
* A helpful description shown only when using the form.
|
|
14
|
+
*/
|
|
15
|
+
// description?: MessageDescriptor;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type ProductType =
|
|
2
|
+
| 'wine_stillwine'
|
|
3
|
+
| 'wine_fortified'
|
|
4
|
+
| 'wine_pearlwine'
|
|
5
|
+
| 'wine_sparkling'
|
|
6
|
+
| 'wine_aromatized'
|
|
7
|
+
| 'spirit_absinthe'
|
|
8
|
+
| 'spirit_anise'
|
|
9
|
+
| 'spirit_aquavit'
|
|
10
|
+
| 'spirit_arak'
|
|
11
|
+
| 'spirit_armagnac'
|
|
12
|
+
| 'spirit_asianspirit'
|
|
13
|
+
| 'spirit_bitter'
|
|
14
|
+
| 'spirit_cachaca'
|
|
15
|
+
| 'spirit_calvados'
|
|
16
|
+
| 'spirit_cocktail'
|
|
17
|
+
| 'spirit_cognac'
|
|
18
|
+
| 'spirit_fruitspirit'
|
|
19
|
+
| 'spirit_genever'
|
|
20
|
+
| 'spirit_gin'
|
|
21
|
+
| 'spirit_grainspirit'
|
|
22
|
+
| 'spirit_grapebrandy'
|
|
23
|
+
| 'spirit_grappa'
|
|
24
|
+
| 'spirit_liqueur'
|
|
25
|
+
| 'spirit_marc'
|
|
26
|
+
| 'spirit_mezcal'
|
|
27
|
+
| 'spirit_miscspririt'
|
|
28
|
+
| 'spirit_ouzo'
|
|
29
|
+
| 'spirit_pastis'
|
|
30
|
+
| 'spirit_pisco'
|
|
31
|
+
| 'spirit_raki'
|
|
32
|
+
| 'spirit_rum'
|
|
33
|
+
| 'spirit_sambuca'
|
|
34
|
+
| 'spirit_shochu'
|
|
35
|
+
| 'spirit_schnaps'
|
|
36
|
+
| 'spirit_tequila'
|
|
37
|
+
| 'spirit_vermouth'
|
|
38
|
+
| 'spirit_vodka'
|
|
39
|
+
| 'spirit_whisky'
|
|
40
|
+
| 'beer';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
interface ValidValueEnabledFor {
|
|
3
|
+
field: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface Region {
|
|
8
|
+
key: string;
|
|
9
|
+
enabledFor?: ValidValueEnabledFor[];
|
|
10
|
+
/**
|
|
11
|
+
* The translatable title of the valid value.
|
|
12
|
+
*
|
|
13
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
14
|
+
*/
|
|
15
|
+
title?: string | MessageDescriptor;
|
|
16
|
+
/**
|
|
17
|
+
* Fields that will never be stored in the database,
|
|
18
|
+
* because they are not relevant to the frontend rendering.
|
|
19
|
+
* They are only used for the form, like grouping values for easier entry.
|
|
20
|
+
*/
|
|
21
|
+
form?: {
|
|
22
|
+
/**
|
|
23
|
+
* A helpful description shown only when using the form.
|
|
24
|
+
*/
|
|
25
|
+
// description?: MessageDescriptor;
|
|
26
|
+
};
|
|
27
|
+
subregions?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Fields that are stored in the database together with each lookup value,
|
|
30
|
+
* because they affect the frontend rendering.
|
|
31
|
+
* They are also included in the hash values to detect breaking changes.
|
|
32
|
+
*
|
|
33
|
+
* We should try to avoid them if possible because if false positives:
|
|
34
|
+
* Any change in one of those fields would lead to
|
|
35
|
+
* eLabels that are marked as incompatible,
|
|
36
|
+
* although there might be no user-visible changes.
|
|
37
|
+
*/
|
|
38
|
+
frontend?: {};
|
|
39
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
import { ValidValueDefinition } from './ValidValueDefinition';
|
|
3
|
+
import { CertificationTag } from './CertificationTag';
|
|
4
|
+
|
|
5
|
+
export interface ResponsibleConsumptionLogo extends ValidValueDefinition {
|
|
6
|
+
/**
|
|
7
|
+
* Name which should not be translated. It is an alternative to a translatable title
|
|
8
|
+
*/
|
|
9
|
+
title: MessageDescriptor;
|
|
10
|
+
|
|
11
|
+
form?: {
|
|
12
|
+
description?: MessageDescriptor;
|
|
13
|
+
};
|
|
14
|
+
frontend: {
|
|
15
|
+
logo?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
interface ValidValueEnabledFor {
|
|
3
|
+
field: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface ValidValueDefinition {
|
|
8
|
+
key: string;
|
|
9
|
+
enabledFor?: ValidValueEnabledFor[];
|
|
10
|
+
/**
|
|
11
|
+
* The translatable title of the valid value.
|
|
12
|
+
*
|
|
13
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
14
|
+
*/
|
|
15
|
+
title?: string | MessageDescriptor;
|
|
16
|
+
/**
|
|
17
|
+
* Fields that will never be stored in the database,
|
|
18
|
+
* because they are not relevant to the frontend rendering.
|
|
19
|
+
* They are only used for the form, like grouping values for easier entry.
|
|
20
|
+
*/
|
|
21
|
+
form?: {
|
|
22
|
+
/**
|
|
23
|
+
* A helpful description shown only when using the form.
|
|
24
|
+
*/
|
|
25
|
+
// description?: MessageDescriptor;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Fields that are stored in the database together with each lookup value,
|
|
29
|
+
* because they affect the frontend rendering.
|
|
30
|
+
* They are also included in the hash values to detect breaking changes.
|
|
31
|
+
*
|
|
32
|
+
* We should try to avoid them if possible because if false positives:
|
|
33
|
+
* Any change in one of those fields would lead to
|
|
34
|
+
* eLabels that are marked as incompatible,
|
|
35
|
+
* although there might be no user-visible changes.
|
|
36
|
+
*/
|
|
37
|
+
frontend?: {};
|
|
38
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
type Locale = keyof typeof allMessages;
|
|
11
|
+
|
|
12
|
+
export default function createValidValues<
|
|
13
|
+
ValidValue extends ValidValueDefinition = ValidValueDefinition
|
|
14
|
+
>(values: Record<string, ValidValue>) {
|
|
15
|
+
function list() {
|
|
16
|
+
// TODO if we provide locale argument here we can avoid getTitle without locale argument which can help in .map functions
|
|
17
|
+
// const initialLocale = locale;
|
|
18
|
+
return Object.entries(values).map(([id, value]) => {
|
|
19
|
+
const { key, title, form, frontend } = value;
|
|
20
|
+
if (!title) throw new Error('missing_required:title');
|
|
21
|
+
|
|
22
|
+
function getTitle(locale?: Locale) {
|
|
23
|
+
if (typeof title === 'string') {
|
|
24
|
+
return title;
|
|
25
|
+
} else if (title) {
|
|
26
|
+
i18n.activate(locale || 'en');
|
|
27
|
+
const translation = i18n._(title) || '';
|
|
28
|
+
if (translation === title.id) {
|
|
29
|
+
console.log('%c' + `WARNING: translation_missing:${title.id}:${locale}`, 'color: #d0011b;');
|
|
30
|
+
i18n.activate('en');
|
|
31
|
+
return i18n._(title) || '';
|
|
32
|
+
}
|
|
33
|
+
return translation;
|
|
34
|
+
} else {
|
|
35
|
+
return key;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
/** The value identifier. */
|
|
41
|
+
id,
|
|
42
|
+
...value,
|
|
43
|
+
/** Returns the localized title of a lookup value. */
|
|
44
|
+
getTitle,
|
|
45
|
+
/** Returns the translatet titles for multiple locales. */
|
|
46
|
+
getTitles(locales: Locale[] = allSupportedLocales as Locale[]) {
|
|
47
|
+
const translations = Object.fromEntries(
|
|
48
|
+
locales.map((locale) => {
|
|
49
|
+
return [locale, getTitle(locale)];
|
|
50
|
+
})
|
|
51
|
+
) as Record<Locale, string>;
|
|
52
|
+
return translations;
|
|
53
|
+
},
|
|
54
|
+
form: value.form
|
|
55
|
+
? {
|
|
56
|
+
...value.form,
|
|
57
|
+
/** Returns the localized description of a lookup value. */
|
|
58
|
+
// getDescription(locale: Locale) {
|
|
59
|
+
// if (!value?.form?.description) return undefined;
|
|
60
|
+
// i18n.activate(locale);
|
|
61
|
+
// return i18n._(value.form?.description);
|
|
62
|
+
// },
|
|
63
|
+
}
|
|
64
|
+
: undefined,
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
list,
|
|
70
|
+
byId: () => {
|
|
71
|
+
return Object.fromEntries(list().map((value) => [value.id, value]));
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|