@bigbinary/neeto-molecules 3.16.84 → 3.16.86

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.
@@ -4,6 +4,7 @@ import React__default, { useRef } from 'react';
4
4
  import { isNotPresent, humanize, noop } from '@bigbinary/neeto-cist';
5
5
  import useHotkeys from '@bigbinary/neeto-hotkeys';
6
6
  import Modal from '@bigbinary/neetoui/Modal';
7
+ import { prop, isEmpty } from 'ramda';
7
8
  import classnames from 'classnames';
8
9
  import Typography from '@bigbinary/neetoui/Typography';
9
10
  import NoData from '@bigbinary/neetoui/NoData';
@@ -13,7 +14,6 @@ import { jsx, jsxs } from 'react/jsx-runtime';
13
14
  import { n } from './inject-css-DmrvuTKK.js';
14
15
  import Down from '@bigbinary/neeto-icons/Down';
15
16
  import Up from '@bigbinary/neeto-icons/Up';
16
- import { prop } from 'ramda';
17
17
  import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
18
18
  import Button from '@bigbinary/neetoui/Button';
19
19
  import Spinner from '@bigbinary/neetoui/Spinner';
@@ -57,7 +57,7 @@ var highlightMatch = function highlightMatch(text, searchTerm) {
57
57
  if (!searchTerm) return text;
58
58
  var regex = new RegExp("(".concat(searchTerm, ")"), "gi");
59
59
  return text.split(regex).map(function (part, index) {
60
- return part.toLowerCase() === searchTerm.toLowerCase() ? /*#__PURE__*/jsx("span", {
60
+ return (part === null || part === void 0 ? void 0 : part.toLowerCase()) === searchTerm.toLowerCase() ? /*#__PURE__*/jsx("span", {
61
61
  className: "neeto-molecules-finder-matched-tag",
62
62
  children: part
63
63
  }, index) : part;
@@ -259,9 +259,14 @@ var FinderModal = function FinderModal(_ref) {
259
259
  }).current;
260
260
  var onFocusChange = function onFocusChange(offset) {
261
261
  var container = containerRef.current;
262
+ if (!container) return;
262
263
  var nodes = container.querySelectorAll("a.neeto-molecules-search-result-item");
264
+ if (isEmpty(nodes)) return;
263
265
  mutables.focusIndex = minMax(mutables.focusIndex + offset, nodes.length - 1);
264
- nodes[mutables.focusIndex].focus();
266
+ var targetNode = nodes[mutables.focusIndex];
267
+ if (targetNode) {
268
+ targetNode.focus();
269
+ }
265
270
  };
266
271
  useHotkeys(["up", "down"], function (event) {
267
272
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"FinderModal.js","sources":["../src/components/FinderModal/Link.jsx","../src/components/FinderModal/utils.jsx","../src/components/FinderModal/Body.jsx","../src/components/FinderModal/Footer.jsx","../src/components/FinderModal/Header.jsx","../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n nodes[mutables.focusIndex].focus();\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
1
+ {"version":3,"file":"FinderModal.js","sources":["../src/components/FinderModal/Link.jsx","../src/components/FinderModal/utils.jsx","../src/components/FinderModal/Body.jsx","../src/components/FinderModal/Footer.jsx","../src/components/FinderModal/Header.jsx","../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part?.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
@@ -6,6 +6,7 @@ var React = require('react');
6
6
  var neetoCist = require('@bigbinary/neeto-cist');
7
7
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
8
8
  var Modal = require('@bigbinary/neetoui/Modal');
9
+ var ramda = require('ramda');
9
10
  var classnames = require('classnames');
10
11
  var Typography = require('@bigbinary/neetoui/Typography');
11
12
  var NoData = require('@bigbinary/neetoui/NoData');
@@ -15,7 +16,6 @@ var jsxRuntime = require('react/jsx-runtime');
15
16
  var injectCss = require('./inject-css-vQvjPR2x.js');
16
17
  var Down = require('@bigbinary/neeto-icons/Down');
17
18
  var Up = require('@bigbinary/neeto-icons/Up');
18
- var ramda = require('ramda');
19
19
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
20
20
  var Button = require('@bigbinary/neetoui/Button');
21
21
  var Spinner = require('@bigbinary/neetoui/Spinner');
@@ -59,7 +59,7 @@ var highlightMatch = function highlightMatch(text, searchTerm) {
59
59
  if (!searchTerm) return text;
60
60
  var regex = new RegExp("(".concat(searchTerm, ")"), "gi");
61
61
  return text.split(regex).map(function (part, index) {
62
- return part.toLowerCase() === searchTerm.toLowerCase() ? /*#__PURE__*/jsxRuntime.jsx("span", {
62
+ return (part === null || part === void 0 ? void 0 : part.toLowerCase()) === searchTerm.toLowerCase() ? /*#__PURE__*/jsxRuntime.jsx("span", {
63
63
  className: "neeto-molecules-finder-matched-tag",
64
64
  children: part
65
65
  }, index) : part;
@@ -261,9 +261,14 @@ var FinderModal = function FinderModal(_ref) {
261
261
  }).current;
262
262
  var onFocusChange = function onFocusChange(offset) {
263
263
  var container = containerRef.current;
264
+ if (!container) return;
264
265
  var nodes = container.querySelectorAll("a.neeto-molecules-search-result-item");
266
+ if (ramda.isEmpty(nodes)) return;
265
267
  mutables.focusIndex = minMax(mutables.focusIndex + offset, nodes.length - 1);
266
- nodes[mutables.focusIndex].focus();
268
+ var targetNode = nodes[mutables.focusIndex];
269
+ if (targetNode) {
270
+ targetNode.focus();
271
+ }
267
272
  };
268
273
  useHotkeys(["up", "down"], function (event) {
269
274
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"FinderModal.js","sources":["../../src/components/FinderModal/Link.jsx","../../src/components/FinderModal/utils.jsx","../../src/components/FinderModal/Body.jsx","../../src/components/FinderModal/Footer.jsx","../../src/components/FinderModal/Header.jsx","../../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n nodes[mutables.focusIndex].focus();\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
1
+ {"version":3,"file":"FinderModal.js","sources":["../../src/components/FinderModal/Link.jsx","../../src/components/FinderModal/utils.jsx","../../src/components/FinderModal/Body.jsx","../../src/components/FinderModal/Footer.jsx","../../src/components/FinderModal/Header.jsx","../../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part?.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.16.84",
3
+ "version": "3.16.86",
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>",