@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,198 @@
|
|
|
1
|
+
import type { MessageDescriptor } from '@lingui/core';
|
|
2
|
+
import { defineMessage } from '@lingui/macro';
|
|
3
|
+
import type { ProductType as ProductTypeKey } from './types/ProductTypeKey.js';
|
|
4
|
+
|
|
5
|
+
// I copied the original definition here because the one in the /types folder has diverged and doesn't follow the original idea.
|
|
6
|
+
// I'd rather recommend keeping this a simple baseline than putting any possible option into it.
|
|
7
|
+
interface ValidValueDefinition {
|
|
8
|
+
/**
|
|
9
|
+
* The translatable title of the valid value.
|
|
10
|
+
*
|
|
11
|
+
* Define it using `defineMessage()` from @lingui/macro.
|
|
12
|
+
*/
|
|
13
|
+
title: MessageDescriptor;
|
|
14
|
+
/**
|
|
15
|
+
* Fields that will never be stored in the database,
|
|
16
|
+
* because they are not relevant to the frontend rendering.
|
|
17
|
+
* They are only used for the form, like grouping values for easier entry.
|
|
18
|
+
*/
|
|
19
|
+
form?: {
|
|
20
|
+
/**
|
|
21
|
+
* A helpful description shown only when using the form.
|
|
22
|
+
*/
|
|
23
|
+
description?: MessageDescriptor;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Fields that are stored in the database together with each lookup value,
|
|
27
|
+
* because they affect the frontend rendering.
|
|
28
|
+
* They are also included in the hash values to detect breaking changes.
|
|
29
|
+
*
|
|
30
|
+
* We should try to avoid them if possible because if false positives:
|
|
31
|
+
* Any change in one of those fields would lead to
|
|
32
|
+
* eLabels that are marked as incompatible,
|
|
33
|
+
* although there might be no user-visible changes.
|
|
34
|
+
*/
|
|
35
|
+
frontend?: {};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface DesignationInput extends ValidValueDefinition {}
|
|
39
|
+
|
|
40
|
+
/** Adds the key to the designation and makes sure we can only add valid designations. */
|
|
41
|
+
const designation = <Key extends string>(
|
|
42
|
+
key: Key,
|
|
43
|
+
value: DesignationInput
|
|
44
|
+
) => ({
|
|
45
|
+
...value,
|
|
46
|
+
key,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const allDesignations = [
|
|
50
|
+
designation('brut', {
|
|
51
|
+
title: defineMessage({
|
|
52
|
+
id: 'validValues.designation.brut',
|
|
53
|
+
message: 'brut',
|
|
54
|
+
}),
|
|
55
|
+
}),
|
|
56
|
+
designation('brut_nature', {
|
|
57
|
+
title: defineMessage({
|
|
58
|
+
id: 'validValues.designation.brut_nature',
|
|
59
|
+
message: 'brut nature',
|
|
60
|
+
}),
|
|
61
|
+
}),
|
|
62
|
+
designation('demi-sec', {
|
|
63
|
+
title: defineMessage({
|
|
64
|
+
id: 'validValues.designation.demi-sec',
|
|
65
|
+
message: 'demi-sec',
|
|
66
|
+
}),
|
|
67
|
+
}),
|
|
68
|
+
designation('dry', {
|
|
69
|
+
title: defineMessage({
|
|
70
|
+
id: 'validValues.designation.dry',
|
|
71
|
+
message: 'dry',
|
|
72
|
+
}),
|
|
73
|
+
}),
|
|
74
|
+
designation('extra_brut', {
|
|
75
|
+
title: defineMessage({
|
|
76
|
+
id: 'validValues.designation.extra_brut',
|
|
77
|
+
message: 'extra brut',
|
|
78
|
+
}),
|
|
79
|
+
}),
|
|
80
|
+
designation('extra_dry', {
|
|
81
|
+
title: defineMessage({
|
|
82
|
+
id: 'validValues.designation.extra_dry',
|
|
83
|
+
message: 'extra dry',
|
|
84
|
+
}),
|
|
85
|
+
}),
|
|
86
|
+
designation('feinherb', {
|
|
87
|
+
title: defineMessage({
|
|
88
|
+
id: 'validValues.designation.feinherb',
|
|
89
|
+
message: 'feinherb',
|
|
90
|
+
}),
|
|
91
|
+
}),
|
|
92
|
+
designation('lieblich', {
|
|
93
|
+
title: defineMessage({
|
|
94
|
+
id: 'validValues.designation.lieblich',
|
|
95
|
+
message: 'lieblich',
|
|
96
|
+
}),
|
|
97
|
+
}),
|
|
98
|
+
designation('semi', {
|
|
99
|
+
title: defineMessage({
|
|
100
|
+
id: 'validValues.designation.semi',
|
|
101
|
+
message: 'semi-dry',
|
|
102
|
+
}),
|
|
103
|
+
}),
|
|
104
|
+
designation('sweet', {
|
|
105
|
+
title: defineMessage({
|
|
106
|
+
id: 'validValues.designation.sweet',
|
|
107
|
+
message: 'sweet/dessert',
|
|
108
|
+
}),
|
|
109
|
+
}),
|
|
110
|
+
designation('semi_sweet', {
|
|
111
|
+
title: defineMessage({
|
|
112
|
+
id: 'validValues.designation.semi_sweet',
|
|
113
|
+
message: 'semi-sweet',
|
|
114
|
+
}),
|
|
115
|
+
}),
|
|
116
|
+
] as const;
|
|
117
|
+
|
|
118
|
+
type DesignationKey = typeof allDesignations[number]['key'];
|
|
119
|
+
interface DesignationOutput extends DesignationInput {
|
|
120
|
+
key: DesignationKey;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const allDesignationsByKey = Object.fromEntries(
|
|
124
|
+
allDesignations.map((designation) => [designation.key, designation])
|
|
125
|
+
) as Record<DesignationKey, DesignationOutput>;
|
|
126
|
+
|
|
127
|
+
/** Makes sure we are only able to use valid keys. */
|
|
128
|
+
function pick<Key extends DesignationKey>(keys: Key[]) {
|
|
129
|
+
return Object.fromEntries(
|
|
130
|
+
keys.map((key) => [key, allDesignationsByKey[key]])
|
|
131
|
+
) as Record<Key, DesignationOutput>;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// TODO Enforce/provide Autocomplete for product types here.
|
|
135
|
+
// I think this will only be possible with the `satisfies` keyword coming in TS 4.9.
|
|
136
|
+
const byProductType = {
|
|
137
|
+
beer: {},
|
|
138
|
+
spirit_absinthe: {},
|
|
139
|
+
spirit_anise: {},
|
|
140
|
+
spirit_aquavit: {},
|
|
141
|
+
spirit_arak: {},
|
|
142
|
+
spirit_armagnac: {},
|
|
143
|
+
spirit_asianspirit: {},
|
|
144
|
+
spirit_bitter: {},
|
|
145
|
+
spirit_cachaca: {},
|
|
146
|
+
spirit_calvados: {},
|
|
147
|
+
spirit_cocktail: {},
|
|
148
|
+
spirit_cognac: {},
|
|
149
|
+
spirit_fruitspirit: {},
|
|
150
|
+
spirit_genever: {},
|
|
151
|
+
spirit_gin: {},
|
|
152
|
+
spirit_grainspirit: {},
|
|
153
|
+
spirit_grapebrandy: {},
|
|
154
|
+
spirit_grappa: {},
|
|
155
|
+
spirit_liqueur: {},
|
|
156
|
+
spirit_marc: {},
|
|
157
|
+
spirit_mezcal: {},
|
|
158
|
+
spirit_miscspririt: {},
|
|
159
|
+
spirit_ouzo: {},
|
|
160
|
+
spirit_pastis: {},
|
|
161
|
+
spirit_pisco: {},
|
|
162
|
+
spirit_raki: {},
|
|
163
|
+
spirit_rum: {},
|
|
164
|
+
spirit_sambuca: {},
|
|
165
|
+
spirit_shochu: {},
|
|
166
|
+
spirit_schnaps: {},
|
|
167
|
+
spirit_tequila: {},
|
|
168
|
+
spirit_vermouth: {},
|
|
169
|
+
spirit_vodka: {},
|
|
170
|
+
spirit_whisky: {},
|
|
171
|
+
spirit_whiskey: {},
|
|
172
|
+
wine_fortified: pick(['dry', 'semi', 'sweet']),
|
|
173
|
+
wine_pearlwine: pick(['dry', 'semi', 'sweet']),
|
|
174
|
+
wine_sparkling: pick([
|
|
175
|
+
'brut_nature',
|
|
176
|
+
'extra_brut',
|
|
177
|
+
'brut',
|
|
178
|
+
'extra_dry',
|
|
179
|
+
'dry',
|
|
180
|
+
'demi-sec',
|
|
181
|
+
]),
|
|
182
|
+
wine_stillwine: pick(['dry', 'feinherb', 'lieblich', 'semi', 'sweet']),
|
|
183
|
+
wine_aromatized: pick(['extra_dry', 'dry', 'semi', 'semi_sweet', 'sweet']),
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const listByProductType = Object.fromEntries(
|
|
187
|
+
(Object.keys(byProductType) as ProductTypeKey[]).map((type) => [
|
|
188
|
+
type,
|
|
189
|
+
Object.values(byProductType[type]),
|
|
190
|
+
])
|
|
191
|
+
) as Record<ProductTypeKey, DesignationOutput[]>;
|
|
192
|
+
|
|
193
|
+
export default {
|
|
194
|
+
byProductType,
|
|
195
|
+
listByProductType,
|
|
196
|
+
list: allDesignations,
|
|
197
|
+
byId: allDesignationsByKey,
|
|
198
|
+
};
|