@chayns-components/translation 5.0.0-beta.1137 → 5.0.0-beta.1158

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AdaptiveTranslation.js","names":["_react","_interopRequireDefault","require","_clsx","_useAdaptiveTranslation","e","__esModule","default","AdaptiveTranslation","children","to","from","tagName","TagName","style","className","text","isLoading","isFetching","useAdaptiveTranslation","createElement","clsx","opacity","transition","_default","exports"],"sources":["../../../src/components/AdaptiveTranslation.tsx"],"sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport { useAdaptiveTranslation } from '../hooks/useAdaptiveTranslation';\nimport { TranslationProps } from '../types/translation';\n\nconst AdaptiveTranslation = ({\n children,\n to,\n from,\n tagName: TagName = 'span',\n style,\n className,\n}: TranslationProps) => {\n const { text, isLoading, isFetching } = useAdaptiveTranslation(children, { from, to });\n\n return (\n <TagName\n className={clsx('notranslate', className)}\n style={{\n // eslint-disable-next-line no-nested-ternary\n opacity: isLoading ? 0 : isFetching ? 0.5 : 1,\n transition: 'opacity 0.5s ease',\n ...style,\n }}\n >\n {text}\n </TagName>\n );\n};\nexport default AdaptiveTranslation;\n"],"mappings":";;;;;;AAAC,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACD,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAAyE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGzE,MAAMG,mBAAmB,GAAGA,CAAC;EACzBC,QAAQ;EACRC,EAAE;EACFC,IAAI;EACJC,OAAO,EAAEC,OAAO,GAAG,MAAM;EACzBC,KAAK;EACLC;AACc,CAAC,KAAK;EACpB,MAAM;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAG,IAAAC,8CAAsB,EAACV,QAAQ,EAAE;IAAEE,IAAI;IAAED;EAAG,CAAC,CAAC;EAEtF,oBACIV,MAAA,CAAAO,OAAA,CAAAa,aAAA,CAACP,OAAO;IACJE,SAAS,EAAE,IAAAM,aAAI,EAAC,aAAa,EAAEN,SAAS,CAAE;IAC1CD,KAAK,EAAE;MACH;MACAQ,OAAO,EAAEL,SAAS,GAAG,CAAC,GAAGC,UAAU,GAAG,GAAG,GAAG,CAAC;MAC7CK,UAAU,EAAE,mBAAmB;MAC/B,GAAGT;IACP;EAAE,GAEDE,IACI,CAAC;AAElB,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GACaC,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"AdaptiveTranslation.js","names":["_react","_interopRequireDefault","require","_clsx","_useAdaptiveTranslation","e","__esModule","default","AdaptiveTranslation","children","to","from","tagName","TagName","style","className","text","isLoading","isFetching","useAdaptiveTranslation","createElement","clsx","opacity","transition","_default","exports"],"sources":["../../../src/components/AdaptiveTranslation.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\nimport clsx from 'clsx';\nimport { useAdaptiveTranslation } from '../hooks/useAdaptiveTranslation';\nimport { Language } from 'chayns-api';\n\ntype AdaptiveTranslationProps = {\n /**\n * The Text that should be translated.\n */\n children: string;\n /**\n * The className of the element.\n */\n className?: string;\n /**\n * The language from which the text should be translated.\n */\n from?: Exclude<Language, Language.Unknown>;\n /**\n * Optional styles of the HTML element.\n */\n style?: CSSProperties;\n /**\n * The HTML tag of the children.\n */\n tagName?: keyof HTMLElementTagNameMap;\n /**\n * The language to which the text should be translated.\n */\n to?: Exclude<Language, Language.Unknown>;\n};\n\nconst AdaptiveTranslation = ({\n children,\n to,\n from,\n tagName: TagName = 'span',\n style,\n className,\n}: AdaptiveTranslationProps) => {\n const { text, isLoading, isFetching } = useAdaptiveTranslation(children, { from, to });\n\n return (\n <TagName\n className={clsx('notranslate', className)}\n style={{\n // eslint-disable-next-line no-nested-ternary\n opacity: isLoading ? 0 : isFetching ? 0.5 : 1,\n transition: 'opacity 0.5s ease',\n ...style,\n }}\n >\n {text}\n </TagName>\n );\n};\nexport default AdaptiveTranslation;\n"],"mappings":";;;;;;AAAC,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACD,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAAyE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA8BzE,MAAMG,mBAAmB,GAAGA,CAAC;EACzBC,QAAQ;EACRC,EAAE;EACFC,IAAI;EACJC,OAAO,EAAEC,OAAO,GAAG,MAAM;EACzBC,KAAK;EACLC;AACsB,CAAC,KAAK;EAC5B,MAAM;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAG,IAAAC,8CAAsB,EAACV,QAAQ,EAAE;IAAEE,IAAI;IAAED;EAAG,CAAC,CAAC;EAEtF,oBACIV,MAAA,CAAAO,OAAA,CAAAa,aAAA,CAACP,OAAO;IACJE,SAAS,EAAE,IAAAM,aAAI,EAAC,aAAa,EAAEN,SAAS,CAAE;IAC1CD,KAAK,EAAE;MACH;MACAQ,OAAO,EAAEL,SAAS,GAAG,CAAC,GAAGC,UAAU,GAAG,GAAG,GAAG,CAAC;MAC7CK,UAAU,EAAE,mBAAmB;MAC/B,GAAGT;IACP;EAAE,GAEDE,IACI,CAAC;AAElB,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GACaC,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationOptionsProvider.js","names":["_react","_interopRequireWildcard","require","_translationOptionsContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TranslationOptionsProvider","from","to","children","value","useMemo","createElement","TranslationOptionsContext","Provider","exports","displayName","_default"],"sources":["../../../src/components/TranslationOptionsProvider.tsx"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React, { useMemo } from 'react';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\n\ntype TranslationOptionsProviderProps = {\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n children: React.ReactNode;\n};\n\nexport const TranslationOptionsProvider = ({\n from,\n to,\n children,\n}: TranslationOptionsProviderProps) => {\n const value = useMemo(() => ({ from, to }), [from, to]);\n\n return (\n <TranslationOptionsContext.Provider value={value}>\n {children}\n </TranslationOptionsContext.Provider>\n );\n};\n\nTranslationOptionsProvider.displayName = 'TranslationOptionsProvider';\n\nexport default TranslationOptionsProvider;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAAmF,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAQ5E,MAAMkB,0BAA0B,GAAGA,CAAC;EACvCC,IAAI;EACJC,EAAE;EACFC;AAC6B,CAAC,KAAK;EACnC,MAAMC,KAAK,GAAG,IAAAC,cAAO,EAAC,OAAO;IAAEJ,IAAI;IAAEC;EAAG,CAAC,CAAC,EAAE,CAACD,IAAI,EAAEC,EAAE,CAAC,CAAC;EAEvD,oBACIzB,MAAA,CAAAc,OAAA,CAAAe,aAAA,CAAC1B,0BAAA,CAAA2B,yBAAyB,CAACC,QAAQ;IAACJ,KAAK,EAAEA;EAAM,GAC5CD,QAC+B,CAAC;AAE7C,CAAC;AAACM,OAAA,CAAAT,0BAAA,GAAAA,0BAAA;AAEFA,0BAA0B,CAACU,WAAW,GAAG,4BAA4B;AAAC,IAAAC,QAAA,GAAAF,OAAA,CAAAlB,OAAA,GAEvDS,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"TranslationOptionsProvider.js","names":["_react","_interopRequireWildcard","require","_translationOptionsContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TranslationOptionsProvider","from","to","children","value","useMemo","createElement","TranslationOptionsContext","Provider","exports","displayName","_default"],"sources":["../../../src/components/TranslationOptionsProvider.tsx"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React, { ReactNode, useMemo } from 'react';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\n\ntype TranslationOptionsProviderProps = {\n /**\n * The content that should benefit from the options.\n */\n children: ReactNode;\n /**\n * The language from which the texts should be translated.\n */\n from: Exclude<Language, Language.Unknown>;\n /**\n * The language to which the texts should be translated.\n */\n to: Exclude<Language, Language.Unknown>;\n};\n\nexport const TranslationOptionsProvider = ({\n from,\n to,\n children,\n}: TranslationOptionsProviderProps) => {\n const value = useMemo(() => ({ from, to }), [from, to]);\n\n return (\n <TranslationOptionsContext.Provider value={value}>\n {children}\n </TranslationOptionsContext.Provider>\n );\n};\n\nTranslationOptionsProvider.displayName = 'TranslationOptionsProvider';\n\nexport default TranslationOptionsProvider;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAAmF,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAiB5E,MAAMkB,0BAA0B,GAAGA,CAAC;EACvCC,IAAI;EACJC,EAAE;EACFC;AAC6B,CAAC,KAAK;EACnC,MAAMC,KAAK,GAAG,IAAAC,cAAO,EAAC,OAAO;IAAEJ,IAAI;IAAEC;EAAG,CAAC,CAAC,EAAE,CAACD,IAAI,EAAEC,EAAE,CAAC,CAAC;EAEvD,oBACIzB,MAAA,CAAAc,OAAA,CAAAe,aAAA,CAAC1B,0BAAA,CAAA2B,yBAAyB,CAACC,QAAQ;IAACJ,KAAK,EAAEA;EAAM,GAC5CD,QAC+B,CAAC;AAE7C,CAAC;AAACM,OAAA,CAAAT,0BAAA,GAAAA,0BAAA;AAEFA,0BAA0B,CAACU,WAAW,GAAG,4BAA4B;AAAC,IAAAC,QAAA,GAAAF,OAAA,CAAAlB,OAAA,GAEvDS,0BAA0B","ignoreList":[]}
@@ -5,9 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.TranslationOptionsContext = void 0;
7
7
  var _chaynsApi = require("chayns-api");
8
- var _react = _interopRequireDefault(require("react"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const TranslationOptionsContext = exports.TranslationOptionsContext = /*#__PURE__*/_react.default.createContext({
8
+ var _react = require("react");
9
+ const TranslationOptionsContext = exports.TranslationOptionsContext = /*#__PURE__*/(0, _react.createContext)({
11
10
  from: _chaynsApi.Language.German,
12
11
  to: _chaynsApi.Language.German
13
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"translationOptionsContext.js","names":["_chaynsApi","require","_react","_interopRequireDefault","e","__esModule","default","TranslationOptionsContext","exports","React","createContext","from","Language","German","to"],"sources":["../../../src/constants/translationOptionsContext.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React from 'react';\n\nexport const TranslationOptionsContext = React.createContext<{\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n}>({\n from: Language.German,\n to: Language.German,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnB,MAAMG,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,gBAAGE,cAAK,CAACC,aAAa,CAGzD;EACCC,IAAI,EAAEC,mBAAQ,CAACC,MAAM;EACrBC,EAAE,EAAEF,mBAAQ,CAACC;AACjB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"translationOptionsContext.js","names":["_chaynsApi","require","_react","TranslationOptionsContext","exports","createContext","from","Language","German","to"],"sources":["../../../src/constants/translationOptionsContext.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport { createContext } from 'react';\n\nexport const TranslationOptionsContext = createContext<{\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n}>({\n from: Language.German,\n to: Language.German,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,gBAAG,IAAAE,oBAAa,EAGnD;EACCC,IAAI,EAAEC,mBAAQ,CAACC,MAAM;EACrBC,EAAE,EAAEF,mBAAQ,CAACC;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAdaptiveTranslation.js","names":["_react","require","_translationOptionsContext","_translationHandler","_interopRequireDefault","e","__esModule","default","useAdaptiveTranslation","originalText","to","from","options","useContext","TranslationOptionsContext","toLanguage","fromLanguage","shouldTranslate","useMemo","translatedText","setTranslatedText","useState","isLoading","setIsLoading","isFetching","setIsFetching","useEffect","timeoutRef","setTimeout","translationHandler","translateText","then","text","finally","clearTimeout","exports"],"sources":["../../../src/hooks/useAdaptiveTranslation.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from 'react';\nimport { Language } from 'chayns-api';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\nimport translationHandler from '../utils/translationHandler';\n\nexport const useAdaptiveTranslation = (\n originalText: string,\n {\n to,\n from,\n }: {\n to?: Exclude<Language, Language.Unknown>;\n from?: Exclude<Language, Language.Unknown>;\n } = {},\n): { text: string; isLoading: boolean; isFetching: boolean } => {\n const options = useContext(TranslationOptionsContext);\n const toLanguage = to || options.to;\n const fromLanguage = from || options.from;\n const shouldTranslate = useMemo(() => toLanguage !== fromLanguage, [fromLanguage, toLanguage]);\n const [translatedText, setTranslatedText] = useState<string>(originalText);\n const [isLoading, setIsLoading] = useState(shouldTranslate);\n const [isFetching, setIsFetching] = useState(false);\n\n useEffect(() => {\n const timeoutRef = setTimeout(() => {\n if (shouldTranslate) {\n setIsFetching(true);\n void translationHandler\n .translateText(originalText, fromLanguage, toLanguage)\n .then((text) => {\n setTranslatedText(text);\n })\n .finally(() => {\n setIsLoading(false);\n setIsFetching(false);\n });\n }\n }, 200);\n\n return () => clearTimeout(timeoutRef);\n }, [originalText, shouldTranslate, toLanguage, fromLanguage]);\n\n return useMemo(\n () => ({\n text: shouldTranslate ? translatedText : originalText,\n isFetching: shouldTranslate ? isFetching : false,\n isLoading: shouldTranslate ? isLoading : false,\n }),\n [isFetching, isLoading, originalText, shouldTranslate, translatedText],\n );\n};\n"],"mappings":";;;;;;AAAC,IAAAA,MAAA,GAAAC,OAAA;AAED,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA6D,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,sBAAsB,GAAGA,CAClCC,YAAoB,EACpB;EACIC,EAAE;EACFC;AAIJ,CAAC,GAAG,CAAC,CAAC,KACsD;EAC5D,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,oDAAyB,CAAC;EACrD,MAAMC,UAAU,GAAGL,EAAE,IAAIE,OAAO,CAACF,EAAE;EACnC,MAAMM,YAAY,GAAGL,IAAI,IAAIC,OAAO,CAACD,IAAI;EACzC,MAAMM,eAAe,GAAG,IAAAC,cAAO,EAAC,MAAMH,UAAU,KAAKC,YAAY,EAAE,CAACA,YAAY,EAAED,UAAU,CAAC,CAAC;EAC9F,MAAM,CAACI,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAASZ,YAAY,CAAC;EAC1E,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAACJ,eAAe,CAAC;EAC3D,MAAM,CAACO,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAEnD,IAAAK,gBAAS,EAAC,MAAM;IACZ,MAAMC,UAAU,GAAGC,UAAU,CAAC,MAAM;MAChC,IAAIX,eAAe,EAAE;QACjBQ,aAAa,CAAC,IAAI,CAAC;QACnB,KAAKI,2BAAkB,CAClBC,aAAa,CAACrB,YAAY,EAAEO,YAAY,EAAED,UAAU,CAAC,CACrDgB,IAAI,CAAEC,IAAI,IAAK;UACZZ,iBAAiB,CAACY,IAAI,CAAC;QAC3B,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;UACXV,YAAY,CAAC,KAAK,CAAC;UACnBE,aAAa,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC;MACV;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMS,YAAY,CAACP,UAAU,CAAC;EACzC,CAAC,EAAE,CAAClB,YAAY,EAAEQ,eAAe,EAAEF,UAAU,EAAEC,YAAY,CAAC,CAAC;EAE7D,OAAO,IAAAE,cAAO,EACV,OAAO;IACHc,IAAI,EAAEf,eAAe,GAAGE,cAAc,GAAGV,YAAY;IACrDe,UAAU,EAAEP,eAAe,GAAGO,UAAU,GAAG,KAAK;IAChDF,SAAS,EAAEL,eAAe,GAAGK,SAAS,GAAG;EAC7C,CAAC,CAAC,EACF,CAACE,UAAU,EAAEF,SAAS,EAAEb,YAAY,EAAEQ,eAAe,EAAEE,cAAc,CACzE,CAAC;AACL,CAAC;AAACgB,OAAA,CAAA3B,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"file":"useAdaptiveTranslation.js","names":["_react","require","_translationOptionsContext","_translationHandler","_interopRequireDefault","e","__esModule","default","useAdaptiveTranslation","originalText","to","from","options","useContext","TranslationOptionsContext","toLanguage","fromLanguage","shouldTranslate","useMemo","translatedText","setTranslatedText","useState","isLoading","setIsLoading","isFetching","setIsFetching","useEffect","timeoutRef","setTimeout","translationHandler","translateText","then","text","finally","clearTimeout","exports"],"sources":["../../../src/hooks/useAdaptiveTranslation.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from 'react';\nimport { Language } from 'chayns-api';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\nimport translationHandler from '../utils/translationHandler';\n\ninterface UseAdaptiveTranslationOptions {\n /**\n * The language from which the text should be translated.\n */\n from?: Exclude<Language, Language.Unknown>;\n /**\n * The language to which the text should be translated.\n */\n to?: Exclude<Language, Language.Unknown>;\n}\n\nexport const useAdaptiveTranslation = (\n originalText: string,\n { to, from }: UseAdaptiveTranslationOptions = {},\n): { text: string; isLoading: boolean; isFetching: boolean } => {\n const options = useContext(TranslationOptionsContext);\n const toLanguage = to || options.to;\n const fromLanguage = from || options.from;\n const shouldTranslate = useMemo(() => toLanguage !== fromLanguage, [fromLanguage, toLanguage]);\n const [translatedText, setTranslatedText] = useState<string>(originalText);\n const [isLoading, setIsLoading] = useState(shouldTranslate);\n const [isFetching, setIsFetching] = useState(false);\n\n useEffect(() => {\n const timeoutRef = setTimeout(() => {\n if (shouldTranslate) {\n setIsFetching(true);\n void translationHandler\n .translateText(originalText, fromLanguage, toLanguage)\n .then((text) => {\n setTranslatedText(text);\n })\n .finally(() => {\n setIsLoading(false);\n setIsFetching(false);\n });\n }\n }, 200);\n\n return () => clearTimeout(timeoutRef);\n }, [originalText, shouldTranslate, toLanguage, fromLanguage]);\n\n return useMemo(\n () => ({\n text: shouldTranslate ? translatedText : originalText,\n isFetching: shouldTranslate ? isFetching : false,\n isLoading: shouldTranslate ? isLoading : false,\n }),\n [isFetching, isLoading, originalText, shouldTranslate, translatedText],\n );\n};\n"],"mappings":";;;;;;AAAC,IAAAA,MAAA,GAAAC,OAAA;AAED,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA6D,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAatD,MAAMG,sBAAsB,GAAGA,CAClCC,YAAoB,EACpB;EAAEC,EAAE;EAAEC;AAAoC,CAAC,GAAG,CAAC,CAAC,KACY;EAC5D,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,oDAAyB,CAAC;EACrD,MAAMC,UAAU,GAAGL,EAAE,IAAIE,OAAO,CAACF,EAAE;EACnC,MAAMM,YAAY,GAAGL,IAAI,IAAIC,OAAO,CAACD,IAAI;EACzC,MAAMM,eAAe,GAAG,IAAAC,cAAO,EAAC,MAAMH,UAAU,KAAKC,YAAY,EAAE,CAACA,YAAY,EAAED,UAAU,CAAC,CAAC;EAC9F,MAAM,CAACI,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAASZ,YAAY,CAAC;EAC1E,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAACJ,eAAe,CAAC;EAC3D,MAAM,CAACO,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAEnD,IAAAK,gBAAS,EAAC,MAAM;IACZ,MAAMC,UAAU,GAAGC,UAAU,CAAC,MAAM;MAChC,IAAIX,eAAe,EAAE;QACjBQ,aAAa,CAAC,IAAI,CAAC;QACnB,KAAKI,2BAAkB,CAClBC,aAAa,CAACrB,YAAY,EAAEO,YAAY,EAAED,UAAU,CAAC,CACrDgB,IAAI,CAAEC,IAAI,IAAK;UACZZ,iBAAiB,CAACY,IAAI,CAAC;QAC3B,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;UACXV,YAAY,CAAC,KAAK,CAAC;UACnBE,aAAa,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC;MACV;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMS,YAAY,CAACP,UAAU,CAAC;EACzC,CAAC,EAAE,CAAClB,YAAY,EAAEQ,eAAe,EAAEF,UAAU,EAAEC,YAAY,CAAC,CAAC;EAE7D,OAAO,IAAAE,cAAO,EACV,OAAO;IACHc,IAAI,EAAEf,eAAe,GAAGE,cAAc,GAAGV,YAAY;IACrDe,UAAU,EAAEP,eAAe,GAAGO,UAAU,GAAG,KAAK;IAChDF,SAAS,EAAEL,eAAe,GAAGK,SAAS,GAAG;EAC7C,CAAC,CAAC,EACF,CAACE,UAAU,EAAEF,SAAS,EAAEb,YAAY,EAAEQ,eAAe,EAAEE,cAAc,CACzE,CAAC;AACL,CAAC;AAACgB,OAAA,CAAA3B,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","names":[],"sources":["../../../src/types/translation.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React from 'react';\nimport { Deferred } from '../utils/deferred';\n\nexport interface TranslationProps {\n children: string;\n to?: Exclude<Language, Language.Unknown>;\n from?: Exclude<Language, Language.Unknown>;\n tagName?: keyof HTMLElementTagNameMap;\n style?: React.CSSProperties;\n className?: string;\n}\n\ninterface BaseTranslation {\n text: string;\n to: string;\n from: string;\n}\n\nexport interface QueuedItem extends BaseTranslation {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationBatchItem extends TranslationRequest {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationRequest extends BaseTranslation {\n id: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"translation.js","names":[],"sources":["../../../src/types/translation.ts"],"sourcesContent":["import { Deferred } from '../utils/deferred';\n\ninterface BaseTranslation {\n text: string;\n to: string;\n from: string;\n}\n\nexport interface QueuedItem extends BaseTranslation {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationBatchItem extends TranslationRequest {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationRequest extends BaseTranslation {\n id: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AdaptiveTranslation.js","names":["React","clsx","useAdaptiveTranslation","AdaptiveTranslation","_ref","children","to","from","tagName","TagName","style","className","text","isLoading","isFetching","createElement","opacity","transition"],"sources":["../../../src/components/AdaptiveTranslation.tsx"],"sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport { useAdaptiveTranslation } from '../hooks/useAdaptiveTranslation';\nimport { TranslationProps } from '../types/translation';\n\nconst AdaptiveTranslation = ({\n children,\n to,\n from,\n tagName: TagName = 'span',\n style,\n className,\n}: TranslationProps) => {\n const { text, isLoading, isFetching } = useAdaptiveTranslation(children, { from, to });\n\n return (\n <TagName\n className={clsx('notranslate', className)}\n style={{\n // eslint-disable-next-line no-nested-ternary\n opacity: isLoading ? 0 : isFetching ? 0.5 : 1,\n transition: 'opacity 0.5s ease',\n ...style,\n }}\n >\n {text}\n </TagName>\n );\n};\nexport default AdaptiveTranslation;\n"],"mappings":"AAAC,OAAOA,KAAK,MAAM,OAAO;AAC1B,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,sBAAsB,QAAQ,iCAAiC;AAGxE,MAAMC,mBAAmB,GAAGC,IAAA,IAOJ;EAAA,IAPK;IACzBC,QAAQ;IACRC,EAAE;IACFC,IAAI;IACJC,OAAO,EAAEC,OAAO,GAAG,MAAM;IACzBC,KAAK;IACLC;EACc,CAAC,GAAAP,IAAA;EACf,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGZ,sBAAsB,CAACG,QAAQ,EAAE;IAAEE,IAAI;IAAED;EAAG,CAAC,CAAC;EAEtF,oBACIN,KAAA,CAAAe,aAAA,CAACN,OAAO;IACJE,SAAS,EAAEV,IAAI,CAAC,aAAa,EAAEU,SAAS,CAAE;IAC1CD,KAAK,EAAE;MACH;MACAM,OAAO,EAAEH,SAAS,GAAG,CAAC,GAAGC,UAAU,GAAG,GAAG,GAAG,CAAC;MAC7CG,UAAU,EAAE,mBAAmB;MAC/B,GAAGP;IACP;EAAE,GAEDE,IACI,CAAC;AAElB,CAAC;AACD,eAAeT,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"AdaptiveTranslation.js","names":["React","clsx","useAdaptiveTranslation","AdaptiveTranslation","_ref","children","to","from","tagName","TagName","style","className","text","isLoading","isFetching","createElement","opacity","transition"],"sources":["../../../src/components/AdaptiveTranslation.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\nimport clsx from 'clsx';\nimport { useAdaptiveTranslation } from '../hooks/useAdaptiveTranslation';\nimport { Language } from 'chayns-api';\n\ntype AdaptiveTranslationProps = {\n /**\n * The Text that should be translated.\n */\n children: string;\n /**\n * The className of the element.\n */\n className?: string;\n /**\n * The language from which the text should be translated.\n */\n from?: Exclude<Language, Language.Unknown>;\n /**\n * Optional styles of the HTML element.\n */\n style?: CSSProperties;\n /**\n * The HTML tag of the children.\n */\n tagName?: keyof HTMLElementTagNameMap;\n /**\n * The language to which the text should be translated.\n */\n to?: Exclude<Language, Language.Unknown>;\n};\n\nconst AdaptiveTranslation = ({\n children,\n to,\n from,\n tagName: TagName = 'span',\n style,\n className,\n}: AdaptiveTranslationProps) => {\n const { text, isLoading, isFetching } = useAdaptiveTranslation(children, { from, to });\n\n return (\n <TagName\n className={clsx('notranslate', className)}\n style={{\n // eslint-disable-next-line no-nested-ternary\n opacity: isLoading ? 0 : isFetching ? 0.5 : 1,\n transition: 'opacity 0.5s ease',\n ...style,\n }}\n >\n {text}\n </TagName>\n );\n};\nexport default AdaptiveTranslation;\n"],"mappings":"AAAC,OAAOA,KAAK,MAAyB,OAAO;AAC7C,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,sBAAsB,QAAQ,iCAAiC;AA8BxE,MAAMC,mBAAmB,GAAGC,IAAA,IAOI;EAAA,IAPH;IACzBC,QAAQ;IACRC,EAAE;IACFC,IAAI;IACJC,OAAO,EAAEC,OAAO,GAAG,MAAM;IACzBC,KAAK;IACLC;EACsB,CAAC,GAAAP,IAAA;EACvB,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGZ,sBAAsB,CAACG,QAAQ,EAAE;IAAEE,IAAI;IAAED;EAAG,CAAC,CAAC;EAEtF,oBACIN,KAAA,CAAAe,aAAA,CAACN,OAAO;IACJE,SAAS,EAAEV,IAAI,CAAC,aAAa,EAAEU,SAAS,CAAE;IAC1CD,KAAK,EAAE;MACH;MACAM,OAAO,EAAEH,SAAS,GAAG,CAAC,GAAGC,UAAU,GAAG,GAAG,GAAG,CAAC;MAC7CG,UAAU,EAAE,mBAAmB;MAC/B,GAAGP;IACP;EAAE,GAEDE,IACI,CAAC;AAElB,CAAC;AACD,eAAeT,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationOptionsProvider.js","names":["React","useMemo","TranslationOptionsContext","TranslationOptionsProvider","_ref","from","to","children","value","createElement","Provider","displayName"],"sources":["../../../src/components/TranslationOptionsProvider.tsx"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React, { useMemo } from 'react';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\n\ntype TranslationOptionsProviderProps = {\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n children: React.ReactNode;\n};\n\nexport const TranslationOptionsProvider = ({\n from,\n to,\n children,\n}: TranslationOptionsProviderProps) => {\n const value = useMemo(() => ({ from, to }), [from, to]);\n\n return (\n <TranslationOptionsContext.Provider value={value}>\n {children}\n </TranslationOptionsContext.Provider>\n );\n};\n\nTranslationOptionsProvider.displayName = 'TranslationOptionsProvider';\n\nexport default TranslationOptionsProvider;\n"],"mappings":"AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,yBAAyB,QAAQ,wCAAwC;AAQlF,OAAO,MAAMC,0BAA0B,GAAGC,IAAA,IAIH;EAAA,IAJI;IACvCC,IAAI;IACJC,EAAE;IACFC;EAC6B,CAAC,GAAAH,IAAA;EAC9B,MAAMI,KAAK,GAAGP,OAAO,CAAC,OAAO;IAAEI,IAAI;IAAEC;EAAG,CAAC,CAAC,EAAE,CAACD,IAAI,EAAEC,EAAE,CAAC,CAAC;EAEvD,oBACIN,KAAA,CAAAS,aAAA,CAACP,yBAAyB,CAACQ,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAC5CD,QAC+B,CAAC;AAE7C,CAAC;AAEDJ,0BAA0B,CAACQ,WAAW,GAAG,4BAA4B;AAErE,eAAeR,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"TranslationOptionsProvider.js","names":["React","useMemo","TranslationOptionsContext","TranslationOptionsProvider","_ref","from","to","children","value","createElement","Provider","displayName"],"sources":["../../../src/components/TranslationOptionsProvider.tsx"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React, { ReactNode, useMemo } from 'react';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\n\ntype TranslationOptionsProviderProps = {\n /**\n * The content that should benefit from the options.\n */\n children: ReactNode;\n /**\n * The language from which the texts should be translated.\n */\n from: Exclude<Language, Language.Unknown>;\n /**\n * The language to which the texts should be translated.\n */\n to: Exclude<Language, Language.Unknown>;\n};\n\nexport const TranslationOptionsProvider = ({\n from,\n to,\n children,\n}: TranslationOptionsProviderProps) => {\n const value = useMemo(() => ({ from, to }), [from, to]);\n\n return (\n <TranslationOptionsContext.Provider value={value}>\n {children}\n </TranslationOptionsContext.Provider>\n );\n};\n\nTranslationOptionsProvider.displayName = 'TranslationOptionsProvider';\n\nexport default TranslationOptionsProvider;\n"],"mappings":"AACA,OAAOA,KAAK,IAAeC,OAAO,QAAQ,OAAO;AACjD,SAASC,yBAAyB,QAAQ,wCAAwC;AAiBlF,OAAO,MAAMC,0BAA0B,GAAGC,IAAA,IAIH;EAAA,IAJI;IACvCC,IAAI;IACJC,EAAE;IACFC;EAC6B,CAAC,GAAAH,IAAA;EAC9B,MAAMI,KAAK,GAAGP,OAAO,CAAC,OAAO;IAAEI,IAAI;IAAEC;EAAG,CAAC,CAAC,EAAE,CAACD,IAAI,EAAEC,EAAE,CAAC,CAAC;EAEvD,oBACIN,KAAA,CAAAS,aAAA,CAACP,yBAAyB,CAACQ,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAC5CD,QAC+B,CAAC;AAE7C,CAAC;AAEDJ,0BAA0B,CAACQ,WAAW,GAAG,4BAA4B;AAErE,eAAeR,0BAA0B","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { Language } from 'chayns-api';
2
- import React from 'react';
3
- export const TranslationOptionsContext = /*#__PURE__*/React.createContext({
2
+ import { createContext } from 'react';
3
+ export const TranslationOptionsContext = /*#__PURE__*/createContext({
4
4
  from: Language.German,
5
5
  to: Language.German
6
6
  });
@@ -1 +1 @@
1
- {"version":3,"file":"translationOptionsContext.js","names":["Language","React","TranslationOptionsContext","createContext","from","German","to"],"sources":["../../../src/constants/translationOptionsContext.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React from 'react';\n\nexport const TranslationOptionsContext = React.createContext<{\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n}>({\n from: Language.German,\n to: Language.German,\n});\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,YAAY;AACrC,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,yBAAyB,gBAAGD,KAAK,CAACE,aAAa,CAGzD;EACCC,IAAI,EAAEJ,QAAQ,CAACK,MAAM;EACrBC,EAAE,EAAEN,QAAQ,CAACK;AACjB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"translationOptionsContext.js","names":["Language","createContext","TranslationOptionsContext","from","German","to"],"sources":["../../../src/constants/translationOptionsContext.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport { createContext } from 'react';\n\nexport const TranslationOptionsContext = createContext<{\n from: Exclude<Language, Language.Unknown>;\n to: Exclude<Language, Language.Unknown>;\n}>({\n from: Language.German,\n to: Language.German,\n});\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,aAAa,QAAQ,OAAO;AAErC,OAAO,MAAMC,yBAAyB,gBAAGD,aAAa,CAGnD;EACCE,IAAI,EAAEH,QAAQ,CAACI,MAAM;EACrBC,EAAE,EAAEL,QAAQ,CAACI;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAdaptiveTranslation.js","names":["useContext","useEffect","useMemo","useState","TranslationOptionsContext","translationHandler","useAdaptiveTranslation","originalText","to","from","arguments","length","undefined","options","toLanguage","fromLanguage","shouldTranslate","translatedText","setTranslatedText","isLoading","setIsLoading","isFetching","setIsFetching","timeoutRef","setTimeout","translateText","then","text","finally","clearTimeout"],"sources":["../../../src/hooks/useAdaptiveTranslation.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from 'react';\nimport { Language } from 'chayns-api';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\nimport translationHandler from '../utils/translationHandler';\n\nexport const useAdaptiveTranslation = (\n originalText: string,\n {\n to,\n from,\n }: {\n to?: Exclude<Language, Language.Unknown>;\n from?: Exclude<Language, Language.Unknown>;\n } = {},\n): { text: string; isLoading: boolean; isFetching: boolean } => {\n const options = useContext(TranslationOptionsContext);\n const toLanguage = to || options.to;\n const fromLanguage = from || options.from;\n const shouldTranslate = useMemo(() => toLanguage !== fromLanguage, [fromLanguage, toLanguage]);\n const [translatedText, setTranslatedText] = useState<string>(originalText);\n const [isLoading, setIsLoading] = useState(shouldTranslate);\n const [isFetching, setIsFetching] = useState(false);\n\n useEffect(() => {\n const timeoutRef = setTimeout(() => {\n if (shouldTranslate) {\n setIsFetching(true);\n void translationHandler\n .translateText(originalText, fromLanguage, toLanguage)\n .then((text) => {\n setTranslatedText(text);\n })\n .finally(() => {\n setIsLoading(false);\n setIsFetching(false);\n });\n }\n }, 200);\n\n return () => clearTimeout(timeoutRef);\n }, [originalText, shouldTranslate, toLanguage, fromLanguage]);\n\n return useMemo(\n () => ({\n text: shouldTranslate ? translatedText : originalText,\n isFetching: shouldTranslate ? isFetching : false,\n isLoading: shouldTranslate ? isLoading : false,\n }),\n [isFetching, isLoading, originalText, shouldTranslate, translatedText],\n );\n};\n"],"mappings":"AAAC,SAASA,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEjE,SAASC,yBAAyB,QAAQ,wCAAwC;AAClF,OAAOC,kBAAkB,MAAM,6BAA6B;AAE5D,OAAO,MAAMC,sBAAsB,GAAG,SAAAA,CAClCC,YAAoB,EAQwC;EAAA,IAP5D;IACIC,EAAE;IACFC;EAIJ,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEN,MAAMG,OAAO,GAAGb,UAAU,CAACI,yBAAyB,CAAC;EACrD,MAAMU,UAAU,GAAGN,EAAE,IAAIK,OAAO,CAACL,EAAE;EACnC,MAAMO,YAAY,GAAGN,IAAI,IAAII,OAAO,CAACJ,IAAI;EACzC,MAAMO,eAAe,GAAGd,OAAO,CAAC,MAAMY,UAAU,KAAKC,YAAY,EAAE,CAACA,YAAY,EAAED,UAAU,CAAC,CAAC;EAC9F,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAGf,QAAQ,CAASI,YAAY,CAAC;EAC1E,MAAM,CAACY,SAAS,EAAEC,YAAY,CAAC,GAAGjB,QAAQ,CAACa,eAAe,CAAC;EAC3D,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;EAEnDF,SAAS,CAAC,MAAM;IACZ,MAAMsB,UAAU,GAAGC,UAAU,CAAC,MAAM;MAChC,IAAIR,eAAe,EAAE;QACjBM,aAAa,CAAC,IAAI,CAAC;QACnB,KAAKjB,kBAAkB,CAClBoB,aAAa,CAAClB,YAAY,EAAEQ,YAAY,EAAED,UAAU,CAAC,CACrDY,IAAI,CAAEC,IAAI,IAAK;UACZT,iBAAiB,CAACS,IAAI,CAAC;QAC3B,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;UACXR,YAAY,CAAC,KAAK,CAAC;UACnBE,aAAa,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC;MACV;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMO,YAAY,CAACN,UAAU,CAAC;EACzC,CAAC,EAAE,CAAChB,YAAY,EAAES,eAAe,EAAEF,UAAU,EAAEC,YAAY,CAAC,CAAC;EAE7D,OAAOb,OAAO,CACV,OAAO;IACHyB,IAAI,EAAEX,eAAe,GAAGC,cAAc,GAAGV,YAAY;IACrDc,UAAU,EAAEL,eAAe,GAAGK,UAAU,GAAG,KAAK;IAChDF,SAAS,EAAEH,eAAe,GAAGG,SAAS,GAAG;EAC7C,CAAC,CAAC,EACF,CAACE,UAAU,EAAEF,SAAS,EAAEZ,YAAY,EAAES,eAAe,EAAEC,cAAc,CACzE,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useAdaptiveTranslation.js","names":["useContext","useEffect","useMemo","useState","TranslationOptionsContext","translationHandler","useAdaptiveTranslation","originalText","to","from","arguments","length","undefined","options","toLanguage","fromLanguage","shouldTranslate","translatedText","setTranslatedText","isLoading","setIsLoading","isFetching","setIsFetching","timeoutRef","setTimeout","translateText","then","text","finally","clearTimeout"],"sources":["../../../src/hooks/useAdaptiveTranslation.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from 'react';\nimport { Language } from 'chayns-api';\nimport { TranslationOptionsContext } from '../constants/translationOptionsContext';\nimport translationHandler from '../utils/translationHandler';\n\ninterface UseAdaptiveTranslationOptions {\n /**\n * The language from which the text should be translated.\n */\n from?: Exclude<Language, Language.Unknown>;\n /**\n * The language to which the text should be translated.\n */\n to?: Exclude<Language, Language.Unknown>;\n}\n\nexport const useAdaptiveTranslation = (\n originalText: string,\n { to, from }: UseAdaptiveTranslationOptions = {},\n): { text: string; isLoading: boolean; isFetching: boolean } => {\n const options = useContext(TranslationOptionsContext);\n const toLanguage = to || options.to;\n const fromLanguage = from || options.from;\n const shouldTranslate = useMemo(() => toLanguage !== fromLanguage, [fromLanguage, toLanguage]);\n const [translatedText, setTranslatedText] = useState<string>(originalText);\n const [isLoading, setIsLoading] = useState(shouldTranslate);\n const [isFetching, setIsFetching] = useState(false);\n\n useEffect(() => {\n const timeoutRef = setTimeout(() => {\n if (shouldTranslate) {\n setIsFetching(true);\n void translationHandler\n .translateText(originalText, fromLanguage, toLanguage)\n .then((text) => {\n setTranslatedText(text);\n })\n .finally(() => {\n setIsLoading(false);\n setIsFetching(false);\n });\n }\n }, 200);\n\n return () => clearTimeout(timeoutRef);\n }, [originalText, shouldTranslate, toLanguage, fromLanguage]);\n\n return useMemo(\n () => ({\n text: shouldTranslate ? translatedText : originalText,\n isFetching: shouldTranslate ? isFetching : false,\n isLoading: shouldTranslate ? isLoading : false,\n }),\n [isFetching, isLoading, originalText, shouldTranslate, translatedText],\n );\n};\n"],"mappings":"AAAC,SAASA,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEjE,SAASC,yBAAyB,QAAQ,wCAAwC;AAClF,OAAOC,kBAAkB,MAAM,6BAA6B;AAa5D,OAAO,MAAMC,sBAAsB,GAAG,SAAAA,CAClCC,YAAoB,EAEwC;EAAA,IAD5D;IAAEC,EAAE;IAAEC;EAAoC,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEhD,MAAMG,OAAO,GAAGb,UAAU,CAACI,yBAAyB,CAAC;EACrD,MAAMU,UAAU,GAAGN,EAAE,IAAIK,OAAO,CAACL,EAAE;EACnC,MAAMO,YAAY,GAAGN,IAAI,IAAII,OAAO,CAACJ,IAAI;EACzC,MAAMO,eAAe,GAAGd,OAAO,CAAC,MAAMY,UAAU,KAAKC,YAAY,EAAE,CAACA,YAAY,EAAED,UAAU,CAAC,CAAC;EAC9F,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAGf,QAAQ,CAASI,YAAY,CAAC;EAC1E,MAAM,CAACY,SAAS,EAAEC,YAAY,CAAC,GAAGjB,QAAQ,CAACa,eAAe,CAAC;EAC3D,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;EAEnDF,SAAS,CAAC,MAAM;IACZ,MAAMsB,UAAU,GAAGC,UAAU,CAAC,MAAM;MAChC,IAAIR,eAAe,EAAE;QACjBM,aAAa,CAAC,IAAI,CAAC;QACnB,KAAKjB,kBAAkB,CAClBoB,aAAa,CAAClB,YAAY,EAAEQ,YAAY,EAAED,UAAU,CAAC,CACrDY,IAAI,CAAEC,IAAI,IAAK;UACZT,iBAAiB,CAACS,IAAI,CAAC;QAC3B,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;UACXR,YAAY,CAAC,KAAK,CAAC;UACnBE,aAAa,CAAC,KAAK,CAAC;QACxB,CAAC,CAAC;MACV;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMO,YAAY,CAACN,UAAU,CAAC;EACzC,CAAC,EAAE,CAAChB,YAAY,EAAES,eAAe,EAAEF,UAAU,EAAEC,YAAY,CAAC,CAAC;EAE7D,OAAOb,OAAO,CACV,OAAO;IACHyB,IAAI,EAAEX,eAAe,GAAGC,cAAc,GAAGV,YAAY;IACrDc,UAAU,EAAEL,eAAe,GAAGK,UAAU,GAAG,KAAK;IAChDF,SAAS,EAAEH,eAAe,GAAGG,SAAS,GAAG;EAC7C,CAAC,CAAC,EACF,CAACE,UAAU,EAAEF,SAAS,EAAEZ,YAAY,EAAES,eAAe,EAAEC,cAAc,CACzE,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","names":[],"sources":["../../../src/types/translation.ts"],"sourcesContent":["import { Language } from 'chayns-api';\nimport React from 'react';\nimport { Deferred } from '../utils/deferred';\n\nexport interface TranslationProps {\n children: string;\n to?: Exclude<Language, Language.Unknown>;\n from?: Exclude<Language, Language.Unknown>;\n tagName?: keyof HTMLElementTagNameMap;\n style?: React.CSSProperties;\n className?: string;\n}\n\ninterface BaseTranslation {\n text: string;\n to: string;\n from: string;\n}\n\nexport interface QueuedItem extends BaseTranslation {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationBatchItem extends TranslationRequest {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationRequest extends BaseTranslation {\n id: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"translation.js","names":[],"sources":["../../../src/types/translation.ts"],"sourcesContent":["import { Deferred } from '../utils/deferred';\n\ninterface BaseTranslation {\n text: string;\n to: string;\n from: string;\n}\n\nexport interface QueuedItem extends BaseTranslation {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationBatchItem extends TranslationRequest {\n deferred: Deferred<string>;\n}\n\nexport interface TranslationRequest extends BaseTranslation {\n id: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,30 @@
1
- import React from 'react';
2
- import { TranslationProps } from '../types/translation';
3
- declare const AdaptiveTranslation: ({ children, to, from, tagName: TagName, style, className, }: TranslationProps) => React.JSX.Element;
1
+ import React, { CSSProperties } from 'react';
2
+ import { Language } from 'chayns-api';
3
+ type AdaptiveTranslationProps = {
4
+ /**
5
+ * The Text that should be translated.
6
+ */
7
+ children: string;
8
+ /**
9
+ * The className of the element.
10
+ */
11
+ className?: string;
12
+ /**
13
+ * The language from which the text should be translated.
14
+ */
15
+ from?: Exclude<Language, Language.Unknown>;
16
+ /**
17
+ * Optional styles of the HTML element.
18
+ */
19
+ style?: CSSProperties;
20
+ /**
21
+ * The HTML tag of the children.
22
+ */
23
+ tagName?: keyof HTMLElementTagNameMap;
24
+ /**
25
+ * The language to which the text should be translated.
26
+ */
27
+ to?: Exclude<Language, Language.Unknown>;
28
+ };
29
+ declare const AdaptiveTranslation: ({ children, to, from, tagName: TagName, style, className, }: AdaptiveTranslationProps) => React.JSX.Element;
4
30
  export default AdaptiveTranslation;
@@ -1,9 +1,18 @@
1
1
  import { Language } from 'chayns-api';
2
- import React from 'react';
2
+ import React, { ReactNode } from 'react';
3
3
  type TranslationOptionsProviderProps = {
4
+ /**
5
+ * The content that should benefit from the options.
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * The language from which the texts should be translated.
10
+ */
4
11
  from: Exclude<Language, Language.Unknown>;
12
+ /**
13
+ * The language to which the texts should be translated.
14
+ */
5
15
  to: Exclude<Language, Language.Unknown>;
6
- children: React.ReactNode;
7
16
  };
8
17
  export declare const TranslationOptionsProvider: {
9
18
  ({ from, to, children, }: TranslationOptionsProviderProps): React.JSX.Element;
@@ -1,6 +1,5 @@
1
1
  import { Language } from 'chayns-api';
2
- import React from 'react';
3
- export declare const TranslationOptionsContext: React.Context<{
2
+ export declare const TranslationOptionsContext: import("react").Context<{
4
3
  from: Exclude<Language, Language.Unknown>;
5
4
  to: Exclude<Language, Language.Unknown>;
6
5
  }>;
@@ -1,9 +1,17 @@
1
1
  import { Language } from 'chayns-api';
2
- export declare const useAdaptiveTranslation: (originalText: string, { to, from, }?: {
3
- to?: Exclude<Language, Language.Unknown>;
2
+ interface UseAdaptiveTranslationOptions {
3
+ /**
4
+ * The language from which the text should be translated.
5
+ */
4
6
  from?: Exclude<Language, Language.Unknown>;
5
- }) => {
7
+ /**
8
+ * The language to which the text should be translated.
9
+ */
10
+ to?: Exclude<Language, Language.Unknown>;
11
+ }
12
+ export declare const useAdaptiveTranslation: (originalText: string, { to, from }?: UseAdaptiveTranslationOptions) => {
6
13
  text: string;
7
14
  isLoading: boolean;
8
15
  isFetching: boolean;
9
16
  };
17
+ export {};
@@ -1,14 +1,4 @@
1
- import { Language } from 'chayns-api';
2
- import React from 'react';
3
1
  import { Deferred } from '../utils/deferred';
4
- export interface TranslationProps {
5
- children: string;
6
- to?: Exclude<Language, Language.Unknown>;
7
- from?: Exclude<Language, Language.Unknown>;
8
- tagName?: keyof HTMLElementTagNameMap;
9
- style?: React.CSSProperties;
10
- className?: string;
11
- }
12
2
  interface BaseTranslation {
13
3
  text: string;
14
4
  to: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/translation",
3
- "version": "5.0.0-beta.1137",
3
+ "version": "5.0.0-beta.1158",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -52,12 +52,12 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@babel/cli": "^7.27.2",
55
- "@babel/core": "^7.27.1",
55
+ "@babel/core": "^7.27.4",
56
56
  "@babel/preset-env": "^7.27.2",
57
57
  "@babel/preset-react": "^7.27.1",
58
58
  "@babel/preset-typescript": "^7.27.1",
59
59
  "@types/lodash.throttle": "^4.1.9",
60
- "@types/react": "^18.3.22",
60
+ "@types/react": "^18.3.23",
61
61
  "@types/react-dom": "^18.3.7",
62
62
  "babel-loader": "^9.2.1",
63
63
  "cross-env": "^7.0.3",
@@ -78,5 +78,5 @@
78
78
  "publishConfig": {
79
79
  "access": "public"
80
80
  },
81
- "gitHead": "64ec29f2750c1ee25e1c01c5ab1446d4594f403d"
81
+ "gitHead": "09500667a165b521019b751e9f671048a1ec6e68"
82
82
  }