@chayns-components/textstring 5.0.0-beta.444 → 5.0.0-beta.447

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.
@@ -13,6 +13,10 @@ export type TextStringProps = {
13
13
  * The tag of the HTML element that the text should be displayed in.
14
14
  */
15
15
  childrenTagName?: keyof ReactHTML;
16
+ /**
17
+ * Whether the textstring is an HTML element and should be displayed as an element.
18
+ */
19
+ isTextstringHTML?: boolean;
16
20
  /**
17
21
  * A part of the text that should be replaced.
18
22
  */
@@ -1,5 +1,5 @@
1
1
  import React, { createElement, useCallback, useMemo } from 'react';
2
- import { StyledTextString } from './TextString.styles';
2
+ import { StyledTextString, StyledTextStringElement } from './TextString.styles';
3
3
  import { isTobitEmployee } from '@chayns-components/core';
4
4
  import { selectLanguageToChange } from '../../utils/textstring';
5
5
  import { useTextstringValue } from '../../hooks/useTextstringValue';
@@ -7,6 +7,7 @@ const TextString = _ref => {
7
7
  let {
8
8
  textString,
9
9
  replacements,
10
+ isTextstringHTML,
10
11
  childrenTagName,
11
12
  children,
12
13
  childrenStyles
@@ -16,6 +17,13 @@ const TextString = _ref => {
16
17
  replacements
17
18
  });
18
19
  const childElement = useMemo(() => {
20
+ if (isTextstringHTML) {
21
+ return /*#__PURE__*/React.createElement(StyledTextStringElement, {
22
+ dangerouslySetInnerHTML: {
23
+ __html: text
24
+ }
25
+ });
26
+ }
19
27
  let element = /*#__PURE__*/createElement('', childrenStyles ? {
20
28
  style: childrenStyles
21
29
  } : null, children);
@@ -25,7 +33,7 @@ const TextString = _ref => {
25
33
  } : null, text);
26
34
  }
27
35
  return element;
28
- }, [children, childrenStyles, childrenTagName, text]);
36
+ }, [children, childrenStyles, childrenTagName, isTextstringHTML, text]);
29
37
  const handleClick = useCallback(event => {
30
38
  if (event.ctrlKey) {
31
39
  void isTobitEmployee().then(inGroup => {
@@ -1 +1 @@
1
- {"version":3,"file":"TextString.js","names":["React","createElement","useCallback","useMemo","StyledTextString","isTobitEmployee","selectLanguageToChange","useTextstringValue","TextString","_ref","textString","replacements","childrenTagName","children","childrenStyles","text","childElement","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 } 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 * 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 childrenTagName,\n children,\n childrenStyles,\n}) => {\n const text = useTextstringValue({ textString, replacements });\n\n const childElement = useMemo(() => {\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, 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,QAAQ,qBAAqB;AAEtD,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,sBAAsB,QAAQ,wBAAwB;AAC/D,SAASC,kBAAkB,QAAQ,gCAAgC;AAyBnE,MAAMC,UAA+B,GAAGC,IAAA,IAMlC;EAAA,IANmC;IACrCC,UAAU;IACVC,YAAY;IACZC,eAAe;IACfC,QAAQ;IACRC;EACJ,CAAC,GAAAL,IAAA;EACG,MAAMM,IAAI,GAAGR,kBAAkB,CAAC;IAAEG,UAAU;IAAEC;EAAa,CAAC,CAAC;EAE7D,MAAMK,YAAY,GAAGb,OAAO,CAAC,MAAM;IAC/B,IAAIc,OAAO,gBAAGhB,aAAa,CACvB,EAAE,EACFa,cAAc,GAAG;MAAEI,KAAK,EAAEJ;IAAe,CAAC,GAAG,IAAI,EACjDD,QACJ,CAAC;IAED,IAAI,CAACA,QAAQ,EAAE;MACXI,OAAO,gBAAGhB,aAAa,CACnBW,eAAe,IAAI,MAAM,EACzBE,cAAc,GAAG;QAAEI,KAAK,EAAEJ;MAAe,CAAC,GAAG,IAAI,EACjDC,IACJ,CAAC;IACL;IAEA,OAAOE,OAAO;EAClB,CAAC,EAAE,CAACJ,QAAQ,EAAEC,cAAc,EAAEF,eAAe,EAAEG,IAAI,CAAC,CAAC;EAErD,MAAMI,WAA8C,GAAGjB,WAAW,CAC7DkB,KAAK,IAAK;IACP,IAAIA,KAAK,CAACC,OAAO,EAAE;MACf,KAAKhB,eAAe,CAAC,CAAC,CAACiB,IAAI,CAAEC,OAAO,IAAK;QACrC,IAAIA,OAAO,EAAE;UACTjB,sBAAsB,CAAC;YACnBkB,cAAc,EAAEd,UAAU,CAACe;UAC/B,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EACD,CAACf,UAAU,CAACe,IAAI,CACpB,CAAC;EAED,OAAOtB,OAAO,CACV,mBAAMH,KAAA,CAAAC,aAAA,CAACG,gBAAgB;IAACsB,OAAO,EAAEP;EAAY,GAAEH,YAA+B,CAAC,EAC/E,CAACA,YAAY,EAAEG,WAAW,CAC9B,CAAC;AACL,CAAC;AAEDX,UAAU,CAACmB,WAAW,GAAG,YAAY;AAErC,eAAenB,UAAU"}
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,2 +1,3 @@
1
1
  /// <reference types="react" />
2
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,3 +1,4 @@
1
1
  import styled from 'styled-components';
2
2
  export const StyledTextString = styled.div``;
3
+ export const StyledTextStringElement = styled.div``;
3
4
  //# sourceMappingURL=TextString.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextString.styles.js","names":["styled","StyledTextString","div"],"sources":["../../../src/components/textstring/TextString.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledTextString = styled.div``;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,gBAAgB,GAAGD,MAAM,CAACE,GAAI,EAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/textstring",
3
- "version": "5.0.0-beta.444",
3
+ "version": "5.0.0-beta.447",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -57,7 +57,7 @@
57
57
  "typescript": "^5.3.3"
58
58
  },
59
59
  "dependencies": {
60
- "@chayns-components/core": "^5.0.0-beta.444"
60
+ "@chayns-components/core": "^5.0.0-beta.447"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "chayns-api": ">=1.0.50",
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "7f05f8a55eebf93c43b1ece35fff0d5a7c3dfa73"
72
+ "gitHead": "71af2989e12e9808f10a9782b77121db32a0f6a3"
73
73
  }