@leav/ui 1.14.0-fdda4863 → 1.15.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Explorer/TableCell.js +7 -6
- package/dist/components/Explorer/TableCell.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -6
- package/dist/hooks/index.js +2 -6
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClientContext.d.ts +20 -0
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClientContext.js +3 -0
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClientContext.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/{IFrameMessengerClient.d.ts → IFrameMessengerClientProvider.d.ts} +1 -1
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClientProvider.js +13 -0
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClientProvider.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/index.d.ts +2 -0
- package/dist/hooks/useIFrameMessengerClient/index.js +3 -0
- package/dist/hooks/useIFrameMessengerClient/index.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +14 -13
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js +2 -2
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js.map +1 -1
- package/dist/hooks/usePanelMessenger/PanelMessengerProvider.d.ts +13 -0
- package/dist/hooks/{useIFrameMessenger/useIFrameMessengerContext.js → usePanelMessenger/PanelMessengerProvider.js} +22 -12
- package/dist/hooks/usePanelMessenger/PanelMessengerProvider.js.map +1 -0
- package/dist/hooks/usePanelMessenger/index.d.ts +6 -0
- package/dist/hooks/usePanelMessenger/index.js +6 -0
- package/dist/hooks/usePanelMessenger/index.js.map +1 -0
- package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/messageHandlers.d.ts +2 -2
- package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/messageHandlers.js +1 -1
- package/dist/hooks/usePanelMessenger/messageHandlers.js.map +1 -0
- package/dist/hooks/usePanelMessenger/panelMessengerContext.d.ts +10 -0
- package/dist/hooks/{useIFrameMessenger/iFrameMessengerContext.js → usePanelMessenger/panelMessengerContext.js} +2 -2
- package/dist/hooks/usePanelMessenger/panelMessengerContext.js.map +1 -0
- package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/schema.d.ts +9 -0
- package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/schema.js +10 -0
- package/dist/hooks/usePanelMessenger/schema.js.map +1 -0
- package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/types.d.ts +20 -9
- package/dist/hooks/usePanelMessenger/types.js.map +1 -0
- package/dist/hooks/usePanelMessenger/usePanelEventHandlers.d.ts +10 -0
- package/dist/hooks/usePanelMessenger/usePanelEventHandlers.js +15 -0
- package/dist/hooks/usePanelMessenger/usePanelEventHandlers.js.map +1 -0
- package/dist/hooks/{useIFrameMessenger/useIFrameMessengerHandlers.d.ts → usePanelMessenger/usePanelIFrameHandlers.d.ts} +3 -3
- package/dist/hooks/{useIFrameMessenger/useIFrameMessengerHandlers.js → usePanelMessenger/usePanelIFrameHandlers.js} +5 -5
- package/dist/hooks/usePanelMessenger/usePanelIFrameHandlers.js.map +1 -0
- package/dist/hooks/{useIFrameMessenger/useIFrameMessenger.d.ts → usePanelMessenger/usePanelMessenger.d.ts} +3 -3
- package/dist/hooks/{useIFrameMessenger/useIFrameMessenger.js → usePanelMessenger/usePanelMessenger.js} +16 -2
- package/dist/hooks/usePanelMessenger/usePanelMessenger.js.map +1 -0
- package/package.json +2 -2
- package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.d.ts +0 -8
- package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/schema.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/types.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.d.ts +0 -13
- package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessengerHandlers.js.map +0 -1
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.d.ts +0 -14
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js +0 -19
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js.map +0 -1
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js +0 -13
- package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js.map +0 -1
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +0 -19
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js +0 -3
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js.map +0 -1
- /package/dist/hooks/{useIFrameMessenger → usePanelMessenger}/types.js +0 -0
|
@@ -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/dist/hooks/index.d.ts
CHANGED
|
@@ -12,12 +12,8 @@ export { default as useLoginChecker } from './useLoginChecker';
|
|
|
12
12
|
export { default as useRedirectToLogin } from './useRedirectToLogin';
|
|
13
13
|
export { useUser } from './useUser';
|
|
14
14
|
export { useValuesCacheUpdate } from './useValuesCacheUpdate';
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export { IFrameMessengerClient } from './useIFrameMessengerClient/IFrameMessengerClient';
|
|
18
|
-
export { creationPanelSchema } from './useIFrameMessenger/schema';
|
|
19
|
-
export { useIFrameMessengerHandlers } from './useIFrameMessenger/useIFrameMessengerHandlers';
|
|
20
|
-
export { IFrameMessengerProvider } from './useIFrameMessenger/useIFrameMessengerContext';
|
|
15
|
+
export * from './useIFrameMessengerClient';
|
|
16
|
+
export * from './usePanelMessenger';
|
|
21
17
|
export { useGetRecordIdCard } from './useGetRecordIdCard';
|
|
22
18
|
export { useConfirmModal } from './useConfirmModal/useConfirmModal';
|
|
23
19
|
export { useDelayedLoading } from './useDelayedLoading';
|
package/dist/hooks/index.js
CHANGED
|
@@ -12,12 +12,8 @@ export { default as useLoginChecker } from './useLoginChecker';
|
|
|
12
12
|
export { default as useRedirectToLogin } from './useRedirectToLogin';
|
|
13
13
|
export { useUser } from './useUser';
|
|
14
14
|
export { useValuesCacheUpdate } from './useValuesCacheUpdate';
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export { IFrameMessengerClient } from './useIFrameMessengerClient/IFrameMessengerClient';
|
|
18
|
-
export { creationPanelSchema } from './useIFrameMessenger/schema';
|
|
19
|
-
export { useIFrameMessengerHandlers } from './useIFrameMessenger/useIFrameMessengerHandlers';
|
|
20
|
-
export { IFrameMessengerProvider } from './useIFrameMessenger/useIFrameMessengerContext';
|
|
15
|
+
export * from './useIFrameMessengerClient';
|
|
16
|
+
export * from './usePanelMessenger';
|
|
21
17
|
export { useGetRecordIdCard } from './useGetRecordIdCard';
|
|
22
18
|
export { useConfirmModal } from './useConfirmModal/useConfirmModal';
|
|
23
19
|
export { useDelayedLoading } from './useDelayedLoading';
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,+BAA+B,EAAC,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,+BAA+B,EAAC,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,eAAe,EAAC,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC","sourcesContent":["export {useSaveApplicationMutation} from '../_gqlTypes';\nexport {useAntdLocale} from './useAntdLocale';\nexport {default as useAppLang} from './useAppLang';\nexport {default as useAuth} from './useAuth';\nexport {default as useGetRecordForm} from './useGetRecordForm';\nexport {useGetRecordUpdatesSubscription} from './useGetRecordUpdatesSubscription';\nexport {default as useLang} from './useLang/useLang';\nexport {default as useLocalStorage} from './useLocalStorage';\nexport {default as useRecordsConsultationHistory} from './useRecordsConsultationHistory';\nexport {useRefreshFieldValues} from './useRefreshFieldValues';\nexport {default as useLoginChecker} from './useLoginChecker';\nexport {default as useRedirectToLogin} from './useRedirectToLogin';\nexport {useUser} from './useUser';\nexport {useValuesCacheUpdate} from './useValuesCacheUpdate';\nexport * from './useIFrameMessengerClient';\nexport * from './usePanelMessenger';\nexport {useGetRecordIdCard} from './useGetRecordIdCard';\nexport {useConfirmModal} from './useConfirmModal/useConfirmModal';\nexport {useDelayedLoading} from './useDelayedLoading';\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const IFrameMessengerClientContext: import("react").Context<{
|
|
2
|
+
isRegistered: boolean;
|
|
3
|
+
unregister: () => void;
|
|
4
|
+
changeLangInAllFrames: (newLanguage: string) => void;
|
|
5
|
+
addPanelMessageHandler: import("..").AddMessageToPanelMessageHandler;
|
|
6
|
+
addInternalEventHandler: import("..").AddInternalEventHandler;
|
|
7
|
+
showModalConfirm: (data: import("..").ModalConfirmMessage["data"]) => void;
|
|
8
|
+
showAlert: (data: import("..").AlertMessage["data"]) => void;
|
|
9
|
+
showNotification: (data: import("..").NotificationMessage["data"]) => void;
|
|
10
|
+
messageToParent: (data: import("..").SimpleMessage["data"]) => void;
|
|
11
|
+
navigateToPanel: (data: import("..").NavigateToPanelMessage["data"]) => void;
|
|
12
|
+
closePanel: (data: import("..").ClosePanelMessage["data"]) => void;
|
|
13
|
+
navigateToIframe: (data: import("..").NavigateToIframeMessage["data"]) => void;
|
|
14
|
+
messageToPanel: (data: import("..").MessageToPanelMessage["data"]) => void;
|
|
15
|
+
openFlapPanel: (data: import("..").OpenFlapPanelMessage["data"]) => void;
|
|
16
|
+
closeFlapPanel: () => void;
|
|
17
|
+
getPanelConfig: (data: import("..").GetPanelConfigMessage["data"]) => void;
|
|
18
|
+
getUrl: (data: import("..").GetUrlMessage["data"]) => void;
|
|
19
|
+
explorerViewChanged: (data: import("..").ExplorerViewChangedMessage["data"]) => void;
|
|
20
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IFrameMessengerClientContext.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/IFrameMessengerClientContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAKpC,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAoC,IAAI,CAAC,CAAC","sourcesContent":["import {createContext} from 'react';\nimport {type usePanelMessenger} from '_ui/hooks/usePanelMessenger/usePanelMessenger';\n\ntype IframeMessengerContextType = ReturnType<typeof usePanelMessenger>;\n\nexport const IFrameMessengerClientContext = createContext<IframeMessengerContextType | null>(null);\n"]}
|
|
@@ -3,5 +3,5 @@ interface IFrameMessengerClientProps {
|
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
id?: string;
|
|
5
5
|
}
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const IFrameMessengerClientProvider: FunctionComponent<IFrameMessengerClientProps>;
|
|
7
7
|
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { usePanelMessenger } from '../../hooks/usePanelMessenger/usePanelMessenger';
|
|
4
|
+
import { IFrameMessengerClientContext } from './IFrameMessengerClientContext';
|
|
5
|
+
export const IFrameMessengerClientProvider = ({ children, id }) => {
|
|
6
|
+
const iFrameMessenger = usePanelMessenger({ id });
|
|
7
|
+
useEffect(() => () => iFrameMessenger.unregister(), []);
|
|
8
|
+
if (!iFrameMessenger.isRegistered) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(IFrameMessengerClientContext.Provider, { value: iFrameMessenger, children: children }));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=IFrameMessengerClientProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IFrameMessengerClientProvider.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/IFrameMessengerClientProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAyC,SAAS,EAAC,MAAM,OAAO,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAO5E,MAAM,CAAC,MAAM,6BAA6B,GAAkD,CAAC,EAAC,QAAQ,EAAE,EAAE,EAAC,EAAE,EAAE;IAC3G,MAAM,eAAe,GAAG,iBAAiB,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,KAAC,4BAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,YACxD,QAAQ,GAC2B,CAC3C,CAAC;AACN,CAAC,CAAC","sourcesContent":["import {type FunctionComponent, type ReactNode, useEffect} from 'react';\nimport {usePanelMessenger} from '_ui/hooks/usePanelMessenger/usePanelMessenger';\nimport {IFrameMessengerClientContext} from './IFrameMessengerClientContext';\n\ninterface IFrameMessengerClientProps {\n children: ReactNode;\n id?: string;\n}\n\nexport const IFrameMessengerClientProvider: FunctionComponent<IFrameMessengerClientProps> = ({children, id}) => {\n const iFrameMessenger = usePanelMessenger({id});\n\n useEffect(() => () => iFrameMessenger.unregister(), []);\n\n if (!iFrameMessenger.isRegistered) {\n return null;\n }\n\n return (\n <IFrameMessengerClientContext.Provider value={iFrameMessenger}>\n {children}\n </IFrameMessengerClientContext.Provider>\n );\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,6BAA6B,EAAC,MAAM,iCAAiC,CAAC","sourcesContent":["export {useIFrameMessengerClient} from './useIFrameMessengerClient';\nexport {IFrameMessengerClientProvider} from './IFrameMessengerClientProvider';\n"]}
|
|
@@ -2,18 +2,19 @@ export declare const useIFrameMessengerClient: () => {
|
|
|
2
2
|
isRegistered: boolean;
|
|
3
3
|
unregister: () => void;
|
|
4
4
|
changeLangInAllFrames: (newLanguage: string) => void;
|
|
5
|
-
addPanelMessageHandler: import("
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
addPanelMessageHandler: import("..").AddMessageToPanelMessageHandler;
|
|
6
|
+
addInternalEventHandler: import("..").AddInternalEventHandler;
|
|
7
|
+
showModalConfirm: (data: import("..").ModalConfirmMessage["data"]) => void;
|
|
8
|
+
showAlert: (data: import("..").AlertMessage["data"]) => void;
|
|
9
|
+
showNotification: (data: import("..").NotificationMessage["data"]) => void;
|
|
10
|
+
messageToParent: (data: import("..").SimpleMessage["data"]) => void;
|
|
11
|
+
navigateToPanel: (data: import("..").NavigateToPanelMessage["data"]) => void;
|
|
12
|
+
closePanel: (data: import("..").ClosePanelMessage["data"]) => void;
|
|
13
|
+
navigateToIframe: (data: import("..").NavigateToIframeMessage["data"]) => void;
|
|
14
|
+
messageToPanel: (data: import("..").MessageToPanelMessage["data"]) => void;
|
|
15
|
+
openFlapPanel: (data: import("..").OpenFlapPanelMessage["data"]) => void;
|
|
15
16
|
closeFlapPanel: () => void;
|
|
16
|
-
getPanelConfig: (data: import("
|
|
17
|
-
getUrl: (data: import("
|
|
18
|
-
explorerViewChanged: (data: import("
|
|
17
|
+
getPanelConfig: (data: import("..").GetPanelConfigMessage["data"]) => void;
|
|
18
|
+
getUrl: (data: import("..").GetUrlMessage["data"]) => void;
|
|
19
|
+
explorerViewChanged: (data: import("..").ExplorerViewChangedMessage["data"]) => void;
|
|
19
20
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useContext } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { IFrameMessengerClientContext } from './IFrameMessengerClientContext';
|
|
3
3
|
export const useIFrameMessengerClient = () => {
|
|
4
|
-
const context = useContext(
|
|
4
|
+
const context = useContext(IFrameMessengerClientContext);
|
|
5
5
|
if (!context) {
|
|
6
6
|
throw new Error('IframeMessengerClientContext must be used within an IframeMessengerClient');
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIFrameMessengerClient.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/useIFrameMessengerClient.
|
|
1
|
+
{"version":3,"file":"useIFrameMessengerClient.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/useIFrameMessengerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACjC,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAE5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import {useContext} from 'react';\nimport {IFrameMessengerClientContext} from './IFrameMessengerClientContext';\n\nexport const useIFrameMessengerClient = () => {\n const context = useContext(IFrameMessengerClientContext);\n if (!context) {\n throw new Error('IframeMessengerClientContext must be used within an IframeMessengerClient');\n }\n return context;\n};\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Singleton Provider for the PanelMessenger system.
|
|
4
|
+
* Must be mounted once above all `PanelCustom` instances.
|
|
5
|
+
*
|
|
6
|
+
* Owns a single `window.addEventListener('message')` (via `usePanelMessenger`)
|
|
7
|
+
* and routes incoming messages to the correct panel's handlers using `handlersMap`.
|
|
8
|
+
*
|
|
9
|
+
* Each `PanelCustom` registers/deregisters its handlers via `usePanelIFrameHandlers`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PanelMessengerProvider: ({ children }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}) => JSX.Element;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useMemo, useRef } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { usePanelMessenger } from './usePanelMessenger';
|
|
4
4
|
import { encodeMessage, initClientHandlers } from './messageHandlers';
|
|
5
|
-
import {
|
|
5
|
+
import { PanelMessengerContext } from './panelMessengerContext';
|
|
6
6
|
/**
|
|
7
|
-
* Singleton Provider for the
|
|
7
|
+
* Singleton Provider for the PanelMessenger system.
|
|
8
8
|
* Must be mounted once above all `PanelCustom` instances.
|
|
9
9
|
*
|
|
10
|
-
* Owns a single `window.addEventListener('message')` (via `
|
|
11
|
-
* and routes incoming messages to the correct
|
|
10
|
+
* Owns a single `window.addEventListener('message')` (via `usePanelMessenger`)
|
|
11
|
+
* and routes incoming messages to the correct panel's handlers using `handlersMap`.
|
|
12
12
|
*
|
|
13
|
-
* Each `PanelCustom` registers/deregisters its handlers via `
|
|
13
|
+
* Each `PanelCustom` registers/deregisters its handlers via `usePanelIFrameHandlers`.
|
|
14
14
|
*/
|
|
15
|
-
export const
|
|
15
|
+
export const PanelMessengerProvider = ({ children }) => {
|
|
16
16
|
// Maps each iframe's RefObject to its set of handlers.
|
|
17
17
|
// Using RefObject as key (instead of Window) avoids timing issues: contentWindow
|
|
18
18
|
// may not be available yet when the iframe mounts and registers its handlers.
|
|
@@ -20,7 +20,7 @@ export const IFrameMessengerProvider = ({ children }) => {
|
|
|
20
20
|
// Maps native React panel IDs to their handlers.
|
|
21
21
|
// Same-window postMessage is used as transport: __targetPanelId in the envelope routes to the right entry.
|
|
22
22
|
const nativePanelHandlersMap = useRef(new Map());
|
|
23
|
-
// Called by
|
|
23
|
+
// Called by usePanelMessenger for every non-system message.
|
|
24
24
|
// Finds the handlers registered for the sender and dispatches the message to them.
|
|
25
25
|
const onMessageReceived = useCallback((senderWindow, message, panelId, dispatch, callCb, callbacksStore) => {
|
|
26
26
|
// event.source is null when the sender iframe was unmounted before the message
|
|
@@ -60,7 +60,10 @@ export const IFrameMessengerProvider = ({ children }) => {
|
|
|
60
60
|
const clientHandlers = initClientHandlers(callCb, { handlers: matchedHandlers }, callbacksStore);
|
|
61
61
|
clientHandlers(enrichedMessage, dispatch);
|
|
62
62
|
}, []);
|
|
63
|
-
const { changeLangInAllFrames } =
|
|
63
|
+
const { changeLangInAllFrames, addInternalEventHandler } = usePanelMessenger({ onMessageReceived });
|
|
64
|
+
const dispatchToSelf = useCallback((message) => {
|
|
65
|
+
window.postMessage(encodeMessage(message), '*');
|
|
66
|
+
}, []);
|
|
64
67
|
const registerHandlers = useCallback((iframeRef, handlers) => {
|
|
65
68
|
handlersMap.current.set(iframeRef, handlers);
|
|
66
69
|
return () => handlersMap.current.delete(iframeRef);
|
|
@@ -72,7 +75,14 @@ export const IFrameMessengerProvider = ({ children }) => {
|
|
|
72
75
|
const dispatchToNativePanel = useCallback((panelId, message) => {
|
|
73
76
|
window.postMessage(encodeMessage({ ...message, __targetPanelId: panelId }), '*');
|
|
74
77
|
}, []);
|
|
75
|
-
const contextValue = useMemo(() => ({
|
|
76
|
-
|
|
78
|
+
const contextValue = useMemo(() => ({
|
|
79
|
+
registerHandlers,
|
|
80
|
+
registerNativePanelHandlers,
|
|
81
|
+
dispatchToNativePanel,
|
|
82
|
+
changeLangInAllFrames,
|
|
83
|
+
addInternalEventHandler,
|
|
84
|
+
dispatchToSelf,
|
|
85
|
+
}), []);
|
|
86
|
+
return _jsx(PanelMessengerContext.Provider, { value: contextValue, children: children });
|
|
77
87
|
};
|
|
78
|
-
//# sourceMappingURL=
|
|
88
|
+
//# sourceMappingURL=PanelMessengerProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelMessengerProvider.js","sourceRoot":"","sources":["../../../src/hooks/usePanelMessenger/PanelMessengerProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type MutableRefObject, type ReactNode, type RefObject, useCallback, useMemo, useRef} from 'react';\nimport {usePanelMessenger} from './usePanelMessenger';\nimport {encodeMessage, initClientHandlers} from './messageHandlers';\nimport {\n type Callbacks,\n type CallCbFunction,\n type InternalEventMessage,\n type Message,\n type MessageDispatcher,\n type IUsePanelMessengerOptions,\n type RegisterHandlers,\n type RegisterNativePanelHandlers,\n} from './types';\nimport {PanelMessengerContext} from './panelMessengerContext';\n\n/**\n * Singleton Provider for the PanelMessenger system.\n * Must be mounted once above all `PanelCustom` instances.\n *\n * Owns a single `window.addEventListener('message')` (via `usePanelMessenger`)\n * and routes incoming messages to the correct panel's handlers using `handlersMap`.\n *\n * Each `PanelCustom` registers/deregisters its handlers via `usePanelIFrameHandlers`.\n */\nexport const PanelMessengerProvider = ({children}: {children: ReactNode}) => {\n // Maps each iframe's RefObject to its set of handlers.\n // Using RefObject as key (instead of Window) avoids timing issues: contentWindow\n // may not be available yet when the iframe mounts and registers its handlers.\n const handlersMap = useRef(new Map<RefObject<HTMLIFrameElement>, IUsePanelMessengerOptions['handlers']>());\n\n // Maps native React panel IDs to their handlers.\n // Same-window postMessage is used as transport: __targetPanelId in the envelope routes to the right entry.\n const nativePanelHandlersMap = useRef(new Map<string, IUsePanelMessengerOptions['handlers']>());\n\n // Called by usePanelMessenger for every non-system message.\n // Finds the handlers registered for the sender and dispatches the message to them.\n const onMessageReceived = useCallback(\n (\n senderWindow: Window | null,\n message: Message,\n panelId: string | null,\n dispatch: MessageDispatcher,\n callCb: CallCbFunction,\n callbacksStore: MutableRefObject<Callbacks>,\n ) => {\n // event.source is null when the sender iframe was unmounted before the message\n // was processed — the browser clears the reference on iframe removal.\n if (!senderWindow) {\n return;\n }\n\n // Same-window message: dispatched via dispatchToNativePanel.\n // Route to the native panel identified by __targetPanelId.\n if (senderWindow === window) {\n const targetPanelId = message.__targetPanelId;\n if (!targetPanelId) {\n return;\n }\n const handlers = nativePanelHandlersMap.current.get(targetPanelId);\n if (!handlers) {\n return;\n }\n const clientHandlers = initClientHandlers(callCb, {handlers}, callbacksStore);\n clientHandlers(message, dispatch);\n return;\n }\n\n let matchedHandlers: IUsePanelMessengerOptions['handlers'] | undefined;\n for (const [ref, handlers] of handlersMap.current) {\n if (ref.current?.contentWindow === senderWindow) {\n matchedHandlers = handlers;\n break;\n }\n }\n\n // No registered handlers for this sender: either the iframe called unregisterHandlers\n // before its last message was processed (race condition on unmount), or the message\n // originates from an unrelated frame that passed decodeMessage validation.\n if (!matchedHandlers) {\n return;\n }\n\n const enrichedMessage =\n message.type === 'get-panel-config' ? {...message, data: {...message.data, panelId}} : message;\n\n const clientHandlers = initClientHandlers(callCb, {handlers: matchedHandlers}, callbacksStore);\n clientHandlers(enrichedMessage, dispatch);\n },\n [],\n );\n\n const {changeLangInAllFrames, addInternalEventHandler} = usePanelMessenger({onMessageReceived});\n\n const dispatchToSelf = useCallback((message: InternalEventMessage) => {\n window.postMessage(encodeMessage(message as unknown as Message), '*');\n }, []);\n\n const registerHandlers: RegisterHandlers = useCallback((iframeRef, handlers) => {\n handlersMap.current.set(iframeRef, handlers);\n return () => handlersMap.current.delete(iframeRef);\n }, []);\n\n const registerNativePanelHandlers: RegisterNativePanelHandlers = useCallback((panelId, handlers) => {\n nativePanelHandlersMap.current.set(panelId, handlers);\n return () => nativePanelHandlersMap.current.delete(panelId);\n }, []);\n\n const dispatchToNativePanel = useCallback((panelId: string, message: Message) => {\n window.postMessage(encodeMessage({...message, __targetPanelId: panelId}), '*');\n }, []);\n\n const contextValue = useMemo(\n () => ({\n registerHandlers,\n registerNativePanelHandlers,\n dispatchToNativePanel,\n changeLangInAllFrames,\n addInternalEventHandler,\n dispatchToSelf,\n }),\n [],\n );\n\n return <PanelMessengerContext.Provider value={contextValue}>{children}</PanelMessengerContext.Provider>;\n};\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { usePanelMessenger as useIFrameMessenger } from './usePanelMessenger';
|
|
2
|
+
export { creationPanelSchema } from './schema';
|
|
3
|
+
export { usePanelIFrameHandlers } from './usePanelIFrameHandlers';
|
|
4
|
+
export { PanelMessengerProvider } from './PanelMessengerProvider';
|
|
5
|
+
export { usePanelEventHandlers } from './usePanelEventHandlers';
|
|
6
|
+
export type { Message, MessageToParent, MessageFromParent, ModalConfirmMessage, AlertMessage, NotificationMessage, ChangeLanguageMessage, SimpleMessage, RegisterMessage, UnregisterMessage, IsRegisteredMessage, NavigateToPanelMessage, ClosePanelMessage, NavigateToIframeMessage, MessageToPanelMessage, OpenFlapPanelMessage, CloseFlapPanelMessage, GetUrlMessage, GetPanelConfigMessage, ExplorerViewChangedMessage, ViewSettingsUpdateMessage, MessageHandler, MessageDispatcher, MessageToPanelMessageHandler, AddMessageToPanelMessageHandler, InternalEventMessage, InternalEventHandler, AddInternalEventHandler, } from './types';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { usePanelMessenger as useIFrameMessenger } from './usePanelMessenger';
|
|
2
|
+
export { creationPanelSchema } from './schema';
|
|
3
|
+
export { usePanelIFrameHandlers } from './usePanelIFrameHandlers';
|
|
4
|
+
export { PanelMessengerProvider } from './PanelMessengerProvider';
|
|
5
|
+
export { usePanelEventHandlers } from './usePanelEventHandlers';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/usePanelMessenger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC","sourcesContent":["export {usePanelMessenger as useIFrameMessenger} from './usePanelMessenger';\nexport {creationPanelSchema} from './schema';\nexport {usePanelIFrameHandlers} from './usePanelIFrameHandlers';\nexport {PanelMessengerProvider} from './PanelMessengerProvider';\nexport {usePanelEventHandlers} from './usePanelEventHandlers';\nexport type {\n Message,\n MessageToParent,\n MessageFromParent,\n ModalConfirmMessage,\n AlertMessage,\n NotificationMessage,\n ChangeLanguageMessage,\n SimpleMessage,\n RegisterMessage,\n UnregisterMessage,\n IsRegisteredMessage,\n NavigateToPanelMessage,\n ClosePanelMessage,\n NavigateToIframeMessage,\n MessageToPanelMessage,\n OpenFlapPanelMessage,\n CloseFlapPanelMessage,\n GetUrlMessage,\n GetPanelConfigMessage,\n ExplorerViewChangedMessage,\n ViewSettingsUpdateMessage,\n MessageHandler,\n MessageDispatcher,\n MessageToPanelMessageHandler,\n AddMessageToPanelMessageHandler,\n InternalEventMessage,\n InternalEventHandler,\n AddInternalEventHandler,\n} from './types';\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type MutableRefObject } from 'react';
|
|
2
|
-
import { type AlertMessage, type Callbacks, type CallCbFunction, type ClosePanelMessage, type ExplorerViewChangedMessage, type
|
|
2
|
+
import { type AlertMessage, type Callbacks, type CallCbFunction, type ClosePanelMessage, type ExplorerViewChangedMessage, type IUsePanelMessengerOptions, type GetUrlMessage, type Message, type MessageDispatcher, type MessageHandler, type MessageToPanelMessage, type ModalConfirmMessage, type NavigateToIframeMessage, type NavigateToPanelMessage, type NotificationMessage, type SimpleMessage, type OpenFlapPanelMessage, type GetPanelConfigMessage } from './types';
|
|
3
3
|
export declare const encodeMessage: (message: Message) => string;
|
|
4
4
|
export declare const decodeMessage: (raw: string) => Message | undefined;
|
|
5
|
-
export declare const initClientHandlers: (callCb: CallCbFunction, options?:
|
|
5
|
+
export declare const initClientHandlers: (callCb: CallCbFunction, options?: IUsePanelMessengerOptions, callbacksList?: MutableRefObject<Callbacks>) => MessageHandler;
|
|
6
6
|
export declare const getExposedMethods: (callbacksStore: MutableRefObject<Callbacks>, dispatch?: MessageDispatcher) => {
|
|
7
7
|
showModalConfirm: (data: ModalConfirmMessage["data"]) => void;
|
|
8
8
|
showAlert: (data: AlertMessage["data"]) => void;
|
|
@@ -78,7 +78,7 @@ export const initClientHandlers = (callCb, options, callbacksList) => (message,
|
|
|
78
78
|
case 'explorer-view-changed':
|
|
79
79
|
options?.handlers?.onExplorerViewChanged?.(message.data);
|
|
80
80
|
break;
|
|
81
|
-
case 'view-
|
|
81
|
+
case 'view-settings-update':
|
|
82
82
|
options?.handlers?.onViewConfigUpdate?.(message.data);
|
|
83
83
|
break;
|
|
84
84
|
default:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageHandlers.js","sourceRoot":"","sources":["../../../src/hooks/usePanelMessenger/messageHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import {type MutableRefObject} from 'react';\nimport {\n type AlertMessage,\n type CallbackFunction,\n type Callbacks,\n type CallCbFunction,\n type ClosePanelMessage,\n type ExplorerViewChangedMessage,\n type IEncodedMessage,\n type IUsePanelMessengerOptions,\n type GetUrlMessage,\n type Message,\n type MessageDispatcher,\n type MessageHandler,\n type MessageToPanelMessage,\n type ModalConfirmMessage,\n type NavigateToIframeMessage,\n type NavigateToPanelMessage,\n type NotificationMessage,\n packetId,\n type SimpleMessage,\n type OpenFlapPanelMessage,\n type GetPanelConfigMessage,\n type ViewSettingsUpdateMessage,\n} from './types';\n\nexport const encodeMessage = (message: Message): string =>\n JSON.stringify({\n payload: JSON.stringify(message),\n [packetId]: true,\n });\n\nexport const decodeMessage = (raw: string): Message | undefined => {\n try {\n const decoded: IEncodedMessage = JSON.parse(raw) as unknown as IEncodedMessage;\n if (packetId in decoded && decoded[packetId] === true) {\n return JSON.parse(decoded.payload) as Message;\n }\n } catch (e) {\n return undefined;\n }\n return undefined;\n};\n\nconst getCallback = (path: string, callbacksList?: MutableRefObject<Callbacks>): CallbackFunction | null => {\n if (!callbacksList?.current) {\n return null;\n }\n const pathArray = path.split('.');\n let callback: CallbackFunction | Callbacks | Record<string, CallbackFunction> = callbacksList.current;\n pathArray.forEach(part => (callback = (callback as Callbacks | Record<string, CallbackFunction>)?.[part]));\n return typeof callback === 'function' ? callback : null;\n};\n\nconst setCallbacks = (\n id: string,\n frameId: string,\n data: unknown,\n callCb: CallCbFunction,\n overrides?: string[],\n): unknown => {\n if (!overrides) {\n return data;\n }\n\n const nextData = {...(data as Record<string, unknown>)};\n overrides.forEach((key: string) => {\n nextData[key] = (...args: unknown[]) => {\n callCb(`${id}.${key}`, args, frameId);\n };\n });\n return nextData;\n};\n\nexport const initClientHandlers: (\n callCb: CallCbFunction,\n options?: IUsePanelMessengerOptions,\n callbacksList?: MutableRefObject<Callbacks>,\n) => MessageHandler = (callCb, options, callbacksList) => (message, dispatch) => {\n switch (message.type) {\n case 'modal-confirm':\n options?.handlers?.onModalConfirm?.(\n setCallbacks(\n message.id,\n message.__frameId,\n message.data,\n callCb,\n message.overrides,\n ) as ModalConfirmMessage['data'],\n message.id,\n dispatch,\n callCb,\n );\n break;\n case 'alert':\n options?.handlers?.onAlert?.(\n setCallbacks(\n message.id,\n message.__frameId,\n message.data,\n callCb,\n message.overrides,\n ) as AlertMessage['data'],\n message.id,\n dispatch,\n callCb,\n );\n break;\n case 'notification':\n options?.handlers?.onNotification?.(\n setCallbacks(\n message.id,\n message.__frameId,\n message.data,\n callCb,\n message.overrides,\n ) as NotificationMessage['data'],\n message.id,\n dispatch,\n callCb,\n );\n break;\n case 'message':\n options?.handlers?.onMessage?.(message.data, message.id, dispatch, callCb);\n break;\n case 'on-call-callback':\n // TODO How to know if handler can be removed from callbacksList ?\n getCallback(message.path, callbacksList)?.(...(message.data as never[]));\n break;\n case 'navigate-to-panel':\n options?.handlers?.onNavigateToPanel?.(message.data);\n break;\n case 'close-panel':\n options?.handlers?.onClosePanel?.(message.data);\n break;\n case 'navigate-to-iframe':\n options?.handlers?.onNavigateToIframe?.(message.data);\n break;\n case 'open-flap-panel':\n options?.handlers?.onOpenFlapPanel?.(message.data);\n break;\n case 'close-flap-panel':\n options?.handlers?.onCloseFlapPanel?.();\n break;\n case 'get-panel-config':\n options?.handlers?.onGetPanelConfig?.(\n setCallbacks(\n message.id,\n message.__frameId,\n message.data,\n callCb,\n message.overrides,\n ) as GetPanelConfigMessage['data'],\n message.id,\n dispatch,\n callCb,\n );\n break;\n case 'get-url':\n options?.handlers?.onGetUrl?.(\n setCallbacks(\n message.id,\n message.__frameId,\n message.data,\n callCb,\n message.overrides,\n ) as GetUrlMessage['data'],\n );\n break;\n case 'explorer-view-changed':\n options?.handlers?.onExplorerViewChanged?.(message.data as ExplorerViewChangedMessage['data']);\n break;\n case 'view-settings-update':\n options?.handlers?.onViewConfigUpdate?.(message.data as ViewSettingsUpdateMessage['data']);\n break;\n default:\n break;\n }\n};\n\nconst storeCallbacks = (\n data: unknown,\n id: string,\n callbacksStore: MutableRefObject<Callbacks>,\n): {data: unknown; overrides: string[]} => {\n const nextData = {...(data as Record<string, unknown>)};\n const overrides: string[] = [];\n Object.entries(nextData).forEach(([key, value]) => {\n if (typeof value === 'function') {\n callbacksStore.current[id] = {\n ...callbacksStore.current[id],\n [key]: value as CallbackFunction,\n };\n overrides.push(key);\n }\n });\n return {data: nextData, overrides};\n};\n\nexport const getExposedMethods = (callbacksStore: MutableRefObject<Callbacks>, dispatch?: MessageDispatcher) => ({\n showModalConfirm: (data: ModalConfirmMessage['data']) => {\n const id = Date.now().toString();\n const {data: nextData, overrides} = storeCallbacks(data, id, callbacksStore);\n dispatch?.({type: 'modal-confirm', data: nextData as ModalConfirmMessage['data'], id, overrides});\n },\n showAlert: (data: AlertMessage['data']) => {\n const id = Date.now().toString();\n const {data: nextData, overrides} = storeCallbacks(data, id, callbacksStore);\n dispatch?.({type: 'alert', data: nextData as AlertMessage['data'], id, overrides});\n },\n showNotification: (data: NotificationMessage['data']) => {\n const id = Date.now().toString();\n const {data: nextData, overrides} = storeCallbacks(data, id, callbacksStore);\n dispatch?.({type: 'notification', data: nextData as NotificationMessage['data'], id, overrides});\n },\n messageToParent: (data: SimpleMessage['data']) => {\n const id = Date.now().toString();\n dispatch?.({type: 'message', data, id});\n },\n navigateToPanel: (data: NavigateToPanelMessage['data']) => {\n dispatch?.({type: 'navigate-to-panel', data});\n },\n closePanel: (data: ClosePanelMessage['data']) => {\n dispatch?.({type: 'close-panel', data});\n },\n navigateToIframe: (data: NavigateToIframeMessage['data']) => {\n dispatch?.({type: 'navigate-to-iframe', data});\n },\n messageToPanel: (data: MessageToPanelMessage['data']) => {\n dispatch?.({type: 'message-to-panel', data});\n },\n openFlapPanel: (data: OpenFlapPanelMessage['data']) => {\n dispatch?.({type: 'open-flap-panel', data});\n },\n closeFlapPanel: () => {\n dispatch?.({type: 'close-flap-panel'});\n },\n getPanelConfig: (data: GetPanelConfigMessage['data']) => {\n const id = Date.now().toString();\n const {data: nextData, overrides} = storeCallbacks(data, id, callbacksStore);\n dispatch?.({type: 'get-panel-config', data: nextData as GetPanelConfigMessage['data'], id, overrides});\n },\n getUrl: (data: GetUrlMessage['data']) => {\n const id = Date.now().toString();\n const {data: nextData, overrides} = storeCallbacks(data, id, callbacksStore);\n dispatch?.({type: 'get-url', data: nextData as GetUrlMessage['data'], id, overrides});\n },\n explorerViewChanged: (data: ExplorerViewChangedMessage['data']) => {\n dispatch?.({type: 'explorer-view-changed', data});\n },\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type AddInternalEventHandler, type DispatchToNativePanel, type InternalEventMessage, type RegisterHandlers, type RegisterNativePanelHandlers } from './types';
|
|
2
|
+
export interface IPanelMessengerContext {
|
|
3
|
+
registerHandlers: RegisterHandlers;
|
|
4
|
+
registerNativePanelHandlers: RegisterNativePanelHandlers;
|
|
5
|
+
dispatchToNativePanel: DispatchToNativePanel;
|
|
6
|
+
changeLangInAllFrames: (language: string) => void;
|
|
7
|
+
addInternalEventHandler: AddInternalEventHandler;
|
|
8
|
+
dispatchToSelf: (message: InternalEventMessage) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const PanelMessengerContext: import("react").Context<IPanelMessengerContext>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Kept in a separate file from the Provider component to satisfy the
|
|
2
2
|
// react-refresh/only-export-components ESLint rule (Context is not a component).
|
|
3
3
|
import { createContext } from 'react';
|
|
4
|
-
export const
|
|
5
|
-
//# sourceMappingURL=
|
|
4
|
+
export const PanelMessengerContext = createContext(null);
|
|
5
|
+
//# sourceMappingURL=panelMessengerContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panelMessengerContext.js","sourceRoot":"","sources":["../../../src/hooks/usePanelMessenger/panelMessengerContext.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,iFAAiF;AACjF,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAkBpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAC","sourcesContent":["// Kept in a separate file from the Provider component to satisfy the\n// react-refresh/only-export-components ESLint rule (Context is not a component).\nimport {createContext} from 'react';\nimport {\n type AddInternalEventHandler,\n type DispatchToNativePanel,\n type InternalEventMessage,\n type RegisterHandlers,\n type RegisterNativePanelHandlers,\n} from './types';\n\nexport interface IPanelMessengerContext {\n registerHandlers: RegisterHandlers;\n registerNativePanelHandlers: RegisterNativePanelHandlers;\n dispatchToNativePanel: DispatchToNativePanel;\n changeLangInAllFrames: (language: string) => void;\n addInternalEventHandler: AddInternalEventHandler;\n dispatchToSelf: (message: InternalEventMessage) => void;\n}\n\nexport const PanelMessengerContext = createContext<IPanelMessengerContext>(null);\n"]}
|