@bigbinary/neeto-molecules 5.3.33-beta2 → 5.3.34-beta1
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 +14 -1
- package/dist/FinderModal.js.map +1 -1
- package/dist/cjs/FinderModal.js +14 -1
- package/dist/cjs/FinderModal.js.map +1 -1
- package/dist/cjs/v2/FinderModal.js +137 -74
- package/dist/cjs/v2/FinderModal.js.map +1 -1
- package/dist/cjs/v2/OptionFields.js +1 -0
- package/dist/cjs/v2/OptionFields.js.map +1 -1
- package/dist/v2/FinderModal.js +138 -78
- package/dist/v2/FinderModal.js.map +1 -1
- package/dist/v2/OptionFields.js +1 -0
- package/dist/v2/OptionFields.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +3 -1
package/dist/FinderModal.js
CHANGED
|
@@ -292,7 +292,7 @@ var ModalHeader = withT(function (_ref) {
|
|
|
292
292
|
});
|
|
293
293
|
});
|
|
294
294
|
|
|
295
|
-
var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
|
|
295
|
+
var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
|
|
296
296
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
297
297
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
298
298
|
var FinderModal = function FinderModal(_ref) {
|
|
@@ -301,6 +301,8 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
301
301
|
data = _ref.data,
|
|
302
302
|
isFetching = _ref.isFetching,
|
|
303
303
|
isOpen = _ref.isOpen,
|
|
304
|
+
_ref$setIsOpen = _ref.setIsOpen,
|
|
305
|
+
setIsOpen = _ref$setIsOpen === void 0 ? noop : _ref$setIsOpen,
|
|
304
306
|
searchTerm = _ref.searchTerm,
|
|
305
307
|
setSearchTerm = _ref.setSearchTerm,
|
|
306
308
|
onClose = _ref.onClose,
|
|
@@ -336,6 +338,17 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
336
338
|
mode: "global",
|
|
337
339
|
enabled: isOpen && enableAdvancedSearch
|
|
338
340
|
});
|
|
341
|
+
useHotkeys("mod+k", function () {
|
|
342
|
+
return setIsOpen(true);
|
|
343
|
+
}, {
|
|
344
|
+
mode: "global"
|
|
345
|
+
});
|
|
346
|
+
useHotkeys("esc", function () {
|
|
347
|
+
return setIsOpen(false);
|
|
348
|
+
}, {
|
|
349
|
+
mode: "global",
|
|
350
|
+
enabled: isOpen
|
|
351
|
+
});
|
|
339
352
|
return /*#__PURE__*/jsxs(Modal, _objectSpread(_objectSpread({
|
|
340
353
|
isOpen: isOpen,
|
|
341
354
|
onClose: onClose,
|
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}${url.search}`}>\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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { humanize, isNotEmpty, isNotPresent, noop } from \"neetocist\";\nimport { Modal, Typography, NoData, Spinner, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({\n containerRef,\n data,\n onClose,\n loading,\n searchTerm,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n}) => {\n const { t } = useTranslation();\n const sentinelRef = useRef(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n const sentinel = sentinelRef.current;\n if (!sentinel || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinel.closest(\".neeto-molecules-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinel);\n\n return () => observer.disconnect();\n }, [isPaginationEnabled, hasMore, isFetchingMore]);\n\n const categoryGroups = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);\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-3 py-5\">\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-3 py-4\">\n <div className=\"flex flex-col\" ref={containerRef}>\n {categoryGroups.map((category, categoryIndex) => {\n const items = data[category];\n const shouldShowCategoryDivider =\n categoryIndex < categoryGroups.length - 1;\n\n return (\n <div key={category}>\n {items.map(item => {\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-gray-100 focus:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300\"\n key={`${category}-${item.id}`}\n to={item.url}\n onClick={onClose}\n >\n <div className=\"line-clamp-1 flex flex-col gap-1\">\n <div className=\"flex\">\n {nameContent && (\n <Typography\n className=\"neeto-ui-text-black inline-block\"\n component=\"span\"\n lineHeight=\"snug\"\n weight=\"semibold\"\n >\n {highlightMatch(nameContent, searchTerm)}\n {category && (\n <Tag\n className=\"ml-2 inline-block align-middle\"\n size=\"small\"\n style={getStyle(category)}\n type=\"solid\"\n >\n {humanize(category)}\n </Tag>\n )}\n </Typography>\n )}\n </div>\n {bodyContent && (\n <Typography className=\"neeto-ui-text-gray-600 truncate text-xs\">\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n {shouldShowCategoryDivider && (\n <hr className=\"neeto-ui-border-gray-300 mx-3 my-3 border-t\" />\n )}\n </div>\n );\n })}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={sentinelRef}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\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-600\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-600\" 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-6 py-4\">\n <div className=\"neeto-ui-text-xxs flex items-center gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n style=\"nano\"\n >\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-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, onSearch, onGoToAdvanced, loading }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-6 py-3\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ms-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=\"ms-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"tertiary\"\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 isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore,\n isFetchingMore,\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 {...{\n containerRef,\n data,\n hasMore,\n isFetchingMore,\n onClose,\n onLoadMore,\n searchTerm,\n }}\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 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 Function called when the user scrolls near the bottom of the results.\n When provided together with hasMore, enables scroll-based pagination.\n */\n onLoadMore: PropTypes.func,\n /*\n Boolean indicating whether more pages are available to fetch\n */\n hasMore: PropTypes.bool,\n /*\n Boolean indicating whether the next page is currently being fetched\n */\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","createStylePalette","values","assignedStyles","styleIndex","key","style","getStyle","ModalBody","containerRef","data","onClose","loading","onLoadMore","_ref$hasMore","hasMore","_ref$isFetchingMore","isFetchingMore","_useTranslation","useTranslation","t","sentinelRef","useRef","onLoadMoreRef","noop","useEffect","current","isPaginationEnabled","Boolean","sentinel","root","closest","observer","IntersectionObserver","_ref2","_ref3","_slicedToArray","entry","isIntersecting","rootMargin","observe","disconnect","categoryGroups","Object","keys","isNotEmpty","isDataEmpty","isNotPresent","isEmpty","Modal","Body","NoData","description","title","ref","category","categoryIndex","items","shouldShowCategoryDivider","item","nameContent","name","body","filteredBodyContent","onClick","Typography","component","lineHeight","weight","Tag","size","type","humanize","id","Spinner","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","props","mutables","focusIndex","onFocusChange","offset","container","nodes","querySelectorAll","targetNode","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}${url.search}`}>\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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { humanize, isNotEmpty, isNotPresent, noop } from \"neetocist\";\nimport { Modal, Typography, NoData, Spinner, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({\n containerRef,\n data,\n onClose,\n loading,\n searchTerm,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n}) => {\n const { t } = useTranslation();\n const sentinelRef = useRef(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n const sentinel = sentinelRef.current;\n if (!sentinel || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinel.closest(\".neeto-molecules-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinel);\n\n return () => observer.disconnect();\n }, [isPaginationEnabled, hasMore, isFetchingMore]);\n\n const categoryGroups = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);\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-3 py-5\">\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-3 py-4\">\n <div className=\"flex flex-col\" ref={containerRef}>\n {categoryGroups.map((category, categoryIndex) => {\n const items = data[category];\n const shouldShowCategoryDivider =\n categoryIndex < categoryGroups.length - 1;\n\n return (\n <div key={category}>\n {items.map(item => {\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-gray-100 focus:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300\"\n key={`${category}-${item.id}`}\n to={item.url}\n onClick={onClose}\n >\n <div className=\"line-clamp-1 flex flex-col gap-1\">\n <div className=\"flex\">\n {nameContent && (\n <Typography\n className=\"neeto-ui-text-black inline-block\"\n component=\"span\"\n lineHeight=\"snug\"\n weight=\"semibold\"\n >\n {highlightMatch(nameContent, searchTerm)}\n {category && (\n <Tag\n className=\"ml-2 inline-block align-middle\"\n size=\"small\"\n style={getStyle(category)}\n type=\"solid\"\n >\n {humanize(category)}\n </Tag>\n )}\n </Typography>\n )}\n </div>\n {bodyContent && (\n <Typography className=\"neeto-ui-text-gray-600 truncate text-xs\">\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n {shouldShowCategoryDivider && (\n <hr className=\"neeto-ui-border-gray-300 mx-3 my-3 border-t\" />\n )}\n </div>\n );\n })}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={sentinelRef}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\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-600\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-600\" 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-6 py-4\">\n <div className=\"neeto-ui-text-xxs flex items-center gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n style=\"nano\"\n >\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-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, onSearch, onGoToAdvanced, loading }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-6 py-3\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ms-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=\"ms-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"tertiary\"\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 isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore,\n isFetchingMore,\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 useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 {...{\n containerRef,\n data,\n hasMore,\n isFetchingMore,\n onClose,\n onLoadMore,\n searchTerm,\n }}\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 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 Function called when the user scrolls near the bottom of the results.\n When provided together with hasMore, enables scroll-based pagination.\n */\n onLoadMore: PropTypes.func,\n /*\n Boolean indicating whether more pages are available to fetch\n */\n hasMore: PropTypes.bool,\n /*\n Boolean indicating whether the next page is currently being fetched\n */\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","createStylePalette","values","assignedStyles","styleIndex","key","style","getStyle","ModalBody","containerRef","data","onClose","loading","onLoadMore","_ref$hasMore","hasMore","_ref$isFetchingMore","isFetchingMore","_useTranslation","useTranslation","t","sentinelRef","useRef","onLoadMoreRef","noop","useEffect","current","isPaginationEnabled","Boolean","sentinel","root","closest","observer","IntersectionObserver","_ref2","_ref3","_slicedToArray","entry","isIntersecting","rootMargin","observe","disconnect","categoryGroups","Object","keys","isNotEmpty","isDataEmpty","isNotPresent","isEmpty","Modal","Body","NoData","description","title","ref","category","categoryIndex","items","shouldShowCategoryDivider","item","nameContent","name","body","filteredBodyContent","onClick","Typography","component","lineHeight","weight","Tag","size","type","humanize","id","Spinner","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","_ref$setIsOpen","setIsOpen","setSearchTerm","_ref$onGoToAdvanced","props","mutables","focusIndex","onFocusChange","offset","container","nodes","querySelectorAll","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
|
package/dist/cjs/FinderModal.js
CHANGED
|
@@ -294,7 +294,7 @@ var ModalHeader = reactUtils.withT(function (_ref) {
|
|
|
294
294
|
});
|
|
295
295
|
});
|
|
296
296
|
|
|
297
|
-
var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
|
|
297
|
+
var _excluded = ["enableAdvancedSearch", "data", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"];
|
|
298
298
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
299
299
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
300
300
|
var FinderModal = function FinderModal(_ref) {
|
|
@@ -303,6 +303,8 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
303
303
|
data = _ref.data,
|
|
304
304
|
isFetching = _ref.isFetching,
|
|
305
305
|
isOpen = _ref.isOpen,
|
|
306
|
+
_ref$setIsOpen = _ref.setIsOpen,
|
|
307
|
+
setIsOpen = _ref$setIsOpen === void 0 ? neetoCist.noop : _ref$setIsOpen,
|
|
306
308
|
searchTerm = _ref.searchTerm,
|
|
307
309
|
setSearchTerm = _ref.setSearchTerm,
|
|
308
310
|
onClose = _ref.onClose,
|
|
@@ -338,6 +340,17 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
338
340
|
mode: "global",
|
|
339
341
|
enabled: isOpen && enableAdvancedSearch
|
|
340
342
|
});
|
|
343
|
+
useHotkeys("mod+k", function () {
|
|
344
|
+
return setIsOpen(true);
|
|
345
|
+
}, {
|
|
346
|
+
mode: "global"
|
|
347
|
+
});
|
|
348
|
+
useHotkeys("esc", function () {
|
|
349
|
+
return setIsOpen(false);
|
|
350
|
+
}, {
|
|
351
|
+
mode: "global",
|
|
352
|
+
enabled: isOpen
|
|
353
|
+
});
|
|
341
354
|
return /*#__PURE__*/jsxRuntime.jsxs(Modal, _objectSpread(_objectSpread({
|
|
342
355
|
isOpen: isOpen,
|
|
343
356
|
onClose: onClose,
|
|
@@ -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}${url.search}`}>\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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { humanize, isNotEmpty, isNotPresent, noop } from \"neetocist\";\nimport { Modal, Typography, NoData, Spinner, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({\n containerRef,\n data,\n onClose,\n loading,\n searchTerm,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n}) => {\n const { t } = useTranslation();\n const sentinelRef = useRef(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n const sentinel = sentinelRef.current;\n if (!sentinel || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinel.closest(\".neeto-molecules-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinel);\n\n return () => observer.disconnect();\n }, [isPaginationEnabled, hasMore, isFetchingMore]);\n\n const categoryGroups = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);\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-3 py-5\">\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-3 py-4\">\n <div className=\"flex flex-col\" ref={containerRef}>\n {categoryGroups.map((category, categoryIndex) => {\n const items = data[category];\n const shouldShowCategoryDivider =\n categoryIndex < categoryGroups.length - 1;\n\n return (\n <div key={category}>\n {items.map(item => {\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-gray-100 focus:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300\"\n key={`${category}-${item.id}`}\n to={item.url}\n onClick={onClose}\n >\n <div className=\"line-clamp-1 flex flex-col gap-1\">\n <div className=\"flex\">\n {nameContent && (\n <Typography\n className=\"neeto-ui-text-black inline-block\"\n component=\"span\"\n lineHeight=\"snug\"\n weight=\"semibold\"\n >\n {highlightMatch(nameContent, searchTerm)}\n {category && (\n <Tag\n className=\"ml-2 inline-block align-middle\"\n size=\"small\"\n style={getStyle(category)}\n type=\"solid\"\n >\n {humanize(category)}\n </Tag>\n )}\n </Typography>\n )}\n </div>\n {bodyContent && (\n <Typography className=\"neeto-ui-text-gray-600 truncate text-xs\">\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n {shouldShowCategoryDivider && (\n <hr className=\"neeto-ui-border-gray-300 mx-3 my-3 border-t\" />\n )}\n </div>\n );\n })}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={sentinelRef}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\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-600\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-600\" 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-6 py-4\">\n <div className=\"neeto-ui-text-xxs flex items-center gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n style=\"nano\"\n >\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-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, onSearch, onGoToAdvanced, loading }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-6 py-3\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ms-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=\"ms-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"tertiary\"\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 isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore,\n isFetchingMore,\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 {...{\n containerRef,\n data,\n hasMore,\n isFetchingMore,\n onClose,\n onLoadMore,\n searchTerm,\n }}\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 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 Function called when the user scrolls near the bottom of the results.\n When provided together with hasMore, enables scroll-based pagination.\n */\n onLoadMore: PropTypes.func,\n /*\n Boolean indicating whether more pages are available to fetch\n */\n hasMore: PropTypes.bool,\n /*\n Boolean indicating whether the next page is currently being fetched\n */\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","createStylePalette","values","assignedStyles","styleIndex","key","style","getStyle","ModalBody","containerRef","data","onClose","loading","onLoadMore","_ref$hasMore","hasMore","_ref$isFetchingMore","isFetchingMore","_useTranslation","useTranslation","t","sentinelRef","useRef","onLoadMoreRef","noop","useEffect","current","isPaginationEnabled","Boolean","sentinel","root","closest","observer","IntersectionObserver","_ref2","_ref3","_slicedToArray","entry","isIntersecting","rootMargin","observe","disconnect","categoryGroups","Object","keys","isNotEmpty","isDataEmpty","isNotPresent","isEmpty","Modal","Body","NoData","description","title","ref","category","categoryIndex","items","shouldShowCategoryDivider","item","nameContent","name","body","filteredBodyContent","onClick","Typography","component","lineHeight","weight","Tag","size","type","humanize","id","Spinner","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","props","mutables","focusIndex","onFocusChange","offset","container","nodes","querySelectorAll","targetNode","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}${url.search}`}>\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\nexport const flattenData = data => {\n if (!data) return [];\n\n if (Array.isArray(data)) return data;\n\n const result = [];\n Object.keys(data).forEach(key => {\n data[key].forEach(item => {\n result.push({ ...item, category: key });\n });\n });\n\n return result;\n};\n\nexport const createStylePalette = values => {\n const assignedStyles = {};\n let styleIndex = 0;\n\n return key => {\n if (assignedStyles[key]) return assignedStyles[key];\n const style = values[styleIndex];\n styleIndex = (styleIndex + 1) % values.length;\n assignedStyles[key] = style;\n\n return style;\n };\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { humanize, isNotEmpty, isNotPresent, noop } from \"neetocist\";\nimport { Modal, Typography, NoData, Spinner, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport {\n htmlToText,\n highlightMatch,\n filterAndHighlightContent,\n createStylePalette,\n} from \"./utils\";\n\nconst getStyle = createStylePalette([\n \"primary\",\n \"info\",\n \"success\",\n \"secondary\",\n \"warning\",\n]);\n\nconst ModalBody = ({\n containerRef,\n data,\n onClose,\n loading,\n searchTerm,\n onLoadMore,\n hasMore = false,\n isFetchingMore = false,\n}) => {\n const { t } = useTranslation();\n const sentinelRef = useRef(null);\n const onLoadMoreRef = useRef(onLoadMore || noop);\n\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore || noop;\n }, [onLoadMore]);\n\n const isPaginationEnabled = Boolean(onLoadMore);\n\n useEffect(() => {\n const sentinel = sentinelRef.current;\n if (!sentinel || !isPaginationEnabled || !hasMore || isFetchingMore) {\n return undefined;\n }\n\n const root = sentinel.closest(\".neeto-molecules-finder-modal__body\");\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) onLoadMoreRef.current();\n },\n { root, rootMargin: \"120px\" }\n );\n observer.observe(sentinel);\n\n return () => observer.disconnect();\n }, [isPaginationEnabled, hasMore, isFetchingMore]);\n\n const categoryGroups = Object.keys(data).filter(key => isNotEmpty(data[key]));\n const isDataEmpty = isNotPresent(data) || isEmpty(categoryGroups);\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-3 py-5\">\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-3 py-4\">\n <div className=\"flex flex-col\" ref={containerRef}>\n {categoryGroups.map((category, categoryIndex) => {\n const items = data[category];\n const shouldShowCategoryDivider =\n categoryIndex < categoryGroups.length - 1;\n\n return (\n <div key={category}>\n {items.map(item => {\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-gray-100 focus:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-xs transition-all duration-300\"\n key={`${category}-${item.id}`}\n to={item.url}\n onClick={onClose}\n >\n <div className=\"line-clamp-1 flex flex-col gap-1\">\n <div className=\"flex\">\n {nameContent && (\n <Typography\n className=\"neeto-ui-text-black inline-block\"\n component=\"span\"\n lineHeight=\"snug\"\n weight=\"semibold\"\n >\n {highlightMatch(nameContent, searchTerm)}\n {category && (\n <Tag\n className=\"ml-2 inline-block align-middle\"\n size=\"small\"\n style={getStyle(category)}\n type=\"solid\"\n >\n {humanize(category)}\n </Tag>\n )}\n </Typography>\n )}\n </div>\n {bodyContent && (\n <Typography className=\"neeto-ui-text-gray-600 truncate text-xs\">\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n {shouldShowCategoryDivider && (\n <hr className=\"neeto-ui-border-gray-300 mx-3 my-3 border-t\" />\n )}\n </div>\n );\n })}\n {onLoadMore && hasMore && (\n <div\n aria-hidden=\"true\"\n className=\"h-px w-full\"\n data-testid=\"neeto-molecules-finder-modal-sentinel\"\n ref={sentinelRef}\n />\n )}\n {isFetchingMore && (\n <div\n className=\"flex items-center justify-center py-3\"\n data-testid=\"neeto-molecules-finder-modal-loading-more\"\n >\n <Spinner size=\"small\" />\n </div>\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-600\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-600\" 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-6 py-4\">\n <div className=\"neeto-ui-text-xxs flex items-center gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography\n className=\"neeto-ui-text-gray-600\"\n component=\"span\"\n style=\"nano\"\n >\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm neeto-ui-text-gray-600 px-1.5 py-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, onSearch, onGoToAdvanced, loading }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-300 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-6 py-3\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ms-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=\"ms-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"tertiary\"\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 isFetching,\n isOpen,\n setIsOpen = noop,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n onLoadMore,\n hasMore,\n isFetchingMore,\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 useHotkeys(\"mod+k\", () => setIsOpen(true), { mode: \"global\" });\n useHotkeys(\"esc\", () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\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 {...{\n containerRef,\n data,\n hasMore,\n isFetchingMore,\n onClose,\n onLoadMore,\n searchTerm,\n }}\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 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 Function called when the user scrolls near the bottom of the results.\n When provided together with hasMore, enables scroll-based pagination.\n */\n onLoadMore: PropTypes.func,\n /*\n Boolean indicating whether more pages are available to fetch\n */\n hasMore: PropTypes.bool,\n /*\n Boolean indicating whether the next page is currently being fetched\n */\n isFetchingMore: PropTypes.bool,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","concat","pathname","search","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","createStylePalette","values","assignedStyles","styleIndex","key","style","getStyle","ModalBody","containerRef","data","onClose","loading","onLoadMore","_ref$hasMore","hasMore","_ref$isFetchingMore","isFetchingMore","_useTranslation","useTranslation","t","sentinelRef","useRef","onLoadMoreRef","noop","useEffect","current","isPaginationEnabled","Boolean","sentinel","root","closest","observer","IntersectionObserver","_ref2","_ref3","_slicedToArray","entry","isIntersecting","rootMargin","observe","disconnect","categoryGroups","Object","keys","isNotEmpty","isDataEmpty","isNotPresent","isEmpty","Modal","Body","NoData","description","title","ref","category","categoryIndex","items","shouldShowCategoryDivider","item","nameContent","name","body","filteredBodyContent","onClick","Typography","component","lineHeight","weight","Tag","size","type","humanize","id","Spinner","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","_ref$setIsOpen","setIsOpen","setSearchTerm","_ref$onGoToAdvanced","props","mutables","focusIndex","onFocusChange","offset","container","nodes","querySelectorAll","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
|