@generaltranslation/react-core 11.0.0-odysseus.4 → 11.0.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/CHANGELOG.md +301 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/components/branches/Branch.cjs +2 -0
- package/dist/components/branches/Branch.cjs.map +1 -0
- package/dist/components/branches/Branch.d.ts +30 -0
- package/dist/components/branches/Branch.d.ts.map +1 -0
- package/dist/components/branches/Branch.mjs +2 -0
- package/dist/components/branches/Branch.mjs.map +1 -0
- package/dist/components/branches/Plural.cjs +2 -0
- package/dist/components/branches/Plural.cjs.map +1 -0
- package/dist/components/branches/Plural.d.ts +19 -0
- package/dist/components/branches/Plural.d.ts.map +1 -0
- package/dist/components/branches/Plural.mjs +2 -0
- package/dist/components/branches/Plural.mjs.map +1 -0
- package/dist/components/branches/Plural.rsc.cjs +2 -0
- package/dist/components/branches/Plural.rsc.cjs.map +1 -0
- package/dist/components/branches/Plural.rsc.d.ts +15 -0
- package/dist/components/branches/Plural.rsc.d.ts.map +1 -0
- package/dist/components/branches/Plural.rsc.mjs +2 -0
- package/dist/components/branches/Plural.rsc.mjs.map +1 -0
- package/dist/components/branches/Plural.shared.cjs +2 -0
- package/dist/components/branches/Plural.shared.cjs.map +1 -0
- package/dist/components/branches/Plural.shared.d.ts +18 -0
- package/dist/components/branches/Plural.shared.d.ts.map +1 -0
- package/dist/components/branches/Plural.shared.mjs +2 -0
- package/dist/components/branches/Plural.shared.mjs.map +1 -0
- package/dist/components/derivation/Derive.cjs +2 -0
- package/dist/components/derivation/Derive.cjs.map +1 -0
- package/dist/components/derivation/Derive.d.ts +19 -0
- package/dist/components/derivation/Derive.d.ts.map +1 -0
- package/dist/components/derivation/Derive.mjs +2 -0
- package/dist/components/derivation/Derive.mjs.map +1 -0
- package/dist/components/helpers/InternalLocaleSelector.cjs +2 -0
- package/dist/components/helpers/InternalLocaleSelector.cjs.map +1 -0
- package/dist/components/helpers/InternalLocaleSelector.d.ts +38 -0
- package/dist/components/helpers/InternalLocaleSelector.d.ts.map +1 -0
- package/dist/components/helpers/InternalLocaleSelector.mjs +2 -0
- package/dist/components/helpers/InternalLocaleSelector.mjs.map +1 -0
- package/dist/components/helpers/InternalRegionSelector.cjs +2 -0
- package/dist/components/helpers/InternalRegionSelector.cjs.map +1 -0
- package/dist/components/helpers/InternalRegionSelector.d.ts +33 -0
- package/dist/components/helpers/InternalRegionSelector.d.ts.map +1 -0
- package/dist/components/helpers/InternalRegionSelector.mjs +2 -0
- package/dist/components/helpers/InternalRegionSelector.mjs.map +1 -0
- package/dist/components/translation/T.cjs +2 -0
- package/dist/components/translation/T.cjs.map +1 -0
- package/dist/components/translation/T.d.ts +18 -0
- package/dist/components/translation/T.d.ts.map +1 -0
- package/dist/components/translation/T.mjs +2 -0
- package/dist/components/translation/T.mjs.map +1 -0
- package/dist/components/translation/T.rsc.cjs +2 -0
- package/dist/components/translation/T.rsc.cjs.map +1 -0
- package/dist/components/translation/T.rsc.d.ts +17 -0
- package/dist/components/translation/T.rsc.d.ts.map +1 -0
- package/dist/components/translation/T.rsc.mjs +2 -0
- package/dist/components/translation/T.rsc.mjs.map +1 -0
- package/dist/components/translation/Tx.rsc.cjs +2 -0
- package/dist/components/translation/Tx.rsc.cjs.map +1 -0
- package/dist/components/translation/Tx.rsc.d.ts +17 -0
- package/dist/components/translation/Tx.rsc.d.ts.map +1 -0
- package/dist/components/translation/Tx.rsc.mjs +2 -0
- package/dist/components/translation/Tx.rsc.mjs.map +1 -0
- package/dist/components/variables/Currency.cjs +2 -0
- package/dist/components/variables/Currency.cjs.map +1 -0
- package/dist/components/variables/Currency.d.ts +18 -0
- package/dist/components/variables/Currency.d.ts.map +1 -0
- package/dist/components/variables/Currency.mjs +2 -0
- package/dist/components/variables/Currency.mjs.map +1 -0
- package/dist/components/variables/Currency.rsc.cjs +2 -0
- package/dist/components/variables/Currency.rsc.cjs.map +1 -0
- package/dist/components/variables/Currency.rsc.d.ts +14 -0
- package/dist/components/variables/Currency.rsc.d.ts.map +1 -0
- package/dist/components/variables/Currency.rsc.mjs +2 -0
- package/dist/components/variables/Currency.rsc.mjs.map +1 -0
- package/dist/components/variables/Currency.shared.cjs +2 -0
- package/dist/components/variables/Currency.shared.cjs.map +1 -0
- package/dist/components/variables/Currency.shared.d.ts +17 -0
- package/dist/components/variables/Currency.shared.d.ts.map +1 -0
- package/dist/components/variables/Currency.shared.mjs +2 -0
- package/dist/components/variables/Currency.shared.mjs.map +1 -0
- package/dist/components/variables/DateTime.cjs +2 -0
- package/dist/components/variables/DateTime.cjs.map +1 -0
- package/dist/components/variables/DateTime.d.ts +18 -0
- package/dist/components/variables/DateTime.d.ts.map +1 -0
- package/dist/components/variables/DateTime.mjs +2 -0
- package/dist/components/variables/DateTime.mjs.map +1 -0
- package/dist/components/variables/DateTime.rsc.cjs +2 -0
- package/dist/components/variables/DateTime.rsc.cjs.map +1 -0
- package/dist/components/variables/DateTime.rsc.d.ts +14 -0
- package/dist/components/variables/DateTime.rsc.d.ts.map +1 -0
- package/dist/components/variables/DateTime.rsc.mjs +2 -0
- package/dist/components/variables/DateTime.rsc.mjs.map +1 -0
- package/dist/components/variables/DateTime.shared.cjs +2 -0
- package/dist/components/variables/DateTime.shared.cjs.map +1 -0
- package/dist/components/variables/DateTime.shared.d.ts +16 -0
- package/dist/components/variables/DateTime.shared.d.ts.map +1 -0
- package/dist/components/variables/DateTime.shared.mjs +2 -0
- package/dist/components/variables/DateTime.shared.mjs.map +1 -0
- package/dist/components/variables/Num.cjs +2 -0
- package/dist/components/variables/Num.cjs.map +1 -0
- package/dist/components/variables/Num.d.ts +18 -0
- package/dist/components/variables/Num.d.ts.map +1 -0
- package/dist/components/variables/Num.mjs +2 -0
- package/dist/components/variables/Num.mjs.map +1 -0
- package/dist/components/variables/Num.rsc.cjs +2 -0
- package/dist/components/variables/Num.rsc.cjs.map +1 -0
- package/dist/components/variables/Num.rsc.d.ts +14 -0
- package/dist/components/variables/Num.rsc.d.ts.map +1 -0
- package/dist/components/variables/Num.rsc.mjs +2 -0
- package/dist/components/variables/Num.rsc.mjs.map +1 -0
- package/dist/components/variables/Num.shared.cjs +2 -0
- package/dist/components/variables/Num.shared.cjs.map +1 -0
- package/dist/components/variables/Num.shared.d.ts +16 -0
- package/dist/components/variables/Num.shared.d.ts.map +1 -0
- package/dist/components/variables/Num.shared.mjs +2 -0
- package/dist/components/variables/Num.shared.mjs.map +1 -0
- package/dist/components/variables/RelativeTime.cjs +2 -0
- package/dist/components/variables/RelativeTime.cjs.map +1 -0
- package/dist/components/variables/RelativeTime.d.ts +18 -0
- package/dist/components/variables/RelativeTime.d.ts.map +1 -0
- package/dist/components/variables/RelativeTime.mjs +2 -0
- package/dist/components/variables/RelativeTime.mjs.map +1 -0
- package/dist/components/variables/RelativeTime.rsc.cjs +2 -0
- package/dist/components/variables/RelativeTime.rsc.cjs.map +1 -0
- package/dist/components/variables/RelativeTime.rsc.d.ts +14 -0
- package/dist/components/variables/RelativeTime.rsc.d.ts.map +1 -0
- package/dist/components/variables/RelativeTime.rsc.mjs +2 -0
- package/dist/components/variables/RelativeTime.rsc.mjs.map +1 -0
- package/dist/components/variables/RelativeTime.shared.cjs +2 -0
- package/dist/components/variables/RelativeTime.shared.cjs.map +1 -0
- package/dist/components/variables/RelativeTime.shared.d.ts +20 -0
- package/dist/components/variables/RelativeTime.shared.d.ts.map +1 -0
- package/dist/components/variables/RelativeTime.shared.mjs +2 -0
- package/dist/components/variables/RelativeTime.shared.mjs.map +1 -0
- package/dist/components/variables/Var.cjs +2 -0
- package/dist/components/variables/Var.cjs.map +1 -0
- package/dist/components/variables/Var.d.ts +27 -0
- package/dist/components/variables/Var.d.ts.map +1 -0
- package/dist/components/variables/Var.mjs +2 -0
- package/dist/components/variables/Var.mjs.map +1 -0
- package/dist/components-rsc.cjs +1 -0
- package/dist/components-rsc.d.ts +32 -531
- package/dist/components-rsc.mjs +1 -0
- package/dist/components.cjs +1 -0
- package/dist/components.d.ts +14 -495
- package/dist/components.mjs +1 -0
- package/dist/condition-store/singleton-operations.cjs +2 -0
- package/dist/condition-store/singleton-operations.cjs.map +1 -0
- package/dist/condition-store/singleton-operations.d.ts +7 -0
- package/dist/condition-store/singleton-operations.d.ts.map +1 -0
- package/dist/condition-store/singleton-operations.mjs +2 -0
- package/dist/condition-store/singleton-operations.mjs.map +1 -0
- package/dist/context/InternalGTProvider.cjs +2 -0
- package/dist/context/InternalGTProvider.cjs.map +1 -0
- package/dist/context/InternalGTProvider.d.ts +39 -0
- package/dist/context/InternalGTProvider.d.ts.map +1 -0
- package/dist/context/InternalGTProvider.mjs +2 -0
- package/dist/context/InternalGTProvider.mjs.map +1 -0
- package/dist/context/context.cjs +2 -0
- package/dist/context/context.cjs.map +1 -0
- package/dist/context/context.mjs +2 -0
- package/dist/context/context.mjs.map +1 -0
- package/dist/functions/helpers/getTranslationsSnapshot.cjs +2 -0
- package/dist/functions/helpers/getTranslationsSnapshot.cjs.map +1 -0
- package/dist/functions/helpers/getTranslationsSnapshot.d.ts +14 -0
- package/dist/functions/helpers/getTranslationsSnapshot.d.ts.map +1 -0
- package/dist/functions/helpers/getTranslationsSnapshot.mjs +2 -0
- package/dist/functions/helpers/getTranslationsSnapshot.mjs.map +1 -0
- package/dist/functions/translation/t.cjs +2 -0
- package/dist/functions/translation/t.cjs.map +1 -0
- package/dist/functions/translation/t.d.ts +34 -0
- package/dist/functions/translation/t.d.ts.map +1 -0
- package/dist/functions/translation/t.mjs +2 -0
- package/dist/functions/translation/t.mjs.map +1 -0
- package/dist/hooks/condition-store.cjs +2 -0
- package/dist/hooks/condition-store.cjs.map +1 -0
- package/dist/hooks/condition-store.d.ts +23 -0
- package/dist/hooks/condition-store.d.ts.map +1 -0
- package/dist/hooks/condition-store.mjs +2 -0
- package/dist/hooks/condition-store.mjs.map +1 -0
- package/dist/hooks/external-store/useSubscribeToTrackedLookups.cjs +2 -0
- package/dist/hooks/external-store/useSubscribeToTrackedLookups.cjs.map +1 -0
- package/dist/hooks/external-store/useSubscribeToTrackedLookups.mjs +2 -0
- package/dist/hooks/external-store/useSubscribeToTrackedLookups.mjs.map +1 -0
- package/dist/hooks/external-store/useTrackedDictionaryObjResolver.cjs +2 -0
- package/dist/hooks/external-store/useTrackedDictionaryObjResolver.cjs.map +1 -0
- package/dist/hooks/external-store/useTrackedDictionaryObjResolver.mjs +2 -0
- package/dist/hooks/external-store/useTrackedDictionaryObjResolver.mjs.map +1 -0
- package/dist/hooks/external-store/useTrackedDictionaryResolver.cjs +2 -0
- package/dist/hooks/external-store/useTrackedDictionaryResolver.cjs.map +1 -0
- package/dist/hooks/external-store/useTrackedDictionaryResolver.mjs +2 -0
- package/dist/hooks/external-store/useTrackedDictionaryResolver.mjs.map +1 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.cjs +2 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.cjs.map +1 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.d.ts +10 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.d.ts.map +1 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.mjs +2 -0
- package/dist/hooks/external-store/useTrackedTranslationResolver.mjs.map +1 -0
- package/dist/hooks/external-store.cjs +2 -0
- package/dist/hooks/external-store.cjs.map +1 -0
- package/dist/hooks/external-store.mjs +2 -0
- package/dist/hooks/external-store.mjs.map +1 -0
- package/dist/hooks/i18n-config.cjs +2 -0
- package/dist/hooks/i18n-config.cjs.map +1 -0
- package/dist/hooks/i18n-config.d.ts +9 -0
- package/dist/hooks/i18n-config.d.ts.map +1 -0
- package/dist/hooks/i18n-config.mjs +2 -0
- package/dist/hooks/i18n-config.mjs.map +1 -0
- package/dist/hooks/useGT.cjs +2 -0
- package/dist/hooks/useGT.cjs.map +1 -0
- package/dist/hooks/useGT.d.ts +8 -0
- package/dist/hooks/useGT.d.ts.map +1 -0
- package/dist/hooks/useGT.mjs +2 -0
- package/dist/hooks/useGT.mjs.map +1 -0
- package/dist/hooks/useInternalLocaleSelector.cjs +2 -0
- package/dist/hooks/useInternalLocaleSelector.cjs.map +1 -0
- package/dist/hooks/useInternalLocaleSelector.d.ts +12 -0
- package/dist/hooks/useInternalLocaleSelector.d.ts.map +1 -0
- package/dist/hooks/useInternalLocaleSelector.mjs +2 -0
- package/dist/hooks/useInternalLocaleSelector.mjs.map +1 -0
- package/dist/hooks/useInternalRegionSelector.cjs +2 -0
- package/dist/hooks/useInternalRegionSelector.cjs.map +1 -0
- package/dist/hooks/useInternalRegionSelector.d.ts +42 -0
- package/dist/hooks/useInternalRegionSelector.d.ts.map +1 -0
- package/dist/hooks/useInternalRegionSelector.mjs +2 -0
- package/dist/hooks/useInternalRegionSelector.mjs.map +1 -0
- package/dist/hooks/useMessages.cjs +2 -0
- package/dist/hooks/useMessages.cjs.map +1 -0
- package/dist/hooks/useMessages.d.ts +8 -0
- package/dist/hooks/useMessages.d.ts.map +1 -0
- package/dist/hooks/useMessages.mjs +2 -0
- package/dist/hooks/useMessages.mjs.map +1 -0
- package/dist/hooks/useTranslations.cjs +2 -0
- package/dist/hooks/useTranslations.cjs.map +1 -0
- package/dist/hooks/useTranslations.d.ts +10 -0
- package/dist/hooks/useTranslations.d.ts.map +1 -0
- package/dist/hooks/useTranslations.mjs +2 -0
- package/dist/hooks/useTranslations.mjs.map +1 -0
- package/dist/hooks/utils/getFormatLocales.cjs +2 -0
- package/dist/hooks/utils/getFormatLocales.cjs.map +1 -0
- package/dist/hooks/utils/getFormatLocales.d.ts +13 -0
- package/dist/hooks/utils/getFormatLocales.d.ts.map +1 -0
- package/dist/hooks/utils/getFormatLocales.mjs +2 -0
- package/dist/hooks/utils/getFormatLocales.mjs.map +1 -0
- package/dist/hooks/utils/getShouldTranslate.cjs +2 -0
- package/dist/hooks/utils/getShouldTranslate.cjs.map +1 -0
- package/dist/hooks/utils/getShouldTranslate.d.ts +8 -0
- package/dist/hooks/utils/getShouldTranslate.d.ts.map +1 -0
- package/dist/hooks/utils/getShouldTranslate.mjs +2 -0
- package/dist/hooks/utils/getShouldTranslate.mjs.map +1 -0
- package/dist/hooks/utils/missing-translation.cjs +2 -0
- package/dist/hooks/utils/missing-translation.cjs.map +1 -0
- package/dist/hooks/utils/missing-translation.d.ts +10 -0
- package/dist/hooks/utils/missing-translation.d.ts.map +1 -0
- package/dist/hooks/utils/missing-translation.mjs +2 -0
- package/dist/hooks/utils/missing-translation.mjs.map +1 -0
- package/dist/hooks/utils.cjs +2 -0
- package/dist/hooks/utils.cjs.map +1 -0
- package/dist/hooks/utils.d.ts +10 -0
- package/dist/hooks/utils.d.ts.map +1 -0
- package/dist/hooks/utils.mjs +2 -0
- package/dist/hooks/utils.mjs.map +1 -0
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.d.ts +9 -130
- package/dist/hooks.mjs +1 -0
- package/dist/i18n-cache/ReactI18nCache.cjs +2 -0
- package/dist/i18n-cache/ReactI18nCache.cjs.map +1 -0
- package/dist/i18n-cache/ReactI18nCache.d.ts +10 -0
- package/dist/i18n-cache/ReactI18nCache.d.ts.map +1 -0
- package/dist/i18n-cache/ReactI18nCache.mjs +2 -0
- package/dist/i18n-cache/ReactI18nCache.mjs.map +1 -0
- package/dist/i18n-cache/singleton-operations.cjs +2 -0
- package/dist/i18n-cache/singleton-operations.cjs.map +1 -0
- package/dist/i18n-cache/singleton-operations.d.ts +8 -0
- package/dist/i18n-cache/singleton-operations.d.ts.map +1 -0
- package/dist/i18n-cache/singleton-operations.mjs +2 -0
- package/dist/i18n-cache/singleton-operations.mjs.map +1 -0
- package/dist/i18n-store/I18nStore.cjs +2 -0
- package/dist/i18n-store/I18nStore.cjs.map +1 -0
- package/dist/i18n-store/I18nStore.d.ts +41 -0
- package/dist/i18n-store/I18nStore.d.ts.map +1 -0
- package/dist/i18n-store/I18nStore.mjs +2 -0
- package/dist/i18n-store/I18nStore.mjs.map +1 -0
- package/dist/i18n-store/singleton-operations.cjs +2 -0
- package/dist/i18n-store/singleton-operations.cjs.map +1 -0
- package/dist/i18n-store/singleton-operations.d.ts +7 -0
- package/dist/i18n-store/singleton-operations.d.ts.map +1 -0
- package/dist/i18n-store/singleton-operations.mjs +2 -0
- package/dist/i18n-store/singleton-operations.mjs.map +1 -0
- package/dist/i18n-store/storeTypes.d.ts +22 -0
- package/dist/i18n-store/storeTypes.d.ts.map +1 -0
- package/dist/i18n-store/useI18nStore.cjs +2 -0
- package/dist/i18n-store/useI18nStore.cjs.map +1 -0
- package/dist/i18n-store/useI18nStore.mjs +2 -0
- package/dist/i18n-store/useI18nStore.mjs.map +1 -0
- package/dist/i18n-store/utils/dictionaries.cjs +2 -0
- package/dist/i18n-store/utils/dictionaries.cjs.map +1 -0
- package/dist/i18n-store/utils/dictionaries.mjs +2 -0
- package/dist/i18n-store/utils/dictionaries.mjs.map +1 -0
- package/dist/i18n-store/utils/subscriptions.cjs +2 -0
- package/dist/i18n-store/utils/subscriptions.cjs.map +1 -0
- package/dist/i18n-store/utils/subscriptions.mjs +2 -0
- package/dist/i18n-store/utils/subscriptions.mjs.map +1 -0
- package/dist/i18n-store/utils/translations.cjs +2 -0
- package/dist/i18n-store/utils/translations.cjs.map +1 -0
- package/dist/i18n-store/utils/translations.mjs +2 -0
- package/dist/i18n-store/utils/translations.mjs.map +1 -0
- package/dist/pure.cjs +1 -0
- package/dist/pure.d.ts +18 -677
- package/dist/pure.mjs +1 -0
- package/dist/setup/i18nConfig.cjs +2 -0
- package/dist/setup/i18nConfig.cjs.map +1 -0
- package/dist/setup/i18nConfig.d.ts +48 -0
- package/dist/setup/i18nConfig.d.ts.map +1 -0
- package/dist/setup/i18nConfig.mjs +2 -0
- package/dist/setup/i18nConfig.mjs.map +1 -0
- package/dist/setup/initializeGTSRA.cjs +2 -0
- package/dist/setup/initializeGTSRA.cjs.map +1 -0
- package/dist/setup/initializeGTSRA.d.ts +11 -0
- package/dist/setup/initializeGTSRA.d.ts.map +1 -0
- package/dist/setup/initializeGTSRA.mjs +2 -0
- package/dist/setup/initializeGTSRA.mjs.map +1 -0
- package/dist/utils/internal/addGTIdentifier.cjs +2 -0
- package/dist/utils/internal/addGTIdentifier.cjs.map +1 -0
- package/dist/utils/internal/addGTIdentifier.mjs +2 -0
- package/dist/utils/internal/addGTIdentifier.mjs.map +1 -0
- package/dist/utils/internal/removeInjectedT.cjs +2 -0
- package/dist/utils/internal/removeInjectedT.cjs.map +1 -0
- package/dist/utils/internal/removeInjectedT.mjs +2 -0
- package/dist/utils/internal/removeInjectedT.mjs.map +1 -0
- package/dist/utils/internal/writeChildrenAsObjects.cjs +2 -0
- package/dist/utils/internal/writeChildrenAsObjects.cjs.map +1 -0
- package/dist/utils/internal/writeChildrenAsObjects.mjs +2 -0
- package/dist/utils/internal/writeChildrenAsObjects.mjs.map +1 -0
- package/dist/utils/plurals/getPluralBranch.cjs +2 -0
- package/dist/utils/plurals/getPluralBranch.cjs.map +1 -0
- package/dist/utils/plurals/getPluralBranch.d.ts +12 -0
- package/dist/utils/plurals/getPluralBranch.d.ts.map +1 -0
- package/dist/utils/plurals/getPluralBranch.mjs +2 -0
- package/dist/utils/plurals/getPluralBranch.mjs.map +1 -0
- package/dist/utils/rendering/createRenderPipeline.cjs +2 -0
- package/dist/utils/rendering/createRenderPipeline.cjs.map +1 -0
- package/dist/utils/rendering/createRenderPipeline.d.ts +18 -0
- package/dist/utils/rendering/createRenderPipeline.d.ts.map +1 -0
- package/dist/utils/rendering/createRenderPipeline.mjs +2 -0
- package/dist/utils/rendering/createRenderPipeline.mjs.map +1 -0
- package/dist/utils/rendering/createRenderVariable.cjs +2 -0
- package/dist/utils/rendering/createRenderVariable.cjs.map +1 -0
- package/dist/utils/rendering/createRenderVariable.d.ts +46 -0
- package/dist/utils/rendering/createRenderVariable.d.ts.map +1 -0
- package/dist/utils/rendering/createRenderVariable.mjs +2 -0
- package/dist/utils/rendering/createRenderVariable.mjs.map +1 -0
- package/dist/utils/rendering/getDefaultRenderSettings.cjs +2 -0
- package/dist/utils/rendering/getDefaultRenderSettings.cjs.map +1 -0
- package/dist/utils/rendering/getDefaultRenderSettings.d.ts +10 -0
- package/dist/utils/rendering/getDefaultRenderSettings.d.ts.map +1 -0
- package/dist/utils/rendering/getDefaultRenderSettings.mjs +2 -0
- package/dist/utils/rendering/getDefaultRenderSettings.mjs.map +1 -0
- package/dist/utils/rendering/getGTTag.cjs +2 -0
- package/dist/utils/rendering/getGTTag.cjs.map +1 -0
- package/dist/utils/rendering/getGTTag.mjs +2 -0
- package/dist/utils/rendering/getGTTag.mjs.map +1 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.cjs +2 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.cjs.map +1 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.d.ts +12 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.d.ts.map +1 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.mjs +2 -0
- package/dist/utils/rendering/renderDefaultChildren.shared.mjs.map +1 -0
- package/dist/utils/rendering/renderPipeline.cjs +2 -0
- package/dist/utils/rendering/renderPipeline.cjs.map +1 -0
- package/dist/utils/rendering/renderPipeline.mjs +2 -0
- package/dist/utils/rendering/renderPipeline.mjs.map +1 -0
- package/dist/utils/rendering/renderPipeline.rsc.cjs +2 -0
- package/dist/utils/rendering/renderPipeline.rsc.cjs.map +1 -0
- package/dist/utils/rendering/renderPipeline.rsc.d.ts +11 -0
- package/dist/utils/rendering/renderPipeline.rsc.d.ts.map +1 -0
- package/dist/utils/rendering/renderPipeline.rsc.mjs +2 -0
- package/dist/utils/rendering/renderPipeline.rsc.mjs.map +1 -0
- package/dist/utils/rendering/renderPreparedT.shared.cjs +2 -0
- package/dist/utils/rendering/renderPreparedT.shared.cjs.map +1 -0
- package/dist/utils/rendering/renderPreparedT.shared.d.ts +16 -0
- package/dist/utils/rendering/renderPreparedT.shared.d.ts.map +1 -0
- package/dist/utils/rendering/renderPreparedT.shared.mjs +2 -0
- package/dist/utils/rendering/renderPreparedT.shared.mjs.map +1 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.cjs +2 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.cjs.map +1 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.d.ts +13 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.d.ts.map +1 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.mjs +2 -0
- package/dist/utils/rendering/renderTranslatedChildren.shared.mjs.map +1 -0
- package/dist/utils/translation/prepareT.shared.cjs +2 -0
- package/dist/utils/translation/prepareT.shared.cjs.map +1 -0
- package/dist/utils/translation/prepareT.shared.d.ts +40 -0
- package/dist/utils/translation/prepareT.shared.d.ts.map +1 -0
- package/dist/utils/translation/prepareT.shared.mjs +2 -0
- package/dist/utils/translation/prepareT.shared.mjs.map +1 -0
- package/dist/utils/translation/usePrepareT.cjs +2 -0
- package/dist/utils/translation/usePrepareT.cjs.map +1 -0
- package/dist/utils/translation/usePrepareT.mjs +2 -0
- package/dist/utils/translation/usePrepareT.mjs.map +1 -0
- package/dist/utils/types.d.ts +64 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/utils.cjs +2 -0
- package/dist/utils/utils.cjs.map +1 -0
- package/dist/utils/utils.mjs +2 -0
- package/dist/utils/utils.mjs.map +1 -0
- package/dist/utils/variables/_getVariableProps.cjs +2 -0
- package/dist/utils/variables/_getVariableProps.cjs.map +1 -0
- package/dist/utils/variables/_getVariableProps.mjs +2 -0
- package/dist/utils/variables/_getVariableProps.mjs.map +1 -0
- package/dist/utils/variables/getVariableName.cjs +2 -0
- package/dist/utils/variables/getVariableName.cjs.map +1 -0
- package/dist/utils/variables/getVariableName.mjs +2 -0
- package/dist/utils/variables/getVariableName.mjs.map +1 -0
- package/package.json +13 -41
- package/dist/components-rsc.cjs.min.cjs +0 -2
- package/dist/components-rsc.cjs.min.cjs.map +0 -1
- package/dist/components-rsc.d.ts.map +0 -1
- package/dist/components-rsc.esm.min.mjs +0 -2
- package/dist/components-rsc.esm.min.mjs.map +0 -1
- package/dist/components.cjs.min.cjs +0 -2
- package/dist/components.cjs.min.cjs.map +0 -1
- package/dist/components.d.ts.map +0 -1
- package/dist/components.esm.min.mjs +0 -2
- package/dist/components.esm.min.mjs.map +0 -1
- package/dist/cookies.cjs.min.cjs +0 -2
- package/dist/cookies.cjs.min.cjs.map +0 -1
- package/dist/cookies.d.ts +0 -16
- package/dist/cookies.d.ts.map +0 -1
- package/dist/cookies.esm.min.mjs +0 -2
- package/dist/cookies.esm.min.mjs.map +0 -1
- package/dist/hooks.cjs.min.cjs +0 -2
- package/dist/hooks.cjs.min.cjs.map +0 -1
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.esm.min.mjs +0 -2
- package/dist/hooks.esm.min.mjs.map +0 -1
- package/dist/pure.cjs.min.cjs +0 -2
- package/dist/pure.cjs.min.cjs.map +0 -1
- package/dist/pure.d.ts.map +0 -1
- package/dist/pure.esm.min.mjs +0 -2
- package/dist/pure.esm.min.mjs.map +0 -1
package/dist/pure.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getFormatLocales as e}from"./hooks/utils/getFormatLocales.mjs";import{getReactI18nCache as t,setReactI18nCache as n}from"./i18n-cache/singleton-operations.mjs";import{getTranslationsSnapshot as r}from"./functions/helpers/getTranslationsSnapshot.mjs";import{defaultEnableI18nCookieName as i,defaultLocaleCookieName as a,defaultRegionCookieName as o,defaultResetLocaleCookieName as s,getI18nConfig as c,initializeI18nConfig as l}from"./setup/i18nConfig.mjs";import{getConditionStore as u}from"./condition-store/singleton-operations.mjs";import{t as d}from"./functions/translation/t.mjs";import{createRenderPipeline as f}from"./utils/rendering/createRenderPipeline.mjs";import{getDefaultRenderSettings as p}from"./utils/rendering/getDefaultRenderSettings.mjs";import{ReactI18nCache as m}from"./i18n-cache/ReactI18nCache.mjs";import{internalInitializeGTSRA as h}from"./setup/initializeGTSRA.mjs";import{setI18nStore as g}from"./i18n-store/singleton-operations.mjs";import{I18nStore as _}from"./i18n-store/I18nStore.mjs";import{declareVar as v,decodeMsg as y,decodeOptions as b,decodeVars as x,derive as S,getDefaultLocale as C,getLocaleProperties as w,getLocales as T,getVersionId as E,gtFallback as D,mFallback as O,msg as k,resolveCanonicalLocale as A}from"gt-i18n";import{ReadonlyConditionStore as j}from"gt-i18n/internal";export{_ as I18nStore,m as ReactI18nCache,j as ReadonlyConditionStore,f as createRenderPipeline,v as declareVar,y as decodeMsg,b as decodeOptions,x as decodeVars,i as defaultEnableI18nCookieName,a as defaultLocaleCookieName,o as defaultRegionCookieName,s as defaultResetLocaleCookieName,S as derive,C as getDefaultLocale,p as getDefaultRenderSettings,e as getFormatLocales,c as getI18nConfig,w as getLocaleProperties,T as getLocales,t as getReactI18nCache,u as getReadonlyConditionStore,r as getTranslationsSnapshot,E as getVersionId,D as gtFallback,l as initializeI18nConfig,h as internalInitializeGTSRA,O as mFallback,k as msg,A as resolveCanonicalLocale,g as setI18nStore,n as setReactI18nCache,d as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);let e=require(`gt-i18n/internal`),t=require(`generaltranslation/internal`);const n=`server-render`,r=Symbol.for(`generaltranslation.react-core.ReactI18nConfig`);var i=class extends e.I18nConfig{renderStrategy;localeCookieName;regionCookieName;enableI18nCookieName;constructor(e={},t=n){super(e),c(t),Object.defineProperty(this,r,{value:!0}),this.renderStrategy=t,this.localeCookieName=e.localeCookieName??`generaltranslation.locale`,this.regionCookieName=e.regionCookieName??`generaltranslation.region`,this.enableI18nCookieName=e.enableI18nCookieName??`generaltranslation.enable-i18n`}getRenderStrategy(){return this.renderStrategy}getLocaleCookieName(){return this.localeCookieName}getRegionCookieName(){return this.regionCookieName}getEnableI18nCookieName(){return this.enableI18nCookieName}};function a(){let n=(0,e.getI18nConfig)();if(l(n))return n;throw Error((0,t.createDiagnosticMessage)({source:`@generaltranslation/react-core`,severity:`Error`,whatHappened:`Cannot read ReactI18nConfig after base I18nConfig setup.`,why:`the internal I18nConfig singleton was initialized without react-core render strategy support`,fix:`Initialize GT through gt-react or @generaltranslation/react-core/pure.`}))}function o(t){(0,e.setI18nConfig)(t)}function s(e={},t=n){let r=new i(e,t);return o(r),r}function c(e){if(!(e===`SPA`||e===`server-render`))throw Error((0,t.createDiagnosticMessage)({source:`@generaltranslation/react-core`,severity:`Error`,whatHappened:`Invalid React render strategy.`,why:`the render strategy must be "SPA" or "server-render", but received "${String(e)}"`,fix:`Initialize GT through gt-react or pass a valid render strategy.`}))}function l(e){if(e instanceof i)return!0;let t=e;return t[r]===!0&&typeof t.getRenderStrategy==`function`&&typeof t.getLocaleCookieName==`function`&&typeof t.getRegionCookieName==`function`&&typeof t.getEnableI18nCookieName==`function`}exports.defaultEnableI18nCookieName=`generaltranslation.enable-i18n`,exports.defaultLocaleCookieName=`generaltranslation.locale`,exports.defaultRegionCookieName=`generaltranslation.region`,exports.defaultResetLocaleCookieName=`generaltranslation.locale-reset`,exports.getI18nConfig=a,exports.initializeI18nConfig=s;
|
|
2
|
+
//# sourceMappingURL=i18nConfig.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nConfig.cjs","names":["I18nConfig"],"sources":["../../src/setup/i18nConfig.ts"],"sourcesContent":["import { createDiagnosticMessage } from 'generaltranslation/internal';\nimport {\n getI18nConfig as getBaseI18nConfig,\n I18nConfig,\n setI18nConfig as setBaseI18nConfig,\n} from 'gt-i18n/internal';\nimport type { I18nConfigParams as BaseI18nConfigParams } from 'gt-i18n/internal/types';\n\n/**\n * Cookie name for tracking the user's selected locale.\n */\nexport const defaultLocaleCookieName = 'generaltranslation.locale';\n\n/**\n * Cookie name for tracking the user's selected region.\n */\nexport const defaultRegionCookieName = 'generaltranslation.region';\n\n/**\n * Cookie name for persisting the enableI18n feature flag.\n */\nexport const defaultEnableI18nCookieName = 'generaltranslation.enable-i18n';\n\n/**\n * Cookie name for tracking the locale reset.\n */\nexport const defaultResetLocaleCookieName = 'generaltranslation.locale-reset';\n\n/**\n * Helps us distinguish behavior for SPA vs server-rendered apps.\n * - server-rendered apps must use context\n * - SPA apps can synchronously access the locale\n */\nexport type RenderStrategy = 'SPA' | 'server-render';\n\ntype CookieNameConfig = {\n localeCookieName?: string;\n regionCookieName?: string;\n enableI18nCookieName?: string;\n};\n\nexport type ReactI18nConfigParams = BaseI18nConfigParams & CookieNameConfig;\n\nconst defaultRenderStrategy: RenderStrategy = 'server-render';\nconst reactI18nConfigBrand = Symbol.for(\n 'generaltranslation.react-core.ReactI18nConfig'\n);\n\nexport class ReactI18nConfig extends I18nConfig {\n private renderStrategy: RenderStrategy;\n private localeCookieName: string;\n private regionCookieName: string;\n private enableI18nCookieName: string;\n\n constructor(\n params: ReactI18nConfigParams = {},\n renderStrategy: RenderStrategy = defaultRenderStrategy\n ) {\n super(params);\n validateRenderStrategy(renderStrategy);\n Object.defineProperty(this, reactI18nConfigBrand, { value: true });\n this.renderStrategy = renderStrategy;\n this.localeCookieName = params.localeCookieName ?? defaultLocaleCookieName;\n this.regionCookieName = params.regionCookieName ?? defaultRegionCookieName;\n this.enableI18nCookieName =\n params.enableI18nCookieName ?? defaultEnableI18nCookieName;\n }\n\n getRenderStrategy(): RenderStrategy {\n return this.renderStrategy;\n }\n\n getLocaleCookieName(): string {\n return this.localeCookieName;\n }\n\n getRegionCookieName(): string {\n return this.regionCookieName;\n }\n\n getEnableI18nCookieName(): string {\n return this.enableI18nCookieName;\n }\n}\n\nexport function getI18nConfig(): ReactI18nConfig {\n const i18nConfig = getBaseI18nConfig();\n if (isReactI18nConfig(i18nConfig)) {\n return i18nConfig;\n }\n throw new Error(\n createDiagnosticMessage({\n source: '@generaltranslation/react-core',\n severity: 'Error',\n whatHappened: 'Cannot read ReactI18nConfig after base I18nConfig setup.',\n why: 'the internal I18nConfig singleton was initialized without react-core render strategy support',\n fix: 'Initialize GT through gt-react or @generaltranslation/react-core/pure.',\n })\n );\n}\n\nexport function setI18nConfig(nextI18nConfig: ReactI18nConfig): void {\n setBaseI18nConfig(nextI18nConfig);\n}\n\nexport function initializeI18nConfig(\n params: ReactI18nConfigParams = {},\n renderStrategy: RenderStrategy = defaultRenderStrategy\n): ReactI18nConfig {\n const nextI18nConfig = new ReactI18nConfig(params, renderStrategy);\n setI18nConfig(nextI18nConfig);\n return nextI18nConfig;\n}\n\nfunction validateRenderStrategy(\n renderStrategy: RenderStrategy\n): asserts renderStrategy is RenderStrategy {\n if (renderStrategy === 'SPA' || renderStrategy === 'server-render') return;\n throw new Error(\n createDiagnosticMessage({\n source: '@generaltranslation/react-core',\n severity: 'Error',\n whatHappened: 'Invalid React render strategy.',\n why: `the render strategy must be \"SPA\" or \"server-render\", but received \"${String(renderStrategy)}\"`,\n fix: 'Initialize GT through gt-react or pass a valid render strategy.',\n })\n );\n}\n\nfunction isReactI18nConfig(\n i18nConfig: I18nConfig\n): i18nConfig is ReactI18nConfig {\n if (i18nConfig instanceof ReactI18nConfig) return true;\n\n const maybeReactI18nConfig = i18nConfig as I18nConfig &\n Record<PropertyKey, unknown>;\n return (\n maybeReactI18nConfig[reactI18nConfigBrand] === true &&\n typeof maybeReactI18nConfig.getRenderStrategy === 'function' &&\n typeof maybeReactI18nConfig.getLocaleCookieName === 'function' &&\n typeof maybeReactI18nConfig.getRegionCookieName === 'function' &&\n typeof maybeReactI18nConfig.getEnableI18nCookieName === 'function'\n );\n}\n"],"mappings":"wHAWA,MAgCM,EAAwC,gBACxC,EAAuB,OAAO,IAClC,gDACD,CAED,IAAa,EAAb,cAAqCA,EAAAA,UAAW,CAC9C,eACA,iBACA,iBACA,qBAEA,YACE,EAAgC,EAAE,CAClC,EAAiC,EACjC,CACA,MAAM,EAAO,CACb,EAAuB,EAAe,CACtC,OAAO,eAAe,KAAM,EAAsB,CAAE,MAAO,GAAM,CAAC,CAClE,KAAK,eAAiB,EACtB,KAAK,iBAAmB,EAAO,kBAAA,4BAC/B,KAAK,iBAAmB,EAAO,kBAAA,4BAC/B,KAAK,qBACH,EAAO,sBAAA,iCAGX,mBAAoC,CAClC,OAAO,KAAK,eAGd,qBAA8B,CAC5B,OAAO,KAAK,iBAGd,qBAA8B,CAC5B,OAAO,KAAK,iBAGd,yBAAkC,CAChC,OAAO,KAAK,uBAIhB,SAAgB,GAAiC,CAC/C,IAAM,GAAA,EAAA,EAAA,gBAAgC,CACtC,GAAI,EAAkB,EAAW,CAC/B,OAAO,EAET,MAAU,OAAA,EAAA,EAAA,yBACgB,CACtB,OAAQ,iCACR,SAAU,QACV,aAAc,2DACd,IAAK,+FACL,IAAK,yEACN,CAAC,CACH,CAGH,SAAgB,EAAc,EAAuC,EACnE,EAAA,EAAA,eAAkB,EAAe,CAGnC,SAAgB,EACd,EAAgC,EAAE,CAClC,EAAiC,EAChB,CACjB,IAAM,EAAiB,IAAI,EAAgB,EAAQ,EAAe,CAElE,OADA,EAAc,EAAe,CACtB,EAGT,SAAS,EACP,EAC0C,CACtC,SAAmB,OAAS,IAAmB,iBACnD,MAAU,OAAA,EAAA,EAAA,yBACgB,CACtB,OAAQ,iCACR,SAAU,QACV,aAAc,iCACd,IAAK,uEAAuE,OAAO,EAAe,CAAC,GACnG,IAAK,kEACN,CAAC,CACH,CAGH,SAAS,EACP,EAC+B,CAC/B,GAAI,aAAsB,EAAiB,MAAO,GAElD,IAAM,EAAuB,EAE7B,OACE,EAAqB,KAA0B,IAC/C,OAAO,EAAqB,mBAAsB,YAClD,OAAO,EAAqB,qBAAwB,YACpD,OAAO,EAAqB,qBAAwB,YACpD,OAAO,EAAqB,yBAA4B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { I18nConfigParams } from "gt-i18n/internal/types";
|
|
2
|
+
import { I18nConfig } from "gt-i18n/internal";
|
|
3
|
+
|
|
4
|
+
//#region src/setup/i18nConfig.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Cookie name for tracking the user's selected locale.
|
|
7
|
+
*/
|
|
8
|
+
declare const defaultLocaleCookieName = "generaltranslation.locale";
|
|
9
|
+
/**
|
|
10
|
+
* Cookie name for tracking the user's selected region.
|
|
11
|
+
*/
|
|
12
|
+
declare const defaultRegionCookieName = "generaltranslation.region";
|
|
13
|
+
/**
|
|
14
|
+
* Cookie name for persisting the enableI18n feature flag.
|
|
15
|
+
*/
|
|
16
|
+
declare const defaultEnableI18nCookieName = "generaltranslation.enable-i18n";
|
|
17
|
+
/**
|
|
18
|
+
* Cookie name for tracking the locale reset.
|
|
19
|
+
*/
|
|
20
|
+
declare const defaultResetLocaleCookieName = "generaltranslation.locale-reset";
|
|
21
|
+
/**
|
|
22
|
+
* Helps us distinguish behavior for SPA vs server-rendered apps.
|
|
23
|
+
* - server-rendered apps must use context
|
|
24
|
+
* - SPA apps can synchronously access the locale
|
|
25
|
+
*/
|
|
26
|
+
type RenderStrategy = 'SPA' | 'server-render';
|
|
27
|
+
type CookieNameConfig = {
|
|
28
|
+
localeCookieName?: string;
|
|
29
|
+
regionCookieName?: string;
|
|
30
|
+
enableI18nCookieName?: string;
|
|
31
|
+
};
|
|
32
|
+
type ReactI18nConfigParams = I18nConfigParams & CookieNameConfig;
|
|
33
|
+
declare class ReactI18nConfig extends I18nConfig {
|
|
34
|
+
private renderStrategy;
|
|
35
|
+
private localeCookieName;
|
|
36
|
+
private regionCookieName;
|
|
37
|
+
private enableI18nCookieName;
|
|
38
|
+
constructor(params?: ReactI18nConfigParams, renderStrategy?: RenderStrategy);
|
|
39
|
+
getRenderStrategy(): RenderStrategy;
|
|
40
|
+
getLocaleCookieName(): string;
|
|
41
|
+
getRegionCookieName(): string;
|
|
42
|
+
getEnableI18nCookieName(): string;
|
|
43
|
+
}
|
|
44
|
+
declare function getI18nConfig(): ReactI18nConfig;
|
|
45
|
+
declare function initializeI18nConfig(params?: ReactI18nConfigParams, renderStrategy?: RenderStrategy): ReactI18nConfig;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { ReactI18nConfigParams, defaultEnableI18nCookieName, defaultLocaleCookieName, defaultRegionCookieName, defaultResetLocaleCookieName, getI18nConfig, initializeI18nConfig };
|
|
48
|
+
//# sourceMappingURL=i18nConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nConfig.d.ts","names":[],"sources":["../../src/setup/i18nConfig.ts"],"mappings":";;;;;;AAWA;cAAa,uBAAA;;;;cAKA,uBAAA;;;;cAKA,2BAAA;AAAb;;;AAAA,cAKa,4BAAA;;AAAb;;;;KAOY,cAAA;AAAA,KAEP,gBAAA;EACH,gBAAA;EACA,gBAAA;EACA,oBAAA;AAAA;AAAA,KAGU,qBAAA,GAAwB,gBAAA,GAAuB,gBAAA;AAAA,cAO9C,eAAA,SAAwB,UAAA;EAAA,QAC3B,cAAA;EAAA,QACA,gBAAA;EAAA,QACA,gBAAA;EAAA,QACA,oBAAA;cAGN,MAAA,GAAQ,qBAAA,EACR,cAAA,GAAgB,cAAA;EAYlB,iBAAA,CAAA,GAAqB,cAAA;EAIrB,mBAAA,CAAA;EAIA,mBAAA,CAAA;EAIA,uBAAA,CAAA;AAAA;AAAA,iBAKc,aAAA,CAAA,GAAiB,eAAA;AAAA,iBAoBjB,oBAAA,CACd,MAAA,GAAQ,qBAAA,EACR,cAAA,GAAgB,cAAA,GACf,eAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{I18nConfig as e,getI18nConfig as t,setI18nConfig as n}from"gt-i18n/internal";import{createDiagnosticMessage as r}from"generaltranslation/internal";const i=`generaltranslation.locale`,a=`generaltranslation.region`,o=`generaltranslation.enable-i18n`,s=`generaltranslation.locale-reset`,c=`server-render`,l=Symbol.for(`generaltranslation.react-core.ReactI18nConfig`);var u=class extends e{renderStrategy;localeCookieName;regionCookieName;enableI18nCookieName;constructor(e={},t=c){super(e),m(t),Object.defineProperty(this,l,{value:!0}),this.renderStrategy=t,this.localeCookieName=e.localeCookieName??`generaltranslation.locale`,this.regionCookieName=e.regionCookieName??`generaltranslation.region`,this.enableI18nCookieName=e.enableI18nCookieName??`generaltranslation.enable-i18n`}getRenderStrategy(){return this.renderStrategy}getLocaleCookieName(){return this.localeCookieName}getRegionCookieName(){return this.regionCookieName}getEnableI18nCookieName(){return this.enableI18nCookieName}};function d(){let e=t();if(h(e))return e;throw Error(r({source:`@generaltranslation/react-core`,severity:`Error`,whatHappened:`Cannot read ReactI18nConfig after base I18nConfig setup.`,why:`the internal I18nConfig singleton was initialized without react-core render strategy support`,fix:`Initialize GT through gt-react or @generaltranslation/react-core/pure.`}))}function f(e){n(e)}function p(e={},t=c){let n=new u(e,t);return f(n),n}function m(e){if(!(e===`SPA`||e===`server-render`))throw Error(r({source:`@generaltranslation/react-core`,severity:`Error`,whatHappened:`Invalid React render strategy.`,why:`the render strategy must be "SPA" or "server-render", but received "${String(e)}"`,fix:`Initialize GT through gt-react or pass a valid render strategy.`}))}function h(e){if(e instanceof u)return!0;let t=e;return t[l]===!0&&typeof t.getRenderStrategy==`function`&&typeof t.getLocaleCookieName==`function`&&typeof t.getRegionCookieName==`function`&&typeof t.getEnableI18nCookieName==`function`}export{o as defaultEnableI18nCookieName,i as defaultLocaleCookieName,a as defaultRegionCookieName,s as defaultResetLocaleCookieName,d as getI18nConfig,p as initializeI18nConfig};
|
|
2
|
+
//# sourceMappingURL=i18nConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nConfig.mjs","names":["getI18nConfig","getBaseI18nConfig","setI18nConfig"],"sources":["../../src/setup/i18nConfig.ts"],"sourcesContent":["import { createDiagnosticMessage } from 'generaltranslation/internal';\nimport {\n getI18nConfig as getBaseI18nConfig,\n I18nConfig,\n setI18nConfig as setBaseI18nConfig,\n} from 'gt-i18n/internal';\nimport type { I18nConfigParams as BaseI18nConfigParams } from 'gt-i18n/internal/types';\n\n/**\n * Cookie name for tracking the user's selected locale.\n */\nexport const defaultLocaleCookieName = 'generaltranslation.locale';\n\n/**\n * Cookie name for tracking the user's selected region.\n */\nexport const defaultRegionCookieName = 'generaltranslation.region';\n\n/**\n * Cookie name for persisting the enableI18n feature flag.\n */\nexport const defaultEnableI18nCookieName = 'generaltranslation.enable-i18n';\n\n/**\n * Cookie name for tracking the locale reset.\n */\nexport const defaultResetLocaleCookieName = 'generaltranslation.locale-reset';\n\n/**\n * Helps us distinguish behavior for SPA vs server-rendered apps.\n * - server-rendered apps must use context\n * - SPA apps can synchronously access the locale\n */\nexport type RenderStrategy = 'SPA' | 'server-render';\n\ntype CookieNameConfig = {\n localeCookieName?: string;\n regionCookieName?: string;\n enableI18nCookieName?: string;\n};\n\nexport type ReactI18nConfigParams = BaseI18nConfigParams & CookieNameConfig;\n\nconst defaultRenderStrategy: RenderStrategy = 'server-render';\nconst reactI18nConfigBrand = Symbol.for(\n 'generaltranslation.react-core.ReactI18nConfig'\n);\n\nexport class ReactI18nConfig extends I18nConfig {\n private renderStrategy: RenderStrategy;\n private localeCookieName: string;\n private regionCookieName: string;\n private enableI18nCookieName: string;\n\n constructor(\n params: ReactI18nConfigParams = {},\n renderStrategy: RenderStrategy = defaultRenderStrategy\n ) {\n super(params);\n validateRenderStrategy(renderStrategy);\n Object.defineProperty(this, reactI18nConfigBrand, { value: true });\n this.renderStrategy = renderStrategy;\n this.localeCookieName = params.localeCookieName ?? defaultLocaleCookieName;\n this.regionCookieName = params.regionCookieName ?? defaultRegionCookieName;\n this.enableI18nCookieName =\n params.enableI18nCookieName ?? defaultEnableI18nCookieName;\n }\n\n getRenderStrategy(): RenderStrategy {\n return this.renderStrategy;\n }\n\n getLocaleCookieName(): string {\n return this.localeCookieName;\n }\n\n getRegionCookieName(): string {\n return this.regionCookieName;\n }\n\n getEnableI18nCookieName(): string {\n return this.enableI18nCookieName;\n }\n}\n\nexport function getI18nConfig(): ReactI18nConfig {\n const i18nConfig = getBaseI18nConfig();\n if (isReactI18nConfig(i18nConfig)) {\n return i18nConfig;\n }\n throw new Error(\n createDiagnosticMessage({\n source: '@generaltranslation/react-core',\n severity: 'Error',\n whatHappened: 'Cannot read ReactI18nConfig after base I18nConfig setup.',\n why: 'the internal I18nConfig singleton was initialized without react-core render strategy support',\n fix: 'Initialize GT through gt-react or @generaltranslation/react-core/pure.',\n })\n );\n}\n\nexport function setI18nConfig(nextI18nConfig: ReactI18nConfig): void {\n setBaseI18nConfig(nextI18nConfig);\n}\n\nexport function initializeI18nConfig(\n params: ReactI18nConfigParams = {},\n renderStrategy: RenderStrategy = defaultRenderStrategy\n): ReactI18nConfig {\n const nextI18nConfig = new ReactI18nConfig(params, renderStrategy);\n setI18nConfig(nextI18nConfig);\n return nextI18nConfig;\n}\n\nfunction validateRenderStrategy(\n renderStrategy: RenderStrategy\n): asserts renderStrategy is RenderStrategy {\n if (renderStrategy === 'SPA' || renderStrategy === 'server-render') return;\n throw new Error(\n createDiagnosticMessage({\n source: '@generaltranslation/react-core',\n severity: 'Error',\n whatHappened: 'Invalid React render strategy.',\n why: `the render strategy must be \"SPA\" or \"server-render\", but received \"${String(renderStrategy)}\"`,\n fix: 'Initialize GT through gt-react or pass a valid render strategy.',\n })\n );\n}\n\nfunction isReactI18nConfig(\n i18nConfig: I18nConfig\n): i18nConfig is ReactI18nConfig {\n if (i18nConfig instanceof ReactI18nConfig) return true;\n\n const maybeReactI18nConfig = i18nConfig as I18nConfig &\n Record<PropertyKey, unknown>;\n return (\n maybeReactI18nConfig[reactI18nConfigBrand] === true &&\n typeof maybeReactI18nConfig.getRenderStrategy === 'function' &&\n typeof maybeReactI18nConfig.getLocaleCookieName === 'function' &&\n typeof maybeReactI18nConfig.getRegionCookieName === 'function' &&\n typeof maybeReactI18nConfig.getEnableI18nCookieName === 'function'\n );\n}\n"],"mappings":"0JAWA,MAAa,EAA0B,4BAK1B,EAA0B,4BAK1B,EAA8B,iCAK9B,EAA+B,kCAiBtC,EAAwC,gBACxC,EAAuB,OAAO,IAClC,gDACD,CAED,IAAa,EAAb,cAAqC,CAAW,CAC9C,eACA,iBACA,iBACA,qBAEA,YACE,EAAgC,EAAE,CAClC,EAAiC,EACjC,CACA,MAAM,EAAO,CACb,EAAuB,EAAe,CACtC,OAAO,eAAe,KAAM,EAAsB,CAAE,MAAO,GAAM,CAAC,CAClE,KAAK,eAAiB,EACtB,KAAK,iBAAmB,EAAO,kBAAA,4BAC/B,KAAK,iBAAmB,EAAO,kBAAA,4BAC/B,KAAK,qBACH,EAAO,sBAAA,iCAGX,mBAAoC,CAClC,OAAO,KAAK,eAGd,qBAA8B,CAC5B,OAAO,KAAK,iBAGd,qBAA8B,CAC5B,OAAO,KAAK,iBAGd,yBAAkC,CAChC,OAAO,KAAK,uBAIhB,SAAgBA,GAAiC,CAC/C,IAAM,EAAaC,GAAmB,CACtC,GAAI,EAAkB,EAAW,CAC/B,OAAO,EAET,MAAU,MACR,EAAwB,CACtB,OAAQ,iCACR,SAAU,QACV,aAAc,2DACd,IAAK,+FACL,IAAK,yEACN,CAAC,CACH,CAGH,SAAgBC,EAAc,EAAuC,CACnE,EAAkB,EAAe,CAGnC,SAAgB,EACd,EAAgC,EAAE,CAClC,EAAiC,EAChB,CACjB,IAAM,EAAiB,IAAI,EAAgB,EAAQ,EAAe,CAElE,OADA,EAAc,EAAe,CACtB,EAGT,SAAS,EACP,EAC0C,CACtC,SAAmB,OAAS,IAAmB,iBACnD,MAAU,MACR,EAAwB,CACtB,OAAQ,iCACR,SAAU,QACV,aAAc,iCACd,IAAK,uEAAuE,OAAO,EAAe,CAAC,GACnG,IAAK,kEACN,CAAC,CACH,CAGH,SAAS,EACP,EAC+B,CAC/B,GAAI,aAAsB,EAAiB,MAAO,GAElD,IAAM,EAAuB,EAE7B,OACE,EAAqB,KAA0B,IAC/C,OAAO,EAAqB,mBAAsB,YAClD,OAAO,EAAqB,qBAAwB,YACpD,OAAO,EAAqB,qBAAwB,YACpD,OAAO,EAAqB,yBAA4B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../i18n-cache/singleton-operations.cjs`),t=require(`./i18nConfig.cjs`),n=require(`../i18n-cache/ReactI18nCache.cjs`);function r(r){t.initializeI18nConfig(r,`server-render`),e.setReactI18nCache(new n.ReactI18nCache(r))}exports.internalInitializeGTSRA=r;
|
|
2
|
+
//# sourceMappingURL=initializeGTSRA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializeGTSRA.cjs","names":["ReactI18nCache"],"sources":["../../src/setup/initializeGTSRA.ts"],"sourcesContent":["import type { ReactI18nCacheParams } from '../i18n-cache/ReactI18nCache';\nimport { setReactI18nCache } from '../i18n-cache/singleton-operations';\nimport { ReactI18nCache } from '../i18n-cache/ReactI18nCache';\nimport { initializeI18nConfig, type ReactI18nConfigParams } from './i18nConfig';\n\n/**\n * Validation and setup for read only properties\n */\nexport function internalInitializeGTSRA(\n config: ReactI18nConfigParams & ReactI18nCacheParams\n): void {\n initializeI18nConfig(config, 'server-render');\n\n const i18nCache = new ReactI18nCache(config);\n setReactI18nCache(i18nCache);\n}\n"],"mappings":"sIAQA,SAAgB,EACd,EACM,CACN,EAAA,qBAAqB,EAAQ,gBAAgB,CAG7C,EAAA,kBAAkB,IADIA,EAAAA,eAAe,EACV,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactI18nCacheParams } from "../i18n-cache/ReactI18nCache.js";
|
|
2
|
+
import { ReactI18nConfigParams } from "./i18nConfig.js";
|
|
3
|
+
|
|
4
|
+
//#region src/setup/initializeGTSRA.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Validation and setup for read only properties
|
|
7
|
+
*/
|
|
8
|
+
declare function internalInitializeGTSRA(config: ReactI18nConfigParams & ReactI18nCacheParams): void;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { internalInitializeGTSRA };
|
|
11
|
+
//# sourceMappingURL=initializeGTSRA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializeGTSRA.d.ts","names":[],"sources":["../../src/setup/initializeGTSRA.ts"],"mappings":";;;;;;AAQA;iBAAgB,uBAAA,CACd,MAAA,EAAQ,qBAAA,GAAwB,oBAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{setReactI18nCache as e}from"../i18n-cache/singleton-operations.mjs";import{initializeI18nConfig as t}from"./i18nConfig.mjs";import{ReactI18nCache as n}from"../i18n-cache/ReactI18nCache.mjs";function r(r){t(r,`server-render`),e(new n(r))}export{r as internalInitializeGTSRA};
|
|
2
|
+
//# sourceMappingURL=initializeGTSRA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializeGTSRA.mjs","names":[],"sources":["../../src/setup/initializeGTSRA.ts"],"sourcesContent":["import type { ReactI18nCacheParams } from '../i18n-cache/ReactI18nCache';\nimport { setReactI18nCache } from '../i18n-cache/singleton-operations';\nimport { ReactI18nCache } from '../i18n-cache/ReactI18nCache';\nimport { initializeI18nConfig, type ReactI18nConfigParams } from './i18nConfig';\n\n/**\n * Validation and setup for read only properties\n */\nexport function internalInitializeGTSRA(\n config: ReactI18nConfigParams & ReactI18nCacheParams\n): void {\n initializeI18nConfig(config, 'server-render');\n\n const i18nCache = new ReactI18nCache(config);\n setReactI18nCache(i18nCache);\n}\n"],"mappings":"qMAQA,SAAgB,EACd,EACM,CACN,EAAqB,EAAQ,gBAAgB,CAG7C,EAAkB,IADI,EAAe,EACV,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`);let t=require(`generaltranslation/internal`),n=require(`react`);n=e.__toESM(n);function r(e,i=0){let a=i,o=e=>{let{type:n,props:i}=e;a+=1;let o={id:a,injectionType:`manual`},s;try{s=typeof n==`function`?n._gtt:void 0}catch{}if(s){let e=s.split(`-`);if((e[1]===`automatic`||e[2]===`automatic`)&&(o.injectionType=`automatic`),e[0]===`translate`&&(e[0]=`fragment`),e[0]===`variable`&&(o.variableType=e?.[1]||`variable`),e[0]===`plural`){let e=Object.entries(i).reduce((e,[n,i])=>((0,t.isAcceptedPluralForm)(n)&&(e[n]=r(i,a)),e),{});Object.keys(e).length&&(o.branches=e)}if(e[0]===`branch`){let{children:e,branch:t,...n}=i,s=Object.fromEntries(Object.entries(n).filter(([e])=>!e.startsWith(`data-`))),c=Object.entries(s).reduce((e,[t,n])=>(e[t]=r(n,a),e),{});Object.keys(c).length&&(o.branches=c)}o.transformation=e[0]}return o};function s(e){let{props:t}=e,r=o(e),i={...t,"data-_gt":r};return t.children&&!r.variableType&&(i.children=l(t.children)),e.type===n.default.Fragment&&(i[`data-_gt`].transformation=`fragment`),n.default.cloneElement(e,i)}function c(e){return(0,n.isValidElement)(e)?s(e):e}function l(e){return Array.isArray(e)?n.default.Children.map(e,c):c(e)}return l(e)}exports.addGTIdentifier=r;
|
|
2
|
+
//# sourceMappingURL=addGTIdentifier.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addGTIdentifier.cjs","names":["React"],"sources":["../../../src/utils/internal/addGTIdentifier.ts"],"sourcesContent":["import React, { ReactElement, isValidElement, ReactNode } from 'react';\nimport { isAcceptedPluralForm } from 'generaltranslation/internal';\nimport {\n GTTag,\n TaggedChild,\n TaggedChildren,\n TaggedElement,\n TaggedElementProps,\n} from '../types';\nimport {\n Transformation,\n TransformationPrefix,\n VariableTransformationSuffix,\n} from 'generaltranslation/types';\n\ntype GTComponentType = {\n _gtt?: Transformation;\n};\n\nexport function addGTIdentifier(\n children: ReactNode,\n startingIndex: number = 0\n): TaggedChildren {\n // Object to keep track of the current index for GT IDs\n let index = startingIndex;\n\n /**\n * Function to create a GTTag object for a ReactElement\n * @param child - The ReactElement for which the GTTag is created\n * @returns - The GTTag object\n */\n const createGTTag = (child: ReactElement<Record<string, unknown>>): GTTag => {\n const { type, props } = child;\n index += 1;\n const result: GTTag = { id: index, injectionType: 'manual' };\n let transformation: Transformation | undefined;\n try {\n transformation =\n typeof type === 'function' ? (type as GTComponentType)._gtt : undefined;\n } catch {\n /* empty */\n }\n if (transformation) {\n const transformationParts = transformation.split('-');\n // If the component was inserted automatically by the compiler\n if (\n transformationParts[1] === 'automatic' ||\n transformationParts[2] === 'automatic'\n ) {\n result.injectionType = 'automatic';\n }\n\n if (transformationParts[0] === 'translate') {\n // Convert nested <T> to fragments\n // This will nullify translation specific attributes of child, i.e. id, context, etc.\n transformationParts[0] = 'fragment';\n }\n if (transformationParts[0] === 'variable') {\n result.variableType =\n (transformationParts?.[1] as VariableTransformationSuffix) ||\n 'variable';\n }\n if (transformationParts[0] === 'plural') {\n const pluralBranches = Object.entries(props).reduce(\n (acc, [branchName, branch]) => {\n if (isAcceptedPluralForm(branchName)) {\n (acc as Record<string, TaggedChildren>)[branchName] =\n addGTIdentifier(branch as ReactNode, index);\n }\n return acc;\n },\n {} as Record<string, TaggedChildren>\n );\n if (Object.keys(pluralBranches).length)\n result.branches = pluralBranches;\n }\n if (transformationParts[0] === 'branch') {\n const { children: _children, branch: _branch, ...branches } = props;\n // Filter out data-* attributes injected by build tools\n const filteredBranches = Object.fromEntries(\n Object.entries(branches).filter(([key]) => !key.startsWith('data-'))\n );\n const resultBranches = Object.entries(filteredBranches).reduce(\n (acc, [branchName, branch]) => {\n (acc as Record<string, TaggedChildren>)[branchName] =\n addGTIdentifier(branch as ReactNode, index);\n return acc;\n },\n {} as Record<string, TaggedChildren>\n );\n if (Object.keys(resultBranches).length)\n result.branches = resultBranches;\n }\n result.transformation = transformationParts[0] as TransformationPrefix;\n }\n return result;\n };\n\n function handleSingleChildElement(\n child: ReactElement<Record<string, unknown>>\n ): TaggedElement {\n const { props } = child;\n\n // Create new props for the element, including the GT identifier and a key\n const generaltranslation: GTTag = createGTTag(child);\n const newProps: TaggedElementProps = {\n ...props,\n 'data-_gt': generaltranslation,\n };\n if (props.children && !generaltranslation.variableType) {\n newProps.children = handleChildren(props.children as ReactNode);\n }\n if (child.type === React.Fragment) {\n newProps['data-_gt'].transformation = 'fragment';\n }\n return React.cloneElement(child, newProps) as TaggedElement;\n }\n\n function handleSingleChild(child: ReactNode): TaggedChild {\n if (isValidElement(child)) {\n return handleSingleChildElement(\n child as ReactElement<Record<string, unknown>>\n );\n }\n return child;\n }\n\n function handleChildren(children: ReactNode): TaggedChildren {\n if (Array.isArray(children)) {\n return React.Children.map(children, handleSingleChild);\n } else {\n return handleSingleChild(children);\n }\n }\n\n return handleChildren(children);\n}\n"],"mappings":"uIAmBA,SAAgB,EACd,EACA,EAAwB,EACR,CAEhB,IAAI,EAAQ,EAON,EAAe,GAAwD,CAC3E,GAAM,CAAE,OAAM,SAAU,EACxB,GAAS,EACT,IAAM,EAAgB,CAAE,GAAI,EAAO,cAAe,SAAU,CACxD,EACJ,GAAI,CACF,EACE,OAAO,GAAS,WAAc,EAAyB,KAAO,IAAA,QAC1D,EAGR,GAAI,EAAgB,CAClB,IAAM,EAAsB,EAAe,MAAM,IAAI,CAmBrD,IAhBE,EAAoB,KAAO,aAC3B,EAAoB,KAAO,eAE3B,EAAO,cAAgB,aAGrB,EAAoB,KAAO,cAG7B,EAAoB,GAAK,YAEvB,EAAoB,KAAO,aAC7B,EAAO,aACJ,IAAsB,IACvB,YAEA,EAAoB,KAAO,SAAU,CACvC,IAAM,EAAiB,OAAO,QAAQ,EAAM,CAAC,QAC1C,EAAK,CAAC,EAAY,OACjB,EAAA,EAAA,sBAAyB,EAAW,GACjC,EAAuC,GACtC,EAAgB,EAAqB,EAAM,EAExC,GAET,EAAE,CACH,CACG,OAAO,KAAK,EAAe,CAAC,SAC9B,EAAO,SAAW,GAEtB,GAAI,EAAoB,KAAO,SAAU,CACvC,GAAM,CAAE,SAAU,EAAW,OAAQ,EAAS,GAAG,GAAa,EAExD,EAAmB,OAAO,YAC9B,OAAO,QAAQ,EAAS,CAAC,QAAQ,CAAC,KAAS,CAAC,EAAI,WAAW,QAAQ,CAAC,CACrE,CACK,EAAiB,OAAO,QAAQ,EAAiB,CAAC,QACrD,EAAK,CAAC,EAAY,MAChB,EAAuC,GACtC,EAAgB,EAAqB,EAAM,CACtC,GAET,EAAE,CACH,CACG,OAAO,KAAK,EAAe,CAAC,SAC9B,EAAO,SAAW,GAEtB,EAAO,eAAiB,EAAoB,GAE9C,OAAO,GAGT,SAAS,EACP,EACe,CACf,GAAM,CAAE,SAAU,EAGZ,EAA4B,EAAY,EAAM,CAC9C,EAA+B,CACnC,GAAG,EACH,WAAY,EACb,CAOD,OANI,EAAM,UAAY,CAAC,EAAmB,eACxC,EAAS,SAAW,EAAe,EAAM,SAAsB,EAE7D,EAAM,OAASA,EAAAA,QAAM,WACvB,EAAS,YAAY,eAAiB,YAEjCA,EAAAA,QAAM,aAAa,EAAO,EAAS,CAG5C,SAAS,EAAkB,EAA+B,CAMxD,OALA,EAAA,EAAA,gBAAmB,EAAM,CAChB,EACL,EACD,CAEI,EAGT,SAAS,EAAe,EAAqC,CAIzD,OAHE,MAAM,QAAQ,EAAS,CAClBA,EAAAA,QAAM,SAAS,IAAI,EAAU,EAAkB,CAE/C,EAAkB,EAAS,CAItC,OAAO,EAAe,EAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{isAcceptedPluralForm as e}from"generaltranslation/internal";import t,{isValidElement as n}from"react";function r(i,a=0){let o=a,s=t=>{let{type:n,props:i}=t;o+=1;let a={id:o,injectionType:`manual`},s;try{s=typeof n==`function`?n._gtt:void 0}catch{}if(s){let t=s.split(`-`);if((t[1]===`automatic`||t[2]===`automatic`)&&(a.injectionType=`automatic`),t[0]===`translate`&&(t[0]=`fragment`),t[0]===`variable`&&(a.variableType=t?.[1]||`variable`),t[0]===`plural`){let t=Object.entries(i).reduce((t,[n,i])=>(e(n)&&(t[n]=r(i,o)),t),{});Object.keys(t).length&&(a.branches=t)}if(t[0]===`branch`){let{children:e,branch:t,...n}=i,s=Object.fromEntries(Object.entries(n).filter(([e])=>!e.startsWith(`data-`))),c=Object.entries(s).reduce((e,[t,n])=>(e[t]=r(n,o),e),{});Object.keys(c).length&&(a.branches=c)}a.transformation=t[0]}return a};function c(e){let{props:n}=e,r=s(e),i={...n,"data-_gt":r};return n.children&&!r.variableType&&(i.children=u(n.children)),e.type===t.Fragment&&(i[`data-_gt`].transformation=`fragment`),t.cloneElement(e,i)}function l(e){return n(e)?c(e):e}function u(e){return Array.isArray(e)?t.Children.map(e,l):l(e)}return u(i)}export{r as addGTIdentifier};
|
|
2
|
+
//# sourceMappingURL=addGTIdentifier.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addGTIdentifier.mjs","names":[],"sources":["../../../src/utils/internal/addGTIdentifier.ts"],"sourcesContent":["import React, { ReactElement, isValidElement, ReactNode } from 'react';\nimport { isAcceptedPluralForm } from 'generaltranslation/internal';\nimport {\n GTTag,\n TaggedChild,\n TaggedChildren,\n TaggedElement,\n TaggedElementProps,\n} from '../types';\nimport {\n Transformation,\n TransformationPrefix,\n VariableTransformationSuffix,\n} from 'generaltranslation/types';\n\ntype GTComponentType = {\n _gtt?: Transformation;\n};\n\nexport function addGTIdentifier(\n children: ReactNode,\n startingIndex: number = 0\n): TaggedChildren {\n // Object to keep track of the current index for GT IDs\n let index = startingIndex;\n\n /**\n * Function to create a GTTag object for a ReactElement\n * @param child - The ReactElement for which the GTTag is created\n * @returns - The GTTag object\n */\n const createGTTag = (child: ReactElement<Record<string, unknown>>): GTTag => {\n const { type, props } = child;\n index += 1;\n const result: GTTag = { id: index, injectionType: 'manual' };\n let transformation: Transformation | undefined;\n try {\n transformation =\n typeof type === 'function' ? (type as GTComponentType)._gtt : undefined;\n } catch {\n /* empty */\n }\n if (transformation) {\n const transformationParts = transformation.split('-');\n // If the component was inserted automatically by the compiler\n if (\n transformationParts[1] === 'automatic' ||\n transformationParts[2] === 'automatic'\n ) {\n result.injectionType = 'automatic';\n }\n\n if (transformationParts[0] === 'translate') {\n // Convert nested <T> to fragments\n // This will nullify translation specific attributes of child, i.e. id, context, etc.\n transformationParts[0] = 'fragment';\n }\n if (transformationParts[0] === 'variable') {\n result.variableType =\n (transformationParts?.[1] as VariableTransformationSuffix) ||\n 'variable';\n }\n if (transformationParts[0] === 'plural') {\n const pluralBranches = Object.entries(props).reduce(\n (acc, [branchName, branch]) => {\n if (isAcceptedPluralForm(branchName)) {\n (acc as Record<string, TaggedChildren>)[branchName] =\n addGTIdentifier(branch as ReactNode, index);\n }\n return acc;\n },\n {} as Record<string, TaggedChildren>\n );\n if (Object.keys(pluralBranches).length)\n result.branches = pluralBranches;\n }\n if (transformationParts[0] === 'branch') {\n const { children: _children, branch: _branch, ...branches } = props;\n // Filter out data-* attributes injected by build tools\n const filteredBranches = Object.fromEntries(\n Object.entries(branches).filter(([key]) => !key.startsWith('data-'))\n );\n const resultBranches = Object.entries(filteredBranches).reduce(\n (acc, [branchName, branch]) => {\n (acc as Record<string, TaggedChildren>)[branchName] =\n addGTIdentifier(branch as ReactNode, index);\n return acc;\n },\n {} as Record<string, TaggedChildren>\n );\n if (Object.keys(resultBranches).length)\n result.branches = resultBranches;\n }\n result.transformation = transformationParts[0] as TransformationPrefix;\n }\n return result;\n };\n\n function handleSingleChildElement(\n child: ReactElement<Record<string, unknown>>\n ): TaggedElement {\n const { props } = child;\n\n // Create new props for the element, including the GT identifier and a key\n const generaltranslation: GTTag = createGTTag(child);\n const newProps: TaggedElementProps = {\n ...props,\n 'data-_gt': generaltranslation,\n };\n if (props.children && !generaltranslation.variableType) {\n newProps.children = handleChildren(props.children as ReactNode);\n }\n if (child.type === React.Fragment) {\n newProps['data-_gt'].transformation = 'fragment';\n }\n return React.cloneElement(child, newProps) as TaggedElement;\n }\n\n function handleSingleChild(child: ReactNode): TaggedChild {\n if (isValidElement(child)) {\n return handleSingleChildElement(\n child as ReactElement<Record<string, unknown>>\n );\n }\n return child;\n }\n\n function handleChildren(children: ReactNode): TaggedChildren {\n if (Array.isArray(children)) {\n return React.Children.map(children, handleSingleChild);\n } else {\n return handleSingleChild(children);\n }\n }\n\n return handleChildren(children);\n}\n"],"mappings":"6GAmBA,SAAgB,EACd,EACA,EAAwB,EACR,CAEhB,IAAI,EAAQ,EAON,EAAe,GAAwD,CAC3E,GAAM,CAAE,OAAM,SAAU,EACxB,GAAS,EACT,IAAM,EAAgB,CAAE,GAAI,EAAO,cAAe,SAAU,CACxD,EACJ,GAAI,CACF,EACE,OAAO,GAAS,WAAc,EAAyB,KAAO,IAAA,QAC1D,EAGR,GAAI,EAAgB,CAClB,IAAM,EAAsB,EAAe,MAAM,IAAI,CAmBrD,IAhBE,EAAoB,KAAO,aAC3B,EAAoB,KAAO,eAE3B,EAAO,cAAgB,aAGrB,EAAoB,KAAO,cAG7B,EAAoB,GAAK,YAEvB,EAAoB,KAAO,aAC7B,EAAO,aACJ,IAAsB,IACvB,YAEA,EAAoB,KAAO,SAAU,CACvC,IAAM,EAAiB,OAAO,QAAQ,EAAM,CAAC,QAC1C,EAAK,CAAC,EAAY,MACb,EAAqB,EAAW,GACjC,EAAuC,GACtC,EAAgB,EAAqB,EAAM,EAExC,GAET,EAAE,CACH,CACG,OAAO,KAAK,EAAe,CAAC,SAC9B,EAAO,SAAW,GAEtB,GAAI,EAAoB,KAAO,SAAU,CACvC,GAAM,CAAE,SAAU,EAAW,OAAQ,EAAS,GAAG,GAAa,EAExD,EAAmB,OAAO,YAC9B,OAAO,QAAQ,EAAS,CAAC,QAAQ,CAAC,KAAS,CAAC,EAAI,WAAW,QAAQ,CAAC,CACrE,CACK,EAAiB,OAAO,QAAQ,EAAiB,CAAC,QACrD,EAAK,CAAC,EAAY,MAChB,EAAuC,GACtC,EAAgB,EAAqB,EAAM,CACtC,GAET,EAAE,CACH,CACG,OAAO,KAAK,EAAe,CAAC,SAC9B,EAAO,SAAW,GAEtB,EAAO,eAAiB,EAAoB,GAE9C,OAAO,GAGT,SAAS,EACP,EACe,CACf,GAAM,CAAE,SAAU,EAGZ,EAA4B,EAAY,EAAM,CAC9C,EAA+B,CACnC,GAAG,EACH,WAAY,EACb,CAOD,OANI,EAAM,UAAY,CAAC,EAAmB,eACxC,EAAS,SAAW,EAAe,EAAM,SAAsB,EAE7D,EAAM,OAAS,EAAM,WACvB,EAAS,YAAY,eAAiB,YAEjC,EAAM,aAAa,EAAO,EAAS,CAG5C,SAAS,EAAkB,EAA+B,CAMxD,OALI,EAAe,EAAM,CAChB,EACL,EACD,CAEI,EAGT,SAAS,EAAe,EAAqC,CAIzD,OAHE,MAAM,QAAQ,EAAS,CAClB,EAAM,SAAS,IAAI,EAAU,EAAkB,CAE/C,EAAkB,EAAS,CAItC,OAAO,EAAe,EAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`generaltranslation/internal`),t=require(`react`);function n(e){return a(e,0)}function r(n,r){let{type:c,props:l}=n,u=o(c);if(typeof l!=`object`||!l)return n;if(u){let{componentType:o,injectionType:c}=u;if(o===`variable`)return n;if(o===`branch`)return(0,t.cloneElement)(n,{...Object.entries(l).reduce((e,[t,n])=>(t!==`branch`&&!t.startsWith(`data-`)?e[t]=i(n,r):e[t]=n,e),{})});if(o===`plural`)return(0,t.cloneElement)(n,{...Object.entries(l).reduce((t,[n,a])=>((0,e.isAcceptedPluralForm)(n)||n===`children`?t[n]=i(a,r):t[n]=a,t),{})});if(o===`derive`)return(0,t.cloneElement)(n,{...l,...`children`in l&&{children:a(l.children,r+1)}});if(o===`translate`&&c===`automatic`&&r>0)return`children`in l?a(l.children,r):void 0;o===`translate`&&c===`automatic`&&console.warn(s)}return(0,t.cloneElement)(n,{...l,...`children`in l&&{children:a(l.children,r)}})}function i(e,n){return(0,t.isValidElement)(e)?r(e,n):e}function a(e,n){return Array.isArray(e)?t.Children.map(e,e=>i(e,n)):i(e,n)}function o(e){let t=typeof e==`function`&&`_gtt`in e?e._gtt:void 0;if(t==null||typeof t!=`string`)return;let n=t.split(`-`);return{componentType:n[0],injectionType:n[1]===`automatic`||n[2]===`automatic`?`automatic`:`manual`}}const s=`'@generaltranslation/react-core Warning: A <_T> component was found injected outside of a <Derive> boundary. This may affect translation resolution for this component.`;exports.removeInjectedT=n;
|
|
2
|
+
//# sourceMappingURL=removeInjectedT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeInjectedT.cjs","names":["Children"],"sources":["../../../src/utils/internal/removeInjectedT.ts"],"sourcesContent":["import { isAcceptedPluralForm } from 'generaltranslation/internal';\nimport { InjectionType, TransformationPrefix } from 'generaltranslation/types';\nimport {\n ReactNode,\n ReactElement,\n isValidElement,\n cloneElement,\n Children,\n} from 'react';\n\n/**\n * Remove injected _T components at runtime. This is only for i18n-context T components to use.\n * This is necessary because when dealing with deriving fragmented content. The compiler will always\n * inject a `_T` component.\n *\n * Only remove if within a `<Derive>` component as this scopes this behavior\n * to only where it can actually appear.\n */\nexport function removeInjectedT(children: ReactNode): ReactNode {\n return handleChildren(children, 0);\n}\n\n// ----- Core Logic ----- //\n\n/**\n * Traverses a single child element and removes the injected _T component.\n * @param child - The child element to traverse.\n * @param derivationDepth - The depth of the derivation.\n * @returns The traversed child element.\n *\n * Derivation depth is used for tracking whether or not to apply the _T removal transformation.\n *\n * Rules:\n * 1. Variable components (Var, Num, Currency, DateTime) - hands off\n * 2. Branching components (Branch, Plural) - explore respective branches\n * 3. Derivation components (Derive) - add/remove derivation depth\n * 4. Translation components (T) - remove _T if within a derivation context\n * 5. Then move on to processing the element's children\n */\nfunction handleSingleChildElement(\n child: ReactElement,\n derivationDepth: number\n): ReactNode {\n const { type: elementType, props: elementProps } = child;\n const transformation = getTransformation(elementType);\n // unlikely edge case: encountered an element with props that cannot be processed\n if (typeof elementProps !== 'object' || elementProps === null) {\n return child;\n }\n\n if (transformation) {\n const { componentType, injectionType } = transformation;\n\n // (1) If the element is a variable component, hands off\n if (componentType === 'variable') {\n return child;\n }\n\n // (2) If the element is a branching component, explore respective branches\n else if (componentType === 'branch') {\n // Traverse into each branch (this also includes the children property)\n const newProps = Object.entries(elementProps).reduce<\n Record<string, unknown>\n >((acc, [branchName, branch]) => {\n if (branchName !== 'branch' && !branchName.startsWith('data-')) {\n acc[branchName] = handleSingleChild(branch, derivationDepth);\n } else {\n // Skip recursion on non-translated branches\n acc[branchName] = branch;\n }\n return acc;\n }, {});\n\n return cloneElement(child, {\n ...newProps,\n });\n } else if (componentType === 'plural') {\n // Traverse into each branch (this also includes the children property)\n const newProps = Object.entries(elementProps).reduce<\n Record<string, unknown>\n >((acc, [branchName, branch]) => {\n if (isAcceptedPluralForm(branchName) || branchName === 'children') {\n acc[branchName] = handleSingleChild(branch, derivationDepth);\n } else {\n // Skip Recursion on non-translated branches\n acc[branchName] = branch;\n }\n return acc;\n }, {});\n\n return cloneElement(child, {\n ...newProps,\n });\n }\n\n // (3) If the element is a derivation component, add/remove derivation depth\n else if (componentType === 'derive') {\n return cloneElement(child, {\n ...elementProps,\n ...('children' in elementProps && {\n children: handleChildren(\n elementProps.children as ReactNode,\n derivationDepth + 1\n ),\n }),\n });\n }\n\n // (4) If the element is a translation component, remove _T if within a derivation context, just return the children\n else if (\n componentType === 'translate' &&\n injectionType === 'automatic' &&\n derivationDepth > 0\n ) {\n return 'children' in elementProps\n ? handleChildren(elementProps.children as ReactNode, derivationDepth)\n : undefined;\n }\n\n // Note: componentType === 'translate': means that there is a <_T> inside of a <T>/<_T>\n else if (componentType === 'translate' && injectionType === 'automatic') {\n console.warn(warnNestedInternalTComponent);\n }\n }\n\n // (5) Recurse into children\n return cloneElement(child, {\n ...elementProps,\n ...('children' in elementProps && {\n children: handleChildren(\n elementProps.children as ReactNode,\n derivationDepth\n ),\n }),\n });\n}\n\n// ----- Traversal ----- //\n\n/**\n * Traverses a single child react node and removes the injected _T component.\n */\nfunction handleSingleChild(\n child: ReactNode,\n derivationDepth: number\n): ReactNode {\n if (isValidElement(child)) {\n return handleSingleChildElement(child, derivationDepth);\n }\n return child;\n}\n\n/**\n * Traverses an array of children and removes the injected _T component.\n *\n */\nfunction handleChildren(\n children: ReactNode,\n derivationDepth: number\n): ReactNode {\n if (Array.isArray(children)) {\n return Children.map(children, (child) =>\n handleSingleChild(child, derivationDepth)\n );\n }\n return handleSingleChild(children, derivationDepth);\n}\n\n// ----- Helper Functions ----- //\n\n/**\n * Extracts the transformation from the element type.\n * @param elementType - The element type to extract the transformation from.\n * @returns The transformation.\n */\nfunction getTransformation(elementType: ReactElement['type']):\n | {\n componentType: TransformationPrefix;\n injectionType: InjectionType;\n }\n | undefined {\n // Extract transformation string\n const transformation =\n typeof elementType === 'function' && '_gtt' in elementType\n ? elementType._gtt\n : undefined;\n if (transformation == null || typeof transformation !== 'string')\n return undefined;\n\n // Extract metadata from transformation string\n const parts = transformation.split('-');\n const componentType = parts[0] as TransformationPrefix;\n const injectionType =\n parts[1] === 'automatic' || parts[2] === 'automatic'\n ? 'automatic'\n : 'manual';\n\n return {\n componentType,\n injectionType,\n };\n}\n\nconst warnNestedInternalTComponent = `'@generaltranslation/react-core Warning: A <_T> component was found injected outside of a <Derive> boundary. This may affect translation resolution for this component.`;\n"],"mappings":"gHAkBA,SAAgB,EAAgB,EAAgC,CAC9D,OAAO,EAAe,EAAU,EAAE,CAoBpC,SAAS,EACP,EACA,EACW,CACX,GAAM,CAAE,KAAM,EAAa,MAAO,GAAiB,EAC7C,EAAiB,EAAkB,EAAY,CAErD,GAAI,OAAO,GAAiB,WAAY,EACtC,OAAO,EAGT,GAAI,EAAgB,CAClB,GAAM,CAAE,gBAAe,iBAAkB,EAGzC,GAAI,IAAkB,WACpB,OAAO,KAIA,IAAkB,SAczB,OAAA,EAAA,EAAA,cAAoB,EAAO,CACzB,GAbe,OAAO,QAAQ,EAAa,CAAC,QAE3C,EAAK,CAAC,EAAY,MACf,IAAe,UAAY,CAAC,EAAW,WAAW,QAAQ,CAC5D,EAAI,GAAc,EAAkB,EAAQ,EAAgB,CAG5D,EAAI,GAAc,EAEb,GACN,EAAE,CAGQ,CACZ,CAAC,IACO,IAAkB,SAc3B,OAAA,EAAA,EAAA,cAAoB,EAAO,CACzB,GAbe,OAAO,QAAQ,EAAa,CAAC,QAE3C,EAAK,CAAC,EAAY,OACnB,EAAA,EAAA,sBAAyB,EAAW,EAAI,IAAe,WACrD,EAAI,GAAc,EAAkB,EAAQ,EAAgB,CAG5D,EAAI,GAAc,EAEb,GACN,EAAE,CAGQ,CACZ,CAAC,IAIK,IAAkB,SACzB,OAAA,EAAA,EAAA,cAAoB,EAAO,CACzB,GAAG,EACH,GAAI,aAAc,GAAgB,CAChC,SAAU,EACR,EAAa,SACb,EAAkB,EACnB,CACF,CACF,CAAC,IAKF,IAAkB,aAClB,IAAkB,aAClB,EAAkB,EAElB,MAAO,aAAc,EACjB,EAAe,EAAa,SAAuB,EAAgB,CACnE,IAAA,GAIG,IAAkB,aAAe,IAAkB,aAC1D,QAAQ,KAAK,EAA6B,CAK9C,OAAA,EAAA,EAAA,cAAoB,EAAO,CACzB,GAAG,EACH,GAAI,aAAc,GAAgB,CAChC,SAAU,EACR,EAAa,SACb,EACD,CACF,CACF,CAAC,CAQJ,SAAS,EACP,EACA,EACW,CAIX,OAHA,EAAA,EAAA,gBAAmB,EAAM,CAChB,EAAyB,EAAO,EAAgB,CAElD,EAOT,SAAS,EACP,EACA,EACW,CAMX,OALI,MAAM,QAAQ,EAAS,CAClBA,EAAAA,SAAS,IAAI,EAAW,GAC7B,EAAkB,EAAO,EAAgB,CAC1C,CAEI,EAAkB,EAAU,EAAgB,CAUrD,SAAS,EAAkB,EAKb,CAEZ,IAAM,EACJ,OAAO,GAAgB,YAAc,SAAU,EAC3C,EAAY,KACZ,IAAA,GACN,GAAI,GAAkB,MAAQ,OAAO,GAAmB,SACtD,OAGF,IAAM,EAAQ,EAAe,MAAM,IAAI,CAOvC,MAAO,CACL,cAPoB,EAAM,GAQ1B,cANA,EAAM,KAAO,aAAe,EAAM,KAAO,YACrC,YACA,SAKL,CAGH,MAAM,EAA+B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{isAcceptedPluralForm as e}from"generaltranslation/internal";import{Children as t,cloneElement as n,isValidElement as r}from"react";function i(e){return s(e,0)}function a(t,r){let{type:i,props:a}=t,u=c(i);if(typeof a!=`object`||!a)return t;if(u){let{componentType:i,injectionType:c}=u;if(i===`variable`)return t;if(i===`branch`)return n(t,{...Object.entries(a).reduce((e,[t,n])=>(t!==`branch`&&!t.startsWith(`data-`)?e[t]=o(n,r):e[t]=n,e),{})});if(i===`plural`)return n(t,{...Object.entries(a).reduce((t,[n,i])=>(e(n)||n===`children`?t[n]=o(i,r):t[n]=i,t),{})});if(i===`derive`)return n(t,{...a,...`children`in a&&{children:s(a.children,r+1)}});if(i===`translate`&&c===`automatic`&&r>0)return`children`in a?s(a.children,r):void 0;i===`translate`&&c===`automatic`&&console.warn(l)}return n(t,{...a,...`children`in a&&{children:s(a.children,r)}})}function o(e,t){return r(e)?a(e,t):e}function s(e,n){return Array.isArray(e)?t.map(e,e=>o(e,n)):o(e,n)}function c(e){let t=typeof e==`function`&&`_gtt`in e?e._gtt:void 0;if(t==null||typeof t!=`string`)return;let n=t.split(`-`);return{componentType:n[0],injectionType:n[1]===`automatic`||n[2]===`automatic`?`automatic`:`manual`}}const l=`'@generaltranslation/react-core Warning: A <_T> component was found injected outside of a <Derive> boundary. This may affect translation resolution for this component.`;export{i as removeInjectedT};
|
|
2
|
+
//# sourceMappingURL=removeInjectedT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeInjectedT.mjs","names":[],"sources":["../../../src/utils/internal/removeInjectedT.ts"],"sourcesContent":["import { isAcceptedPluralForm } from 'generaltranslation/internal';\nimport { InjectionType, TransformationPrefix } from 'generaltranslation/types';\nimport {\n ReactNode,\n ReactElement,\n isValidElement,\n cloneElement,\n Children,\n} from 'react';\n\n/**\n * Remove injected _T components at runtime. This is only for i18n-context T components to use.\n * This is necessary because when dealing with deriving fragmented content. The compiler will always\n * inject a `_T` component.\n *\n * Only remove if within a `<Derive>` component as this scopes this behavior\n * to only where it can actually appear.\n */\nexport function removeInjectedT(children: ReactNode): ReactNode {\n return handleChildren(children, 0);\n}\n\n// ----- Core Logic ----- //\n\n/**\n * Traverses a single child element and removes the injected _T component.\n * @param child - The child element to traverse.\n * @param derivationDepth - The depth of the derivation.\n * @returns The traversed child element.\n *\n * Derivation depth is used for tracking whether or not to apply the _T removal transformation.\n *\n * Rules:\n * 1. Variable components (Var, Num, Currency, DateTime) - hands off\n * 2. Branching components (Branch, Plural) - explore respective branches\n * 3. Derivation components (Derive) - add/remove derivation depth\n * 4. Translation components (T) - remove _T if within a derivation context\n * 5. Then move on to processing the element's children\n */\nfunction handleSingleChildElement(\n child: ReactElement,\n derivationDepth: number\n): ReactNode {\n const { type: elementType, props: elementProps } = child;\n const transformation = getTransformation(elementType);\n // unlikely edge case: encountered an element with props that cannot be processed\n if (typeof elementProps !== 'object' || elementProps === null) {\n return child;\n }\n\n if (transformation) {\n const { componentType, injectionType } = transformation;\n\n // (1) If the element is a variable component, hands off\n if (componentType === 'variable') {\n return child;\n }\n\n // (2) If the element is a branching component, explore respective branches\n else if (componentType === 'branch') {\n // Traverse into each branch (this also includes the children property)\n const newProps = Object.entries(elementProps).reduce<\n Record<string, unknown>\n >((acc, [branchName, branch]) => {\n if (branchName !== 'branch' && !branchName.startsWith('data-')) {\n acc[branchName] = handleSingleChild(branch, derivationDepth);\n } else {\n // Skip recursion on non-translated branches\n acc[branchName] = branch;\n }\n return acc;\n }, {});\n\n return cloneElement(child, {\n ...newProps,\n });\n } else if (componentType === 'plural') {\n // Traverse into each branch (this also includes the children property)\n const newProps = Object.entries(elementProps).reduce<\n Record<string, unknown>\n >((acc, [branchName, branch]) => {\n if (isAcceptedPluralForm(branchName) || branchName === 'children') {\n acc[branchName] = handleSingleChild(branch, derivationDepth);\n } else {\n // Skip Recursion on non-translated branches\n acc[branchName] = branch;\n }\n return acc;\n }, {});\n\n return cloneElement(child, {\n ...newProps,\n });\n }\n\n // (3) If the element is a derivation component, add/remove derivation depth\n else if (componentType === 'derive') {\n return cloneElement(child, {\n ...elementProps,\n ...('children' in elementProps && {\n children: handleChildren(\n elementProps.children as ReactNode,\n derivationDepth + 1\n ),\n }),\n });\n }\n\n // (4) If the element is a translation component, remove _T if within a derivation context, just return the children\n else if (\n componentType === 'translate' &&\n injectionType === 'automatic' &&\n derivationDepth > 0\n ) {\n return 'children' in elementProps\n ? handleChildren(elementProps.children as ReactNode, derivationDepth)\n : undefined;\n }\n\n // Note: componentType === 'translate': means that there is a <_T> inside of a <T>/<_T>\n else if (componentType === 'translate' && injectionType === 'automatic') {\n console.warn(warnNestedInternalTComponent);\n }\n }\n\n // (5) Recurse into children\n return cloneElement(child, {\n ...elementProps,\n ...('children' in elementProps && {\n children: handleChildren(\n elementProps.children as ReactNode,\n derivationDepth\n ),\n }),\n });\n}\n\n// ----- Traversal ----- //\n\n/**\n * Traverses a single child react node and removes the injected _T component.\n */\nfunction handleSingleChild(\n child: ReactNode,\n derivationDepth: number\n): ReactNode {\n if (isValidElement(child)) {\n return handleSingleChildElement(child, derivationDepth);\n }\n return child;\n}\n\n/**\n * Traverses an array of children and removes the injected _T component.\n *\n */\nfunction handleChildren(\n children: ReactNode,\n derivationDepth: number\n): ReactNode {\n if (Array.isArray(children)) {\n return Children.map(children, (child) =>\n handleSingleChild(child, derivationDepth)\n );\n }\n return handleSingleChild(children, derivationDepth);\n}\n\n// ----- Helper Functions ----- //\n\n/**\n * Extracts the transformation from the element type.\n * @param elementType - The element type to extract the transformation from.\n * @returns The transformation.\n */\nfunction getTransformation(elementType: ReactElement['type']):\n | {\n componentType: TransformationPrefix;\n injectionType: InjectionType;\n }\n | undefined {\n // Extract transformation string\n const transformation =\n typeof elementType === 'function' && '_gtt' in elementType\n ? elementType._gtt\n : undefined;\n if (transformation == null || typeof transformation !== 'string')\n return undefined;\n\n // Extract metadata from transformation string\n const parts = transformation.split('-');\n const componentType = parts[0] as TransformationPrefix;\n const injectionType =\n parts[1] === 'automatic' || parts[2] === 'automatic'\n ? 'automatic'\n : 'manual';\n\n return {\n componentType,\n injectionType,\n };\n}\n\nconst warnNestedInternalTComponent = `'@generaltranslation/react-core Warning: A <_T> component was found injected outside of a <Derive> boundary. This may affect translation resolution for this component.`;\n"],"mappings":"0IAkBA,SAAgB,EAAgB,EAAgC,CAC9D,OAAO,EAAe,EAAU,EAAE,CAoBpC,SAAS,EACP,EACA,EACW,CACX,GAAM,CAAE,KAAM,EAAa,MAAO,GAAiB,EAC7C,EAAiB,EAAkB,EAAY,CAErD,GAAI,OAAO,GAAiB,WAAY,EACtC,OAAO,EAGT,GAAI,EAAgB,CAClB,GAAM,CAAE,gBAAe,iBAAkB,EAGzC,GAAI,IAAkB,WACpB,OAAO,KAIA,IAAkB,SAczB,OAAO,EAAa,EAAO,CACzB,GAbe,OAAO,QAAQ,EAAa,CAAC,QAE3C,EAAK,CAAC,EAAY,MACf,IAAe,UAAY,CAAC,EAAW,WAAW,QAAQ,CAC5D,EAAI,GAAc,EAAkB,EAAQ,EAAgB,CAG5D,EAAI,GAAc,EAEb,GACN,EAAE,CAGQ,CACZ,CAAC,IACO,IAAkB,SAc3B,OAAO,EAAa,EAAO,CACzB,GAbe,OAAO,QAAQ,EAAa,CAAC,QAE3C,EAAK,CAAC,EAAY,MACf,EAAqB,EAAW,EAAI,IAAe,WACrD,EAAI,GAAc,EAAkB,EAAQ,EAAgB,CAG5D,EAAI,GAAc,EAEb,GACN,EAAE,CAGQ,CACZ,CAAC,IAIK,IAAkB,SACzB,OAAO,EAAa,EAAO,CACzB,GAAG,EACH,GAAI,aAAc,GAAgB,CAChC,SAAU,EACR,EAAa,SACb,EAAkB,EACnB,CACF,CACF,CAAC,IAKF,IAAkB,aAClB,IAAkB,aAClB,EAAkB,EAElB,MAAO,aAAc,EACjB,EAAe,EAAa,SAAuB,EAAgB,CACnE,IAAA,GAIG,IAAkB,aAAe,IAAkB,aAC1D,QAAQ,KAAK,EAA6B,CAK9C,OAAO,EAAa,EAAO,CACzB,GAAG,EACH,GAAI,aAAc,GAAgB,CAChC,SAAU,EACR,EAAa,SACb,EACD,CACF,CACF,CAAC,CAQJ,SAAS,EACP,EACA,EACW,CAIX,OAHI,EAAe,EAAM,CAChB,EAAyB,EAAO,EAAgB,CAElD,EAOT,SAAS,EACP,EACA,EACW,CAMX,OALI,MAAM,QAAQ,EAAS,CAClB,EAAS,IAAI,EAAW,GAC7B,EAAkB,EAAO,EAAgB,CAC1C,CAEI,EAAkB,EAAU,EAAgB,CAUrD,SAAS,EAAkB,EAKb,CAEZ,IAAM,EACJ,OAAO,GAAgB,YAAc,SAAU,EAC3C,EAAY,KACZ,IAAA,GACN,GAAI,GAAkB,MAAQ,OAAO,GAAmB,SACtD,OAGF,IAAM,EAAQ,EAAe,MAAM,IAAI,CAOvC,MAAO,CACL,cAPoB,EAAM,GAQ1B,cANA,EAAM,KAAO,aAAe,EAAM,KAAO,YACrC,YACA,SAKL,CAGH,MAAM,EAA+B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../variables/getVariableName.cjs`),t=require(`../utils.cjs`);let n=require(`generaltranslation/internal`),r=require(`@generaltranslation/format/types`);const i=e=>{if(!e)return``;let{type:t,props:n}=e;if(t&&typeof t==`function`){if(`displayName`in t&&typeof t.displayName==`string`&&t.displayName)return t.displayName;if(`name`in t&&typeof t.name==`string`&&t.name)return t.name}return t&&typeof t==`string`?t:n.href?`a`:n[`data-_gt`]?.id?`C${n[`data-_gt`].id}`:`function`},a=(e,t,n)=>{let i=Object.entries(r.HTML_CONTENT_PROPS).reduce((e,[n,r])=>{let i=t[r];return typeof i==`string`&&(e[n]=i),e},{});if(e===`plural`&&n){let e={};Object.entries(n).forEach(([t,n])=>{e[t]=c(n)}),i={...i,b:e,t:`p`}}if(e===`branch`&&n){let e={};Object.entries(n).forEach(([t,n])=>{e[t]=c(n)}),i={...i,b:e,t:`b`}}return Object.keys(i).length?i:void 0},o=t=>{let{props:o}=t,s={t:i(t)};if(o[`data-_gt`]){let t=o[`data-_gt`],i=t.transformation;if(i===`variable`){let r=t.variableType||`variable`,i=e.getVariableName(o,r),a=(0,n.minifyVariableType)(r);return{i:t.id,k:i,v:a}}s.i=t.id,s.d=a(i,o,t.branches);let l=Object.entries(r.HTML_CONTENT_PROPS).reduce((e,[t,n])=>{let r=o[n];return typeof r==`string`&&(e[t]=r),e},{});if(i===`plural`&&t.branches){let e={};Object.entries(t.branches).forEach(([t,n])=>{e[t]=c(n)}),l={...l,b:e,t:`p`}}if(i===`branch`&&t.branches){let e={};Object.entries(t.branches).forEach(([t,n])=>{e[t]=c(n)}),l={...l,b:e,t:`b`}}s.d=Object.keys(l).length?l:void 0}return o.children&&(s.c=c(o.children)),s},s=e=>t.isValidTaggedElement(e)?o(e):typeof e==`number`?e.toString():e;function c(e){return Array.isArray(e)?e.map(s):s(e)}exports.writeChildrenAsObjects=c;
|
|
2
|
+
//# sourceMappingURL=writeChildrenAsObjects.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeChildrenAsObjects.cjs","names":["HTML_CONTENT_PROPS","getVariableName","isValidTaggedElement"],"sources":["../../../src/utils/internal/writeChildrenAsObjects.ts"],"sourcesContent":["import { getVariableName } from '../variables/getVariableName';\nimport { TaggedChild, TaggedChildren, TaggedElement } from '../../utils/types';\nimport { isValidTaggedElement } from '../../utils/utils';\nimport { minifyVariableType } from 'generaltranslation/internal';\nimport {\n GTProp,\n HTML_CONTENT_PROPS,\n HtmlContentPropKeysRecord,\n JsxChild,\n JsxChildren,\n JsxElement,\n Variable,\n} from '@generaltranslation/format/types';\nimport type { Transformation } from 'generaltranslation/types';\n\n/**\n * Gets the tag name of a React element.\n * @param {ReactElement} child - The React element.\n * @returns {string} - The tag name of the React element.\n */\nconst getTagName = (child: TaggedElement): string => {\n if (!child) return '';\n const { type, props } = child;\n if (type && typeof type === 'function') {\n if (\n 'displayName' in type &&\n typeof type.displayName === 'string' &&\n type.displayName\n )\n return type.displayName;\n if ('name' in type && typeof type.name === 'string' && type.name)\n return type.name;\n }\n if (type && typeof type === 'string') return type;\n if (props.href) return 'a';\n if (props['data-_gt']?.id) return `C${props['data-_gt'].id}`;\n return 'function';\n};\nconst createGTProp = (\n transformation: Transformation,\n props: Record<string, unknown>,\n branches?: Record<string, TaggedChildren>\n): GTProp | undefined => {\n // Add translatable HTML content props\n let newGTProp: GTProp = Object.entries(HTML_CONTENT_PROPS).reduce<GTProp>(\n (acc, [minifiedName, fullName]) => {\n const value = props[fullName];\n if (typeof value === 'string') {\n acc[minifiedName as keyof HtmlContentPropKeysRecord] = value;\n }\n return acc;\n },\n {}\n );\n\n // Check if plural\n if (transformation === 'plural' && branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'p' };\n }\n if (transformation === 'branch' && branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'b' };\n }\n\n return Object.keys(newGTProp).length ? newGTProp : undefined;\n};\n\n/**\n * Handles a single child element.\n * @param {TaggedElement} child - The child to handle.\n * @returns {JsxElement | Variable} The minified element.\n */\nconst handleSingleChildElement = (\n child: TaggedElement\n): JsxElement | Variable => {\n const { props } = child;\n const minifiedElement: JsxElement = {\n t: getTagName(child),\n };\n if (props['data-_gt']) {\n // Get generaltranslation props\n const generaltranslation = props['data-_gt'];\n\n // Check if variable\n const transformation = generaltranslation.transformation;\n if (transformation === 'variable') {\n const variableType = generaltranslation.variableType || 'variable';\n const variableName = getVariableName(props, variableType);\n const minifiedVariableType = minifyVariableType(variableType);\n return {\n i: generaltranslation.id,\n k: variableName,\n v: minifiedVariableType,\n };\n }\n\n // Add id\n minifiedElement.i = generaltranslation.id;\n\n // Add GT prop\n minifiedElement.d = createGTProp(\n transformation as Transformation,\n props,\n generaltranslation.branches\n );\n\n // Add translatable HTML content props\n let newGTProp: GTProp = Object.entries(HTML_CONTENT_PROPS).reduce<GTProp>(\n (acc, [minifiedName, fullName]) => {\n const value = props[fullName];\n if (typeof value === 'string') {\n acc[minifiedName as keyof HtmlContentPropKeysRecord] = value;\n }\n return acc;\n },\n {}\n );\n\n // Check if plural\n if (transformation === 'plural' && generaltranslation.branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(generaltranslation.branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'p' };\n }\n if (transformation === 'branch' && generaltranslation.branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(generaltranslation.branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'b' };\n }\n\n minifiedElement.d = Object.keys(newGTProp).length ? newGTProp : undefined;\n }\n if (props.children) {\n minifiedElement.c = writeChildrenAsObjects(props.children);\n }\n return minifiedElement;\n};\n\nconst handleSingleChild = (child: TaggedChild): JsxChild => {\n if (isValidTaggedElement(child)) {\n return handleSingleChildElement(child);\n }\n if (typeof child === 'number') return child.toString();\n return child as JsxChild;\n};\n\n/**\n * Transforms children elements into objects, processing each child recursively if needed.\n * TaggedChildren are transformed into JsxChildren\n * @param {Children} children - The children to process.\n * @returns {object} The processed children as objects.\n */\nexport function writeChildrenAsObjects(children: TaggedChildren): JsxChildren {\n const result = Array.isArray(children)\n ? children.map(handleSingleChild)\n : handleSingleChild(children);\n return result;\n}\n"],"mappings":"yNAoBA,MAAM,EAAc,GAAiC,CACnD,GAAI,CAAC,EAAO,MAAO,GACnB,GAAM,CAAE,OAAM,SAAU,EACxB,GAAI,GAAQ,OAAO,GAAS,WAAY,CACtC,GACE,gBAAiB,GACjB,OAAO,EAAK,aAAgB,UAC5B,EAAK,YAEL,OAAO,EAAK,YACd,GAAI,SAAU,GAAQ,OAAO,EAAK,MAAS,UAAY,EAAK,KAC1D,OAAO,EAAK,KAKhB,OAHI,GAAQ,OAAO,GAAS,SAAiB,EACzC,EAAM,KAAa,IACnB,EAAM,aAAa,GAAW,IAAI,EAAM,YAAY,KACjD,YAEH,GACJ,EACA,EACA,IACuB,CAEvB,IAAI,EAAoB,OAAO,QAAQA,EAAAA,mBAAmB,CAAC,QACxD,EAAK,CAAC,EAAc,KAAc,CACjC,IAAM,EAAQ,EAAM,GAIpB,OAHI,OAAO,GAAU,WACnB,EAAI,GAAmD,GAElD,GAET,EAAE,CACH,CAGD,GAAI,IAAmB,UAAY,EAAU,CAC3C,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAS,CAAC,SACtB,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAEtD,GAAI,IAAmB,UAAY,EAAU,CAC3C,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAS,CAAC,SACtB,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAGtD,OAAO,OAAO,KAAK,EAAU,CAAC,OAAS,EAAY,IAAA,IAQ/C,EACJ,GAC0B,CAC1B,GAAM,CAAE,SAAU,EACZ,EAA8B,CAClC,EAAG,EAAW,EAAM,CACrB,CACD,GAAI,EAAM,YAAa,CAErB,IAAM,EAAqB,EAAM,YAG3B,EAAiB,EAAmB,eAC1C,GAAI,IAAmB,WAAY,CACjC,IAAM,EAAe,EAAmB,cAAgB,WAClD,EAAeC,EAAAA,gBAAgB,EAAO,EAAa,CACnD,GAAA,EAAA,EAAA,oBAA0C,EAAa,CAC7D,MAAO,CACL,EAAG,EAAmB,GACtB,EAAG,EACH,EAAG,EACJ,CAIH,EAAgB,EAAI,EAAmB,GAGvC,EAAgB,EAAI,EAClB,EACA,EACA,EAAmB,SACpB,CAGD,IAAI,EAAoB,OAAO,QAAQD,EAAAA,mBAAmB,CAAC,QACxD,EAAK,CAAC,EAAc,KAAc,CACjC,IAAM,EAAQ,EAAM,GAIpB,OAHI,OAAO,GAAU,WACnB,EAAI,GAAmD,GAElD,GAET,EAAE,CACH,CAGD,GAAI,IAAmB,UAAY,EAAmB,SAAU,CAC9D,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAmB,SAAS,CAAC,SACzC,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAEtD,GAAI,IAAmB,UAAY,EAAmB,SAAU,CAC9D,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAmB,SAAS,CAAC,SACzC,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAGtD,EAAgB,EAAI,OAAO,KAAK,EAAU,CAAC,OAAS,EAAY,IAAA,GAKlE,OAHI,EAAM,WACR,EAAgB,EAAI,EAAuB,EAAM,SAAS,EAErD,GAGH,EAAqB,GACrBE,EAAAA,qBAAqB,EAAM,CACtB,EAAyB,EAAM,CAEpC,OAAO,GAAU,SAAiB,EAAM,UAAU,CAC/C,EAST,SAAgB,EAAuB,EAAuC,CAI5E,OAHe,MAAM,QAAQ,EAAS,CAClC,EAAS,IAAI,EAAkB,CAC/B,EAAkB,EAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getVariableName as e}from"../variables/getVariableName.mjs";import{isValidTaggedElement as t}from"../utils.mjs";import{minifyVariableType as n}from"generaltranslation/internal";import{HTML_CONTENT_PROPS as r}from"@generaltranslation/format/types";const i=e=>{if(!e)return``;let{type:t,props:n}=e;if(t&&typeof t==`function`){if(`displayName`in t&&typeof t.displayName==`string`&&t.displayName)return t.displayName;if(`name`in t&&typeof t.name==`string`&&t.name)return t.name}return t&&typeof t==`string`?t:n.href?`a`:n[`data-_gt`]?.id?`C${n[`data-_gt`].id}`:`function`},a=(e,t,n)=>{let i=Object.entries(r).reduce((e,[n,r])=>{let i=t[r];return typeof i==`string`&&(e[n]=i),e},{});if(e===`plural`&&n){let e={};Object.entries(n).forEach(([t,n])=>{e[t]=c(n)}),i={...i,b:e,t:`p`}}if(e===`branch`&&n){let e={};Object.entries(n).forEach(([t,n])=>{e[t]=c(n)}),i={...i,b:e,t:`b`}}return Object.keys(i).length?i:void 0},o=t=>{let{props:o}=t,s={t:i(t)};if(o[`data-_gt`]){let t=o[`data-_gt`],i=t.transformation;if(i===`variable`){let r=t.variableType||`variable`,i=e(o,r),a=n(r);return{i:t.id,k:i,v:a}}s.i=t.id,s.d=a(i,o,t.branches);let l=Object.entries(r).reduce((e,[t,n])=>{let r=o[n];return typeof r==`string`&&(e[t]=r),e},{});if(i===`plural`&&t.branches){let e={};Object.entries(t.branches).forEach(([t,n])=>{e[t]=c(n)}),l={...l,b:e,t:`p`}}if(i===`branch`&&t.branches){let e={};Object.entries(t.branches).forEach(([t,n])=>{e[t]=c(n)}),l={...l,b:e,t:`b`}}s.d=Object.keys(l).length?l:void 0}return o.children&&(s.c=c(o.children)),s},s=e=>t(e)?o(e):typeof e==`number`?e.toString():e;function c(e){return Array.isArray(e)?e.map(s):s(e)}export{c as writeChildrenAsObjects};
|
|
2
|
+
//# sourceMappingURL=writeChildrenAsObjects.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeChildrenAsObjects.mjs","names":[],"sources":["../../../src/utils/internal/writeChildrenAsObjects.ts"],"sourcesContent":["import { getVariableName } from '../variables/getVariableName';\nimport { TaggedChild, TaggedChildren, TaggedElement } from '../../utils/types';\nimport { isValidTaggedElement } from '../../utils/utils';\nimport { minifyVariableType } from 'generaltranslation/internal';\nimport {\n GTProp,\n HTML_CONTENT_PROPS,\n HtmlContentPropKeysRecord,\n JsxChild,\n JsxChildren,\n JsxElement,\n Variable,\n} from '@generaltranslation/format/types';\nimport type { Transformation } from 'generaltranslation/types';\n\n/**\n * Gets the tag name of a React element.\n * @param {ReactElement} child - The React element.\n * @returns {string} - The tag name of the React element.\n */\nconst getTagName = (child: TaggedElement): string => {\n if (!child) return '';\n const { type, props } = child;\n if (type && typeof type === 'function') {\n if (\n 'displayName' in type &&\n typeof type.displayName === 'string' &&\n type.displayName\n )\n return type.displayName;\n if ('name' in type && typeof type.name === 'string' && type.name)\n return type.name;\n }\n if (type && typeof type === 'string') return type;\n if (props.href) return 'a';\n if (props['data-_gt']?.id) return `C${props['data-_gt'].id}`;\n return 'function';\n};\nconst createGTProp = (\n transformation: Transformation,\n props: Record<string, unknown>,\n branches?: Record<string, TaggedChildren>\n): GTProp | undefined => {\n // Add translatable HTML content props\n let newGTProp: GTProp = Object.entries(HTML_CONTENT_PROPS).reduce<GTProp>(\n (acc, [minifiedName, fullName]) => {\n const value = props[fullName];\n if (typeof value === 'string') {\n acc[minifiedName as keyof HtmlContentPropKeysRecord] = value;\n }\n return acc;\n },\n {}\n );\n\n // Check if plural\n if (transformation === 'plural' && branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'p' };\n }\n if (transformation === 'branch' && branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'b' };\n }\n\n return Object.keys(newGTProp).length ? newGTProp : undefined;\n};\n\n/**\n * Handles a single child element.\n * @param {TaggedElement} child - The child to handle.\n * @returns {JsxElement | Variable} The minified element.\n */\nconst handleSingleChildElement = (\n child: TaggedElement\n): JsxElement | Variable => {\n const { props } = child;\n const minifiedElement: JsxElement = {\n t: getTagName(child),\n };\n if (props['data-_gt']) {\n // Get generaltranslation props\n const generaltranslation = props['data-_gt'];\n\n // Check if variable\n const transformation = generaltranslation.transformation;\n if (transformation === 'variable') {\n const variableType = generaltranslation.variableType || 'variable';\n const variableName = getVariableName(props, variableType);\n const minifiedVariableType = minifyVariableType(variableType);\n return {\n i: generaltranslation.id,\n k: variableName,\n v: minifiedVariableType,\n };\n }\n\n // Add id\n minifiedElement.i = generaltranslation.id;\n\n // Add GT prop\n minifiedElement.d = createGTProp(\n transformation as Transformation,\n props,\n generaltranslation.branches\n );\n\n // Add translatable HTML content props\n let newGTProp: GTProp = Object.entries(HTML_CONTENT_PROPS).reduce<GTProp>(\n (acc, [minifiedName, fullName]) => {\n const value = props[fullName];\n if (typeof value === 'string') {\n acc[minifiedName as keyof HtmlContentPropKeysRecord] = value;\n }\n return acc;\n },\n {}\n );\n\n // Check if plural\n if (transformation === 'plural' && generaltranslation.branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(generaltranslation.branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'p' };\n }\n if (transformation === 'branch' && generaltranslation.branches) {\n const newBranches: Record<string, JsxChildren> = {};\n Object.entries(generaltranslation.branches).forEach(\n ([key, value]: [string, TaggedChildren]) => {\n newBranches[key] = writeChildrenAsObjects(value);\n }\n );\n newGTProp = { ...newGTProp, b: newBranches, t: 'b' };\n }\n\n minifiedElement.d = Object.keys(newGTProp).length ? newGTProp : undefined;\n }\n if (props.children) {\n minifiedElement.c = writeChildrenAsObjects(props.children);\n }\n return minifiedElement;\n};\n\nconst handleSingleChild = (child: TaggedChild): JsxChild => {\n if (isValidTaggedElement(child)) {\n return handleSingleChildElement(child);\n }\n if (typeof child === 'number') return child.toString();\n return child as JsxChild;\n};\n\n/**\n * Transforms children elements into objects, processing each child recursively if needed.\n * TaggedChildren are transformed into JsxChildren\n * @param {Children} children - The children to process.\n * @returns {object} The processed children as objects.\n */\nexport function writeChildrenAsObjects(children: TaggedChildren): JsxChildren {\n const result = Array.isArray(children)\n ? children.map(handleSingleChild)\n : handleSingleChild(children);\n return result;\n}\n"],"mappings":"8PAoBA,MAAM,EAAc,GAAiC,CACnD,GAAI,CAAC,EAAO,MAAO,GACnB,GAAM,CAAE,OAAM,SAAU,EACxB,GAAI,GAAQ,OAAO,GAAS,WAAY,CACtC,GACE,gBAAiB,GACjB,OAAO,EAAK,aAAgB,UAC5B,EAAK,YAEL,OAAO,EAAK,YACd,GAAI,SAAU,GAAQ,OAAO,EAAK,MAAS,UAAY,EAAK,KAC1D,OAAO,EAAK,KAKhB,OAHI,GAAQ,OAAO,GAAS,SAAiB,EACzC,EAAM,KAAa,IACnB,EAAM,aAAa,GAAW,IAAI,EAAM,YAAY,KACjD,YAEH,GACJ,EACA,EACA,IACuB,CAEvB,IAAI,EAAoB,OAAO,QAAQ,EAAmB,CAAC,QACxD,EAAK,CAAC,EAAc,KAAc,CACjC,IAAM,EAAQ,EAAM,GAIpB,OAHI,OAAO,GAAU,WACnB,EAAI,GAAmD,GAElD,GAET,EAAE,CACH,CAGD,GAAI,IAAmB,UAAY,EAAU,CAC3C,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAS,CAAC,SACtB,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAEtD,GAAI,IAAmB,UAAY,EAAU,CAC3C,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAS,CAAC,SACtB,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAGtD,OAAO,OAAO,KAAK,EAAU,CAAC,OAAS,EAAY,IAAA,IAQ/C,EACJ,GAC0B,CAC1B,GAAM,CAAE,SAAU,EACZ,EAA8B,CAClC,EAAG,EAAW,EAAM,CACrB,CACD,GAAI,EAAM,YAAa,CAErB,IAAM,EAAqB,EAAM,YAG3B,EAAiB,EAAmB,eAC1C,GAAI,IAAmB,WAAY,CACjC,IAAM,EAAe,EAAmB,cAAgB,WAClD,EAAe,EAAgB,EAAO,EAAa,CACnD,EAAuB,EAAmB,EAAa,CAC7D,MAAO,CACL,EAAG,EAAmB,GACtB,EAAG,EACH,EAAG,EACJ,CAIH,EAAgB,EAAI,EAAmB,GAGvC,EAAgB,EAAI,EAClB,EACA,EACA,EAAmB,SACpB,CAGD,IAAI,EAAoB,OAAO,QAAQ,EAAmB,CAAC,QACxD,EAAK,CAAC,EAAc,KAAc,CACjC,IAAM,EAAQ,EAAM,GAIpB,OAHI,OAAO,GAAU,WACnB,EAAI,GAAmD,GAElD,GAET,EAAE,CACH,CAGD,GAAI,IAAmB,UAAY,EAAmB,SAAU,CAC9D,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAmB,SAAS,CAAC,SACzC,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAEtD,GAAI,IAAmB,UAAY,EAAmB,SAAU,CAC9D,IAAM,EAA2C,EAAE,CACnD,OAAO,QAAQ,EAAmB,SAAS,CAAC,SACzC,CAAC,EAAK,KAAqC,CAC1C,EAAY,GAAO,EAAuB,EAAM,EAEnD,CACD,EAAY,CAAE,GAAG,EAAW,EAAG,EAAa,EAAG,IAAK,CAGtD,EAAgB,EAAI,OAAO,KAAK,EAAU,CAAC,OAAS,EAAY,IAAA,GAKlE,OAHI,EAAM,WACR,EAAgB,EAAI,EAAuB,EAAM,SAAS,EAErD,GAGH,EAAqB,GACrB,EAAqB,EAAM,CACtB,EAAyB,EAAM,CAEpC,OAAO,GAAU,SAAiB,EAAM,UAAU,CAC/C,EAST,SAAgB,EAAuB,EAAuC,CAI5E,OAHe,MAAM,QAAQ,EAAS,CAClC,EAAS,IAAI,EAAkB,CAC/B,EAAkB,EAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`generaltranslation/internal`);function t(t,n,r){let i=``,a=null;return typeof t==`number`&&!a&&r&&(i=(0,e.getPluralForm)(t,Object.keys(r).filter(e.isAcceptedPluralForm),n)),i&&!a&&(a=r[i]),a}exports.getPluralBranch=t;
|
|
2
|
+
//# sourceMappingURL=getPluralBranch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluralBranch.cjs","names":["isAcceptedPluralForm"],"sources":["../../../src/utils/plurals/getPluralBranch.ts"],"sourcesContent":["import {\n getPluralForm,\n isAcceptedPluralForm,\n} from 'generaltranslation/internal';\n\n/**\n * Main function to get the appropriate branch based on the provided number and branches.\n *\n * @param {number} n - The number to determine the branch for.\n * @param {any} branches - The object containing possible branches.\n * @returns {any} The determined branch.\n */\nexport function getPluralBranch<T>(\n n: number,\n locales: string[],\n branches: Record<string, T>\n) {\n let branchName = '';\n let branch = null;\n if (typeof n === 'number' && !branch && branches) {\n const pluralForms = Object.keys(branches).filter(isAcceptedPluralForm);\n branchName = getPluralForm(n, pluralForms, locales);\n }\n if (branchName && !branch) branch = branches[branchName];\n return branch;\n}\n"],"mappings":"6FAYA,SAAgB,EACd,EACA,EACA,EACA,CACA,IAAI,EAAa,GACb,EAAS,KAMb,OALI,OAAO,GAAM,UAAY,CAAC,GAAU,IAEtC,GAAA,EAAA,EAAA,eAA2B,EADP,OAAO,KAAK,EAAS,CAAC,OAAOA,EAAAA,qBACR,CAAE,EAAQ,EAEjD,GAAc,CAAC,IAAQ,EAAS,EAAS,IACtC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/utils/plurals/getPluralBranch.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Main function to get the appropriate branch based on the provided number and branches.
|
|
4
|
+
*
|
|
5
|
+
* @param {number} n - The number to determine the branch for.
|
|
6
|
+
* @param {any} branches - The object containing possible branches.
|
|
7
|
+
* @returns {any} The determined branch.
|
|
8
|
+
*/
|
|
9
|
+
declare function getPluralBranch<T>(n: number, locales: string[], branches: Record<string, T>): T | null;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { getPluralBranch };
|
|
12
|
+
//# sourceMappingURL=getPluralBranch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluralBranch.d.ts","names":[],"sources":["../../../src/utils/plurals/getPluralBranch.ts"],"mappings":";;AAYA;;;;;;iBAAgB,eAAA,GAAA,CACd,CAAA,UACA,OAAA,YACA,QAAA,EAAU,MAAA,SAAe,CAAA,IAAE,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getPluralForm as e,isAcceptedPluralForm as t}from"generaltranslation/internal";function n(n,r,i){let a=``,o=null;return typeof n==`number`&&!o&&i&&(a=e(n,Object.keys(i).filter(t),r)),a&&!o&&(o=i[a]),o}export{n as getPluralBranch};
|
|
2
|
+
//# sourceMappingURL=getPluralBranch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluralBranch.mjs","names":[],"sources":["../../../src/utils/plurals/getPluralBranch.ts"],"sourcesContent":["import {\n getPluralForm,\n isAcceptedPluralForm,\n} from 'generaltranslation/internal';\n\n/**\n * Main function to get the appropriate branch based on the provided number and branches.\n *\n * @param {number} n - The number to determine the branch for.\n * @param {any} branches - The object containing possible branches.\n * @returns {any} The determined branch.\n */\nexport function getPluralBranch<T>(\n n: number,\n locales: string[],\n branches: Record<string, T>\n) {\n let branchName = '';\n let branch = null;\n if (typeof n === 'number' && !branch && branches) {\n const pluralForms = Object.keys(branches).filter(isAcceptedPluralForm);\n branchName = getPluralForm(n, pluralForms, locales);\n }\n if (branchName && !branch) branch = branches[branchName];\n return branch;\n}\n"],"mappings":"sFAYA,SAAgB,EACd,EACA,EACA,EACA,CACA,IAAI,EAAa,GACb,EAAS,KAMb,OALI,OAAO,GAAM,UAAY,CAAC,GAAU,IAEtC,EAAa,EAAc,EADP,OAAO,KAAK,EAAS,CAAC,OAAO,EACR,CAAE,EAAQ,EAEjD,GAAc,CAAC,IAAQ,EAAS,EAAS,IACtC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./createRenderVariable.cjs`),t=require(`./renderDefaultChildren.shared.cjs`),n=require(`./renderTranslatedChildren.shared.cjs`),r=require(`./renderPreparedT.shared.cjs`);function i(i){let a=e.createRenderVariable(i),o=t.createRenderDefaultChildren({renderVariable:a}),s=n.createRenderTranslatedChildren({renderVariable:a});return{renderVariable:a,renderDefaultChildren:o,renderTranslatedChildren:s,renderPreparedT:r.createRenderPreparedT({renderDefaultChildren:o,renderTranslatedChildren:s})}}exports.createRenderPipeline=i;
|
|
2
|
+
//# sourceMappingURL=createRenderPipeline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderPipeline.cjs","names":["createRenderVariable","createRenderDefaultChildren","createRenderTranslatedChildren","createRenderPreparedT"],"sources":["../../../src/utils/rendering/createRenderPipeline.ts"],"sourcesContent":["import {\n createRenderVariable,\n type VariableComponents,\n} from './createRenderVariable';\nimport {\n createRenderDefaultChildren,\n type RenderDefaultChildrenArgs,\n} from './renderDefaultChildren.shared';\nimport {\n createRenderTranslatedChildren,\n type RenderTranslatedChildrenArgs,\n} from './renderTranslatedChildren.shared';\nimport {\n createRenderPreparedT,\n type RenderPreparedTParams,\n} from './renderPreparedT.shared';\nimport type { ReactNode } from 'react';\nimport type { RenderVariable } from '../types';\n\n// Factory binding variable components to the shared rendering logic. The\n// renderVariable dependency injection stays internal to this factory: callsites\n// import a pre-instantiated pipeline (renderPipeline for the hook-based\n// variable components, renderPipeline.rsc for the RSC ones) instead of\n// threading renderVariable through every rendering call. This keeps shared\n// rendering code free of static imports of either variable implementation.\n\ntype RenderPipeline = {\n renderVariable: RenderVariable;\n renderDefaultChildren: (args: RenderDefaultChildrenArgs) => ReactNode;\n renderTranslatedChildren: (args: RenderTranslatedChildrenArgs) => ReactNode;\n renderPreparedT: (args: RenderPreparedTParams) => ReactNode;\n};\n\nfunction createRenderPipeline(components: VariableComponents): RenderPipeline {\n const renderVariable = createRenderVariable(components);\n const renderDefaultChildren = createRenderDefaultChildren({ renderVariable });\n const renderTranslatedChildren = createRenderTranslatedChildren({\n renderVariable,\n });\n const renderPreparedT = createRenderPreparedT({\n renderDefaultChildren,\n renderTranslatedChildren,\n });\n\n return {\n renderVariable,\n renderDefaultChildren,\n renderTranslatedChildren,\n renderPreparedT,\n };\n}\n\n// ===== Exports ===== //\n\nexport { createRenderPipeline };\nexport type { RenderPipeline };\nexport type {\n RenderDefaultChildrenArgs,\n RenderPreparedTParams,\n RenderTranslatedChildrenArgs,\n};\n"],"mappings":"2LAiCA,SAAS,EAAqB,EAAgD,CAC5E,IAAM,EAAiBA,EAAAA,qBAAqB,EAAW,CACjD,EAAwBC,EAAAA,4BAA4B,CAAE,iBAAgB,CAAC,CACvE,EAA2BC,EAAAA,+BAA+B,CAC9D,iBACD,CAAC,CAMF,MAAO,CACL,iBACA,wBACA,2BACA,gBATsBC,EAAAA,sBAAsB,CAC5C,wBACA,2BACD,CAMgB,CAChB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RenderVariable } from "../types.js";
|
|
2
|
+
import { RenderDefaultChildrenArgs } from "./renderDefaultChildren.shared.js";
|
|
3
|
+
import { RenderTranslatedChildrenArgs } from "./renderTranslatedChildren.shared.js";
|
|
4
|
+
import { RenderPreparedTParams } from "./renderPreparedT.shared.js";
|
|
5
|
+
import { VariableComponents } from "./createRenderVariable.js";
|
|
6
|
+
import { ReactNode } from "react";
|
|
7
|
+
|
|
8
|
+
//#region src/utils/rendering/createRenderPipeline.d.ts
|
|
9
|
+
type RenderPipeline = {
|
|
10
|
+
renderVariable: RenderVariable;
|
|
11
|
+
renderDefaultChildren: (args: RenderDefaultChildrenArgs) => ReactNode;
|
|
12
|
+
renderTranslatedChildren: (args: RenderTranslatedChildrenArgs) => ReactNode;
|
|
13
|
+
renderPreparedT: (args: RenderPreparedTParams) => ReactNode;
|
|
14
|
+
};
|
|
15
|
+
declare function createRenderPipeline(components: VariableComponents): RenderPipeline;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { type RenderPipeline, createRenderPipeline };
|
|
18
|
+
//# sourceMappingURL=createRenderPipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderPipeline.d.ts","names":[],"sources":["../../../src/utils/rendering/createRenderPipeline.ts"],"mappings":";;;;;;;;KA0BK,cAAA;EACH,cAAA,EAAgB,cAAA;EAChB,qBAAA,GAAwB,IAAA,EAAM,yBAAA,KAA8B,SAAA;EAC5D,wBAAA,GAA2B,IAAA,EAAM,4BAAA,KAAiC,SAAA;EAClE,eAAA,GAAkB,IAAA,EAAM,qBAAA,KAA0B,SAAA;AAAA;AAAA,iBAG3C,oBAAA,CAAqB,UAAA,EAAY,kBAAA,GAAqB,cAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRenderVariable as e}from"./createRenderVariable.mjs";import{createRenderDefaultChildren as t}from"./renderDefaultChildren.shared.mjs";import{createRenderTranslatedChildren as n}from"./renderTranslatedChildren.shared.mjs";import{createRenderPreparedT as r}from"./renderPreparedT.shared.mjs";function i(i){let a=e(i),o=t({renderVariable:a}),s=n({renderVariable:a});return{renderVariable:a,renderDefaultChildren:o,renderTranslatedChildren:s,renderPreparedT:r({renderDefaultChildren:o,renderTranslatedChildren:s})}}export{i as createRenderPipeline};
|
|
2
|
+
//# sourceMappingURL=createRenderPipeline.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderPipeline.mjs","names":[],"sources":["../../../src/utils/rendering/createRenderPipeline.ts"],"sourcesContent":["import {\n createRenderVariable,\n type VariableComponents,\n} from './createRenderVariable';\nimport {\n createRenderDefaultChildren,\n type RenderDefaultChildrenArgs,\n} from './renderDefaultChildren.shared';\nimport {\n createRenderTranslatedChildren,\n type RenderTranslatedChildrenArgs,\n} from './renderTranslatedChildren.shared';\nimport {\n createRenderPreparedT,\n type RenderPreparedTParams,\n} from './renderPreparedT.shared';\nimport type { ReactNode } from 'react';\nimport type { RenderVariable } from '../types';\n\n// Factory binding variable components to the shared rendering logic. The\n// renderVariable dependency injection stays internal to this factory: callsites\n// import a pre-instantiated pipeline (renderPipeline for the hook-based\n// variable components, renderPipeline.rsc for the RSC ones) instead of\n// threading renderVariable through every rendering call. This keeps shared\n// rendering code free of static imports of either variable implementation.\n\ntype RenderPipeline = {\n renderVariable: RenderVariable;\n renderDefaultChildren: (args: RenderDefaultChildrenArgs) => ReactNode;\n renderTranslatedChildren: (args: RenderTranslatedChildrenArgs) => ReactNode;\n renderPreparedT: (args: RenderPreparedTParams) => ReactNode;\n};\n\nfunction createRenderPipeline(components: VariableComponents): RenderPipeline {\n const renderVariable = createRenderVariable(components);\n const renderDefaultChildren = createRenderDefaultChildren({ renderVariable });\n const renderTranslatedChildren = createRenderTranslatedChildren({\n renderVariable,\n });\n const renderPreparedT = createRenderPreparedT({\n renderDefaultChildren,\n renderTranslatedChildren,\n });\n\n return {\n renderVariable,\n renderDefaultChildren,\n renderTranslatedChildren,\n renderPreparedT,\n };\n}\n\n// ===== Exports ===== //\n\nexport { createRenderPipeline };\nexport type { RenderPipeline };\nexport type {\n RenderDefaultChildrenArgs,\n RenderPreparedTParams,\n RenderTranslatedChildrenArgs,\n};\n"],"mappings":"+SAiCA,SAAS,EAAqB,EAAgD,CAC5E,IAAM,EAAiB,EAAqB,EAAW,CACjD,EAAwB,EAA4B,CAAE,iBAAgB,CAAC,CACvE,EAA2B,EAA+B,CAC9D,iBACD,CAAC,CAMF,MAAO,CACL,iBACA,wBACA,2BACA,gBATsB,EAAsB,CAC5C,wBACA,2BACD,CAMgB,CAChB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`generaltranslation/internal`),t=require(`react/jsx-runtime`);function n({Currency:n,GtInternalCurrency:r,DateTime:i,GtInternalDateTime:a,Num:o,GtInternalNum:s,RelativeTime:c,GtInternalRelativeTime:l,Var:u,GtInternalVar:d}){return function({variableType:f,variableValue:p,variableOptions:m,locales:h,enableI18n:g,injectionType:_}){let v={_locale:h[0]??e.libraryDefaultLocale,_enableI18n:g};if(f===`n`){let e=_===`automatic`?o:s,n=m;return(0,t.jsx)(e,{...v,options:n,children:p})}if(f===`d`){let e=_===`automatic`?i:a,n=m;return(0,t.jsx)(e,{...v,options:n,children:p})}if(f===`c`){let e=_===`automatic`?n:r,i=m;return(0,t.jsx)(e,{...v,options:i,children:p})}if(f===`rt`){let e=_===`automatic`?c:l,n=m;if(typeof p==`number`&&n?.unit)return(0,t.jsx)(e,{...v,value:p,unit:n.unit,baseDate:n?.baseDate,options:n});let r=p instanceof Date?p:typeof p==`string`||typeof p==`number`?new Date(p):void 0;return(0,t.jsx)(e,{...v,date:r&&!isNaN(r.getTime())?r:void 0,baseDate:n?.baseDate,options:n})}let y=p;return(0,t.jsx)(_===`automatic`?d:u,{...v,children:y})}}exports.createRenderVariable=n;
|
|
2
|
+
//# sourceMappingURL=createRenderVariable.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderVariable.cjs","names":["libraryDefaultLocale"],"sources":["../../../src/utils/rendering/createRenderVariable.tsx"],"sourcesContent":["import type { ResolvedCurrencyProps } from '../../components/variables/Currency.shared';\nimport type { ResolvedDateTimeProps } from '../../components/variables/DateTime.shared';\nimport type { ResolvedNumProps } from '../../components/variables/Num.shared';\nimport type { ResolvedRelativeTimeProps } from '../../components/variables/RelativeTime.shared';\nimport type { RelativeTimeFormatOptions, RenderVariable } from '../types';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\nimport { ReactNode } from 'react';\n\n// Factory shared by the hook-based and RSC variable renderers: the branching\n// logic is written once and the concrete components are injected, so the RSC\n// renderer never statically imports the hook-based variable components. This\n// module must stay free of hook/context imports so it can be reached from the\n// components-rsc entrypoint.\n\ntype RenderableNode = ReactNode | Promise<ReactNode>;\n\ntype VariableComponents = {\n Currency: (props: ResolvedCurrencyProps) => RenderableNode;\n GtInternalCurrency: (props: ResolvedCurrencyProps) => RenderableNode;\n DateTime: (props: ResolvedDateTimeProps) => RenderableNode;\n GtInternalDateTime: (props: ResolvedDateTimeProps) => RenderableNode;\n Num: (props: ResolvedNumProps) => RenderableNode;\n GtInternalNum: (props: ResolvedNumProps) => RenderableNode;\n RelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;\n GtInternalRelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;\n Var: (props: {\n children: ReactNode;\n name?: string;\n _locale: string;\n _enableI18n: boolean;\n }) => RenderableNode;\n GtInternalVar: (props: {\n children: ReactNode;\n name?: string;\n _locale: string;\n _enableI18n: boolean;\n }) => RenderableNode;\n};\n\nfunction createRenderVariable({\n Currency: GtExternalCurrency,\n GtInternalCurrency,\n DateTime: GtExternalDateTime,\n GtInternalDateTime,\n Num: GtExternalNum,\n GtInternalNum,\n RelativeTime: GtExternalRelativeTime,\n GtInternalRelativeTime,\n Var: GtExternalVar,\n GtInternalVar,\n}: VariableComponents): RenderVariable {\n return function renderVariable({\n variableType,\n variableValue,\n variableOptions,\n locales,\n enableI18n,\n injectionType,\n }) {\n const locale = locales[0] ?? libraryDefaultLocale;\n const internalProps = {\n _locale: locale,\n _enableI18n: enableI18n,\n };\n\n if (variableType === 'n') {\n const Num = injectionType === 'automatic' ? GtExternalNum : GtInternalNum;\n const numOptions = variableOptions as\n | Intl.NumberFormatOptions\n | undefined;\n return (\n <Num {...internalProps} options={numOptions}>\n {variableValue as number | string | null | undefined}\n </Num>\n );\n }\n if (variableType === 'd') {\n const DateTime =\n injectionType === 'automatic' ? GtExternalDateTime : GtInternalDateTime;\n const dateTimeOptions = variableOptions as\n | Intl.DateTimeFormatOptions\n | undefined;\n return (\n <DateTime {...internalProps} options={dateTimeOptions}>\n {variableValue as Date | null | undefined}\n </DateTime>\n );\n }\n if (variableType === 'c') {\n const Currency =\n injectionType === 'automatic' ? GtExternalCurrency : GtInternalCurrency;\n const currencyOptions = variableOptions as\n | Intl.NumberFormatOptions\n | undefined;\n return (\n <Currency {...internalProps} options={currencyOptions}>\n {variableValue as number | string | null | undefined}\n </Currency>\n );\n }\n if (variableType === 'rt') {\n const RelativeTime =\n injectionType === 'automatic'\n ? GtExternalRelativeTime\n : GtInternalRelativeTime;\n const relativeTimeOptions = variableOptions as\n | RelativeTimeFormatOptions\n | undefined;\n if (typeof variableValue === 'number' && relativeTimeOptions?.unit) {\n return (\n <RelativeTime\n {...internalProps}\n value={variableValue}\n unit={relativeTimeOptions.unit}\n baseDate={relativeTimeOptions?.baseDate}\n options={relativeTimeOptions}\n />\n );\n }\n const dateValue =\n variableValue instanceof Date\n ? variableValue\n : typeof variableValue === 'string' ||\n typeof variableValue === 'number'\n ? new Date(variableValue)\n : undefined;\n return (\n <RelativeTime\n {...internalProps}\n date={\n dateValue && !isNaN(dateValue.getTime()) ? dateValue : undefined\n }\n baseDate={relativeTimeOptions?.baseDate}\n options={relativeTimeOptions}\n />\n );\n }\n const renderedValue = variableValue as ReactNode;\n const Var = injectionType === 'automatic' ? GtInternalVar : GtExternalVar;\n return <Var {...internalProps}>{renderedValue}</Var>;\n };\n}\n\n// ===== Exports ===== //\n\nexport { createRenderVariable };\nexport type { VariableComponents };\n"],"mappings":"4HAuCA,SAAS,EAAqB,CAC5B,SAAU,EACV,qBACA,SAAU,EACV,qBACA,IAAK,EACL,gBACA,aAAc,EACd,yBACA,IAAK,EACL,iBACqC,CACrC,OAAO,SAAwB,CAC7B,eACA,gBACA,kBACA,UACA,aACA,iBACC,CAED,IAAM,EAAgB,CACpB,QAFa,EAAQ,IAAMA,EAAAA,qBAG3B,YAAa,EACd,CAED,GAAI,IAAiB,IAAK,CACxB,IAAM,EAAM,IAAkB,YAAc,EAAgB,EACtD,EAAa,EAGnB,OACE,EAAA,EAAA,KAAC,EAAD,CAAK,GAAI,EAAe,QAAS,WAC9B,EACG,CAAA,CAGV,GAAI,IAAiB,IAAK,CACxB,IAAM,EACJ,IAAkB,YAAc,EAAqB,EACjD,EAAkB,EAGxB,OACE,EAAA,EAAA,KAAC,EAAD,CAAU,GAAI,EAAe,QAAS,WACnC,EACQ,CAAA,CAGf,GAAI,IAAiB,IAAK,CACxB,IAAM,EACJ,IAAkB,YAAc,EAAqB,EACjD,EAAkB,EAGxB,OACE,EAAA,EAAA,KAAC,EAAD,CAAU,GAAI,EAAe,QAAS,WACnC,EACQ,CAAA,CAGf,GAAI,IAAiB,KAAM,CACzB,IAAM,EACJ,IAAkB,YACd,EACA,EACA,EAAsB,EAG5B,GAAI,OAAO,GAAkB,UAAY,GAAqB,KAC5D,OACE,EAAA,EAAA,KAAC,EAAD,CACE,GAAI,EACJ,MAAO,EACP,KAAM,EAAoB,KAC1B,SAAU,GAAqB,SAC/B,QAAS,EACT,CAAA,CAGN,IAAM,EACJ,aAAyB,KACrB,EACA,OAAO,GAAkB,UACvB,OAAO,GAAkB,SACzB,IAAI,KAAK,EAAc,CACvB,IAAA,GACR,OACE,EAAA,EAAA,KAAC,EAAD,CACE,GAAI,EACJ,KACE,GAAa,CAAC,MAAM,EAAU,SAAS,CAAC,CAAG,EAAY,IAAA,GAEzD,SAAU,GAAqB,SAC/B,QAAS,EACT,CAAA,CAGN,IAAM,EAAgB,EAEtB,OAAO,EAAA,EAAA,KADK,IAAkB,YAAc,EAAgB,EACrD,CAAK,GAAI,WAAgB,EAAoB,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ResolvedCurrencyProps } from "../../components/variables/Currency.shared.js";
|
|
2
|
+
import { ResolvedDateTimeProps } from "../../components/variables/DateTime.shared.js";
|
|
3
|
+
import { ResolvedNumProps } from "../../components/variables/Num.shared.js";
|
|
4
|
+
import { ResolvedRelativeTimeProps } from "../../components/variables/RelativeTime.shared.js";
|
|
5
|
+
import { RenderVariable } from "../types.js";
|
|
6
|
+
import { ReactNode } from "react";
|
|
7
|
+
|
|
8
|
+
//#region src/utils/rendering/createRenderVariable.d.ts
|
|
9
|
+
type RenderableNode = ReactNode | Promise<ReactNode>;
|
|
10
|
+
type VariableComponents = {
|
|
11
|
+
Currency: (props: ResolvedCurrencyProps) => RenderableNode;
|
|
12
|
+
GtInternalCurrency: (props: ResolvedCurrencyProps) => RenderableNode;
|
|
13
|
+
DateTime: (props: ResolvedDateTimeProps) => RenderableNode;
|
|
14
|
+
GtInternalDateTime: (props: ResolvedDateTimeProps) => RenderableNode;
|
|
15
|
+
Num: (props: ResolvedNumProps) => RenderableNode;
|
|
16
|
+
GtInternalNum: (props: ResolvedNumProps) => RenderableNode;
|
|
17
|
+
RelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;
|
|
18
|
+
GtInternalRelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;
|
|
19
|
+
Var: (props: {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
name?: string;
|
|
22
|
+
_locale: string;
|
|
23
|
+
_enableI18n: boolean;
|
|
24
|
+
}) => RenderableNode;
|
|
25
|
+
GtInternalVar: (props: {
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
name?: string;
|
|
28
|
+
_locale: string;
|
|
29
|
+
_enableI18n: boolean;
|
|
30
|
+
}) => RenderableNode;
|
|
31
|
+
};
|
|
32
|
+
declare function createRenderVariable({
|
|
33
|
+
Currency: GtExternalCurrency,
|
|
34
|
+
GtInternalCurrency,
|
|
35
|
+
DateTime: GtExternalDateTime,
|
|
36
|
+
GtInternalDateTime,
|
|
37
|
+
Num: GtExternalNum,
|
|
38
|
+
GtInternalNum,
|
|
39
|
+
RelativeTime: GtExternalRelativeTime,
|
|
40
|
+
GtInternalRelativeTime,
|
|
41
|
+
Var: GtExternalVar,
|
|
42
|
+
GtInternalVar
|
|
43
|
+
}: VariableComponents): RenderVariable;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { type VariableComponents, createRenderVariable };
|
|
46
|
+
//# sourceMappingURL=createRenderVariable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderVariable.d.ts","names":[],"sources":["../../../src/utils/rendering/createRenderVariable.tsx"],"mappings":";;;;;;;;KAcK,cAAA,GAAiB,SAAA,GAAY,OAAA,CAAQ,SAAA;AAAA,KAErC,kBAAA;EACH,QAAA,GAAW,KAAA,EAAO,qBAAA,KAA0B,cAAA;EAC5C,kBAAA,GAAqB,KAAA,EAAO,qBAAA,KAA0B,cAAA;EACtD,QAAA,GAAW,KAAA,EAAO,qBAAA,KAA0B,cAAA;EAC5C,kBAAA,GAAqB,KAAA,EAAO,qBAAA,KAA0B,cAAA;EACtD,GAAA,GAAM,KAAA,EAAO,gBAAA,KAAqB,cAAA;EAClC,aAAA,GAAgB,KAAA,EAAO,gBAAA,KAAqB,cAAA;EAC5C,YAAA,GAAe,KAAA,EAAO,yBAAA,KAA8B,cAAA;EACpD,sBAAA,GAAyB,KAAA,EAAO,yBAAA,KAA8B,cAAA;EAC9D,GAAA,GAAM,KAAA;IACJ,QAAA,EAAU,SAAA;IACV,IAAA;IACA,OAAA;IACA,WAAA;EAAA,MACI,cAAA;EACN,aAAA,GAAgB,KAAA;IACd,QAAA,EAAU,SAAA;IACV,IAAA;IACA,OAAA;IACA,WAAA;EAAA,MACI,cAAA;AAAA;AAAA,iBAGC,oBAAA,CAAA;EACP,QAAA,EAAU,kBAAA;EACV,kBAAA;EACA,QAAA,EAAU,kBAAA;EACV,kBAAA;EACA,GAAA,EAAK,aAAA;EACL,aAAA;EACA,YAAA,EAAc,sBAAA;EACd,sBAAA;EACA,GAAA,EAAK,aAAA;EACL;AAAA,GACC,kBAAA,GAAqB,cAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{libraryDefaultLocale as e}from"generaltranslation/internal";import{jsx as t}from"react/jsx-runtime";function n({Currency:n,GtInternalCurrency:r,DateTime:i,GtInternalDateTime:a,Num:o,GtInternalNum:s,RelativeTime:c,GtInternalRelativeTime:l,Var:u,GtInternalVar:d}){return function({variableType:f,variableValue:p,variableOptions:m,locales:h,enableI18n:g,injectionType:_}){let v={_locale:h[0]??e,_enableI18n:g};if(f===`n`){let e=_===`automatic`?o:s,n=m;return t(e,{...v,options:n,children:p})}if(f===`d`){let e=_===`automatic`?i:a,n=m;return t(e,{...v,options:n,children:p})}if(f===`c`){let e=_===`automatic`?n:r,i=m;return t(e,{...v,options:i,children:p})}if(f===`rt`){let e=_===`automatic`?c:l,n=m;if(typeof p==`number`&&n?.unit)return t(e,{...v,value:p,unit:n.unit,baseDate:n?.baseDate,options:n});let r=p instanceof Date?p:typeof p==`string`||typeof p==`number`?new Date(p):void 0;return t(e,{...v,date:r&&!isNaN(r.getTime())?r:void 0,baseDate:n?.baseDate,options:n})}let y=p;return t(_===`automatic`?d:u,{...v,children:y})}}export{n as createRenderVariable};
|
|
2
|
+
//# sourceMappingURL=createRenderVariable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRenderVariable.mjs","names":[],"sources":["../../../src/utils/rendering/createRenderVariable.tsx"],"sourcesContent":["import type { ResolvedCurrencyProps } from '../../components/variables/Currency.shared';\nimport type { ResolvedDateTimeProps } from '../../components/variables/DateTime.shared';\nimport type { ResolvedNumProps } from '../../components/variables/Num.shared';\nimport type { ResolvedRelativeTimeProps } from '../../components/variables/RelativeTime.shared';\nimport type { RelativeTimeFormatOptions, RenderVariable } from '../types';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\nimport { ReactNode } from 'react';\n\n// Factory shared by the hook-based and RSC variable renderers: the branching\n// logic is written once and the concrete components are injected, so the RSC\n// renderer never statically imports the hook-based variable components. This\n// module must stay free of hook/context imports so it can be reached from the\n// components-rsc entrypoint.\n\ntype RenderableNode = ReactNode | Promise<ReactNode>;\n\ntype VariableComponents = {\n Currency: (props: ResolvedCurrencyProps) => RenderableNode;\n GtInternalCurrency: (props: ResolvedCurrencyProps) => RenderableNode;\n DateTime: (props: ResolvedDateTimeProps) => RenderableNode;\n GtInternalDateTime: (props: ResolvedDateTimeProps) => RenderableNode;\n Num: (props: ResolvedNumProps) => RenderableNode;\n GtInternalNum: (props: ResolvedNumProps) => RenderableNode;\n RelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;\n GtInternalRelativeTime: (props: ResolvedRelativeTimeProps) => RenderableNode;\n Var: (props: {\n children: ReactNode;\n name?: string;\n _locale: string;\n _enableI18n: boolean;\n }) => RenderableNode;\n GtInternalVar: (props: {\n children: ReactNode;\n name?: string;\n _locale: string;\n _enableI18n: boolean;\n }) => RenderableNode;\n};\n\nfunction createRenderVariable({\n Currency: GtExternalCurrency,\n GtInternalCurrency,\n DateTime: GtExternalDateTime,\n GtInternalDateTime,\n Num: GtExternalNum,\n GtInternalNum,\n RelativeTime: GtExternalRelativeTime,\n GtInternalRelativeTime,\n Var: GtExternalVar,\n GtInternalVar,\n}: VariableComponents): RenderVariable {\n return function renderVariable({\n variableType,\n variableValue,\n variableOptions,\n locales,\n enableI18n,\n injectionType,\n }) {\n const locale = locales[0] ?? libraryDefaultLocale;\n const internalProps = {\n _locale: locale,\n _enableI18n: enableI18n,\n };\n\n if (variableType === 'n') {\n const Num = injectionType === 'automatic' ? GtExternalNum : GtInternalNum;\n const numOptions = variableOptions as\n | Intl.NumberFormatOptions\n | undefined;\n return (\n <Num {...internalProps} options={numOptions}>\n {variableValue as number | string | null | undefined}\n </Num>\n );\n }\n if (variableType === 'd') {\n const DateTime =\n injectionType === 'automatic' ? GtExternalDateTime : GtInternalDateTime;\n const dateTimeOptions = variableOptions as\n | Intl.DateTimeFormatOptions\n | undefined;\n return (\n <DateTime {...internalProps} options={dateTimeOptions}>\n {variableValue as Date | null | undefined}\n </DateTime>\n );\n }\n if (variableType === 'c') {\n const Currency =\n injectionType === 'automatic' ? GtExternalCurrency : GtInternalCurrency;\n const currencyOptions = variableOptions as\n | Intl.NumberFormatOptions\n | undefined;\n return (\n <Currency {...internalProps} options={currencyOptions}>\n {variableValue as number | string | null | undefined}\n </Currency>\n );\n }\n if (variableType === 'rt') {\n const RelativeTime =\n injectionType === 'automatic'\n ? GtExternalRelativeTime\n : GtInternalRelativeTime;\n const relativeTimeOptions = variableOptions as\n | RelativeTimeFormatOptions\n | undefined;\n if (typeof variableValue === 'number' && relativeTimeOptions?.unit) {\n return (\n <RelativeTime\n {...internalProps}\n value={variableValue}\n unit={relativeTimeOptions.unit}\n baseDate={relativeTimeOptions?.baseDate}\n options={relativeTimeOptions}\n />\n );\n }\n const dateValue =\n variableValue instanceof Date\n ? variableValue\n : typeof variableValue === 'string' ||\n typeof variableValue === 'number'\n ? new Date(variableValue)\n : undefined;\n return (\n <RelativeTime\n {...internalProps}\n date={\n dateValue && !isNaN(dateValue.getTime()) ? dateValue : undefined\n }\n baseDate={relativeTimeOptions?.baseDate}\n options={relativeTimeOptions}\n />\n );\n }\n const renderedValue = variableValue as ReactNode;\n const Var = injectionType === 'automatic' ? GtInternalVar : GtExternalVar;\n return <Var {...internalProps}>{renderedValue}</Var>;\n };\n}\n\n// ===== Exports ===== //\n\nexport { createRenderVariable };\nexport type { VariableComponents };\n"],"mappings":"2GAuCA,SAAS,EAAqB,CAC5B,SAAU,EACV,qBACA,SAAU,EACV,qBACA,IAAK,EACL,gBACA,aAAc,EACd,yBACA,IAAK,EACL,iBACqC,CACrC,OAAO,SAAwB,CAC7B,eACA,gBACA,kBACA,UACA,aACA,iBACC,CAED,IAAM,EAAgB,CACpB,QAFa,EAAQ,IAAM,EAG3B,YAAa,EACd,CAED,GAAI,IAAiB,IAAK,CACxB,IAAM,EAAM,IAAkB,YAAc,EAAgB,EACtD,EAAa,EAGnB,OACE,EAAC,EAAD,CAAK,GAAI,EAAe,QAAS,WAC9B,EACG,CAAA,CAGV,GAAI,IAAiB,IAAK,CACxB,IAAM,EACJ,IAAkB,YAAc,EAAqB,EACjD,EAAkB,EAGxB,OACE,EAAC,EAAD,CAAU,GAAI,EAAe,QAAS,WACnC,EACQ,CAAA,CAGf,GAAI,IAAiB,IAAK,CACxB,IAAM,EACJ,IAAkB,YAAc,EAAqB,EACjD,EAAkB,EAGxB,OACE,EAAC,EAAD,CAAU,GAAI,EAAe,QAAS,WACnC,EACQ,CAAA,CAGf,GAAI,IAAiB,KAAM,CACzB,IAAM,EACJ,IAAkB,YACd,EACA,EACA,EAAsB,EAG5B,GAAI,OAAO,GAAkB,UAAY,GAAqB,KAC5D,OACE,EAAC,EAAD,CACE,GAAI,EACJ,MAAO,EACP,KAAM,EAAoB,KAC1B,SAAU,GAAqB,SAC/B,QAAS,EACT,CAAA,CAGN,IAAM,EACJ,aAAyB,KACrB,EACA,OAAO,GAAkB,UACvB,OAAO,GAAkB,SACzB,IAAI,KAAK,EAAc,CACvB,IAAA,GACR,OACE,EAAC,EAAD,CACE,GAAI,EACJ,KACE,GAAa,CAAC,MAAM,EAAU,SAAS,CAAC,CAAG,EAAY,IAAA,GAEzD,SAAU,GAAqB,SAC/B,QAAS,EACT,CAAA,CAGN,IAAM,EAAgB,EAEtB,OAAO,EADK,IAAkB,YAAc,EAAgB,EACrD,CAAK,GAAI,WAAgB,EAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultRenderSettings.cjs","names":[],"sources":["../../../src/utils/rendering/getDefaultRenderSettings.ts"],"sourcesContent":["import type { RenderMethod } from '../types';\n\nexport const getDefaultRenderSettings = (\n environment: 'development' | 'production' | 'test' = 'production'\n): {\n method: RenderMethod;\n timeout: number;\n} => ({\n method: 'default',\n timeout: environment === 'development' ? 8000 : 12000,\n});\n"],"mappings":"AAEA,MAAa,GACX,EAAqD,gBAIjD,CACJ,OAAQ,UACR,QAAS,IAAgB,cAAgB,IAAO,KACjD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RenderMethod } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/rendering/getDefaultRenderSettings.d.ts
|
|
4
|
+
declare const getDefaultRenderSettings: (environment?: "development" | "production" | "test") => {
|
|
5
|
+
method: RenderMethod;
|
|
6
|
+
timeout: number;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { getDefaultRenderSettings };
|
|
10
|
+
//# sourceMappingURL=getDefaultRenderSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultRenderSettings.d.ts","names":[],"sources":["../../../src/utils/rendering/getDefaultRenderSettings.ts"],"mappings":";;;cAEa,wBAAA,GACX,WAAA;EAEA,MAAA,EAAQ,YAAA;EACR,OAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultRenderSettings.mjs","names":[],"sources":["../../../src/utils/rendering/getDefaultRenderSettings.ts"],"sourcesContent":["import type { RenderMethod } from '../types';\n\nexport const getDefaultRenderSettings = (\n environment: 'development' | 'production' | 'test' = 'production'\n): {\n method: RenderMethod;\n timeout: number;\n} => ({\n method: 'default',\n timeout: environment === 'development' ? 8000 : 12000,\n});\n"],"mappings":"AAEA,MAAa,GACX,EAAqD,gBAIjD,CACJ,OAAQ,UACR,QAAS,IAAgB,cAAgB,IAAO,KACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGTTag.cjs","names":[],"sources":["../../../src/utils/rendering/getGTTag.ts"],"sourcesContent":["import { TaggedElement, GTTag } from '../types';\n\nexport function getGTTag(child: TaggedElement): GTTag | null {\n if (child && child.props && child.props['data-_gt']) {\n return child.props['data-_gt'];\n }\n return null;\n}\n"],"mappings":"AAEA,SAAgB,EAAS,EAAoC,CAI3D,OAHI,GAAS,EAAM,OAAS,EAAM,MAAM,YAC/B,EAAM,MAAM,YAEd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGTTag.mjs","names":[],"sources":["../../../src/utils/rendering/getGTTag.ts"],"sourcesContent":["import { TaggedElement, GTTag } from '../types';\n\nexport function getGTTag(child: TaggedElement): GTTag | null {\n if (child && child.props && child.props['data-_gt']) {\n return child.props['data-_gt'];\n }\n return null;\n}\n"],"mappings":"AAEA,SAAgB,EAAS,EAAoC,CAI3D,OAHI,GAAS,EAAM,OAAS,EAAM,MAAM,YAC/B,EAAM,MAAM,YAEd"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../variables/_getVariableProps.cjs`),n=require(`./getGTTag.cjs`),r=require(`../plurals/getPluralBranch.cjs`);let i=require(`generaltranslation/internal`),a=require(`react`);a=e.__toESM(a);function o({renderVariable:e}){return function({children:o,defaultLocale:s=i.libraryDefaultLocale,enableI18n:c}){let l=i=>{let o=n.getGTTag(i);if(t.isVariableElementProps(i.props)){let{variableType:n,variableValue:r,variableOptions:a,injectionType:o}=t.getVariableProps(i.props);return e({variableType:n,variableValue:r,variableOptions:a,locales:[s],enableI18n:c,injectionType:o})}if(o?.transformation===`plural`){let e=o.branches||{};return typeof i.props.n==`number`?d(r.getPluralBranch(i.props.n,[s],e)??i.props.children):i.props.children==null?null:d(i.props.children)}if(o?.transformation===`branch`){let{children:e,branch:t}=i.props,n=o.branches||{},r=t==null||t===``?void 0:t.toString();return d(r&&n[r]!==void 0?n[r]:e)}return o?.transformation===`fragment`?a.default.createElement(a.default.Fragment,{key:i.props.key,children:d(i.props.children)}):i.props.children?a.default.cloneElement(i,{...i.props,"data-_gt":void 0,children:d(i.props.children)}):a.default.cloneElement(i,{...i.props,"data-_gt":void 0})},u=e=>a.default.isValidElement(e)?l(e):e,d=e=>Array.isArray(e)?a.default.Children.map(e,u):u(e);return d(o)}}exports.createRenderDefaultChildren=o;
|
|
2
|
+
//# sourceMappingURL=renderDefaultChildren.shared.cjs.map
|