@chayns-components/textstring 5.0.0-beta.466 → 5.0.0-beta.467

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.
@@ -0,0 +1,34 @@
1
+ import { CSSProperties, FC, ReactHTML, type ReactElement } from 'react';
2
+ import type { ITextstring, TextstringReplacement } from './types';
3
+ export type TextstringProps = {
4
+ /**
5
+ * The element that the text should be displayed in.
6
+ */
7
+ children?: ReactElement;
8
+ /**
9
+ * The class name of the HTML element that the text should be displayed in. Only used if `children` is not set.
10
+ */
11
+ childrenClassName?: string;
12
+ /**
13
+ * The styles of the HTML element that the text should be displayed in. Only used if `children` is not set.
14
+ */
15
+ childrenStyles?: CSSProperties;
16
+ /**
17
+ * The tag of the HTML element that the text should be displayed in. Only used if `children` is not set.
18
+ */
19
+ childrenTagName?: keyof ReactHTML;
20
+ /**
21
+ * Whether the textstring contains HTML elements and should be displayed as HTML.
22
+ */
23
+ isTextstringHTML?: boolean;
24
+ /**
25
+ * Replacement values for the textstring.
26
+ */
27
+ replacements?: TextstringReplacement;
28
+ /**
29
+ * The text that should be displayed.
30
+ */
31
+ textString: ITextstring;
32
+ };
33
+ declare const Textstring: FC<TextstringProps>;
34
+ export default Textstring;
@@ -0,0 +1,54 @@
1
+ import { isTobitEmployee } from '@chayns-components/core';
2
+ import React, { useCallback } from 'react';
3
+ import { useTextstringValue } from '../../hooks/useTextstringValue';
4
+ import { selectLanguageToChange } from '../../utils/textstring';
5
+ const Textstring = _ref => {
6
+ let {
7
+ children,
8
+ childrenClassName,
9
+ childrenStyles,
10
+ childrenTagName,
11
+ isTextstringHTML,
12
+ replacements,
13
+ textString
14
+ } = _ref;
15
+ const text = useTextstringValue({
16
+ textString,
17
+ replacements
18
+ });
19
+ const handleClick = useCallback(_ref2 => {
20
+ let {
21
+ ctrlKey
22
+ } = _ref2;
23
+ if (ctrlKey) {
24
+ void isTobitEmployee().then(inGroup => {
25
+ if (inGroup) {
26
+ selectLanguageToChange({
27
+ textstringName: textString.name
28
+ });
29
+ }
30
+ });
31
+ }
32
+ }, [textString.name]);
33
+ if (children) {
34
+ return /*#__PURE__*/React.cloneElement(children, {
35
+ dangerouslySetInnerHTML: isTextstringHTML ? {
36
+ __html: text
37
+ } : undefined,
38
+ onClick: handleClick
39
+ }, isTextstringHTML ? undefined : text);
40
+ }
41
+
42
+ // eslint-disable-next-line react/no-danger-with-children
43
+ return /*#__PURE__*/React.createElement(childrenTagName || 'span', {
44
+ dangerouslySetInnerHTML: isTextstringHTML ? {
45
+ __html: text
46
+ } : undefined,
47
+ className: childrenClassName,
48
+ onClick: handleClick,
49
+ style: childrenStyles
50
+ }, isTextstringHTML ? undefined : text);
51
+ };
52
+ Textstring.displayName = 'Textstring';
53
+ export default Textstring;
54
+ //# sourceMappingURL=Textstring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textstring.js","names":["isTobitEmployee","React","useCallback","useTextstringValue","selectLanguageToChange","Textstring","_ref","children","childrenClassName","childrenStyles","childrenTagName","isTextstringHTML","replacements","textString","text","handleClick","_ref2","ctrlKey","then","inGroup","textstringName","name","cloneElement","dangerouslySetInnerHTML","__html","undefined","onClick","createElement","className","style","displayName"],"sources":["../../../src/components/textstring/Textstring.tsx"],"sourcesContent":["import { isTobitEmployee } from '@chayns-components/core';\nimport React, {\n CSSProperties,\n FC,\n MouseEvent,\n ReactHTML,\n useCallback,\n type ReactElement,\n} from 'react';\nimport { useTextstringValue } from '../../hooks/useTextstringValue';\nimport { selectLanguageToChange } from '../../utils/textstring';\nimport type { ITextstring, TextstringReplacement } from './types';\n\nexport type TextstringProps = {\n /**\n * The element that the text should be displayed in.\n */\n children?: ReactElement;\n /**\n * The class name of the HTML element that the text should be displayed in. Only used if `children` is not set.\n */\n childrenClassName?: string;\n /**\n * The styles of the HTML element that the text should be displayed in. Only used if `children` is not set.\n */\n childrenStyles?: CSSProperties;\n /**\n * The tag of the HTML element that the text should be displayed in. Only used if `children` is not set.\n */\n childrenTagName?: keyof ReactHTML;\n /**\n * Whether the textstring contains HTML elements and should be displayed as HTML.\n */\n isTextstringHTML?: boolean;\n /**\n * Replacement values for the textstring.\n */\n replacements?: TextstringReplacement;\n /**\n * The text that should be displayed.\n */\n textString: ITextstring;\n};\n\nconst Textstring: FC<TextstringProps> = ({\n children,\n childrenClassName,\n childrenStyles,\n childrenTagName,\n isTextstringHTML,\n replacements,\n textString,\n}) => {\n const text = useTextstringValue({ textString, replacements });\n\n const handleClick = useCallback(\n ({ ctrlKey }: MouseEvent<HTMLElement>) => {\n if (ctrlKey) {\n void isTobitEmployee().then((inGroup) => {\n if (inGroup) {\n selectLanguageToChange({\n textstringName: textString.name,\n });\n }\n });\n }\n },\n [textString.name],\n );\n\n if (children) {\n return React.cloneElement(\n children,\n {\n dangerouslySetInnerHTML: isTextstringHTML ? { __html: text } : undefined,\n onClick: handleClick,\n },\n isTextstringHTML ? undefined : text,\n );\n }\n\n // eslint-disable-next-line react/no-danger-with-children\n return React.createElement(\n childrenTagName || 'span',\n {\n dangerouslySetInnerHTML: isTextstringHTML ? { __html: text } : undefined,\n className: childrenClassName,\n onClick: handleClick,\n style: childrenStyles,\n },\n isTextstringHTML ? undefined : text,\n );\n};\n\nTextstring.displayName = 'Textstring';\n\nexport default Textstring;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,yBAAyB;AACzD,OAAOC,KAAK,IAKRC,WAAW,QAER,OAAO;AACd,SAASC,kBAAkB,QAAQ,gCAAgC;AACnE,SAASC,sBAAsB,QAAQ,wBAAwB;AAkC/D,MAAMC,UAA+B,GAAGC,IAAA,IAQlC;EAAA,IARmC;IACrCC,QAAQ;IACRC,iBAAiB;IACjBC,cAAc;IACdC,eAAe;IACfC,gBAAgB;IAChBC,YAAY;IACZC;EACJ,CAAC,GAAAP,IAAA;EACG,MAAMQ,IAAI,GAAGX,kBAAkB,CAAC;IAAEU,UAAU;IAAED;EAAa,CAAC,CAAC;EAE7D,MAAMG,WAAW,GAAGb,WAAW,CAC3Bc,KAAA,IAA0C;IAAA,IAAzC;MAAEC;IAAiC,CAAC,GAAAD,KAAA;IACjC,IAAIC,OAAO,EAAE;MACT,KAAKjB,eAAe,CAAC,CAAC,CAACkB,IAAI,CAAEC,OAAO,IAAK;QACrC,IAAIA,OAAO,EAAE;UACTf,sBAAsB,CAAC;YACnBgB,cAAc,EAAEP,UAAU,CAACQ;UAC/B,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EACD,CAACR,UAAU,CAACQ,IAAI,CACpB,CAAC;EAED,IAAId,QAAQ,EAAE;IACV,oBAAON,KAAK,CAACqB,YAAY,CACrBf,QAAQ,EACR;MACIgB,uBAAuB,EAAEZ,gBAAgB,GAAG;QAAEa,MAAM,EAAEV;MAAK,CAAC,GAAGW,SAAS;MACxEC,OAAO,EAAEX;IACb,CAAC,EACDJ,gBAAgB,GAAGc,SAAS,GAAGX,IACnC,CAAC;EACL;;EAEA;EACA,oBAAOb,KAAK,CAAC0B,aAAa,CACtBjB,eAAe,IAAI,MAAM,EACzB;IACIa,uBAAuB,EAAEZ,gBAAgB,GAAG;MAAEa,MAAM,EAAEV;IAAK,CAAC,GAAGW,SAAS;IACxEG,SAAS,EAAEpB,iBAAiB;IAC5BkB,OAAO,EAAEX,WAAW;IACpBc,KAAK,EAAEpB;EACX,CAAC,EACDE,gBAAgB,GAAGc,SAAS,GAAGX,IACnC,CAAC;AACL,CAAC;AAEDT,UAAU,CAACyB,WAAW,GAAG,YAAY;AAErC,eAAezB,UAAU"}
@@ -1,9 +1,9 @@
1
1
  import React, { FC, ReactNode } from 'react';
