@bigbinary/neeto-molecules 3.16.35 → 3.16.36
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/FinderModal.js +31 -8
- package/dist/FinderModal.js.map +1 -1
- package/dist/cjs/FinderModal.js +30 -7
- package/dist/cjs/FinderModal.js.map +1 -1
- package/package.json +1 -1
package/dist/FinderModal.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
-
import { useRef } from 'react';
|
|
3
|
+
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 classnames from 'classnames';
|
|
7
8
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
8
9
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
9
10
|
import { useTranslation } from 'react-i18next';
|
|
@@ -47,6 +48,7 @@ var minMax = function minMax(number) {
|
|
|
47
48
|
return Math.min(max, Math.max(min, number));
|
|
48
49
|
};
|
|
49
50
|
var htmlToText = function htmlToText(html) {
|
|
51
|
+
if (!html) return null;
|
|
50
52
|
var tmp = document.createElement("div");
|
|
51
53
|
tmp.innerHTML = html;
|
|
52
54
|
return tmp.textContent || tmp.innerText || "";
|
|
@@ -61,6 +63,19 @@ var highlightMatch = function highlightMatch(text, searchTerm) {
|
|
|
61
63
|
}, index) : part;
|
|
62
64
|
});
|
|
63
65
|
};
|
|
66
|
+
var filterAndHighlightContent = function filterAndHighlightContent(bodyContent, searchTerm) {
|
|
67
|
+
if (!searchTerm) return bodyContent;
|
|
68
|
+
if (!bodyContent) return null;
|
|
69
|
+
return bodyContent.split(/(.{1,130}(?:\s|$))/g).filter(function (line) {
|
|
70
|
+
return line.trim();
|
|
71
|
+
}).filter(function (line) {
|
|
72
|
+
return line.toLowerCase().includes(searchTerm.toLowerCase());
|
|
73
|
+
}).map(function (line, index) {
|
|
74
|
+
return /*#__PURE__*/jsxs(React__default.Fragment, {
|
|
75
|
+
children: [highlightMatch(line, searchTerm), /*#__PURE__*/jsx("br", {})]
|
|
76
|
+
}, index);
|
|
77
|
+
});
|
|
78
|
+
};
|
|
64
79
|
|
|
65
80
|
var ModalBody = function ModalBody(_ref) {
|
|
66
81
|
var containerRef = _ref.containerRef,
|
|
@@ -98,9 +113,10 @@ var ModalBody = function ModalBody(_ref) {
|
|
|
98
113
|
}), /*#__PURE__*/jsx("div", {
|
|
99
114
|
className: "w-full",
|
|
100
115
|
children: data[key].map(function (item) {
|
|
101
|
-
var _ref2, _item$content;
|
|
102
116
|
var Icon = iconComponentMap[key] || iconComponentMap["default"];
|
|
103
|
-
var
|
|
117
|
+
var nameContent = htmlToText(item.name);
|
|
118
|
+
var bodyContent = htmlToText(item.body);
|
|
119
|
+
var filteredBodyContent = filterAndHighlightContent(bodyContent, searchTerm);
|
|
104
120
|
return /*#__PURE__*/jsxs(Link, {
|
|
105
121
|
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",
|
|
106
122
|
to: item.url,
|
|
@@ -108,11 +124,18 @@ var ModalBody = function ModalBody(_ref) {
|
|
|
108
124
|
children: [/*#__PURE__*/jsx(Icon, {
|
|
109
125
|
className: "neeto-ui-text-gray-500 min-w-fit",
|
|
110
126
|
size: 16
|
|
111
|
-
}), /*#__PURE__*/
|
|
112
|
-
className: "
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
127
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
128
|
+
className: "line-clamp-1 flex flex-col",
|
|
129
|
+
children: [nameContent && /*#__PURE__*/jsx(Typography, {
|
|
130
|
+
className: "neeto-ui-text-black text-sm font-medium",
|
|
131
|
+
children: highlightMatch(nameContent, searchTerm)
|
|
132
|
+
}), bodyContent && /*#__PURE__*/jsx(Typography, {
|
|
133
|
+
className: classnames("truncate", {
|
|
134
|
+
"neeto-ui-text-gray-600 text-xs": nameContent,
|
|
135
|
+
"neeto-ui-text-black text-sm font-medium": !nameContent
|
|
136
|
+
}),
|
|
137
|
+
children: filteredBodyContent || bodyContent
|
|
138
|
+
})]
|
|
116
139
|
})]
|
|
117
140
|
}, item.id);
|
|
118
141
|
})
|
package/dist/FinderModal.js.map
CHANGED
|
@@ -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","export const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\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 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","import { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch } 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 textContent = htmlToText(\n item.content ?? item.body ?? item.name\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 <Typography\n className=\"neeto-ui-text-black line-clamp-1\"\n component=\"span\"\n style=\"body2\"\n >\n {highlightMatch(textContent, searchTerm)}\n </Typography>\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 content: 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","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","_jsxs","Typography","style","textTransform","humanize","item","_ref2","_item$content","Icon","content","body","name","onClick","size","component","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","filter","prop","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\";\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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"}
|
package/dist/cjs/FinderModal.js
CHANGED
|
@@ -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 classnames = require('classnames');
|
|
9
10
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
10
11
|
var NoData = require('@bigbinary/neetoui/NoData');
|
|
11
12
|
var reactI18next = require('react-i18next');
|
|
@@ -49,6 +50,7 @@ var minMax = function minMax(number) {
|
|
|
49
50
|
return Math.min(max, Math.max(min, number));
|
|
50
51
|
};
|
|
51
52
|
var htmlToText = function htmlToText(html) {
|
|
53
|
+
if (!html) return null;
|
|
52
54
|
var tmp = document.createElement("div");
|
|
53
55
|
tmp.innerHTML = html;
|
|
54
56
|
return tmp.textContent || tmp.innerText || "";
|
|
@@ -63,6 +65,19 @@ var highlightMatch = function highlightMatch(text, searchTerm) {
|
|
|
63
65
|
}, index) : part;
|
|
64
66
|
});
|
|
65
67
|
};
|
|
68
|
+
var filterAndHighlightContent = function filterAndHighlightContent(bodyContent, searchTerm) {
|
|
69
|
+
if (!searchTerm) return bodyContent;
|
|
70
|
+
if (!bodyContent) return null;
|
|
71
|
+
return bodyContent.split(/(.{1,130}(?:\s|$))/g).filter(function (line) {
|
|
72
|
+
return line.trim();
|
|
73
|
+
}).filter(function (line) {
|
|
74
|
+
return line.toLowerCase().includes(searchTerm.toLowerCase());
|
|
75
|
+
}).map(function (line, index) {
|
|
76
|
+
return /*#__PURE__*/jsxRuntime.jsxs(React.Fragment, {
|
|
77
|
+
children: [highlightMatch(line, searchTerm), /*#__PURE__*/jsxRuntime.jsx("br", {})]
|
|
78
|
+
}, index);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
66
81
|
|
|
67
82
|
var ModalBody = function ModalBody(_ref) {
|
|
68
83
|
var containerRef = _ref.containerRef,
|
|
@@ -100,9 +115,10 @@ var ModalBody = function ModalBody(_ref) {
|
|
|
100
115
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
101
116
|
className: "w-full",
|
|
102
117
|
children: data[key].map(function (item) {
|
|
103
|
-
var _ref2, _item$content;
|
|
104
118
|
var Icon = iconComponentMap[key] || iconComponentMap["default"];
|
|
105
|
-
var
|
|
119
|
+
var nameContent = htmlToText(item.name);
|
|
120
|
+
var bodyContent = htmlToText(item.body);
|
|
121
|
+
var filteredBodyContent = filterAndHighlightContent(bodyContent, searchTerm);
|
|
106
122
|
return /*#__PURE__*/jsxRuntime.jsxs(Link, {
|
|
107
123
|
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",
|
|
108
124
|
to: item.url,
|
|
@@ -110,11 +126,18 @@ var ModalBody = function ModalBody(_ref) {
|
|
|
110
126
|
children: [/*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
111
127
|
className: "neeto-ui-text-gray-500 min-w-fit",
|
|
112
128
|
size: 16
|
|
113
|
-
}), /*#__PURE__*/jsxRuntime.
|
|
114
|
-
className: "
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
129
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
130
|
+
className: "line-clamp-1 flex flex-col",
|
|
131
|
+
children: [nameContent && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
132
|
+
className: "neeto-ui-text-black text-sm font-medium",
|
|
133
|
+
children: highlightMatch(nameContent, searchTerm)
|
|
134
|
+
}), bodyContent && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
135
|
+
className: classnames("truncate", {
|
|
136
|
+
"neeto-ui-text-gray-600 text-xs": nameContent,
|
|
137
|
+
"neeto-ui-text-black text-sm font-medium": !nameContent
|
|
138
|
+
}),
|
|
139
|
+
children: filteredBodyContent || bodyContent
|
|
140
|
+
})]
|
|
118
141
|
})]
|
|
119
142
|
}, item.id);
|
|
120
143
|
})
|
|
@@ -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","export const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\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 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","import { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch } 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 textContent = htmlToText(\n item.content ?? item.body ?? item.name\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 <Typography\n className=\"neeto-ui-text-black line-clamp-1\"\n component=\"span\"\n style=\"body2\"\n >\n {highlightMatch(textContent, searchTerm)}\n </Typography>\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 content: 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","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","_jsxs","Typography","style","textTransform","humanize","item","_ref2","_item$content","Icon","content","body","name","onClick","size","component","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","filter","prop","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\";\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.16.
|
|
3
|
+
"version": "3.16.36",
|
|
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>",
|