@bigbinary/neeto-molecules 3.16.84 → 3.16.85
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
CHANGED
|
@@ -4,6 +4,7 @@ import React__default, { useRef } from 'react';
|
|
|
4
4
|
import { isNotPresent, humanize, noop } from '@bigbinary/neeto-cist';
|
|
5
5
|
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
6
6
|
import Modal from '@bigbinary/neetoui/Modal';
|
|
7
|
+
import { prop, isEmpty } from 'ramda';
|
|
7
8
|
import classnames from 'classnames';
|
|
8
9
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
9
10
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
@@ -13,7 +14,6 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
13
14
|
import { n } from './inject-css-DmrvuTKK.js';
|
|
14
15
|
import Down from '@bigbinary/neeto-icons/Down';
|
|
15
16
|
import Up from '@bigbinary/neeto-icons/Up';
|
|
16
|
-
import { prop } from 'ramda';
|
|
17
17
|
import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
18
18
|
import Button from '@bigbinary/neetoui/Button';
|
|
19
19
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -259,9 +259,14 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
259
259
|
}).current;
|
|
260
260
|
var onFocusChange = function onFocusChange(offset) {
|
|
261
261
|
var container = containerRef.current;
|
|
262
|
+
if (!container) return;
|
|
262
263
|
var nodes = container.querySelectorAll("a.neeto-molecules-search-result-item");
|
|
264
|
+
if (isEmpty(nodes)) return;
|
|
263
265
|
mutables.focusIndex = minMax(mutables.focusIndex + offset, nodes.length - 1);
|
|
264
|
-
nodes[mutables.focusIndex]
|
|
266
|
+
var targetNode = nodes[mutables.focusIndex];
|
|
267
|
+
if (targetNode) {
|
|
268
|
+
targetNode.focus();
|
|
269
|
+
}
|
|
265
270
|
};
|
|
266
271
|
useHotkeys(["up", "down"], function (event) {
|
|
267
272
|
event.preventDefault();
|
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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAAkC;AAAA,EAAA,IAA5BC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,IAAI,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,WAAA,CAAA,CAAA;AACnC,EAAA,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAACN,EAAE,CAAC,CAAA;EACvBK,GAAG,CAACE,IAAI,GAAG,EAAE,CAAA;EAEb,oBACEC,GAAA,CAACC,MAAO,EAAAC,eAAA,CAAAA,eAAA,KAAKR,IAAI,CAAA,EAAA,EAAA,EAAA;IAAEF,EAAE,EAAEK,GAAG,CAACM,QAAS;AAAAV,IAAAA,QAAA,EACjCA,QAAAA;AAAQ,GAAA,CACF,CAAC,CAAA;AAEd,CAAC;;ACTM,IAAMW,MAAM,GAAG,SAATA,MAAMA,CAAIC,MAAM,EAAA;AAAA,EAAA,IAAEC,GAAG,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAGG,CAAAA,CAAAA,GAAAA,MAAM,CAACC,iBAAiB,CAAA;AAAA,EAAA,IAAEC,GAAG,GAAAL,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,EAAA,OACpEM,IAAI,CAACD,GAAG,CAACN,GAAG,EAAEO,IAAI,CAACP,GAAG,CAACM,GAAG,EAAEP,MAAM,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE/B,IAAMS,UAAU,GAAG,SAAbA,UAAUA,CAAGC,IAAI,EAAI;AAChC,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI,CAAA;AAEtB,EAAA,IAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC,CAAA;EACzCF,GAAG,CAACG,SAAS,GAAGJ,IAAI,CAAA;EAEpB,OAAOC,GAAG,CAACI,WAAW,IAAIJ,GAAG,CAACK,SAAS,IAAI,EAAE,CAAA;AAC/C,CAAC,CAAA;AAEM,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,UAAU,EAAK;AAClD,EAAA,IAAI,CAACA,UAAU,EAAE,OAAOD,IAAI,CAAA;EAE5B,IAAME,KAAK,GAAG,IAAIC,MAAM,CAAA,GAAA,CAAAC,MAAA,CAAKH,UAAU,EAAK,GAAA,CAAA,EAAA,IAAI,CAAC,CAAA;AAEjD,EAAA,OAAOD,IAAI,CAACK,KAAK,CAACH,KAAK,CAAC,CAACI,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAA;AAAA,IAAA,OACvCD,IAAI,CAACE,WAAW,EAAE,KAAKR,UAAU,CAACQ,WAAW,EAAE,gBAC7ChC,GAAA,CAAA,MAAA,EAAA;AAAMiC,MAAAA,SAAS,EAAC,oCAAoC;AAAAxC,MAAAA,QAAA,EACjDqC,IAAAA;KADuDC,EAAAA,KAEpD,CAAC,GAEPD,IACD,CAAA;AAAA,GACH,CAAC,CAAA;AACH,CAAC,CAAA;AAEM,IAAMI,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,WAAW,EAAEX,UAAU,EAAK;AACpE,EAAA,IAAI,CAACA,UAAU,EAAE,OAAOW,WAAW,CAAA;AAEnC,EAAA,IAAI,CAACA,WAAW,EAAE,OAAO,IAAI,CAAA;EAE7B,OAAOA,WAAW,CACfP,KAAK,CAAC,qBAAqB,CAAC,CAC5BQ,MAAM,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACC,IAAI,EAAE,CAAA;AAAA,GAAA,CAAC,CAC3BF,MAAM,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACL,WAAW,EAAE,CAACO,QAAQ,CAACf,UAAU,CAACQ,WAAW,EAAE,CAAC,CAAA;AAAA,GAAA,CAAC,CACrEH,GAAG,CAAC,UAACQ,IAAI,EAAEN,KAAK,EAAA;AAAA,IAAA,oBACfS,IAAA,CAACC,cAAK,CAACC,QAAQ,EAAA;MAAAjD,QAAA,EAAA,CACZ6B,cAAc,CAACe,IAAI,EAAEb,UAAU,CAAC,eACjCxB,GAAA,CAAA,IAAA,EAAA,EAAK,CAAC,CAAA;AAAA,KAAA,EAFa+B,KAGL,CAAC,CAAA;AAAA,GAClB,CAAC,CAAA;AACN,CAAC;;ACrCD,IAAMY,SAAS,GAAG,SAAZA,SAASA,CAAApD,IAAA,EAOT;AAAA,EAAA,IANJqD,YAAY,GAAArD,IAAA,CAAZqD,YAAY;IACZC,IAAI,GAAAtD,IAAA,CAAJsD,IAAI;IACJC,gBAAgB,GAAAvD,IAAA,CAAhBuD,gBAAgB;IAChBC,OAAO,GAAAxD,IAAA,CAAPwD,OAAO;IACPC,OAAO,GAAAzD,IAAA,CAAPyD,OAAO;IACPxB,UAAU,GAAAjC,IAAA,CAAViC,UAAU,CAAA;AAEV,EAAA,IAAAyB,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAMC,WAAW,GACfC,YAAY,CAACR,IAAI,CAAC,IAAIS,MAAM,CAACC,MAAM,CAACV,IAAI,CAAC,CAACW,KAAK,CAACH,YAAY,CAAC,CAAA;AAE/D,EAAA,IAAID,WAAW,IAAI,CAACJ,OAAO,EAAE;AAC3B,IAAA,oBACEhD,GAAA,CAACyD,KAAK,CAACC,IAAI,EAAA;AAACzB,MAAAA,SAAS,EAAC,oGAAoG;MAAAxC,QAAA,eACxHO,GAAA,CAAC2D,MAAM,EAAA;AACLC,QAAAA,WAAW,EAAET,CAAC,CAAC,uCAAuC,CAAE;QACxDU,KAAK,EAAEV,CAAC,CAAC,wCAAwC,CAAA;OAClD,CAAA;AAAC,KACQ,CAAC,CAAA;AAEjB,GAAA;AAEA,EAAA,oBACEnD,GAAA,CAACyD,KAAK,CAACC,IAAI,EAAA;AAACzB,IAAAA,SAAS,EAAC,mEAAmE;AAAAxC,IAAAA,QAAA,eACvFO,GAAA,CAAA,KAAA,EAAA;AAAKiC,MAAAA,SAAS,EAAC,WAAW;AAAC6B,MAAAA,GAAG,EAAElB,YAAa;AAAAnD,MAAAA,QAAA,EAC1C6D,MAAM,CAACS,IAAI,CAAClB,IAAI,CAAC,CAAChB,GAAG,CAAC,UAAAmC,GAAG,EAAI;QAC5B,IAAIX,YAAY,CAACR,IAAI,CAACmB,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI,CAAA;AAExC,QAAA,oBACExB,IAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,QAAQ;UAAAxC,QAAA,EAAA,cACrBO,GAAA,CAACiE,UAAU,EAAA;AAAChC,YAAAA,SAAS,EAAC,MAAM;AAACiC,YAAAA,KAAK,EAAC,IAAI;AAACC,YAAAA,aAAa,EAAC,WAAW;YAAA1E,QAAA,EAC9D2E,QAAQ,CAACJ,GAAG,CAAA;WACH,CAAC,eACbhE,GAAA,CAAA,KAAA,EAAA;AAAKiC,YAAAA,SAAS,EAAC,QAAQ;YAAAxC,QAAA,EACpBoD,IAAI,CAACmB,GAAG,CAAC,CAACnC,GAAG,CAAC,UAAAwC,IAAI,EAAI;cACrB,IAAMC,IAAI,GACRxB,gBAAgB,CAACkB,GAAG,CAAC,IAAIlB,gBAAgB,CAAQ,SAAA,CAAA,CAAA;AAEnD,cAAA,IAAMyB,WAAW,GAAGzD,UAAU,CAACuD,IAAI,CAACG,IAAI,CAAC,CAAA;AACzC,cAAA,IAAMrC,WAAW,GAAGrB,UAAU,CAACuD,IAAI,CAACI,IAAI,CAAC,CAAA;AAEzC,cAAA,IAAMC,mBAAmB,GAAGxC,yBAAyB,CACnDC,WAAW,EACXX,UACF,CAAC,CAAA;cAED,oBACEgB,IAAA,CAAClD,IAAI,EAAA;AACH2C,gBAAAA,SAAS,EAAC,yKAAyK;gBAEnLzC,EAAE,EAAE6E,IAAI,CAACxE,GAAI;AACb8E,gBAAAA,OAAO,EAAE5B,OAAQ;gBAAAtD,QAAA,EAAA,cAEjBO,GAAA,CAACsE,IAAI,EAAA;AACHrC,kBAAAA,SAAS,EAAC,kCAAkC;AAC5C2C,kBAAAA,IAAI,EAAE,EAAA;iBACP,CAAC,eACFpC,IAAA,CAAA,KAAA,EAAA;AAAKP,kBAAAA,SAAS,EAAC,4BAA4B;AAAAxC,kBAAAA,QAAA,EACxC8E,CAAAA,WAAW,iBACVvE,GAAA,CAACiE,UAAU,EAAA;AAAChC,oBAAAA,SAAS,EAAC,yCAAyC;AAAAxC,oBAAAA,QAAA,EAC5D6B,cAAc,CAACiD,WAAW,EAAE/C,UAAU,CAAA;AAAC,mBAC9B,CACb,EACAW,WAAW,iBACVnC,GAAA,CAACiE,UAAU,EAAA;AACThC,oBAAAA,SAAS,EAAE4C,UAAU,CAAC,UAAU,EAAE;AAChC,sBAAA,gCAAgC,EAAEN,WAAW;AAC7C,sBAAA,yCAAyC,EACvC,CAACA,WAAAA;AACL,qBAAC,CAAE;oBAAA9E,QAAA,EAEFiF,mBAAmB,IAAIvC,WAAAA;AAAW,mBACzB,CACb,CAAA;AAAA,iBACE,CAAC,CAAA;eAzBDkC,EAAAA,IAAI,CAACS,EA0BN,CAAC,CAAA;aAEV,CAAA;AAAC,WACC,CAAC,CAAA;AAAA,SAAA,EAjDqBd,GAkDxB,CAAC,CAAA;OAET,CAAA;KACE,CAAA;AAAC,GACI,CAAC,CAAA;AAEjB,CAAC;;;;;AC1FD,IAAMe,WAAW,GAAG,SAAdA,WAAWA,CAAAxF,IAAA,EAAiC;AAAA,EAAA,IAA3ByF,oBAAoB,GAAAzF,IAAA,CAApByF,oBAAoB,CAAA;AACzC,EAAA,IAAA/B,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;EAET,IAAM8B,SAAS,GAAG,CAChB;AACEC,IAAAA,KAAK,EAAE/B,CAAC,CAAC,2CAA2C,CAAC;AACrDY,IAAAA,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC5BoB,IAAAA,SAAS,EAAEH,oBAAAA;AACb,GAAC,EACD;AACEE,IAAAA,KAAK,EAAE/B,CAAC,CAAC,oCAAoC,CAAC;IAC9CY,IAAI,EAAE,CAAC,QAAQ,CAAC;AAChBoB,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,EACD;AACED,IAAAA,KAAK,EAAE/B,CAAC,CAAC,oCAAoC,CAAC;AAC9CY,IAAAA,IAAI,EAAE,cACJ/D,GAAA,CAACoF,EAAE,EAAA;AAACnD,MAAAA,SAAS,EAAC,wBAAwB;AAAU2C,MAAAA,IAAI,EAAE,EAAA;AAAG,KAAA,EAAd,IAAgB,CAAC,eAC5D5E,GAAA,CAACqF,IAAI,EAAA;AAACpD,MAAAA,SAAS,EAAC,wBAAwB;AAAY2C,MAAAA,IAAI,EAAE,EAAA;KAAb,EAAA,MAAkB,CAAC,CACjE;AACDO,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,EACD;AACED,IAAAA,KAAK,EAAE/B,CAAC,CAAC,qCAAqC,CAAC;IAC/CY,IAAI,EAAE,CAAC,KAAK,CAAC;AACboB,IAAAA,SAAS,EAAE,IAAA;AACb,GAAC,CACF,CAAA;AAED,EAAA,oBACEnF,GAAA,CAACyD,KAAK,CAAC6B,MAAM,EAAA;AAACrD,IAAAA,SAAS,EAAC,kFAAkF;AAAAxC,IAAAA,QAAA,eACxGO,GAAA,CAAA,KAAA,EAAA;AAAKiC,MAAAA,SAAS,EAAC,uDAAuD;AAAAxC,MAAAA,QAAA,EACnEwF,SAAS,CAAC7C,MAAM,CAACmD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC1D,GAAG,CAAC,UAAA2D,KAAA,EAAkBzD,KAAK,EAAA;AAAA,QAAA,IAApBmD,KAAK,GAAAM,KAAA,CAALN,KAAK;UAAEnB,IAAI,GAAAyB,KAAA,CAAJzB,IAAI,CAAA;AAAA,QAAA,oBACrDvB,IAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,yBAAyB;UAAAxC,QAAA,EAAA,cACtCO,GAAA,CAACiE,UAAU,EAAA;AAACwB,YAAAA,SAAS,EAAC,MAAM;AAACvB,YAAAA,KAAK,EAAC,MAAM;AAAAzE,YAAAA,QAAA,EACtCyF,KAAAA;WACS,CAAC,EACZnB,IAAI,CAAClC,GAAG,CAAC,UAACmC,GAAG,EAAEjC,KAAK,EAAA;YAAA,oBACnB/B,GAAA,CAACiE,UAAU,EAAA;AACThC,cAAAA,SAAS,EAAC,8CAA8C;AACxDwD,cAAAA,SAAS,EAAC,MAAM;AAEhBvB,cAAAA,KAAK,EAAC,MAAM;AAAAzE,cAAAA,QAAA,EAEXuE,GAAAA;AAAG,aAAA,EAHCjC,KAIK,CAAC,CAAA;AAAA,WACd,CAAC,CAAA;AAAA,SAAA,EAb0CA,KAczC,CAAC,CAAA;OACP,CAAA;KACE,CAAA;AAAC,GACM,CAAC,CAAA;AAEnB,CAAC;;ACpDD,IAAM2D,WAAW,GAAGC,KAAK,CACvB,UAAApG,IAAA,EAAA;AAAA,EAAA,IAAG4D,CAAC,GAAA5D,IAAA,CAAD4D,CAAC;IAAE6B,oBAAoB,GAAAzF,IAAA,CAApByF,oBAAoB;IAAEhC,OAAO,GAAAzD,IAAA,CAAPyD,OAAO;IAAE4C,QAAQ,GAAArG,IAAA,CAARqG,QAAQ;IAAEC,cAAc,GAAAtG,IAAA,CAAdsG,cAAc,CAAA;AAAA,EAAA,oBAC3D7F,GAAA,CAACyD,KAAK,CAACqC,MAAM,EAAA;AAAC7D,IAAAA,SAAS,EAAC,kFAAkF;IAAAxC,QAAA,eACxGO,GAAA,CAAC+F,MAAM,EAAA;AACCH,MAAAA,QAAQ,EAARA,QAAQ;MACdI,UAAU,EAAA,IAAA;AACVC,MAAAA,YAAY,EAAC,KAAK;AAClBhE,MAAAA,SAAS,EAAC,kDAAkD;AAC5DuC,MAAAA,IAAI,EAAC,MAAM;AACX0B,MAAAA,WAAW,EAAE/C,CAAC,CAAC,sCAAsC,CAAE;AACvDgD,MAAAA,MAAM,eACJ3D,IAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,wBAAwB;AAAAxC,QAAAA,QAAA,gBACrCO,GAAA,CAAA,KAAA,EAAA;AAAKiC,UAAAA,SAAS,EAAC,uBAAuB;AAAAxC,UAAAA,QAAA,EACnCuD,OAAO,iBAAIhD,GAAA,CAACoG,OAAO,EAAA;AAACxB,YAAAA,IAAI,EAAC,OAAA;WAAS,CAAA;AAAC,SACjC,CAAC,EACLI,oBAAoB,iBACnBhF,GAAA,CAACqG,MAAM,EAAA;AACLpE,UAAAA,SAAS,EAAC,wBAAwB;AAClCiD,UAAAA,KAAK,EAAE/B,CAAC,CAAC,2CAA2C,CAAE;AACtDyB,UAAAA,IAAI,EAAC,OAAO;AACZV,UAAAA,KAAK,EAAC,WAAW;AACjBS,UAAAA,OAAO,EAAEkB,cAAAA;AAAe,SACzB,CACF,CAAA;OACE,CAAA;KAER,CAAA;AAAC,GACU,CAAC,CAAA;AAAA,CAEnB,CAAC;;;;;ACrBD,IAAMS,WAAW,GAAG,SAAdA,WAAWA,CAAA/G,IAAA,EAWX;AAAA,EAAA,IAAAgH,qBAAA,GAAAhH,IAAA,CAVJyF,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAuB,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAC3B1D,IAAI,GAAAtD,IAAA,CAAJsD,IAAI;IACJC,gBAAgB,GAAAvD,IAAA,CAAhBuD,gBAAgB;IAChB0D,UAAU,GAAAjH,IAAA,CAAViH,UAAU;IACVC,MAAM,GAAAlH,IAAA,CAANkH,MAAM;IACNjF,UAAU,GAAAjC,IAAA,CAAViC,UAAU;IACVkF,aAAa,GAAAnH,IAAA,CAAbmH,aAAa;IACb3D,OAAO,GAAAxD,IAAA,CAAPwD,OAAO;IAAA4D,mBAAA,GAAApH,IAAA,CACPsG,cAAc;AAAdA,IAAAA,cAAc,GAAAc,mBAAA,KAAGC,KAAAA,CAAAA,GAAAA,IAAI,GAAAD,mBAAA;AAClBE,IAAAA,KAAK,GAAAlH,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAER,EAAA,IAAMgD,YAAY,GAAGkE,MAAM,EAAE,CAAA;EAC7B,IAAMC,QAAQ,GAAGD,MAAM,CAAC;AAAEE,IAAAA,UAAU,EAAE,CAAC,CAAA;GAAG,CAAC,CAACC,OAAO,CAAA;AAEnD,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,MAAM,EAAI;AAC9B,IAAA,IAAMC,SAAS,GAAGxE,YAAY,CAACqE,OAAO,CAAA;AACtC,IAAA,IAAMI,KAAK,GAAGD,SAAS,CAACE,gBAAgB,CACtC,sCACF,CAAC,CAAA;AAEDP,IAAAA,QAAQ,CAACC,UAAU,GAAG5G,MAAM,CAC1B2G,QAAQ,CAACC,UAAU,GAAGG,MAAM,EAC5BE,KAAK,CAAC7G,MAAM,GAAG,CACjB,CAAC,CAAA;IACD6G,KAAK,CAACN,QAAQ,CAACC,UAAU,CAAC,CAACO,KAAK,EAAE,CAAA;GACnC,CAAA;EAEDC,UAAU,CACR,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,UAAAC,KAAK,EAAI;IACPA,KAAK,CAACC,cAAc,EAAE,CAAA;IACtB,IAAID,KAAK,CAACE,IAAI,KAAK,SAAS,EAAET,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAC3C,IAAIO,KAAK,CAACE,IAAI,KAAK,WAAW,EAAET,aAAa,CAAC,CAAC,CAAC,CAAA;AACvD,GAAC,EACD;AAAEU,IAAAA,IAAI,EAAE,QAAQ;AAAEC,IAAAA,OAAO,EAAEpB,MAAAA;AAAO,GACpC,CAAC,CAAA;EAEDe,UAAU,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE3B,cAAc,EAAE;AAC1D+B,IAAAA,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAEpB,MAAM,IAAIzB,oBAAAA;AACrB,GAAC,CAAC,CAAA;AAEF,EAAA,oBACExC,IAAA,CAACiB,KAAK,EAAAvD,aAAA,CAAAA,aAAA,CAAA;AACEuG,IAAAA,MAAM,EAANA,MAAM;AAAE1D,IAAAA,OAAO,EAAPA,OAAO;AACrB+E,IAAAA,WAAW,EAAE,KAAA;AAAM,GAAA,EACfjB,KAAK,CAAA,EAAA,EAAA,EAAA;AACTkB,IAAAA,iBAAiB,EAAC,kDAAkD;AACpE9F,IAAAA,SAAS,EAAC,8BAA8B;IAAAxC,QAAA,EAAA,cAExCO,GAAA,CAAC0F,WAAW,EAAA;AACJV,MAAAA,oBAAoB,EAApBA,oBAAoB;AAAEa,MAAAA,cAAc,EAAdA,cAAc;AAC1C7C,MAAAA,OAAO,EAAEwD,UAAW;AACpBZ,MAAAA,QAAQ,EAAEc,aAAAA;AAAc,KACzB,CAAC,eACF1G,GAAA,CAAC2C,SAAS,EAAA;AACFC,MAAAA,YAAY,EAAZA,YAAY;AAAEC,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEC,MAAAA,OAAO,EAAPA,OAAO;AAAEvB,MAAAA,UAAU,EAAVA,UAAU;AAC/DwB,MAAAA,OAAO,EAAEwD,UAAAA;AAAW,KACrB,CAAC,eACFxG,GAAA,CAAC+E,WAAW,EAAA;AAAOC,MAAAA,oBAAoB,EAApBA,oBAAAA;AAAoB,KAAK,CAAC,CAAA;AAAA,GAAA,CACxC,CAAC,CAAA;AAEZ;;;;"}
|
|
1
|
+
{"version":3,"file":"FinderModal.js","sources":["../src/components/FinderModal/Link.jsx","../src/components/FinderModal/utils.jsx","../src/components/FinderModal/Body.jsx","../src/components/FinderModal/Footer.jsx","../src/components/FinderModal/Header.jsx","../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
|
package/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 ramda = require('ramda');
|
|
9
10
|
var classnames = require('classnames');
|
|
10
11
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
11
12
|
var NoData = require('@bigbinary/neetoui/NoData');
|
|
@@ -15,7 +16,6 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
15
16
|
var injectCss = require('./inject-css-vQvjPR2x.js');
|
|
16
17
|
var Down = require('@bigbinary/neeto-icons/Down');
|
|
17
18
|
var Up = require('@bigbinary/neeto-icons/Up');
|
|
18
|
-
var ramda = require('ramda');
|
|
19
19
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
20
20
|
var Button = require('@bigbinary/neetoui/Button');
|
|
21
21
|
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
@@ -261,9 +261,14 @@ var FinderModal = function FinderModal(_ref) {
|
|
|
261
261
|
}).current;
|
|
262
262
|
var onFocusChange = function onFocusChange(offset) {
|
|
263
263
|
var container = containerRef.current;
|
|
264
|
+
if (!container) return;
|
|
264
265
|
var nodes = container.querySelectorAll("a.neeto-molecules-search-result-item");
|
|
266
|
+
if (ramda.isEmpty(nodes)) return;
|
|
265
267
|
mutables.focusIndex = minMax(mutables.focusIndex + offset, nodes.length - 1);
|
|
266
|
-
nodes[mutables.focusIndex]
|
|
268
|
+
var targetNode = nodes[mutables.focusIndex];
|
|
269
|
+
if (targetNode) {
|
|
270
|
+
targetNode.focus();
|
|
271
|
+
}
|
|
267
272
|
};
|
|
268
273
|
useHotkeys(["up", "down"], function (event) {
|
|
269
274
|
event.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinderModal.js","sources":["../../src/components/FinderModal/Link.jsx","../../src/components/FinderModal/utils.jsx","../../src/components/FinderModal/Body.jsx","../../src/components/FinderModal/Footer.jsx","../../src/components/FinderModal/Header.jsx","../../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n nodes[mutables.focusIndex].focus();\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FinderModal.js","sources":["../../src/components/FinderModal/Link.jsx","../../src/components/FinderModal/utils.jsx","../../src/components/FinderModal/Body.jsx","../../src/components/FinderModal/Footer.jsx","../../src/components/FinderModal/Header.jsx","../../src/components/FinderModal/index.jsx"],"sourcesContent":["import { Link as RRDLink } from \"react-router-dom\";\n\nconst Link = ({ to, children, ...rest }) => {\n const url = new URL(to);\n url.host = \"\";\n\n return (\n <RRDLink {...rest} to={url.pathname}>\n {children}\n </RRDLink>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nexport const minMax = (number, max = Number.POSITIVE_INFINITY, min = 0) =>\n Math.min(max, Math.max(min, number));\n\nexport const htmlToText = html => {\n if (!html) return null;\n\n const tmp = document.createElement(\"div\");\n tmp.innerHTML = html;\n\n return tmp.textContent || tmp.innerText || \"\";\n};\n\nexport const highlightMatch = (text, searchTerm) => {\n if (!searchTerm) return text;\n\n const regex = new RegExp(`(${searchTerm})`, \"gi\");\n\n return text.split(regex).map((part, index) =>\n part.toLowerCase() === searchTerm.toLowerCase() ? (\n <span className=\"neeto-molecules-finder-matched-tag\" key={index}>\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n\nexport const filterAndHighlightContent = (bodyContent, searchTerm) => {\n if (!searchTerm) return bodyContent;\n\n if (!bodyContent) return null;\n\n return bodyContent\n .split(/(.{1,130}(?:\\s|$))/g)\n .filter(line => line.trim())\n .filter(line => line.toLowerCase().includes(searchTerm.toLowerCase()))\n .map((line, index) => (\n <React.Fragment key={index}>\n {highlightMatch(line, searchTerm)}\n <br />\n </React.Fragment>\n ));\n};\n","import classNames from \"classnames\";\nimport { humanize, isNotPresent } from \"neetocist\";\nimport { Modal, Typography, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Link from \"./Link\";\nimport { htmlToText, highlightMatch, filterAndHighlightContent } from \"./utils\";\n\nconst ModalBody = ({\n containerRef,\n data,\n iconComponentMap,\n onClose,\n loading,\n searchTerm,\n}) => {\n const { t } = useTranslation();\n\n const isDataEmpty =\n isNotPresent(data) || Object.values(data).every(isNotPresent);\n\n if (isDataEmpty && !loading) {\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body flex h-96 items-center justify-center overflow-y-auto px-4 py-6\">\n <NoData\n description={t(\"neetoMolecules.finderModal.noDataDesc\")}\n title={t(\"neetoMolecules.finderModal.noDataTitle\")}\n />\n </Modal.Body>\n );\n }\n\n return (\n <Modal.Body className=\"neeto-molecules-finder-modal__body h-96 overflow-y-auto px-4 py-6\">\n <div className=\"space-y-4\" ref={containerRef}>\n {Object.keys(data).map(key => {\n if (isNotPresent(data[key])) return null;\n\n return (\n <div className=\"w-full\" key={key}>\n <Typography className=\"mb-2\" style=\"h6\" textTransform=\"uppercase\">\n {humanize(key)}\n </Typography>\n <div className=\"w-full\">\n {data[key].map(item => {\n const Icon =\n iconComponentMap[key] || iconComponentMap.default;\n\n const nameContent = htmlToText(item.name);\n const bodyContent = htmlToText(item.body);\n\n const filteredBodyContent = filterAndHighlightContent(\n bodyContent,\n searchTerm\n );\n\n return (\n <Link\n className=\"neeto-molecules-search-result-item hover:neeto-ui-bg-accent-100 focus:neeto-ui-bg-accent-100 neeto-ui-rounded flex w-full cursor-pointer items-center gap-2 p-2 text-xs\"\n key={item.id}\n to={item.url}\n onClick={onClose}\n >\n <Icon\n className=\"neeto-ui-text-gray-500 min-w-fit\"\n size={16}\n />\n <div className=\"line-clamp-1 flex flex-col\">\n {nameContent && (\n <Typography className=\"neeto-ui-text-black text-sm font-medium\">\n {highlightMatch(nameContent, searchTerm)}\n </Typography>\n )}\n {bodyContent && (\n <Typography\n className={classNames(\"truncate\", {\n \"neeto-ui-text-gray-600 text-xs\": nameContent,\n \"neeto-ui-text-black text-sm font-medium\":\n !nameContent,\n })}\n >\n {filteredBodyContent || bodyContent}\n </Typography>\n )}\n </div>\n </Link>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </Modal.Body>\n );\n};\n\nexport default ModalBody;\n","import { Down, Up } from \"neetoicons\";\nimport { Modal, Typography } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ModalFooter = ({ enableAdvancedSearch }) => {\n const { t } = useTranslation();\n\n const shortcuts = [\n {\n label: t(\"neetoMolecules.finderModal.advancedSearch\"),\n keys: [\"Cmd/Ctrl\", \"Return\"],\n isVisible: enableAdvancedSearch,\n },\n {\n label: t(\"neetoMolecules.common.actions.open\"),\n keys: [\"Return\"],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.move\"),\n keys: [\n <Up className=\"neeto-ui-text-gray-800\" key=\"up\" size={12} />,\n <Down className=\"neeto-ui-text-gray-800\" key=\"down\" size={12} />,\n ],\n isVisible: true,\n },\n {\n label: t(\"neetoMolecules.common.actions.close\"),\n keys: [\"Esc\"],\n isVisible: true,\n },\n ];\n\n return (\n <Modal.Footer className=\"neeto-ui-border-gray-300 neeto-molecules-finder-modal__footer border-t px-4 py-3\">\n <div className=\"neeto-ui-text-xxs flex items-center justify-end gap-4\">\n {shortcuts.filter(prop(\"isVisible\")).map(({ label, keys }, index) => (\n <div className=\"flex items-center gap-1\" key={index}>\n <Typography component=\"span\" style=\"nano\">\n {label}\n </Typography>\n {keys.map((key, index) => (\n <Typography\n className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-sm p-1\"\n component=\"span\"\n key={index}\n style=\"nano\"\n >\n {key}\n </Typography>\n ))}\n </div>\n ))}\n </div>\n </Modal.Footer>\n );\n};\n\nexport default ModalFooter;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Modal, Spinner } from \"neetoui\";\n\nimport Search from \"components/Search\";\n\nconst ModalHeader = withT(\n ({ t, enableAdvancedSearch, loading, onSearch, onGoToAdvanced }) => (\n <Modal.Header className=\"neeto-molecules-finder-modal__header neeto-ui-border-gray-200 border-b px-0 py-0\">\n <Search\n {...{ onSearch }}\n nakedInput\n autoComplete=\"off\"\n className=\"neeto-molecules-finder-modal__search px-3 py-1.5\"\n name=\"term\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n suffix={\n <div className=\"ml-3 flex items-center\">\n <div className=\"h-4 w-4 flex-shrink-0\">\n {loading && <Spinner size=\"small\" />}\n </div>\n {enableAdvancedSearch && (\n <Button\n className=\"ml-3 whitespace-nowrap\"\n label={t(\"neetoMolecules.finderModal.advancedSearch\")}\n size=\"small\"\n style=\"secondary\"\n onClick={onGoToAdvanced}\n />\n )}\n </div>\n }\n />\n </Modal.Header>\n )\n);\n\nexport default ModalHeader;\n","import { useRef } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Modal } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ModalBody from \"./Body\";\nimport \"./finder-modal.scss\";\nimport ModalFooter from \"./Footer\";\nimport ModalHeader from \"./Header\";\nimport { minMax } from \"./utils\";\n\nconst FinderModal = ({\n enableAdvancedSearch = true,\n data,\n iconComponentMap,\n isFetching,\n isOpen,\n searchTerm,\n setSearchTerm,\n onClose,\n onGoToAdvanced = noop,\n ...props\n}) => {\n const containerRef = useRef();\n const mutables = useRef({ focusIndex: -1 }).current;\n\n const onFocusChange = offset => {\n const container = containerRef.current;\n if (!container) return;\n\n const nodes = container.querySelectorAll(\n \"a.neeto-molecules-search-result-item\"\n );\n\n if (isEmpty(nodes)) return;\n\n mutables.focusIndex = minMax(\n mutables.focusIndex + offset,\n nodes.length - 1\n );\n\n const targetNode = nodes[mutables.focusIndex];\n if (targetNode) {\n targetNode.focus();\n }\n };\n\n useHotkeys(\n [\"up\", \"down\"],\n event => {\n event.preventDefault();\n if (event.code === \"ArrowUp\") onFocusChange(-1);\n else if (event.code === \"ArrowDown\") onFocusChange(1);\n },\n { mode: \"global\", enabled: isOpen }\n );\n\n useHotkeys([\"ctrl+enter\", \"command+enter\"], onGoToAdvanced, {\n mode: \"global\",\n enabled: isOpen && enableAdvancedSearch,\n });\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton={false}\n {...props}\n backdropClassName=\"neeto-molecules-finder-modal-backdrop py-10 px-4\"\n className=\"neeto-molecules-finder-modal\"\n >\n <ModalHeader\n {...{ enableAdvancedSearch, onGoToAdvanced }}\n loading={isFetching}\n onSearch={setSearchTerm}\n />\n <ModalBody\n {...{ containerRef, data, iconComponentMap, onClose, searchTerm }}\n loading={isFetching}\n />\n <ModalFooter {...{ enableAdvancedSearch }} />\n </Modal>\n );\n};\n\nFinderModal.propTypes = {\n /*\n Boolean to indicate decide whether to show advanced search button or not\n */\n enableAdvancedSearch: PropTypes.bool,\n /*\n Data to be displayed in the modal\n */\n data: PropTypes.objectOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n url: PropTypes.string,\n body: PropTypes.string,\n name: PropTypes.string,\n })\n )\n ),\n /*\n Icon component map to render icons for each section\n */\n iconComponentMap: PropTypes.objectOf(PropTypes.elementType),\n /*\n Boolean to indicate whether data is being fetched or not\n */\n isFetching: PropTypes.bool,\n /*\n Boolean to indicate whether modal is open or not\n */\n isOpen: PropTypes.bool,\n /*\n Term used for search\n */\n searchTerm: PropTypes.string,\n /*\n Function to set search term\n */\n setSearchTerm: PropTypes.func,\n /*\n Function to close the modal\n */\n onClose: PropTypes.func,\n /*\n Function to execute when user clicks on advanced search button\n */\n onGoToAdvanced: PropTypes.func,\n};\n\nexport default FinderModal;\n"],"names":["Link","_ref","to","children","rest","_objectWithoutProperties","_excluded","url","URL","host","_jsx","RRDLink","_objectSpread","pathname","minMax","number","max","arguments","length","undefined","Number","POSITIVE_INFINITY","min","Math","htmlToText","html","tmp","document","createElement","innerHTML","textContent","innerText","highlightMatch","text","searchTerm","regex","RegExp","concat","split","map","part","index","toLowerCase","className","filterAndHighlightContent","bodyContent","filter","line","trim","includes","_jsxs","React","Fragment","ModalBody","containerRef","data","iconComponentMap","onClose","loading","_useTranslation","useTranslation","t","isDataEmpty","isNotPresent","Object","values","every","Modal","Body","NoData","description","title","ref","keys","key","Typography","style","textTransform","humanize","item","Icon","nameContent","name","body","filteredBodyContent","onClick","size","classNames","id","ModalFooter","enableAdvancedSearch","shortcuts","label","isVisible","Up","Down","Footer","prop","_ref2","component","ModalHeader","withT","onSearch","onGoToAdvanced","Header","Search","nakedInput","autoComplete","placeholder","suffix","Spinner","Button","FinderModal","_ref$enableAdvancedSe","isFetching","isOpen","setSearchTerm","_ref$onGoToAdvanced","noop","props","useRef","mutables","focusIndex","current","onFocusChange","offset","container","nodes","querySelectorAll","isEmpty","targetNode","focus","useHotkeys","event","preventDefault","code","mode","enabled","closeButton","backdropClassName"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.16.
|
|
3
|
+
"version": "3.16.85",
|
|
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>",
|