2
- export type TextStringValue = {
2
+ export type TextstringValue = {
3
3
  [key: string]: string;
4
4
  };
5
- export declare const TextStringContext: React.Context<TextStringValue>;
6
- export type TextStringProviderProps = {
5
+ export declare const TextstringContext: React.Context<TextstringValue>;
6
+ export type TextstringProviderProps = {
7
7
  /**
8
8
  * The element that should use the library.
9
9
  */
@@ -17,5 +17,5 @@ export type TextStringProviderProps = {
17
17
  */
18
18
  libraryName: string;
19
19
  };
20
- declare const TextStringProvider: FC<TextStringProviderProps>;
21
- export default TextStringProvider;
20
+ declare const TextstringProvider: FC<TextstringProviderProps>;
21
+ export default TextstringProvider;
@@ -0,0 +1,29 @@
1
+ import React, { createContext, useEffect, useState } from 'react';
2
+ import { loadLibrary } from '../../utils/textstring';
3
+ export const TextstringContext = /*#__PURE__*/createContext({});
4
+ const TextstringProvider = _ref => {
5
+ let {
6
+ children,
7
+ libraryName,
8
+ language
9
+ } = _ref;
10
+ const [textstrings, setTextstrings] = useState({});
11
+ useEffect(() => {
12
+ const loadData = async () => {
13
+ const textstringResult = await loadLibrary({
14
+ libraryName,
15
+ language
16
+ });
17
+ if (textstringResult) {
18
+ setTextstrings(textstringResult);
19
+ }
20
+ };
21
+ void loadData();
22
+ }, [language, libraryName]);
23
+ return /*#__PURE__*/React.createElement(TextstringContext.Provider, {
24
+ value: textstrings
25
+ }, children);
26
+ };
27
+ TextstringProvider.displayName = 'TextstringProvider';
28
+ export default TextstringProvider;
29
+ //# sourceMappingURL=TextstringProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextStringProvider.js","names":["React","createContext","useEffect","useState","loadLibrary","TextStringContext","TextStringProvider","_ref","children","libraryName","language","textStrings","setTextStrings","loadData","textStringResult","createElement","Provider","value","displayName"],"sources":["../../../src/components/textstring-provider/TextStringProvider.tsx"],"sourcesContent":["import React, { createContext, FC, ReactNode, useEffect, useState } from 'react';\nimport { loadLibrary } from '../../utils/textstring';\n\nexport type TextStringValue = {\n [key: string]: string;\n};\n\nexport const TextStringContext = createContext<TextStringValue>({});\n\nexport type TextStringProviderProps = {\n /**\n * The element that should use the library.\n */\n children?: ReactNode;\n /**\n * The language that should be used.\n */\n language: string;\n /**\n * The name of the library.\n */\n libraryName: string;\n};\n\nconst TextStringProvider: FC<TextStringProviderProps> = ({ children, libraryName, language }) => {\n const [textStrings, setTextStrings] = useState<TextStringValue>({});\n\n useEffect(() => {\n const loadData = async () => {\n const textStringResult = await loadLibrary({ libraryName, language });\n\n if (textStringResult) {\n setTextStrings(textStringResult);\n }\n };\n\n void loadData();\n }, [language, libraryName]);\n\n return <TextStringContext.Provider value={textStrings}>{children}</TextStringContext.Provider>;\n};\n\nTextStringProvider.displayName = 'TextStringProvider';\n\nexport default TextStringProvider;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAiBC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAChF,SAASC,WAAW,QAAQ,wBAAwB;AAMpD,OAAO,MAAMC,iBAAiB,gBAAGJ,aAAa,CAAkB,CAAC,CAAC,CAAC;AAiBnE,MAAMK,kBAA+C,GAAGC,IAAA,IAAyC;EAAA,IAAxC;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAAH,IAAA;EACxF,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAkB,CAAC,CAAC,CAAC;EAEnED,SAAS,CAAC,MAAM;IACZ,MAAMW,QAAQ,GAAG,MAAAA,CAAA,KAAY;MACzB,MAAMC,gBAAgB,GAAG,MAAMV,WAAW,CAAC;QAAEK,WAAW;QAAEC;MAAS,CAAC,CAAC;MAErE,IAAII,gBAAgB,EAAE;QAClBF,cAAc,CAACE,gBAAgB,CAAC;MACpC;IACJ,CAAC;IAED,KAAKD,QAAQ,CAAC,CAAC;EACnB,CAAC,EAAE,CAACH,QAAQ,EAAED,WAAW,CAAC,CAAC;EAE3B,oBAAOT,KAAA,CAAAe,aAAA,CAACV,iBAAiB,CAACW,QAAQ;IAACC,KAAK,EAAEN;EAAY,GAAEH,QAAqC,CAAC;AAClG,CAAC;AAEDF,kBAAkB,CAACY,WAAW,GAAG,oBAAoB;AAErD,eAAeZ,kBAAkB"}
1
+ {"version":3,"file":"TextstringProvider.js","names":["React","createContext","useEffect","useState","loadLibrary","TextstringContext","TextstringProvider","_ref","children","libraryName","language","textstrings","setTextstrings","loadData","textstringResult","createElement","Provider","value","displayName"],"sources":["../../../src/components/textstring-provider/TextstringProvider.tsx"],"sourcesContent":["import React, { createContext, FC, ReactNode, useEffect, useState } from 'react';\nimport { loadLibrary } from '../../utils/textstring';\n\nexport type TextstringValue = {\n [key: string]: string;\n};\n\nexport const TextstringContext = createContext<TextstringValue>({});\n\nexport type TextstringProviderProps = {\n /**\n * The element that should use the library.\n */\n children?: ReactNode;\n /**\n * The language that should be used.\n */\n language: string;\n /**\n * The name of the library.\n */\n libraryName: string;\n};\n\nconst TextstringProvider: FC<TextstringProviderProps> = ({ children, libraryName, language }) => {\n const [textstrings, setTextstrings] = useState<TextstringValue>({});\n\n useEffect(() => {\n const loadData = async () => {\n const textstringResult = await loadLibrary({ libraryName, language });\n\n if (textstringResult) {\n setTextstrings(textstringResult);\n }\n };\n\n void loadData();\n }, [language, libraryName]);\n\n return <TextstringContext.Provider value={textstrings}>{children}</TextstringContext.Provider>;\n};\n\nTextstringProvider.displayName = 'TextstringProvider';\n\nexport default TextstringProvider;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAiBC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAChF,SAASC,WAAW,QAAQ,wBAAwB;AAMpD,OAAO,MAAMC,iBAAiB,gBAAGJ,aAAa,CAAkB,CAAC,CAAC,CAAC;AAiBnE,MAAMK,kBAA+C,GAAGC,IAAA,IAAyC;EAAA,IAAxC;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAAH,IAAA;EACxF,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAkB,CAAC,CAAC,CAAC;EAEnED,SAAS,CAAC,MAAM;IACZ,MAAMW,QAAQ,GAAG,MAAAA,CAAA,KAAY;MACzB,MAAMC,gBAAgB,GAAG,MAAMV,WAAW,CAAC;QAAEK,WAAW;QAAEC;MAAS,CAAC,CAAC;MAErE,IAAII,gBAAgB,EAAE;QAClBF,cAAc,CAACE,gBAAgB,CAAC;MACpC;IACJ,CAAC;IAED,KAAKD,QAAQ,CAAC,CAAC;EACnB,CAAC,EAAE,CAACH,QAAQ,EAAED,WAAW,CAAC,CAAC;EAE3B,oBAAOT,KAAA,CAAAe,aAAA,CAACV,iBAAiB,CAACW,QAAQ;IAACC,KAAK,EAAEN;EAAY,GAAEH,QAAqC,CAAC;AAClG,CAAC;AAEDF,kBAAkB,CAACY,WAAW,GAAG,oBAAoB;AAErD,eAAeZ,kBAAkB"}
@@ -1,11 +1,11 @@
1
1
  import { useContext } from 'react';
2
- import { TextStringContext } from '../components/textstring-provider/TextStringProvider';
2
+ import { TextstringContext } from '../components/textstring-provider/TextstringProvider';
3
3
  export const useTextstringValue = _ref => {
4
4
  let {
5
5
  replacements,
6
6
  textString
7
7
  } = _ref;
8
- const textStrings = useContext(TextStringContext);
8
+ const textStrings = useContext(TextstringContext);
9
9
  const value = textStrings[textString.name] ?? textString.fallback;
10
10
  if (!replacements) {
11
11
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"useTextstringValue.js","names":["useContext","TextStringContext","useTextstringValue","_ref","replacements","textString","textStrings","value","name","fallback","Object","keys","reduce","current","key","replace","RegExp"],"sources":["../../src/hooks/useTextstringValue.ts"],"sourcesContent":["import { useContext } from 'react';\nimport type { ITextstring, TextstringReplacement } from '../components/textstring/types';\nimport { TextStringContext } from '../components/textstring-provider/TextStringProvider';\n\nexport interface UseTextstringValue {\n textString: ITextstring;\n replacements?: TextstringReplacement;\n}\n\nexport const useTextstringValue = ({ replacements, textString }: UseTextstringValue) => {\n const textStrings = useContext(TextStringContext);\n\n const value = textStrings[textString.name] ?? textString.fallback;\n\n if (!replacements) {\n return value;\n }\n\n return Object.keys(replacements).reduce(\n (current, key) => current.replace(new RegExp(key, 'g'), <string>replacements[key] || ''),\n value,\n );\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,iBAAiB,QAAQ,sDAAsD;AAOxF,OAAO,MAAMC,kBAAkB,GAAGC,IAAA,IAAsD;EAAA,IAArD;IAAEC,YAAY;IAAEC;EAA+B,CAAC,GAAAF,IAAA;EAC/E,MAAMG,WAAW,GAAGN,UAAU,CAACC,iBAAiB,CAAC;EAEjD,MAAMM,KAAK,GAAGD,WAAW,CAACD,UAAU,CAACG,IAAI,CAAC,IAAIH,UAAU,CAACI,QAAQ;EAEjE,IAAI,CAACL,YAAY,EAAE;IACf,OAAOG,KAAK;EAChB;EAEA,OAAOG,MAAM,CAACC,IAAI,CAACP,YAAY,CAAC,CAACQ,MAAM,CACnC,CAACC,OAAO,EAAEC,GAAG,KAAKD,OAAO,CAACE,OAAO,CAAC,IAAIC,MAAM,CAACF,GAAG,EAAE,GAAG,CAAC,EAAUV,YAAY,CAACU,GAAG,CAAC,IAAI,EAAE,CAAC,EACxFP,KACJ,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"useTextstringValue.js","names":["useContext","TextstringContext","useTextstringValue","_ref","replacements","textString","textStrings","value","name","fallback","Object","keys","reduce","current","key","replace","RegExp"],"sources":["../../src/hooks/useTextstringValue.ts"],"sourcesContent":["import { useContext } from 'react';\nimport { TextstringContext } from '../components/textstring-provider/TextstringProvider';\nimport type { ITextstring, TextstringReplacement } from '../components/textstring/types';\n\nexport interface UseTextstringValue {\n textString: ITextstring;\n replacements?: TextstringReplacement;\n}\n\nexport const useTextstringValue = ({ replacements, textString }: UseTextstringValue) => {\n const textStrings = useContext(TextstringContext);\n\n const value = textStrings[textString.name] ?? textString.fallback;\n\n if (!replacements) {\n return value;\n }\n\n return Object.keys(replacements).reduce(\n (current, key) => current.replace(new RegExp(key, 'g'), <string>replacements[key] || ''),\n value,\n );\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,iBAAiB,QAAQ,sDAAsD;AAQxF,OAAO,MAAMC,kBAAkB,GAAGC,IAAA,IAAsD;EAAA,IAArD;IAAEC,YAAY;IAAEC;EAA+B,CAAC,GAAAF,IAAA;EAC/E,MAAMG,WAAW,GAAGN,UAAU,CAACC,iBAAiB,CAAC;EAEjD,MAAMM,KAAK,GAAGD,WAAW,CAACD,UAAU,CAACG,IAAI,CAAC,IAAIH,UAAU,CAACI,QAAQ;EAEjE,IAAI,CAACL,YAAY,EAAE;IACf,OAAOG,KAAK;EAChB;EAEA,OAAOG,MAAM,CAACC,IAAI,CAACP,YAAY,CAAC,CAACQ,MAAM,CACnC,CAACC,OAAO,EAAEC,GAAG,KAAKD,OAAO,CAACE,OAAO,CAAC,IAAIC,MAAM,CAACF,GAAG,EAAE,GAAG,CAAC,EAAUV,YAAY,CAACU,GAAG,CAAC,IAAI,EAAE,CAAC,EACxFP,KACJ,CAAC;AACL,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { default as TextStringProvider } from './components/textstring-provider/TextStringProvider';
2
- export { default as TextString } from './components/textstring/TextString';
3
- export type { ITextstring as Textstring, TextstringReplacement, } from './components/textstring/types';
1
+ export { default as TextstringProvider } from './components/textstring-provider/TextstringProvider';
2
+ export { default as Textstring } from './components/textstring/Textstring';
3
+ export type { ITextstring, TextstringReplacement } from './components/textstring/types';
4
4
  export { useTextstringValue } from './hooks/useTextstringValue';
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // noinspection JSUnusedGlobalSymbols
2
2
 
3
- export { default as TextStringProvider } from './components/textstring-provider/TextStringProvider';
4
- export { default as TextString } from './components/textstring/TextString';
3
+ export { default as TextstringProvider } from './components/textstring-provider/TextstringProvider';
4
+ export { default as Textstring } from './components/textstring/Textstring';
5
5
  export { useTextstringValue } from './hooks/useTextstringValue';
6
6
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","TextStringProvider","TextString","useTextstringValue"],"sources":["../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\n\nexport { default as TextStringProvider } from './components/textstring-provider/TextStringProvider';\nexport { default as TextString } from './components/textstring/TextString';\nexport type {\n ITextstring as Textstring,\n TextstringReplacement,\n} from './components/textstring/types';\nexport { useTextstringValue } from './hooks/useTextstringValue';\n"],"mappings":"AAAA;;AAEA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,qDAAqD;AACnG,SAASD,OAAO,IAAIE,UAAU,QAAQ,oCAAoC;AAK1E,SAASC,kBAAkB,QAAQ,4BAA4B"}
1
+ {"version":3,"file":"index.js","names":["default","TextstringProvider","Textstring","useTextstringValue"],"sources":["../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\n\nexport { default as TextstringProvider } from './components/textstring-provider/TextstringProvider';\nexport { default as Textstring } from './components/textstring/Textstring';\nexport type { ITextstring, TextstringReplacement } from './components/textstring/types';\nexport { useTextstringValue } from './hooks/useTextstringValue';\n"],"mappings":"AAAA;;AAEA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,qDAAqD;AACnG,SAASD,OAAO,IAAIE,UAAU,QAAQ,oCAAoC;AAE1E,SAASC,kBAAkB,QAAQ,4BAA4B"}
@@ -1,9 +1,9 @@
1
- import type { TextStringValue } from '../components/textstring-provider/TextStringProvider';
1
+ import type { TextstringValue } from '../components/textstring-provider/TextstringProvider';
2
2
  interface LoadLibraryOptions {
3
3
  libraryName: string;
4
4
  language: string;
5
5
  }
6
- export declare const loadLibrary: ({ language, libraryName }: LoadLibraryOptions) => Promise<TextStringValue | null>;
6
+ export declare const loadLibrary: ({ language, libraryName }: LoadLibraryOptions) => Promise<TextstringValue | null>;
7
7
  interface SelectLanguageToChangeOptions {
8
8
  textstringName: string;
9
9
  }
@@ -3,7 +3,7 @@ export const loadLibrary = async _ref => {
3
3
  language,
4
4
  libraryName
5
5
  } = _ref;
6
- const response = await fetch(`https://webapi.tobit.com/TextStringService/v1.0/LangStrings/${libraryName}?language=${language}`);
6
+ const response = await fetch(`https://webapi.tobit.com/TextstringService/v1.0/LangStrings/${libraryName}?language=${language}`);
7
7
  if (response.status !== 200) {
8
8
  return null;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"textstring.js","names":["loadLibrary","_ref","language","libraryName","response","fetch","status","json","selectLanguageToChange","_ref2","textstringName","chayns","dialog","iFrame","url","buttons","input","textstring"],"sources":["../../src/utils/textstring.ts"],"sourcesContent":["import type { TextStringValue } from '../components/textstring-provider/TextStringProvider';\n\ninterface LoadLibraryOptions {\n libraryName: string;\n language: string;\n}\n\nexport const loadLibrary = async ({ language, libraryName }: LoadLibraryOptions) => {\n const response = await fetch(\n `https://webapi.tobit.com/TextStringService/v1.0/LangStrings/${libraryName}?language=${language}`\n );\n\n if (response.status !== 200) {\n return null;\n }\n\n return (await response.json()) as TextStringValue;\n};\n\ninterface SelectLanguageToChangeOptions {\n textstringName: string;\n}\n\nexport const selectLanguageToChange = ({ textstringName }: SelectLanguageToChangeOptions) => {\n void chayns.dialog.iFrame({\n url: 'https://tapp-staging.chayns-static.space/text-string-tapp/v1/iframe-edit.html',\n buttons: [],\n input: { textstring: textstringName },\n });\n};\n"],"mappings":"AAOA,OAAO,MAAMA,WAAW,GAAG,MAAAC,IAAA,IAAyD;EAAA,IAAlD;IAAEC,QAAQ;IAAEC;EAAgC,CAAC,GAAAF,IAAA;EAC3E,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CACvB,+DAA8DF,WAAY,aAAYD,QAAS,EACpG,CAAC;EAED,IAAIE,QAAQ,CAACE,MAAM,KAAK,GAAG,EAAE;IACzB,OAAO,IAAI;EACf;EAEA,OAAQ,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;AACjC,CAAC;AAMD,OAAO,MAAMC,sBAAsB,GAAGC,KAAA,IAAuD;EAAA,IAAtD;IAAEC;EAA8C,CAAC,GAAAD,KAAA;EACpF,KAAKE,MAAM,CAACC,MAAM,CAACC,MAAM,CAAC;IACtBC,GAAG,EAAE,+EAA+E;IACpFC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE;MAAEC,UAAU,EAAEP;IAAe;EACxC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"textstring.js","names":["loadLibrary","_ref","language","libraryName","response","fetch","status","json","selectLanguageToChange","_ref2","textstringName","chayns","dialog","iFrame","url","buttons","input","textstring"],"sources":["../../src/utils/textstring.ts"],"sourcesContent":["import type { TextstringValue } from '../components/textstring-provider/TextstringProvider';\n\ninterface LoadLibraryOptions {\n libraryName: string;\n language: string;\n}\n\nexport const loadLibrary = async ({ language, libraryName }: LoadLibraryOptions) => {\n const response = await fetch(\n `https://webapi.tobit.com/TextstringService/v1.0/LangStrings/${libraryName}?language=${language}`,\n );\n\n if (response.status !== 200) {\n return null;\n }\n\n return (await response.json()) as TextstringValue;\n};\n\ninterface SelectLanguageToChangeOptions {\n textstringName: string;\n}\n\nexport const selectLanguageToChange = ({ textstringName }: SelectLanguageToChangeOptions) => {\n void chayns.dialog.iFrame({\n url: 'https://tapp-staging.chayns-static.space/text-string-tapp/v1/iframe-edit.html',\n buttons: [],\n input: { textstring: textstringName },\n });\n};\n"],"mappings":"AAOA,OAAO,MAAMA,WAAW,GAAG,MAAAC,IAAA,IAAyD;EAAA,IAAlD;IAAEC,QAAQ;IAAEC;EAAgC,CAAC,GAAAF,IAAA;EAC3E,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CACvB,+DAA8DF,WAAY,aAAYD,QAAS,EACpG,CAAC;EAED,IAAIE,QAAQ,CAACE,MAAM,KAAK,GAAG,EAAE;IACzB,OAAO,IAAI;EACf;EAEA,OAAQ,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;AACjC,CAAC;AAMD,OAAO,MAAMC,sBAAsB,GAAGC,KAAA,IAAuD;EAAA,IAAtD;IAAEC;EAA8C,CAAC,GAAAD,KAAA;EACpF,KAAKE,MAAM,CAACC,MAAM,CAACC,MAAM,CAAC;IACtBC,GAAG,EAAE,+EAA+E;IACpFC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE;MAAEC,UAAU,EAAEP;IAAe;EACxC,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/textstring",
3
- "version": "5.0.0-beta.466",
3
+ "version": "5.0.0-beta.467",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "a6c6f033e364471eb8d4d7b06de02071b1f01b11"
72
+ "gitHead": "f51e5a535b9b38be164d85b35b8572db7bfa91b4"
73
73
  }
@@ -1,30 +0,0 @@
1
- import { CSSProperties, FC, ReactHTML, ReactNode } from 'react';
2
- import type { ITextstring, TextstringReplacement } from './types';
3
- export type TextStringProps = {
4
- /**
5
- * The element that the text should be displayed in.
6
- */
7
- children?: ReactNode;
8
- /**
9
- * The styles of the HTML element that the text should be displayed in.
10
- */
11
- childrenStyles?: CSSProperties;
12
- /**
13
- * The tag of the HTML element that the text should be displayed in.
14
- */
15
- childrenTagName?: keyof ReactHTML;
16
- /**
17
- * Whether the textstring is an HTML element and should be displayed as an element.
18
- */
19
- isTextstringHTML?: boolean;
20
- /**
21
- * A part of the text that should be replaced.
22
- */
23
- replacements?: TextstringReplacement;
24
- /**
25
- * The text that should be displayed.
26
- */
27
- textString: ITextstring;
28
- };
29
- declare const TextString: FC<TextStringProps>;
30
- export default TextString;
@@ -1,54 +0,0 @@
1
- import React, { createElement, useCallback, useMemo } from 'react';
2
- import { StyledTextString, StyledTextStringElement } from './TextString.styles';
3
- import { isTobitEmployee } from '@chayns-components/core';
4
- import { selectLanguageToChange } from '../../utils/textstring';
5
- import { useTextstringValue } from '../../hooks/useTextstringValue';
6
- const TextString = _ref => {
7
- let {
8
- textString,
9
- replacements,
10
- isTextstringHTML,
11
- childrenTagName,
12
- children,
13
- childrenStyles
14
- } = _ref;
15
- const text = useTextstringValue({
16
- textString,
17
- replacements
18
- });
19
- const childElement = useMemo(() => {
20
- if (isTextstringHTML) {
21
- return /*#__PURE__*/React.createElement(StyledTextStringElement, {
22
- dangerouslySetInnerHTML: {
23
- __html: text
24
- }
25
- });
26
- }
27
- let element = /*#__PURE__*/createElement('', childrenStyles ? {
28
- style: childrenStyles
29
- } : null, children);
30
- if (!children) {
31
- element = /*#__PURE__*/createElement(childrenTagName || 'span', childrenStyles ? {
32
- style: childrenStyles
33
- } : null, text);
34
- }
35
- return element;
36
- }, [children, childrenStyles, childrenTagName, isTextstringHTML, text]);
37
- const handleClick = useCallback(event => {
38
- if (event.ctrlKey) {
39
- void isTobitEmployee().then(inGroup => {
40
- if (inGroup) {
41
- selectLanguageToChange({
42
- textstringName: textString.name
43
- });
44
- }
45
- });
46
- }
47
- }, [textString.name]);
48
- return useMemo(() => /*#__PURE__*/React.createElement(StyledTextString, {
49
- onClick: handleClick
50
- }, childElement), [childElement, handleClick]);
51
- };
52
- TextString.displayName = 'TextString';
53
- export default TextString;
54
- //# sourceMappingURL=TextString.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextString.js","names":["React","createElement","useCallback","useMemo","StyledTextString","StyledTextStringElement","isTobitEmployee","selectLanguageToChange","useTextstringValue","TextString","_ref","textString","replacements","isTextstringHTML","childrenTagName","children","childrenStyles","text","childElement","dangerouslySetInnerHTML","__html","element","style","handleClick","event","ctrlKey","then","inGroup","textstringName","name","onClick","displayName"],"sources":["../../../src/components/textstring/TextString.tsx"],"sourcesContent":["import React, {\n createElement,\n CSSProperties,\n FC,\n MouseEventHandler,\n ReactHTML,\n ReactNode,\n useCallback,\n useMemo,\n} from 'react';\nimport { StyledTextString, StyledTextStringElement } from './TextString.styles';\nimport type { ITextstring, TextstringReplacement } from './types';\nimport { isTobitEmployee } from '@chayns-components/core';\nimport { selectLanguageToChange } from '../../utils/textstring';\nimport { useTextstringValue } from '../../hooks/useTextstringValue';\n\nexport type TextStringProps = {\n /**\n * The element that the text should be displayed in.\n */\n children?: ReactNode;\n /**\n * The styles of the HTML element that the text should be displayed in.\n */\n childrenStyles?: CSSProperties;\n /**\n * The tag of the HTML element that the text should be displayed in.\n */\n childrenTagName?: keyof ReactHTML;\n /**\n * Whether the textstring is an HTML element and should be displayed as an element.\n */\n isTextstringHTML?: boolean;\n /**\n * A part of the text that should be replaced.\n */\n replacements?: TextstringReplacement;\n /**\n * The text that should be displayed.\n */\n textString: ITextstring;\n};\n\nconst TextString: FC<TextStringProps> = ({\n textString,\n replacements,\n isTextstringHTML,\n childrenTagName,\n children,\n childrenStyles,\n}) => {\n const text = useTextstringValue({ textString, replacements });\n\n const childElement = useMemo(() => {\n if (isTextstringHTML) {\n return <StyledTextStringElement dangerouslySetInnerHTML={{ __html: text }} />;\n }\n\n let element = createElement(\n '',\n childrenStyles ? { style: childrenStyles } : null,\n children,\n );\n\n if (!children) {\n element = createElement(\n childrenTagName || 'span',\n childrenStyles ? { style: childrenStyles } : null,\n text,\n );\n }\n\n return element;\n }, [children, childrenStyles, childrenTagName, isTextstringHTML, text]);\n\n const handleClick: MouseEventHandler<HTMLDivElement> = useCallback(\n (event) => {\n if (event.ctrlKey) {\n void isTobitEmployee().then((inGroup) => {\n if (inGroup) {\n selectLanguageToChange({\n textstringName: textString.name,\n });\n }\n });\n }\n },\n [textString.name],\n );\n\n return useMemo(\n () => <StyledTextString onClick={handleClick}>{childElement}</StyledTextString>,\n [childElement, handleClick],\n );\n};\n\nTextString.displayName = 'TextString';\n\nexport default TextString;\n"],"mappings":"AAAA,OAAOA,KAAK,IACRC,aAAa,EAMbC,WAAW,EACXC,OAAO,QACJ,OAAO;AACd,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,qBAAqB;AAE/E,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,sBAAsB,QAAQ,wBAAwB;AAC/D,SAASC,kBAAkB,QAAQ,gCAAgC;AA6BnE,MAAMC,UAA+B,GAAGC,IAAA,IAOlC;EAAA,IAPmC;IACrCC,UAAU;IACVC,YAAY;IACZC,gBAAgB;IAChBC,eAAe;IACfC,QAAQ;IACRC;EACJ,CAAC,GAAAN,IAAA;EACG,MAAMO,IAAI,GAAGT,kBAAkB,CAAC;IAAEG,UAAU;IAAEC;EAAa,CAAC,CAAC;EAE7D,MAAMM,YAAY,GAAGf,OAAO,CAAC,MAAM;IAC/B,IAAIU,gBAAgB,EAAE;MAClB,oBAAOb,KAAA,CAAAC,aAAA,CAACI,uBAAuB;QAACc,uBAAuB,EAAE;UAAEC,MAAM,EAAEH;QAAK;MAAE,CAAE,CAAC;IACjF;IAEA,IAAII,OAAO,gBAAGpB,aAAa,CACvB,EAAE,EACFe,cAAc,GAAG;MAAEM,KAAK,EAAEN;IAAe,CAAC,GAAG,IAAI,EACjDD,QACJ,CAAC;IAED,IAAI,CAACA,QAAQ,EAAE;MACXM,OAAO,gBAAGpB,aAAa,CACnBa,eAAe,IAAI,MAAM,EACzBE,cAAc,GAAG;QAAEM,KAAK,EAAEN;MAAe,CAAC,GAAG,IAAI,EACjDC,IACJ,CAAC;IACL;IAEA,OAAOI,OAAO;EAClB,CAAC,EAAE,CAACN,QAAQ,EAAEC,cAAc,EAAEF,eAAe,EAAED,gBAAgB,EAAEI,IAAI,CAAC,CAAC;EAEvE,MAAMM,WAA8C,GAAGrB,WAAW,CAC7DsB,KAAK,IAAK;IACP,IAAIA,KAAK,CAACC,OAAO,EAAE;MACf,KAAKnB,eAAe,CAAC,CAAC,CAACoB,IAAI,CAAEC,OAAO,IAAK;QACrC,IAAIA,OAAO,EAAE;UACTpB,sBAAsB,CAAC;YACnBqB,cAAc,EAAEjB,UAAU,CAACkB;UAC/B,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EACD,CAAClB,UAAU,CAACkB,IAAI,CACpB,CAAC;EAED,OAAO1B,OAAO,CACV,mBAAMH,KAAA,CAAAC,aAAA,CAACG,gBAAgB;IAAC0B,OAAO,EAAEP;EAAY,GAAEL,YAA+B,CAAC,EAC/E,CAACA,YAAY,EAAEK,WAAW,CAC9B,CAAC;AACL,CAAC;AAEDd,UAAU,CAACsB,WAAW,GAAG,YAAY;AAErC,eAAetB,UAAU"}
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const StyledTextString: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
3
- export declare const StyledTextStringElement: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
@@ -1,4 +0,0 @@
1
- import styled from 'styled-components';
2
- export const StyledTextString = styled.div``;
3
- export const StyledTextStringElement = styled.div``;
4
- //# sourceMappingURL=TextString.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextString.styles.js","names":["styled","StyledTextString","div","StyledTextStringElement"],"sources":["../../../src/components/textstring/TextString.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledTextString = styled.div``;\n\nexport const StyledTextStringElement = styled.div``;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,gBAAgB,GAAGD,MAAM,CAACE,GAAI,EAAC;AAE5C,OAAO,MAAMC,uBAAuB,GAAGH,MAAM,CAACE,GAAI,EAAC"}
@@ -1,29 +0,0 @@
1
- import React, { createContext, useEffect, useState } from 'react';
2
- import { loadLibrary } from '../../utils/textstring';
3
- export const TextStringContext = /*#__PURE__*/createContext({});
4
- const TextStringProvider = _ref => {
5
- let {
6
- children,
7
- libraryName,
8
- language
9
- } = _ref;
10
- const [textStrings, setTextStrings] = useState({});
11
- useEffect(() => {
12
- const loadData = async () => {
13
- const textStringResult = await loadLibrary({
14
- libraryName,
15
- language
16
- });
17
- if (textStringResult) {
18
- setTextStrings(textStringResult);
19
- }
20
- };
21
- void loadData();
22
- }, [language, libraryName]);
23
- return /*#__PURE__*/React.createElement(TextStringContext.Provider, {
24
- value: textStrings
25
- }, children);
26
- };
27
- TextStringProvider.displayName = 'TextStringProvider';
28
- export default TextStringProvider;
29
- //# sourceMappingURL=TextStringProvider.js.map