@bigbinary/neeto-molecules 3.15.20 → 3.15.22
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/Metadata.js +4 -4
- package/dist/Metadata.js.map +1 -1
- package/dist/SessionEnvironment.js +10 -9
- package/dist/SessionEnvironment.js.map +1 -1
- package/dist/ShareRecordingPane.js +36 -27
- package/dist/ShareRecordingPane.js.map +1 -1
- package/dist/cjs/Metadata.js +4 -4
- package/dist/cjs/Metadata.js.map +1 -1
- package/dist/cjs/SessionEnvironment.js +10 -9
- package/dist/cjs/SessionEnvironment.js.map +1 -1
- package/dist/cjs/ShareRecordingPane.js +36 -27
- package/dist/cjs/ShareRecordingPane.js.map +1 -1
- package/package.json +2 -2
- package/types/ShareRecordingPane.d.ts +33 -0
package/dist/Metadata.js
CHANGED
|
@@ -19,10 +19,10 @@ var Block = function Block(_ref) {
|
|
|
19
19
|
_ref$className = _ref.className,
|
|
20
20
|
className = _ref$className === void 0 ? "" : _ref$className;
|
|
21
21
|
return /*#__PURE__*/jsxs("div", {
|
|
22
|
-
className: "neeto-molecules-metadata__block mb-
|
|
22
|
+
className: "neeto-molecules-metadata__block neeto-ui-border-gray-200 mb-4 w-full border-b pb-4",
|
|
23
23
|
"data-cy": "neeto-molecules-metadata-block",
|
|
24
24
|
"data-testid": "metadata-block",
|
|
25
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
25
|
+
children: [(title || actionBlock) && /*#__PURE__*/jsxs("div", {
|
|
26
26
|
className: "mb-2 flex w-full items-center justify-between gap-2",
|
|
27
27
|
children: [title && /*#__PURE__*/jsx("div", {
|
|
28
28
|
className: "flex w-60 items-center gap-2 break-all",
|
|
@@ -40,7 +40,7 @@ var Block = function Block(_ref) {
|
|
|
40
40
|
})]
|
|
41
41
|
}), !!children && /*#__PURE__*/jsx("div", {
|
|
42
42
|
"data-testid": "metadata-card",
|
|
43
|
-
className: classnames("neeto-ui-bg-white neeto-
|
|
43
|
+
className: classnames("neeto-ui-bg-white neeto-molecules-metadata__card", className),
|
|
44
44
|
children: children
|
|
45
45
|
})]
|
|
46
46
|
});
|
|
@@ -189,7 +189,7 @@ var Metadata = function Metadata(_ref) {
|
|
|
189
189
|
children: /*#__PURE__*/jsxs("div", {
|
|
190
190
|
"data-cy": "neeto-molecules-metadata-wrapper",
|
|
191
191
|
"data-testid": "metadata-wrapper",
|
|
192
|
-
className: classnames("neeto-ui-bg-
|
|
192
|
+
className: classnames("neeto-ui-bg-white neeto-molecules-metadata neeto-ui-border-gray-200 h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden border-l", {
|
|
193
193
|
"neeto-molecules-metadata--size-large": size === SIZES.medium,
|
|
194
194
|
"neeto-molecules-metadata--size-small": size === SIZES.small
|
|
195
195
|
}, className),
|
package/dist/Metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sources":["../src/components/Metadata/Block.jsx","../src/components/Metadata/constants.js","../src/components/Metadata/DetailsBlock.jsx","../src/components/Metadata/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"neeto-molecules-metadata__block mb-5 w-full\"\n data-cy=\"neeto-molecules-metadata-block\"\n data-testid=\"metadata-block\"\n >\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-testid=\"metadata-block-title\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ml-auto\">{actionBlock}</div>}\n </div>\n {!!children && (\n <div\n data-testid=\"metadata-card\"\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-molecules-metadata__card border p-4\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"break-anywhere\" style=\"body2\">\n {value}\n </Typography>\n );\n }\n\n return <span>{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col space-y-3\"\n data-cy=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-600\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? Up : Down}\n style=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport { Collapse } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./metadata.scss\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"neeto-molecules-metadata-panel__backdrop\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\"neeto-molecules-metadata-list-panel__wrapper\", {\n \"neeto-molecules-metadata-list-panel__wrapper--collapsed\":\n isElementsPanelCollapsed,\n })}\n >\n <div className=\"neeto-molecules-metadata-list-panel__container\">\n <div\n data-cy=\"neeto-molecules-metadata-wrapper\"\n data-testid=\"metadata-wrapper\"\n className={classnames(\n \"neeto-ui-bg-gray-100 neeto-molecules-metadata h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden\",\n {\n \"neeto-molecules-metadata--size-large\": size === SIZES.medium,\n \"neeto-molecules-metadata--size-small\": size === SIZES.small,\n },\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"neeto-molecules-metadata__header mb-5 flex w-full justify-center\"\n data-cy=\"neeto-molecules-metadata-header\"\n data-testid=\"metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n <Button\n className=\"neeto-molecules-metadata-list-panel__toggler\"\n icon={Collapse}\n style=\"secondary\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","style","textTransform","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","DetailsBlock","_ref$details","details","_ref$style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","_Fragment","_ref5","isNotEmpty","Button","icon","Up","Down","onClick","Metadata","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","Collapse"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sources":["../src/components/Metadata/Block.jsx","../src/components/Metadata/constants.js","../src/components/Metadata/DetailsBlock.jsx","../src/components/Metadata/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"neeto-molecules-metadata__block neeto-ui-border-gray-200 mb-4 w-full border-b pb-4\"\n data-cy=\"neeto-molecules-metadata-block\"\n data-testid=\"metadata-block\"\n >\n {(title || actionBlock) && (\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-testid=\"metadata-block-title\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ml-auto\">{actionBlock}</div>}\n </div>\n )}\n {!!children && (\n <div\n data-testid=\"metadata-card\"\n className={classnames(\n \"neeto-ui-bg-white neeto-molecules-metadata__card\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"break-anywhere\" style=\"body2\">\n {value}\n </Typography>\n );\n }\n\n return <span>{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col space-y-3\"\n data-cy=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-600\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? Up : Down}\n style=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport { Collapse } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./metadata.scss\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"neeto-molecules-metadata-panel__backdrop\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\"neeto-molecules-metadata-list-panel__wrapper\", {\n \"neeto-molecules-metadata-list-panel__wrapper--collapsed\":\n isElementsPanelCollapsed,\n })}\n >\n <div className=\"neeto-molecules-metadata-list-panel__container\">\n <div\n data-cy=\"neeto-molecules-metadata-wrapper\"\n data-testid=\"metadata-wrapper\"\n className={classnames(\n \"neeto-ui-bg-white neeto-molecules-metadata neeto-ui-border-gray-200 h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden border-l\",\n {\n \"neeto-molecules-metadata--size-large\": size === SIZES.medium,\n \"neeto-molecules-metadata--size-small\": size === SIZES.small,\n },\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"neeto-molecules-metadata__header mb-5 flex w-full justify-center\"\n data-cy=\"neeto-molecules-metadata-header\"\n data-testid=\"metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n <Button\n className=\"neeto-molecules-metadata-list-panel__toggler\"\n icon={Collapse}\n style=\"secondary\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","style","textTransform","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","DetailsBlock","_ref$details","details","_ref$style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","_Fragment","_ref5","isNotEmpty","Button","icon","Up","Down","onClick","Metadata","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","Collapse"],"mappings":"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"}
|
|
@@ -242,7 +242,7 @@ var Item = function Item(_ref) {
|
|
|
242
242
|
setValue(item.value);
|
|
243
243
|
}, [item]);
|
|
244
244
|
return /*#__PURE__*/jsxs("div", {
|
|
245
|
-
className: classnames("mb-
|
|
245
|
+
className: classnames("mb-3 flex place-items-center gap-2 align-middle", extraWrapperClasses, {
|
|
246
246
|
"flex-wrap": name !== PHONE_NUMBER && allowMultiline,
|
|
247
247
|
"flex-nowrap": !allowMultiline
|
|
248
248
|
}),
|
|
@@ -253,14 +253,15 @@ var Item = function Item(_ref) {
|
|
|
253
253
|
children: iconToRender
|
|
254
254
|
})
|
|
255
255
|
}) : /*#__PURE__*/jsx(Typography, {
|
|
256
|
-
className: "neeto-molecules-session-environment-editable-field whitespace-nowrap",
|
|
257
|
-
style: "
|
|
256
|
+
className: "neeto-molecules-session-environment-editable-field neeto-ui-text-gray-600 whitespace-nowrap",
|
|
257
|
+
style: "body2",
|
|
258
258
|
children: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name))
|
|
259
259
|
}), !isEditing ? /*#__PURE__*/jsxs(Fragment, {
|
|
260
260
|
children: [kind === "datetime" ? /*#__PURE__*/jsx(TimeFormat.DateWeekTime, {
|
|
261
261
|
date: value,
|
|
262
262
|
typographyProps: {
|
|
263
263
|
style: "body2",
|
|
264
|
+
weight: "medium",
|
|
264
265
|
className: classnames("overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses), {
|
|
265
266
|
"whitespace-nowrap": !allowMultiline
|
|
266
267
|
})
|
|
@@ -271,7 +272,7 @@ var Item = function Item(_ref) {
|
|
|
271
272
|
children: /*#__PURE__*/jsx(Typography, {
|
|
272
273
|
"data-testid": "metadata-value-".concat(name),
|
|
273
274
|
style: "body2",
|
|
274
|
-
weight: "
|
|
275
|
+
weight: "medium",
|
|
275
276
|
className: classnames("overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses), {
|
|
276
277
|
"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5": isEditable,
|
|
277
278
|
"whitespace-nowrap": !allowMultiline
|
|
@@ -320,10 +321,10 @@ var DetailsBlock = function DetailsBlock(_ref) {
|
|
|
320
321
|
className: "mb-4",
|
|
321
322
|
"data-testid": "details-block-items-parent",
|
|
322
323
|
children: [title && /*#__PURE__*/jsxs("div", {
|
|
323
|
-
className: "mb-2 flex",
|
|
324
|
+
className: "mb-2 flex items-center gap-2",
|
|
324
325
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
325
|
-
className: "
|
|
326
|
-
style: "
|
|
326
|
+
className: "neeto-ui-text-gray-700",
|
|
327
|
+
style: "h5",
|
|
327
328
|
textTransform: "uppercase",
|
|
328
329
|
weight: "bold",
|
|
329
330
|
children: title
|
|
@@ -396,7 +397,7 @@ var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
|
396
397
|
showIcons: true
|
|
397
398
|
}), showViewMore && /*#__PURE__*/jsxs(Fragment, {
|
|
398
399
|
children: [/*#__PURE__*/jsx("hr", {
|
|
399
|
-
className: "neeto-ui-border-gray-200
|
|
400
|
+
className: "neeto-ui-border-gray-200 my-4"
|
|
400
401
|
}), /*#__PURE__*/jsx(DetailsBlock$1, {
|
|
401
402
|
handleCancel: handleCancel,
|
|
402
403
|
handleSubmit: handleSubmit,
|
|
@@ -407,7 +408,7 @@ var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
|
407
408
|
}, moreDetails)
|
|
408
409
|
}), isPresent(customViewMoreItems) && /*#__PURE__*/jsxs(Fragment, {
|
|
409
410
|
children: [/*#__PURE__*/jsx("hr", {
|
|
410
|
-
className: "neeto-ui-border-gray-200
|
|
411
|
+
className: "neeto-ui-border-gray-200 my-4"
|
|
411
412
|
}), pluck("value", customViewMoreItems)]
|
|
412
413
|
})]
|
|
413
414
|
}), /*#__PURE__*/jsx(Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionEnvironment.js","sources":["../src/components/SessionEnvironment/constants.js","../src/components/SessionEnvironment/utils.jsx","../src/components/SessionEnvironment/EditField.jsx","../src/components/SessionEnvironment/Item.jsx","../src/components/SessionEnvironment/DetailsBlock.jsx","../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n className={classNames(\n \"mb-2 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field whitespace-nowrap\"\n style=\"h5\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"normal\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex\">\n <Typography\n className=\"mr-2\"\n style=\"h4\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","placeholder","what","type","onChange","Button","icon","Close","style","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","useEffect","classNames","Tooltip","Typography","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","detail","map","index","_createElement","key","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SessionEnvironment.js","sources":["../src/components/SessionEnvironment/constants.js","../src/components/SessionEnvironment/utils.jsx","../src/components/SessionEnvironment/EditField.jsx","../src/components/SessionEnvironment/Item.jsx","../src/components/SessionEnvironment/DetailsBlock.jsx","../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n className={classNames(\n \"mb-3 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field neeto-ui-text-gray-600 whitespace-nowrap\"\n style=\"body2\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n weight: \"medium\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"medium\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex items-center gap-2\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 my-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 my-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","placeholder","what","type","onChange","Button","icon","Close","style","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","useEffect","classNames","Tooltip","Typography","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","detail","map","index","_createElement","key","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import { isNotEmpty } from '@bigbinary/neeto-cist';
|
|
3
4
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
4
5
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
5
6
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -70,17 +71,17 @@ var validateInput = function validateInput(input) {
|
|
|
70
71
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
71
72
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
72
73
|
var SharePaneBody = function SharePaneBody(_ref) {
|
|
73
|
-
var
|
|
74
|
+
var recordingUrls = _ref.recordingUrls,
|
|
74
75
|
totalDuration = _ref.totalDuration,
|
|
75
76
|
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
76
77
|
isOpen = _ref.isOpen;
|
|
77
78
|
var _useTranslation = useTranslation(),
|
|
78
79
|
t = _useTranslation.t;
|
|
79
80
|
var currentTimestamp = getCurrentTimestamp();
|
|
80
|
-
var _useState = useState(
|
|
81
|
+
var _useState = useState([]),
|
|
81
82
|
_useState2 = _slicedToArray(_useState, 2),
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
shareLinks = _useState2[0],
|
|
84
|
+
setShareLinks = _useState2[1];
|
|
84
85
|
var _useState3 = useState(currentTimestamp),
|
|
85
86
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
86
87
|
currentPlaybackTime = _useState4[0],
|
|
@@ -119,26 +120,30 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
119
120
|
setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
|
|
120
121
|
}, [isOpen, showHours, currentTimestamp]);
|
|
121
122
|
useEffect(function () {
|
|
122
|
-
var
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
var playbackUrls = recordingUrls.map(function (recordingUrl) {
|
|
124
|
+
return buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
|
|
125
|
+
time: currentPlaybackTime
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
128
|
+
setShareLinks(playbackUrls);
|
|
129
|
+
}, [recordingUrls, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
|
|
127
130
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
128
|
-
children: [
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
131
|
+
children: [shareLinks.map(function (shareLink, index) {
|
|
132
|
+
return /*#__PURE__*/jsxs("div", {
|
|
133
|
+
className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2",
|
|
134
|
+
children: [/*#__PURE__*/jsx(Tooltip, {
|
|
135
|
+
content: shareLink,
|
|
136
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
137
|
+
className: "truncate",
|
|
138
|
+
style: "body2",
|
|
139
|
+
children: shareLink
|
|
140
|
+
})
|
|
141
|
+
}), /*#__PURE__*/jsx(CopyToClipboardButton, {
|
|
142
|
+
className: "flex-shrink-0",
|
|
143
|
+
style: "secondary",
|
|
144
|
+
value: shareLink
|
|
145
|
+
})]
|
|
146
|
+
}, index);
|
|
142
147
|
}), /*#__PURE__*/jsxs("div", {
|
|
143
148
|
className: "flex items-center gap-x-2",
|
|
144
149
|
children: [/*#__PURE__*/jsx(Checkbox, {
|
|
@@ -164,11 +169,14 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
164
169
|
});
|
|
165
170
|
};
|
|
166
171
|
|
|
167
|
-
var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
172
|
+
var _excluded = ["recordingUrl", "recordingUrls", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
168
173
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
169
174
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
170
175
|
var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
171
|
-
var recordingUrl = _ref.recordingUrl,
|
|
176
|
+
var _ref$recordingUrl = _ref.recordingUrl,
|
|
177
|
+
recordingUrl = _ref$recordingUrl === void 0 ? null : _ref$recordingUrl,
|
|
178
|
+
_ref$recordingUrls = _ref.recordingUrls,
|
|
179
|
+
recordingUrls = _ref$recordingUrls === void 0 ? [] : _ref$recordingUrls,
|
|
172
180
|
totalDuration = _ref.totalDuration,
|
|
173
181
|
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
174
182
|
isOpen = _ref.isOpen,
|
|
@@ -178,6 +186,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
178
186
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
179
187
|
var _useTranslation = useTranslation(),
|
|
180
188
|
t = _useTranslation.t;
|
|
189
|
+
var recordingUrlsToShare = isNotEmpty(recordingUrls) ? recordingUrls : [recordingUrl];
|
|
181
190
|
return /*#__PURE__*/jsxs(Pane, _objectSpread(_objectSpread({}, _objectSpread({
|
|
182
191
|
isOpen: isOpen,
|
|
183
192
|
onClose: onClose
|
|
@@ -196,8 +205,8 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
196
205
|
}) : /*#__PURE__*/jsx(SharePaneBody, {
|
|
197
206
|
getCurrentTimestamp: getCurrentTimestamp,
|
|
198
207
|
isOpen: isOpen,
|
|
199
|
-
|
|
200
|
-
|
|
208
|
+
totalDuration: totalDuration,
|
|
209
|
+
recordingUrls: recordingUrlsToShare
|
|
201
210
|
})
|
|
202
211
|
})]
|
|
203
212
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareRecordingPane.js","sources":["../src/components/ShareRecordingPane/constants.js","../src/components/ShareRecordingPane/utils.js","../src/components/ShareRecordingPane/SharePaneBody.jsx","../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrl","buildUrl","_objectSpread","time","_jsxs","_Fragment","children","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","Pane","size","Header","Body","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShareRecordingPane.js","sources":["../src/components/ShareRecordingPane/constants.js","../src/components/ShareRecordingPane/utils.js","../src/components/ShareRecordingPane/SharePaneBody.jsx","../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n })\n );\n\n setShareLinks(playbackUrls);\n }, [recordingUrls, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, totalDuration }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrls","recordingUrl","buildUrl","_objectSpread","time","_jsxs","_Fragment","children","shareLink","index","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","size","Header","Body","Spinner"],"mappings":"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"}
|
package/dist/cjs/Metadata.js
CHANGED
|
@@ -21,10 +21,10 @@ var Block = function Block(_ref) {
|
|
|
21
21
|
_ref$className = _ref.className,
|
|
22
22
|
className = _ref$className === void 0 ? "" : _ref$className;
|
|
23
23
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
24
|
-
className: "neeto-molecules-metadata__block mb-
|
|
24
|
+
className: "neeto-molecules-metadata__block neeto-ui-border-gray-200 mb-4 w-full border-b pb-4",
|
|
25
25
|
"data-cy": "neeto-molecules-metadata-block",
|
|
26
26
|
"data-testid": "metadata-block",
|
|
27
|
-
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
27
|
+
children: [(title || actionBlock) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
28
|
className: "mb-2 flex w-full items-center justify-between gap-2",
|
|
29
29
|
children: [title && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
30
30
|
className: "flex w-60 items-center gap-2 break-all",
|
|
@@ -42,7 +42,7 @@ var Block = function Block(_ref) {
|
|
|
42
42
|
})]
|
|
43
43
|
}), !!children && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
44
44
|
"data-testid": "metadata-card",
|
|
45
|
-
className: classnames("neeto-ui-bg-white neeto-
|
|
45
|
+
className: classnames("neeto-ui-bg-white neeto-molecules-metadata__card", className),
|
|
46
46
|
children: children
|
|
47
47
|
})]
|
|
48
48
|
});
|
|
@@ -191,7 +191,7 @@ var Metadata = function Metadata(_ref) {
|
|
|
191
191
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
192
192
|
"data-cy": "neeto-molecules-metadata-wrapper",
|
|
193
193
|
"data-testid": "metadata-wrapper",
|
|
194
|
-
className: classnames("neeto-ui-bg-
|
|
194
|
+
className: classnames("neeto-ui-bg-white neeto-molecules-metadata neeto-ui-border-gray-200 h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden border-l", {
|
|
195
195
|
"neeto-molecules-metadata--size-large": size === SIZES.medium,
|
|
196
196
|
"neeto-molecules-metadata--size-small": size === SIZES.small
|
|
197
197
|
}, className),
|
package/dist/cjs/Metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sources":["../../src/components/Metadata/Block.jsx","../../src/components/Metadata/constants.js","../../src/components/Metadata/DetailsBlock.jsx","../../src/components/Metadata/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"neeto-molecules-metadata__block mb-5 w-full\"\n data-cy=\"neeto-molecules-metadata-block\"\n data-testid=\"metadata-block\"\n >\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-testid=\"metadata-block-title\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ml-auto\">{actionBlock}</div>}\n </div>\n {!!children && (\n <div\n data-testid=\"metadata-card\"\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-molecules-metadata__card border p-4\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"break-anywhere\" style=\"body2\">\n {value}\n </Typography>\n );\n }\n\n return <span>{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col space-y-3\"\n data-cy=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-600\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? Up : Down}\n style=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport { Collapse } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./metadata.scss\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"neeto-molecules-metadata-panel__backdrop\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\"neeto-molecules-metadata-list-panel__wrapper\", {\n \"neeto-molecules-metadata-list-panel__wrapper--collapsed\":\n isElementsPanelCollapsed,\n })}\n >\n <div className=\"neeto-molecules-metadata-list-panel__container\">\n <div\n data-cy=\"neeto-molecules-metadata-wrapper\"\n data-testid=\"metadata-wrapper\"\n className={classnames(\n \"neeto-ui-bg-gray-100 neeto-molecules-metadata h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden\",\n {\n \"neeto-molecules-metadata--size-large\": size === SIZES.medium,\n \"neeto-molecules-metadata--size-small\": size === SIZES.small,\n },\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"neeto-molecules-metadata__header mb-5 flex w-full justify-center\"\n data-cy=\"neeto-molecules-metadata-header\"\n data-testid=\"metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n <Button\n className=\"neeto-molecules-metadata-list-panel__toggler\"\n icon={Collapse}\n style=\"secondary\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","style","textTransform","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","DetailsBlock","_ref$details","details","_ref$style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","_Fragment","_ref5","isNotEmpty","Button","icon","Up","Down","onClick","Metadata","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","Collapse"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sources":["../../src/components/Metadata/Block.jsx","../../src/components/Metadata/constants.js","../../src/components/Metadata/DetailsBlock.jsx","../../src/components/Metadata/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"neeto-molecules-metadata__block neeto-ui-border-gray-200 mb-4 w-full border-b pb-4\"\n data-cy=\"neeto-molecules-metadata-block\"\n data-testid=\"metadata-block\"\n >\n {(title || actionBlock) && (\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-testid=\"metadata-block-title\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ml-auto\">{actionBlock}</div>}\n </div>\n )}\n {!!children && (\n <div\n data-testid=\"metadata-card\"\n className={classnames(\n \"neeto-ui-bg-white neeto-molecules-metadata__card\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"break-anywhere\" style=\"body2\">\n {value}\n </Typography>\n );\n }\n\n return <span>{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col space-y-3\"\n data-cy=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"neeto-ui-border-gray-200\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"space-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-600\"\n style=\"body2\"\n >\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? Up : Down}\n style=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport { Collapse } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./metadata.scss\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"neeto-molecules-metadata-panel__backdrop\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\"neeto-molecules-metadata-list-panel__wrapper\", {\n \"neeto-molecules-metadata-list-panel__wrapper--collapsed\":\n isElementsPanelCollapsed,\n })}\n >\n <div className=\"neeto-molecules-metadata-list-panel__container\">\n <div\n data-cy=\"neeto-molecules-metadata-wrapper\"\n data-testid=\"metadata-wrapper\"\n className={classnames(\n \"neeto-ui-bg-white neeto-molecules-metadata neeto-ui-border-gray-200 h-screen flex-shrink-0 overflow-y-auto overflow-x-hidden border-l\",\n {\n \"neeto-molecules-metadata--size-large\": size === SIZES.medium,\n \"neeto-molecules-metadata--size-small\": size === SIZES.small,\n },\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"neeto-molecules-metadata__header mb-5 flex w-full justify-center\"\n data-cy=\"neeto-molecules-metadata-header\"\n data-testid=\"metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n <Button\n className=\"neeto-molecules-metadata-list-panel__toggler\"\n icon={Collapse}\n style=\"secondary\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","style","textTransform","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","DetailsBlock","_ref$details","details","_ref$style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","_Fragment","_ref5","isNotEmpty","Button","icon","Up","Down","onClick","Metadata","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","Collapse"],"mappings":"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"}
|
|
@@ -244,7 +244,7 @@ var Item = function Item(_ref) {
|
|
|
244
244
|
setValue(item.value);
|
|
245
245
|
}, [item]);
|
|
246
246
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
247
|
-
className: classnames("mb-
|
|
247
|
+
className: classnames("mb-3 flex place-items-center gap-2 align-middle", extraWrapperClasses, {
|
|
248
248
|
"flex-wrap": name !== PHONE_NUMBER && allowMultiline,
|
|
249
249
|
"flex-nowrap": !allowMultiline
|
|
250
250
|
}),
|
|
@@ -255,14 +255,15 @@ var Item = function Item(_ref) {
|
|
|
255
255
|
children: iconToRender
|
|
256
256
|
})
|
|
257
257
|
}) : /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
258
|
-
className: "neeto-molecules-session-environment-editable-field whitespace-nowrap",
|
|
259
|
-
style: "
|
|
258
|
+
className: "neeto-molecules-session-environment-editable-field neeto-ui-text-gray-600 whitespace-nowrap",
|
|
259
|
+
style: "body2",
|
|
260
260
|
children: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name))
|
|
261
261
|
}), !isEditing ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
262
262
|
children: [kind === "datetime" ? /*#__PURE__*/jsxRuntime.jsx(TimeFormat.DateWeekTime, {
|
|
263
263
|
date: value,
|
|
264
264
|
typographyProps: {
|
|
265
265
|
style: "body2",
|
|
266
|
+
weight: "medium",
|
|
266
267
|
className: classnames("overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses), {
|
|
267
268
|
"whitespace-nowrap": !allowMultiline
|
|
268
269
|
})
|
|
@@ -273,7 +274,7 @@ var Item = function Item(_ref) {
|
|
|
273
274
|
children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
274
275
|
"data-testid": "metadata-value-".concat(name),
|
|
275
276
|
style: "body2",
|
|
276
|
-
weight: "
|
|
277
|
+
weight: "medium",
|
|
277
278
|
className: classnames("overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses), {
|
|
278
279
|
"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5": isEditable,
|
|
279
280
|
"whitespace-nowrap": !allowMultiline
|
|
@@ -322,10 +323,10 @@ var DetailsBlock = function DetailsBlock(_ref) {
|
|
|
322
323
|
className: "mb-4",
|
|
323
324
|
"data-testid": "details-block-items-parent",
|
|
324
325
|
children: [title && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
325
|
-
className: "mb-2 flex",
|
|
326
|
+
className: "mb-2 flex items-center gap-2",
|
|
326
327
|
children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
327
|
-
className: "
|
|
328
|
-
style: "
|
|
328
|
+
className: "neeto-ui-text-gray-700",
|
|
329
|
+
style: "h5",
|
|
329
330
|
textTransform: "uppercase",
|
|
330
331
|
weight: "bold",
|
|
331
332
|
children: title
|
|
@@ -398,7 +399,7 @@ var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
|
398
399
|
showIcons: true
|
|
399
400
|
}), showViewMore && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
400
401
|
children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
401
|
-
className: "neeto-ui-border-gray-200
|
|
402
|
+
className: "neeto-ui-border-gray-200 my-4"
|
|
402
403
|
}), /*#__PURE__*/jsxRuntime.jsx(DetailsBlock$1, {
|
|
403
404
|
handleCancel: handleCancel,
|
|
404
405
|
handleSubmit: handleSubmit,
|
|
@@ -409,7 +410,7 @@ var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
|
409
410
|
}, moreDetails)
|
|
410
411
|
}), neetoCist.isPresent(customViewMoreItems) && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
411
412
|
children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
412
|
-
className: "neeto-ui-border-gray-200
|
|
413
|
+
className: "neeto-ui-border-gray-200 my-4"
|
|
413
414
|
}), ramda.pluck("value", customViewMoreItems)]
|
|
414
415
|
})]
|
|
415
416
|
}), /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionEnvironment.js","sources":["../../src/components/SessionEnvironment/constants.js","../../src/components/SessionEnvironment/utils.jsx","../../src/components/SessionEnvironment/EditField.jsx","../../src/components/SessionEnvironment/Item.jsx","../../src/components/SessionEnvironment/DetailsBlock.jsx","../../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n className={classNames(\n \"mb-2 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field whitespace-nowrap\"\n style=\"h5\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"normal\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex\">\n <Typography\n className=\"mr-2\"\n style=\"h4\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 m-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","placeholder","what","type","onChange","Button","icon","Close","style","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","useEffect","classNames","Tooltip","Typography","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","detail","map","index","_createElement","key","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SessionEnvironment.js","sources":["../../src/components/SessionEnvironment/constants.js","../../src/components/SessionEnvironment/utils.jsx","../../src/components/SessionEnvironment/EditField.jsx","../../src/components/SessionEnvironment/Item.jsx","../../src/components/SessionEnvironment/DetailsBlock.jsx","../../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n className={classNames(\n \"mb-3 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field neeto-ui-text-gray-600 whitespace-nowrap\"\n style=\"body2\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n weight: \"medium\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"medium\"\n className={classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n {\n \"neeto-molecules-session-environment-editable-text cursor-pointer p-0.5\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex items-center gap-2\">\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"h5\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"neeto-ui-border-gray-200 my-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"neeto-ui-border-gray-200 my-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","placeholder","what","type","onChange","Button","icon","Close","style","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","useEffect","classNames","Tooltip","Typography","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","detail","map","index","_createElement","key","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
6
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
6
7
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
7
8
|
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
@@ -72,17 +73,17 @@ var validateInput = function validateInput(input) {
|
|
|
72
73
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
73
74
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
74
75
|
var SharePaneBody = function SharePaneBody(_ref) {
|
|
75
|
-
var
|
|
76
|
+
var recordingUrls = _ref.recordingUrls,
|
|
76
77
|
totalDuration = _ref.totalDuration,
|
|
77
78
|
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
78
79
|
isOpen = _ref.isOpen;
|
|
79
80
|
var _useTranslation = reactI18next.useTranslation(),
|
|
80
81
|
t = _useTranslation.t;
|
|
81
82
|
var currentTimestamp = getCurrentTimestamp();
|
|
82
|
-
var _useState = React.useState(
|
|
83
|
+
var _useState = React.useState([]),
|
|
83
84
|
_useState2 = _slicedToArray(_useState, 2),
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
shareLinks = _useState2[0],
|
|
86
|
+
setShareLinks = _useState2[1];
|
|
86
87
|
var _useState3 = React.useState(currentTimestamp),
|
|
87
88
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
88
89
|
currentPlaybackTime = _useState4[0],
|
|
@@ -121,26 +122,30 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
121
122
|
setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
|
|
122
123
|
}, [isOpen, showHours, currentTimestamp]);
|
|
123
124
|
React.useEffect(function () {
|
|
124
|
-
var
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
125
|
+
var playbackUrls = recordingUrls.map(function (recordingUrl) {
|
|
126
|
+
return utils.buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
|
|
127
|
+
time: currentPlaybackTime
|
|
128
|
+
}));
|
|
129
|
+
});
|
|
130
|
+
setShareLinks(playbackUrls);
|
|
131
|
+
}, [recordingUrls, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
|
|
129
132
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
130
|
-
children: [
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
children: [shareLinks.map(function (shareLink, index) {
|
|
134
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
135
|
+
className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2",
|
|
136
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Tooltip, {
|
|
137
|
+
content: shareLink,
|
|
138
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
139
|
+
className: "truncate",
|
|
140
|
+
style: "body2",
|
|
141
|
+
children: shareLink
|
|
142
|
+
})
|
|
143
|
+
}), /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
|
|
144
|
+
className: "flex-shrink-0",
|
|
145
|
+
style: "secondary",
|
|
146
|
+
value: shareLink
|
|
147
|
+
})]
|
|
148
|
+
}, index);
|
|
144
149
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
145
150
|
className: "flex items-center gap-x-2",
|
|
146
151
|
children: [/*#__PURE__*/jsxRuntime.jsx(Checkbox, {
|
|
@@ -166,11 +171,14 @@ var SharePaneBody = function SharePaneBody(_ref) {
|
|
|
166
171
|
});
|
|
167
172
|
};
|
|
168
173
|
|
|
169
|
-
var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
174
|
+
var _excluded = ["recordingUrl", "recordingUrls", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
170
175
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
171
176
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
172
177
|
var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
173
|
-
var recordingUrl = _ref.recordingUrl,
|
|
178
|
+
var _ref$recordingUrl = _ref.recordingUrl,
|
|
179
|
+
recordingUrl = _ref$recordingUrl === void 0 ? null : _ref$recordingUrl,
|
|
180
|
+
_ref$recordingUrls = _ref.recordingUrls,
|
|
181
|
+
recordingUrls = _ref$recordingUrls === void 0 ? [] : _ref$recordingUrls,
|
|
174
182
|
totalDuration = _ref.totalDuration,
|
|
175
183
|
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
176
184
|
isOpen = _ref.isOpen,
|
|
@@ -180,6 +188,7 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
180
188
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
181
189
|
var _useTranslation = reactI18next.useTranslation(),
|
|
182
190
|
t = _useTranslation.t;
|
|
191
|
+
var recordingUrlsToShare = neetoCist.isNotEmpty(recordingUrls) ? recordingUrls : [recordingUrl];
|
|
183
192
|
return /*#__PURE__*/jsxRuntime.jsxs(Pane, _objectSpread(_objectSpread({}, _objectSpread({
|
|
184
193
|
isOpen: isOpen,
|
|
185
194
|
onClose: onClose
|
|
@@ -198,8 +207,8 @@ var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
|
198
207
|
}) : /*#__PURE__*/jsxRuntime.jsx(SharePaneBody, {
|
|
199
208
|
getCurrentTimestamp: getCurrentTimestamp,
|
|
200
209
|
isOpen: isOpen,
|
|
201
|
-
|
|
202
|
-
|
|
210
|
+
totalDuration: totalDuration,
|
|
211
|
+
recordingUrls: recordingUrlsToShare
|
|
203
212
|
})
|
|
204
213
|
})]
|
|
205
214
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrl","buildUrl","_objectSpread","time","_jsxs","_Fragment","children","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","Pane","size","Header","Body","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrls,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLinks, setShareLinks] = useState([]);\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrls = recordingUrls.map(recordingUrl =>\n buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n })\n );\n\n setShareLinks(playbackUrls);\n }, [recordingUrls, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n {shareLinks.map((shareLink, index) => (\n <div\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-2 flex w-full items-center justify-between gap-1 p-2\"\n key={index}\n >\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n ))}\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl = null,\n recordingUrls = [],\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const recordingUrlsToShare = isNotEmpty(recordingUrls)\n ? recordingUrls\n : [recordingUrl];\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, totalDuration }}\n recordingUrls={recordingUrlsToShare}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string,\n /**\n * Recording URLs used for building the share link.\n */\n recordingUrls: PropTypes.array,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrls","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLinks","setShareLinks","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrls","recordingUrl","buildUrl","_objectSpread","time","_jsxs","_Fragment","children","shareLink","index","className","_jsx","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","_ref$recordingUrl","_ref$recordingUrls","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","recordingUrlsToShare","isNotEmpty","Pane","size","Header","Body","Spinner"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.22",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@babel/preset-typescript": "7.26.0",
|
|
53
53
|
"@babel/runtime": "7.26.0",
|
|
54
54
|
"@bigbinary/babel-preset-neeto": "1.0.8",
|
|
55
|
-
"@bigbinary/eslint-plugin-neeto": "1.5.
|
|
55
|
+
"@bigbinary/eslint-plugin-neeto": "1.5.7",
|
|
56
56
|
"@bigbinary/neeto-audit-frontend": "^2.1.0",
|
|
57
57
|
"@bigbinary/neeto-cist": "1.0.11",
|
|
58
58
|
"@bigbinary/neeto-commons-frontend": "4.12.6",
|
|
@@ -39,9 +39,42 @@ import React from 'react';
|
|
|
39
39
|
*
|
|
40
40
|
* export default ShareRecordingPaneExample;
|
|
41
41
|
* @endexample
|
|
42
|
+
* @example
|
|
43
|
+
*
|
|
44
|
+
* import { useState } from "react";
|
|
45
|
+
* import { Button } from "neetoui";
|
|
46
|
+
* import ShareRecordingPane from "components/ShareRecordingPane";
|
|
47
|
+
*
|
|
48
|
+
* const ShareRecordingPaneExample = () => {
|
|
49
|
+
* const [isOpen, setIsOpen] = useState(false);
|
|
50
|
+
*
|
|
51
|
+
* return (
|
|
52
|
+
* <>
|
|
53
|
+
* <Button
|
|
54
|
+
* label="Open Share Recording Pane with multiple recording URLs"
|
|
55
|
+
* onClick={() => setIsOpen(true)}
|
|
56
|
+
* />
|
|
57
|
+
* <ShareRecordingPane
|
|
58
|
+
* recordingUrls={[
|
|
59
|
+
* "https://example.com/recording",
|
|
60
|
+
* "https://customexample.domain.com/recording",
|
|
61
|
+
* ]}
|
|
62
|
+
* totalDuration={3600} // Total duration in seconds (e.g., 1 hour)
|
|
63
|
+
* getCurrentTimestamp={() => 300} // Current playback time in seconds
|
|
64
|
+
* isOpen={isOpen} // Boolean indicating if the pane is open
|
|
65
|
+
* onClose={() => setIsOpen(false)} // Function to close the pane
|
|
66
|
+
* isLoading={false}
|
|
67
|
+
* />
|
|
68
|
+
* </>
|
|
69
|
+
* );
|
|
70
|
+
* };
|
|
71
|
+
*
|
|
72
|
+
* export default ShareRecordingPaneExample;
|
|
73
|
+
* @endexample
|
|
42
74
|
*/
|
|
43
75
|
declare const ShareRecordingPane: React.FC<{
|
|
44
76
|
recordingUrl: string;
|
|
77
|
+
recordingUrls?: Array<string>;
|
|
45
78
|
totalDuration: number;
|
|
46
79
|
getCurrentTimestamp: () => number;
|
|
47
80
|
isOpen: boolean;
|