@leav/ui 1.15.0-88a0b3eb → 1.15.0-dd80410a
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.
|
@@ -31,6 +31,7 @@ const StyledColorChip = styled.div `
|
|
|
31
31
|
const RightIcon = styled(FontAwesomeIcon) `
|
|
32
32
|
flex-shrink: 0;
|
|
33
33
|
`;
|
|
34
|
+
const TOOLTIP_COLOR = '#ffffff';
|
|
34
35
|
export const TableCell = ({ values, attributeProperties }) => {
|
|
35
36
|
const { t } = useSharedTranslation();
|
|
36
37
|
const _getDateRangeValueContent = useCallback((value) => {
|
|
@@ -53,7 +54,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
53
54
|
switch (attributeProperties.format) {
|
|
54
55
|
case AttributeFormat.boolean:
|
|
55
56
|
return {
|
|
56
|
-
children: (_jsx(
|
|
57
|
+
children: (_jsx(KitTypography.Text, { color: TOOLTIP_COLOR, children: value.valuePayload ? String(t('global.yes')) : String(t('global.no')) })),
|
|
57
58
|
type: value.valuePayload ? 'primary' : 'neutral',
|
|
58
59
|
};
|
|
59
60
|
case AttributeFormat.color:
|
|
@@ -67,7 +68,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
67
68
|
};
|
|
68
69
|
case AttributeFormat.date_range:
|
|
69
70
|
return {
|
|
70
|
-
children: _jsx(
|
|
71
|
+
children: (_jsx(KitTypography.Text, { color: TOOLTIP_COLOR, children: _getDateRangeValueContent(value.valuePayload) })),
|
|
71
72
|
type: 'primary',
|
|
72
73
|
};
|
|
73
74
|
default:
|
|
@@ -75,7 +76,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
75
76
|
? '●●●●●●●●●●●●'
|
|
76
77
|
: value.valuePayload;
|
|
77
78
|
return {
|
|
78
|
-
children: _jsx(
|
|
79
|
+
children: _jsx(KitTypography.Text, { color: TOOLTIP_COLOR, children: valueContent }),
|
|
79
80
|
type: 'primary',
|
|
80
81
|
};
|
|
81
82
|
}
|
|
@@ -87,7 +88,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
87
88
|
case MultiDisplayOption.tag:
|
|
88
89
|
return (_jsx(TableTagGroup, { tags: values.map(value => ({
|
|
89
90
|
type: 'primary',
|
|
90
|
-
children: _jsx(
|
|
91
|
+
children: (_jsx(KitTypography.Text, { color: TOOLTIP_COLOR, children: value.linkPayload?.whoAmI.label ?? undefined })),
|
|
91
92
|
})) }));
|
|
92
93
|
case MultiDisplayOption.badge_qty:
|
|
93
94
|
return _jsx(KitBadge, { overflowCount: Infinity, count: values.length, color: "primary" });
|
|
@@ -106,7 +107,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
106
107
|
case MultiDisplayOption.tag:
|
|
107
108
|
return (_jsx(TableTagGroup, { tags: values.map(value => ({
|
|
108
109
|
type: 'primary',
|
|
109
|
-
children: (_jsx(
|
|
110
|
+
children: (_jsx(KitTypography.Text, { color: TOOLTIP_COLOR, children: value.treePayload?.record.whoAmI.label ?? undefined })),
|
|
110
111
|
})) }));
|
|
111
112
|
case MultiDisplayOption.badge_qty:
|
|
112
113
|
return _jsx(KitBadge, { overflowCount: Infinity, count: values.length, color: "primary" });
|
|
@@ -134,7 +135,7 @@ export const TableCell = ({ values, attributeProperties }) => {
|
|
|
134
135
|
switch (attributeProperties.format) {
|
|
135
136
|
case AttributeFormat.boolean:
|
|
136
137
|
const valueToDisplay = value.valuePayload ? t('global.yes') : t('global.no');
|
|
137
|
-
content = (_jsx(KitTag, { type: !!value.valuePayload ? 'primary' : 'neutral', children: _jsx(
|
|
138
|
+
content = (_jsx(KitTag, { type: !!value.valuePayload ? 'primary' : 'neutral', children: _jsx(KitTypography.Text, { children: valueToDisplay }) }, attributeProperties.id));
|
|
138
139
|
break;
|
|
139
140
|
case AttributeFormat.rich_text:
|
|
140
141
|
const tmp = document.createElement('div');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCell.js","sourceRoot":"","sources":["../../../src/components/Explorer/TableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type FunctionComponent, type ReactNode, useCallback} from 'react';\nimport {\n AttributeFormat,\n type AttributePropertiesFragment,\n AttributeType,\n type PropertyValueFragment,\n type PropertyValueLinkValueFragment,\n type PropertyValueTreeValueFragment,\n type PropertyValueValueFragment,\n MultiDisplayOption,\n} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport DOMPurify from 'dompurify';\nimport {KitAvatar, KitBadge, KitIdCard, KitSpace, KitTag, KitTypography} from 'aristid-ds';\nimport {type IKitTag} from 'aristid-ds/dist/Kit/DataDisplay/Tag/types';\nimport styled from 'styled-components';\nimport {IdCard} from './IdCard';\nimport {multiColorTagAvatarClassName, TableTagGroup} from './TableTagGroup';\nimport {AggregationColor} from 'antd/es/color-picker/color';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faArrowRight, faCalendar, faListAlt} from '@fortawesome/free-solid-svg-icons';\n\nconst isStandardValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueValueFragment => [AttributeType.simple, AttributeType.advanced].includes(attribute.type);\nconst isStandardValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueValueFragment[] => values.every(value => isStandardValue(value, attribute));\n\nconst isLinkValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueLinkValueFragment =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type);\nconst isLinkValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueLinkValueFragment[] => values.every(value => isLinkValue(value, attribute));\n\nconst isTreeValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueTreeValueFragment => [AttributeType.tree].includes(attribute.type);\nconst isTreeValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueTreeValueFragment[] => values.every(value => isTreeValue(value, attribute));\n\nconst isDateRangeValue = (v: PropertyValueValueFragment['valuePayload']): v is {from: string; to: string} =>\n 'from' in v && 'to' in v;\n\nconst StyledCenteringWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledColorChip = styled.div<{$colorTextContent: string}>`\n height: calc(var(--general-spacing-s) * 1px);\n width: calc(var(--general-spacing-s) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n background-color: ${props => props.$colorTextContent};\n`;\n\nconst RightIcon = styled(FontAwesomeIcon)`\n flex-shrink: 0;\n`;\n\ninterface ITableCellProps {\n values: PropertyValueFragment[];\n attributeProperties: AttributePropertiesFragment;\n}\n\nexport const TableCell: FunctionComponent<ITableCellProps> = ({values, attributeProperties}) => {\n const {t} = useSharedTranslation();\n\n const _getDateRangeValueContent = useCallback((value: PropertyValueValueFragment['valuePayload']) => {\n if (!isDateRangeValue(value)) {\n return t('explorer.invalid-value');\n }\n\n return (\n <KitSpace size=\"xxs\">\n <RightIcon icon={faCalendar} />\n {value.from} <FontAwesomeIcon icon={faArrowRight} /> {value.to}\n </KitSpace>\n );\n }, []);\n\n const _getFirstValue = useCallback(\n (value: PropertyValueValueFragment['valuePayload'], attribute: AttributePropertiesFragment) => {\n if (isStandardValue(value, attribute) && attribute.format === AttributeFormat.boolean) {\n if (!value || value.valuePayload === null) {\n return {valuePayload: false};\n }\n }\n return value;\n },\n [],\n );\n\n if (attributeProperties.multiple_values) {\n if (isStandardValues(values, attributeProperties)) {\n const tags = values.map<IKitTag>(value => {\n switch (attributeProperties.format) {\n case AttributeFormat.boolean:\n return {\n children: (\n <KitIdCard\n description={value.valuePayload ? String(t('global.yes')) : String(t('global.no'))}\n />\n ),\n type: value.valuePayload ? 'primary' : ('neutral' as IKitTag['type']),\n };\n case AttributeFormat.color:\n const color = new AggregationColor(value.valueRawPayload);\n return {\n children: (\n <KitIdCard\n description={value.valuePayload}\n avatarProps={{\n color: color.toHexString(),\n shape: 'square',\n className: multiColorTagAvatarClassName,\n }}\n />\n ),\n };\n case AttributeFormat.date_range:\n return {\n children: <KitIdCard description={_getDateRangeValueContent(value.valuePayload)} />,\n type: 'primary',\n };\n default:\n const valueContent =\n attributeProperties.format === AttributeFormat.encrypted\n ? '●●●●●●●●●●●●'\n : value.valuePayload;\n return {\n children: <KitIdCard description={valueContent} />,\n type: 'primary',\n };\n }\n });\n return <TableTagGroup tags={tags} />;\n } else if (isLinkValues(values, attributeProperties)) {\n switch (attributeProperties.multi_link_display_option) {\n case MultiDisplayOption.tag:\n return (\n <TableTagGroup\n tags={values.map(value => ({\n type: 'primary',\n children: <KitIdCard description={value.linkPayload?.whoAmI.label ?? undefined} />,\n }))}\n />\n );\n\n case MultiDisplayOption.badge_qty:\n return <KitBadge overflowCount={Infinity} count={values.length} color=\"primary\" />;\n\n case MultiDisplayOption.avatar:\n default:\n return (\n <KitAvatar.Group max={{count: 5}}>\n {values.map((value, index) => {\n if (!isLinkValue(value, attributeProperties)) {\n return null;\n }\n\n return (\n <KitAvatar\n key={index}\n label={String(value.linkPayload?.whoAmI.label)}\n src={value.linkPayload?.whoAmI.preview?.small}\n color=\"primary\"\n secondaryColorInvert\n />\n );\n })}\n </KitAvatar.Group>\n );\n }\n } else if (isTreeValues(values, attributeProperties)) {\n switch (attributeProperties.multi_tree_display_option) {\n case MultiDisplayOption.tag:\n return (\n <TableTagGroup\n tags={values.map(value => ({\n type: 'primary',\n children: (\n <KitIdCard description={value.treePayload?.record.whoAmI.label ?? undefined} />\n ),\n }))}\n />\n );\n case MultiDisplayOption.badge_qty:\n return <KitBadge overflowCount={Infinity} count={values.length} color=\"primary\" />;\n case MultiDisplayOption.avatar:\n default:\n return (\n <KitAvatar.Group max={{count: 5}}>\n {values.map((value, index) => {\n if (!isTreeValue(value, attributeProperties)) {\n return null;\n }\n\n return (\n <KitAvatar\n key={index}\n label={String(value.treePayload?.record.whoAmI.label)}\n src={value.treePayload?.record.whoAmI.preview?.small}\n color=\"primary\"\n secondaryColorInvert\n />\n );\n })}\n </KitAvatar.Group>\n );\n }\n }\n } else {\n const value = _getFirstValue(values[0], attributeProperties); // Not multiple_values attribute should not have more than one value\n if (!value) {\n return null;\n }\n\n let content: ReactNode = null;\n if (isStandardValue(value, attributeProperties)) {\n if (value.valuePayload === null) {\n return null;\n }\n\n switch (attributeProperties.format) {\n case AttributeFormat.boolean:\n const valueToDisplay = value.valuePayload ? t('global.yes') : t('global.no');\n content = (\n <KitTag key={attributeProperties.id} type={!!value.valuePayload ? 'primary' : 'neutral'}>\n <KitIdCard description={valueToDisplay} />\n </KitTag>\n );\n break;\n case AttributeFormat.rich_text:\n const tmp = document.createElement('div');\n tmp.innerHTML = DOMPurify.sanitize(value.valuePayload);\n const textContent = tmp.textContent;\n content = (\n <>\n <RightIcon icon={faListAlt} />\n <KitTypography.AdvancedText key={attributeProperties.id} ellipsis={{tooltip: textContent}}>\n {textContent}\n </KitTypography.AdvancedText>\n </>\n );\n break;\n case AttributeFormat.color:\n const color = new AggregationColor(value.valueRawPayload);\n content = (\n <>\n <StyledColorChip $colorTextContent={color.toHexString()} />\n <KitTypography.AdvancedText\n key={attributeProperties.id}\n ellipsis={{tooltip: value.valuePayload}}\n >\n {value.valuePayload}\n </KitTypography.AdvancedText>\n </>\n );\n break;\n case AttributeFormat.date_range:\n content = _getDateRangeValueContent(value.valuePayload);\n break;\n default:\n const valueContent =\n attributeProperties.format === AttributeFormat.encrypted ? '●●●●●●●●●●●●' : value.valuePayload;\n content = (\n <KitTypography.AdvancedText key={attributeProperties.id} ellipsis={{tooltip: valueContent}}>\n {valueContent}\n </KitTypography.AdvancedText>\n );\n break;\n }\n }\n\n if (isTreeValue(value, attributeProperties)) {\n content = value.treePayload?.record.whoAmI.label ? (\n <IdCard key={attributeProperties.id} item={value.treePayload.record.whoAmI} />\n ) : null;\n }\n\n if (isLinkValue(value, attributeProperties)) {\n content = value.linkPayload?.whoAmI ? (\n <IdCard key={attributeProperties.id} item={value.linkPayload.whoAmI} />\n ) : null;\n }\n\n return <StyledCenteringWrapper>{content}</StyledCenteringWrapper>;\n }\n\n return null;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"TableCell.js","sourceRoot":"","sources":["../../../src/components/Explorer/TableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type FunctionComponent, type ReactNode, useCallback} from 'react';\nimport {\n AttributeFormat,\n type AttributePropertiesFragment,\n AttributeType,\n type PropertyValueFragment,\n type PropertyValueLinkValueFragment,\n type PropertyValueTreeValueFragment,\n type PropertyValueValueFragment,\n MultiDisplayOption,\n} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport DOMPurify from 'dompurify';\nimport {KitAvatar, KitBadge, KitIdCard, KitSpace, KitTag, KitTypography} from 'aristid-ds';\nimport {type IKitTag} from 'aristid-ds/dist/Kit/DataDisplay/Tag/types';\nimport styled from 'styled-components';\nimport {IdCard} from './IdCard';\nimport {multiColorTagAvatarClassName, TableTagGroup} from './TableTagGroup';\nimport {AggregationColor} from 'antd/es/color-picker/color';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faArrowRight, faCalendar, faListAlt} from '@fortawesome/free-solid-svg-icons';\n\nconst isStandardValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueValueFragment => [AttributeType.simple, AttributeType.advanced].includes(attribute.type);\nconst isStandardValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueValueFragment[] => values.every(value => isStandardValue(value, attribute));\n\nconst isLinkValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueLinkValueFragment =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type);\nconst isLinkValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueLinkValueFragment[] => values.every(value => isLinkValue(value, attribute));\n\nconst isTreeValue = (\n v: PropertyValueFragment,\n attribute: AttributePropertiesFragment,\n): v is PropertyValueTreeValueFragment => [AttributeType.tree].includes(attribute.type);\nconst isTreeValues = (\n values: PropertyValueFragment[],\n attribute: AttributePropertiesFragment,\n): values is PropertyValueTreeValueFragment[] => values.every(value => isTreeValue(value, attribute));\n\nconst isDateRangeValue = (v: PropertyValueValueFragment['valuePayload']): v is {from: string; to: string} =>\n 'from' in v && 'to' in v;\n\nconst StyledCenteringWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledColorChip = styled.div<{$colorTextContent: string}>`\n height: calc(var(--general-spacing-s) * 1px);\n width: calc(var(--general-spacing-s) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n background-color: ${props => props.$colorTextContent};\n`;\n\nconst RightIcon = styled(FontAwesomeIcon)`\n flex-shrink: 0;\n`;\n\ninterface ITableCellProps {\n values: PropertyValueFragment[];\n attributeProperties: AttributePropertiesFragment;\n}\n\nconst TOOLTIP_COLOR = '#ffffff';\n\nexport const TableCell: FunctionComponent<ITableCellProps> = ({values, attributeProperties}) => {\n const {t} = useSharedTranslation();\n\n const _getDateRangeValueContent = useCallback((value: PropertyValueValueFragment['valuePayload']) => {\n if (!isDateRangeValue(value)) {\n return t('explorer.invalid-value');\n }\n\n return (\n <KitSpace size=\"xxs\">\n <RightIcon icon={faCalendar} />\n {value.from} <FontAwesomeIcon icon={faArrowRight} /> {value.to}\n </KitSpace>\n );\n }, []);\n\n const _getFirstValue = useCallback(\n (value: PropertyValueValueFragment['valuePayload'], attribute: AttributePropertiesFragment) => {\n if (isStandardValue(value, attribute) && attribute.format === AttributeFormat.boolean) {\n if (!value || value.valuePayload === null) {\n return {valuePayload: false};\n }\n }\n return value;\n },\n [],\n );\n\n if (attributeProperties.multiple_values) {\n if (isStandardValues(values, attributeProperties)) {\n const tags = values.map<IKitTag>(value => {\n switch (attributeProperties.format) {\n case AttributeFormat.boolean:\n return {\n children: (\n <KitTypography.Text color={TOOLTIP_COLOR}>\n {value.valuePayload ? String(t('global.yes')) : String(t('global.no'))}\n </KitTypography.Text>\n ),\n type: value.valuePayload ? 'primary' : ('neutral' as IKitTag['type']),\n };\n case AttributeFormat.color:\n const color = new AggregationColor(value.valueRawPayload);\n return {\n children: (\n <KitIdCard\n description={value.valuePayload}\n avatarProps={{\n color: color.toHexString(),\n shape: 'square',\n className: multiColorTagAvatarClassName,\n }}\n />\n ),\n };\n case AttributeFormat.date_range:\n return {\n children: (\n <KitTypography.Text color={TOOLTIP_COLOR}>\n {_getDateRangeValueContent(value.valuePayload)}\n </KitTypography.Text>\n ),\n type: 'primary',\n };\n default:\n const valueContent =\n attributeProperties.format === AttributeFormat.encrypted\n ? '●●●●●●●●●●●●'\n : value.valuePayload;\n return {\n children: <KitTypography.Text color={TOOLTIP_COLOR}>{valueContent}</KitTypography.Text>,\n type: 'primary',\n };\n }\n });\n return <TableTagGroup tags={tags} />;\n } else if (isLinkValues(values, attributeProperties)) {\n switch (attributeProperties.multi_link_display_option) {\n case MultiDisplayOption.tag:\n return (\n <TableTagGroup\n tags={values.map(value => ({\n type: 'primary',\n children: (\n <KitTypography.Text color={TOOLTIP_COLOR}>\n {value.linkPayload?.whoAmI.label ?? undefined}\n </KitTypography.Text>\n ),\n }))}\n />\n );\n\n case MultiDisplayOption.badge_qty:\n return <KitBadge overflowCount={Infinity} count={values.length} color=\"primary\" />;\n\n case MultiDisplayOption.avatar:\n default:\n return (\n <KitAvatar.Group max={{count: 5}}>\n {values.map((value, index) => {\n if (!isLinkValue(value, attributeProperties)) {\n return null;\n }\n\n return (\n <KitAvatar\n key={index}\n label={String(value.linkPayload?.whoAmI.label)}\n src={value.linkPayload?.whoAmI.preview?.small}\n color=\"primary\"\n secondaryColorInvert\n />\n );\n })}\n </KitAvatar.Group>\n );\n }\n } else if (isTreeValues(values, attributeProperties)) {\n switch (attributeProperties.multi_tree_display_option) {\n case MultiDisplayOption.tag:\n return (\n <TableTagGroup\n tags={values.map(value => ({\n type: 'primary',\n children: (\n <KitTypography.Text color={TOOLTIP_COLOR}>\n {value.treePayload?.record.whoAmI.label ?? undefined}\n </KitTypography.Text>\n ),\n }))}\n />\n );\n case MultiDisplayOption.badge_qty:\n return <KitBadge overflowCount={Infinity} count={values.length} color=\"primary\" />;\n case MultiDisplayOption.avatar:\n default:\n return (\n <KitAvatar.Group max={{count: 5}}>\n {values.map((value, index) => {\n if (!isTreeValue(value, attributeProperties)) {\n return null;\n }\n\n return (\n <KitAvatar\n key={index}\n label={String(value.treePayload?.record.whoAmI.label)}\n src={value.treePayload?.record.whoAmI.preview?.small}\n color=\"primary\"\n secondaryColorInvert\n />\n );\n })}\n </KitAvatar.Group>\n );\n }\n }\n } else {\n const value = _getFirstValue(values[0], attributeProperties); // Not multiple_values attribute should not have more than one value\n if (!value) {\n return null;\n }\n\n let content: ReactNode = null;\n if (isStandardValue(value, attributeProperties)) {\n if (value.valuePayload === null) {\n return null;\n }\n\n switch (attributeProperties.format) {\n case AttributeFormat.boolean:\n const valueToDisplay = value.valuePayload ? t('global.yes') : t('global.no');\n content = (\n <KitTag key={attributeProperties.id} type={!!value.valuePayload ? 'primary' : 'neutral'}>\n <KitTypography.Text>{valueToDisplay}</KitTypography.Text>\n </KitTag>\n );\n break;\n case AttributeFormat.rich_text:\n const tmp = document.createElement('div');\n tmp.innerHTML = DOMPurify.sanitize(value.valuePayload);\n const textContent = tmp.textContent;\n content = (\n <>\n <RightIcon icon={faListAlt} />\n <KitTypography.AdvancedText key={attributeProperties.id} ellipsis={{tooltip: textContent}}>\n {textContent}\n </KitTypography.AdvancedText>\n </>\n );\n break;\n case AttributeFormat.color:\n const color = new AggregationColor(value.valueRawPayload);\n content = (\n <>\n <StyledColorChip $colorTextContent={color.toHexString()} />\n <KitTypography.AdvancedText\n key={attributeProperties.id}\n ellipsis={{tooltip: value.valuePayload}}\n >\n {value.valuePayload}\n </KitTypography.AdvancedText>\n </>\n );\n break;\n case AttributeFormat.date_range:\n content = _getDateRangeValueContent(value.valuePayload);\n break;\n default:\n const valueContent =\n attributeProperties.format === AttributeFormat.encrypted ? '●●●●●●●●●●●●' : value.valuePayload;\n content = (\n <KitTypography.AdvancedText key={attributeProperties.id} ellipsis={{tooltip: valueContent}}>\n {valueContent}\n </KitTypography.AdvancedText>\n );\n break;\n }\n }\n\n if (isTreeValue(value, attributeProperties)) {\n content = value.treePayload?.record.whoAmI.label ? (\n <IdCard key={attributeProperties.id} item={value.treePayload.record.whoAmI} />\n ) : null;\n }\n\n if (isLinkValue(value, attributeProperties)) {\n content = value.linkPayload?.whoAmI ? (\n <IdCard key={attributeProperties.id} item={value.linkPayload.whoAmI} />\n ) : null;\n }\n\n return <StyledCenteringWrapper>{content}</StyledCenteringWrapper>;\n }\n\n return null;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leav/ui",
|
|
3
|
-
"version": "1.15.0-
|
|
3
|
+
"version": "1.15.0-dd80410a",
|
|
4
4
|
"description": "Shared React components and hooks",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "yarn build",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@types/react-dom": "18.2.6",
|
|
44
44
|
"aristid-ds": "15.3.1-2d7a4f8",
|
|
45
45
|
"babel-jest": "29.7.0",
|
|
46
|
-
"graphql": "16.14.
|
|
46
|
+
"graphql": "16.14.1",
|
|
47
47
|
"i18next": "22.5.1",
|
|
48
48
|
"jest": "29.7.0",
|
|
49
49
|
"jest-environment-jsdom": "29.7.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"ts-jest": "29.4.11",
|
|
56
56
|
"tsc-alias": "1.8.17",
|
|
57
57
|
"typescript": "5.9.3",
|
|
58
|
-
"vite": "7.3.
|
|
58
|
+
"vite": "7.3.5"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
61
|
"@apollo/client": ">=3.8.1",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@leav/utils": "1.15.0",
|
|
75
75
|
"@uidotdev/usehooks": "2.4.1",
|
|
76
76
|
"dayjs": "^1.11.13",
|
|
77
|
-
"dompurify": "3.4.
|
|
77
|
+
"dompurify": "3.4.8",
|
|
78
78
|
"html-react-parser": "4.2.10",
|
|
79
79
|
"i18next-resources-to-backend": "1.2.1",
|
|
80
80
|
"react-markdown": "5.0.3",
|