ekm-ui 0.4.72 → 0.4.73
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/.turbo/turbo-build.log +59 -59
- package/CHANGELOG.md +6 -0
- package/dist/card-payment-block.css +1 -1
- package/dist/card-payment-block.css.map +1 -1
- package/dist/card-payment-block.js +2 -2
- package/dist/{chunk-ZRMNYAO7.js → chunk-GOW54NGZ.js} +2 -2
- package/dist/{chunk-ZNWAFIZY.js → chunk-PSYIXRU7.js} +2 -2
- package/dist/{chunk-ZNWAFIZY.js.map → chunk-PSYIXRU7.js.map} +1 -1
- package/dist/country-picker/country-modal.css +1 -1
- package/dist/country-picker/country-modal.css.map +1 -1
- package/dist/country-picker/country-modal.js +2 -2
- package/dist/drag-and-drop.css +1 -1
- package/dist/drag-and-drop.css.map +1 -1
- package/dist/drag-and-drop.js +2 -2
- package/dist/file-picker/file-picker.css +1 -1
- package/dist/file-picker/file-picker.css.map +1 -1
- package/dist/file-picker/file-picker.js +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +2 -2
- package/dist/layout/layout.css +1 -1
- package/dist/layout/layout.css.map +1 -1
- package/dist/layout/layout.js +2 -2
- package/dist/product-picker/product-modal.css +1 -1
- package/dist/product-picker/product-modal.css.map +1 -1
- package/dist/product-picker/product-modal.js +2 -2
- package/dist/search/search.js +1 -1
- package/dist/stacked-list-item.css +1 -1
- package/dist/stacked-list-item.css.map +1 -1
- package/dist/stacked-list-item.js +2 -2
- package/dist/table-result-block.css +1 -1
- package/dist/table-result-block.css.map +1 -1
- package/dist/table-result-block.js +2 -2
- package/package.json +1 -1
- package/src/search/search.tsx +1 -1
- /package/dist/{chunk-ZRMNYAO7.js.map → chunk-GOW54NGZ.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { h as CardPaymentBlock } from './chunk-
|
|
1
|
+
export { h as CardPaymentBlock } from './chunk-GOW54NGZ.js';
|
|
2
2
|
import './chunk-NF5KDPMG.js';
|
|
3
3
|
import './chunk-YZ2YZSNQ.js';
|
|
4
4
|
import './chunk-GVNUAH45.js';
|
|
5
5
|
import './chunk-JAR3LP2K.js';
|
|
6
6
|
import './chunk-FOWKHGHJ.js';
|
|
7
7
|
import './chunk-22RUXGYW.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-PSYIXRU7.js';
|
|
9
9
|
import './chunk-HVNLAQA6.js';
|
|
10
10
|
import './chunk-HW7AZG2V.js';
|
|
11
11
|
import './chunk-AN66H4D6.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as a$i } from './chunk-22RUXGYW.js';
|
|
2
|
-
import { a as a$e } from './chunk-
|
|
2
|
+
import { a as a$e } from './chunk-PSYIXRU7.js';
|
|
3
3
|
import { a as a$8, b } from './chunk-HVNLAQA6.js';
|
|
4
4
|
import { a as a$j } from './chunk-FPXEE5TC.js';
|
|
5
5
|
import { a as a$9 } from './chunk-XXP5K6Y4.js';
|
|
@@ -34,4 +34,4 @@ function Xe({cardPayment:r,enablePayPal:e}){return jsxs(a$3,{className:"border-0
|
|
|
34
34
|
|
|
35
35
|
export { nr as a, Nr as b, le as c, Fe as d, K as e, Ye as f, ir as g, Xe as h };
|
|
36
36
|
//# sourceMappingURL=out.js.map
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
37
|
+
//# sourceMappingURL=chunk-GOW54NGZ.js.map
|
|
@@ -4,8 +4,8 @@ import { forwardRef, useState, useImperativeHandle, useEffect, useRef, useCallba
|
|
|
4
4
|
import { HiSearch } from 'react-icons/hi';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
|
-
var r=e(a(),1);function F(w,n,t){let d=useRef(0),s=useRef(null),u=useCallback(w,t);useEffect(()=>(d.current===0?d.current=1:s.current=setTimeout(()=>{u();},n),()=>{clearTimeout(s.current);}),[u,n]);}var R=forwardRef(function({id:n,categories:t=[],delay:d=1500,placeholder:s="Enter a keyword to search...",callback:u,disabled:D=!1,initialValue:i="",additionalClasses:x="",showSearchIcon:C=!1},N){let[o,y]=useState({text:null,category:(t==null?void 0:t.length)>0?t[0]:null}),[S,h]=useState(i),[$,
|
|
7
|
+
var r=e(a(),1);function F(w,n,t){let d=useRef(0),s=useRef(null),u=useCallback(w,t);useEffect(()=>(d.current===0?d.current=1:s.current=setTimeout(()=>{u();},n),()=>{clearTimeout(s.current);}),[u,n]);}var R=forwardRef(function({id:n,categories:t=[],delay:d=1500,placeholder:s="Enter a keyword to search...",callback:u,disabled:D=!1,initialValue:i="",additionalClasses:x="",showSearchIcon:C=!1},N){let[o,y]=useState({text:null,category:(t==null?void 0:t.length)>0?t[0]:null}),[S,h]=useState(i),[$,p]=useState(!0);useImperativeHandle(N,()=>({clear:()=>{h(""),y(b(a$1({},o),{text:""}));},removeFocus:()=>{document.getElementById(`${n}-search-input`).blur();}}));let E=e=>{h(e.target.value),y(b(a$1({},o),{text:e.target.value}));},T=(e,l)=>{e.preventDefault(),y(b(a$1({},o),{category:l})),p(!0);},L=e=>{(e.charCode||e.keyCode)===13&&e.preventDefault();};F(()=>{u(o);},d,[o.text,o.category]),useEffect(()=>{i!==S&&h(i);},[i]);let b$1=useRef(null);useEffect(()=>{let e=l=>{b$1.current&&!b$1.current.contains(l.target)&&p(!0);};return document.addEventListener("click",e,!0),()=>{document.removeEventListener("click",e,!0);}},[]);let q=()=>jsxs(Fragment,{children:[jsxs("button",{id:`${n}-dropdown-button`,className:"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800",type:"button",onClick:()=>p(!$),children:[o.category.display,jsx("svg",{className:"ml-2.5 h-2.5 w-2.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 10 6",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 1 4 4 4-4"})})]}),jsx("div",{id:`${n}-dropdown`,ref:b$1,className:`z-10 ${$?"hidden":""} absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200","aria-labelledby":"dropdown-button",children:(t||[]).map(e=>jsx("li",{className:"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer",onClick:l=>T(l,e),children:e.display},`gst-${e.display}`))})})]});return jsx("div",{className:`flex ${x||""}`,children:jsxs("div",{className:"relative w-full",children:[C&&jsx("div",{className:"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5",children:jsx(HiSearch,{size:20,className:"text-gray-500"})}),jsx("input",{ref:N,placeholder:s,value:S,"aria-label":"search","aria-describedby":"Search",onChange:E,onKeyDown:L,disabled:D,id:`${n}-search-input`,className:`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${C?"pl-[8px] lg:pl-10 pr-2 py-2 bg-white":"p-2 bg-gray-50"}`}),(t==null?void 0:t.length)>0&&q()]})})});R.propTypes={categories:r.default.arrayOf(r.default.shape({display:r.default.string.isRequired,value:r.default.oneOfType([r.default.string,r.default.number]).isRequired})),delay:r.default.number,placeholder:r.default.string,callback:r.default.func.isRequired,disabled:r.default.bool,initialValue:r.default.string,additionalClasses:r.default.string,showSearchIcon:r.default.bool};R.displayName="Search";
|
|
8
8
|
|
|
9
9
|
export { R as a };
|
|
10
10
|
//# sourceMappingURL=out.js.map
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-PSYIXRU7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/search/search.tsx"],"names":["import_prop_types","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","HiSearch","Fragment","jsx","jsxs","useDebounceEffect","effect","delay","deps","instanceRef","handlerRef","callback","Search","id","categories","placeholder","disabled","initialValue","additionalClasses","showSearchIcon","reference","state","setState","currentSearchValue","setCurrentSearchValue","hidden","setHidden","__spreadProps","__spreadValues","handleSearchChange","handleTypeChange","selection","handleKeyDown","ref","handleClickOutside","e","renderDropdown","x","PropTypes"],"mappings":"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","sourcesContent":["//@ts-nocheck\nimport PropTypes from \"prop-types\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { HiSearch } from \"react-icons/hi\";\n\nfunction useDebounceEffect(effect, delay, deps) {\n const instanceRef = useRef(0);\n const handlerRef = useRef(null);\n const callback = useCallback(effect, deps);\n\n useEffect(() => {\n if (instanceRef.current === 0) {\n instanceRef.current = 1;\n } else {\n handlerRef.current = setTimeout(() => {\n callback();\n }, delay);\n }\n return () => {\n clearTimeout(handlerRef.current);\n };\n }, [callback, delay]);\n}\n\nexport const Search = forwardRef(function Search(\n {\n id,\n categories = [],\n delay = 1500,\n placeholder = \"Enter a keyword to search...\",\n callback,\n disabled = false,\n initialValue = \"\",\n additionalClasses= \"\",\n showSearchIcon = false,\n },\n reference\n) {\n // Create state based on config\n const [state, setState] = useState({\n text: null,\n category: categories?.length > 0 ? categories[0] : null,\n });\n const [currentSearchValue, setCurrentSearchValue] = useState(initialValue);\n const [hidden, setHidden] = useState(true);\n\n useImperativeHandle(reference, () => ({\n clear: () => {\n setCurrentSearchValue(\"\");\n setState({ ...state, text: \"\" });\n },\n removeFocus: () => {\n document.getElementById(`${id}-search-input`).blur();\n },\n }));\n\n const handleSearchChange = (e) => {\n setCurrentSearchValue(e.target.value);\n setState({ ...state, text: e.target.value });\n };\n\n const handleTypeChange = (e, selection) => {\n e.preventDefault();\n setState({ ...state, category: selection });\n setHidden(true);\n };\n\n const handleKeyDown = (e) => {\n if ((e.charCode || e.keyCode) === 13) {\n e.preventDefault();\n }\n };\n\n useDebounceEffect(\n () => {\n callback(state);\n },\n delay,\n [state.text, state.category]\n );\n useEffect(() => {\n if (initialValue !== currentSearchValue)\n setCurrentSearchValue(initialValue);\n }, [initialValue]);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const renderDropdown = () => (\n <>\n <button\n id={`${id}-dropdown-button`}\n className=\"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n {state.category.display}\n <svg\n className=\"ml-2.5 h-2.5 w-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n <div\n id={`${id}-dropdown`}\n ref={ref}\n className={`z-10 ${\n hidden ? \"hidden\" : \"\"\n } absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200\"\n aria-labelledby=\"dropdown-button\"\n >\n {(categories || []).map((x) => {\n return (\n <li \n key={`gst-${x.display}`} \n className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer\"\n onClick={(e) => handleTypeChange(e, x)}\n >\n {x.display}\n </li>\n );\n })}\n </ul>\n </div>\n </>\n );\n\n return (\n <div className={`flex ${additionalClasses ? additionalClasses : ''}`}>\n <div className=\"relative w-full\">\n {showSearchIcon && (\n <div className=\"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5\">\n <HiSearch size={20} className=\"text-gray-500\"/>\n </div>\n )}\n <input\n ref={reference}\n placeholder={placeholder}\n value={currentSearchValue}\n aria-label=\"search\"\n aria-describedby=\"Search\"\n onChange={handleSearchChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n id={`${id}-search-input`}\n className={`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${showSearchIcon ? 'pl-2 lg:pl-10 pr-2 py-2 bg-white' : 'p-2 bg-gray-50'}`}\n />\n {categories?.length > 0 && renderDropdown()}\n </div>\n </div>\n );\n});\n\nSearch.propTypes = {\n /** Optional List of categories that the search term can be applied to. If supplied\n * the categories appear on the far right of the search input in a drop down list, otherwise it is hidden.\n */\n categories: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The text shown to the user in the dropdown.\n */\n display: PropTypes.string.isRequired,\n /**\n * The value set when the item is selected.\n */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n })\n ),\n /**\n * The delay between requests made to the server when typing in milliseconds.\n */\n delay: PropTypes.number,\n /**\n * Optional placeholder for the search field.\n */\n placeholder: PropTypes.string,\n /**\n * Callback with the search object for use in the application the format is:\n * { text: '', category: {display:\"\", value:\"\"} }. Note: category is null if no options are provided.\n */\n callback: PropTypes.func.isRequired,\n /**\n * If set to true, the text in the search box cannot be changed\n */\n disabled: PropTypes.bool,\n /**\n * If set, will be the value in the search bar when it first loads.\n * If not set, the search bar will just be empty.\n */\n initialValue: PropTypes.string,\n /**\n * Any additional classes to apply to the outside div of the search component\n */\n additionalClasses: PropTypes.string,\n /**\n * If set to true, a search icon will be displayed inside the search input.\n */\n showSearchIcon: PropTypes.bool,\n};\n\nSearch.displayName = \"Search\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/search/search.tsx"],"names":["import_prop_types","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","HiSearch","Fragment","jsx","jsxs","useDebounceEffect","effect","delay","deps","instanceRef","handlerRef","callback","Search","id","categories","placeholder","disabled","initialValue","additionalClasses","showSearchIcon","reference","state","setState","currentSearchValue","setCurrentSearchValue","hidden","setHidden","__spreadProps","__spreadValues","handleSearchChange","handleTypeChange","selection","handleKeyDown","ref","handleClickOutside","e","renderDropdown","x","PropTypes"],"mappings":"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","sourcesContent":["//@ts-nocheck\nimport PropTypes from \"prop-types\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { HiSearch } from \"react-icons/hi\";\n\nfunction useDebounceEffect(effect, delay, deps) {\n const instanceRef = useRef(0);\n const handlerRef = useRef(null);\n const callback = useCallback(effect, deps);\n\n useEffect(() => {\n if (instanceRef.current === 0) {\n instanceRef.current = 1;\n } else {\n handlerRef.current = setTimeout(() => {\n callback();\n }, delay);\n }\n return () => {\n clearTimeout(handlerRef.current);\n };\n }, [callback, delay]);\n}\n\nexport const Search = forwardRef(function Search(\n {\n id,\n categories = [],\n delay = 1500,\n placeholder = \"Enter a keyword to search...\",\n callback,\n disabled = false,\n initialValue = \"\",\n additionalClasses= \"\",\n showSearchIcon = false,\n },\n reference\n) {\n // Create state based on config\n const [state, setState] = useState({\n text: null,\n category: categories?.length > 0 ? categories[0] : null,\n });\n const [currentSearchValue, setCurrentSearchValue] = useState(initialValue);\n const [hidden, setHidden] = useState(true);\n\n useImperativeHandle(reference, () => ({\n clear: () => {\n setCurrentSearchValue(\"\");\n setState({ ...state, text: \"\" });\n },\n removeFocus: () => {\n document.getElementById(`${id}-search-input`).blur();\n },\n }));\n\n const handleSearchChange = (e) => {\n setCurrentSearchValue(e.target.value);\n setState({ ...state, text: e.target.value });\n };\n\n const handleTypeChange = (e, selection) => {\n e.preventDefault();\n setState({ ...state, category: selection });\n setHidden(true);\n };\n\n const handleKeyDown = (e) => {\n if ((e.charCode || e.keyCode) === 13) {\n e.preventDefault();\n }\n };\n\n useDebounceEffect(\n () => {\n callback(state);\n },\n delay,\n [state.text, state.category]\n );\n useEffect(() => {\n if (initialValue !== currentSearchValue)\n setCurrentSearchValue(initialValue);\n }, [initialValue]);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const renderDropdown = () => (\n <>\n <button\n id={`${id}-dropdown-button`}\n className=\"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n {state.category.display}\n <svg\n className=\"ml-2.5 h-2.5 w-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n <div\n id={`${id}-dropdown`}\n ref={ref}\n className={`z-10 ${\n hidden ? \"hidden\" : \"\"\n } absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200\"\n aria-labelledby=\"dropdown-button\"\n >\n {(categories || []).map((x) => {\n return (\n <li \n key={`gst-${x.display}`} \n className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer\"\n onClick={(e) => handleTypeChange(e, x)}\n >\n {x.display}\n </li>\n );\n })}\n </ul>\n </div>\n </>\n );\n\n return (\n <div className={`flex ${additionalClasses ? additionalClasses : ''}`}>\n <div className=\"relative w-full\">\n {showSearchIcon && (\n <div className=\"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5\">\n <HiSearch size={20} className=\"text-gray-500\"/>\n </div>\n )}\n <input\n ref={reference}\n placeholder={placeholder}\n value={currentSearchValue}\n aria-label=\"search\"\n aria-describedby=\"Search\"\n onChange={handleSearchChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n id={`${id}-search-input`}\n className={`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${showSearchIcon ? 'pl-[8px] lg:pl-10 pr-2 py-2 bg-white' : 'p-2 bg-gray-50'}`}\n />\n {categories?.length > 0 && renderDropdown()}\n </div>\n </div>\n );\n});\n\nSearch.propTypes = {\n /** Optional List of categories that the search term can be applied to. If supplied\n * the categories appear on the far right of the search input in a drop down list, otherwise it is hidden.\n */\n categories: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The text shown to the user in the dropdown.\n */\n display: PropTypes.string.isRequired,\n /**\n * The value set when the item is selected.\n */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n })\n ),\n /**\n * The delay between requests made to the server when typing in milliseconds.\n */\n delay: PropTypes.number,\n /**\n * Optional placeholder for the search field.\n */\n placeholder: PropTypes.string,\n /**\n * Callback with the search object for use in the application the format is:\n * { text: '', category: {display:\"\", value:\"\"} }. Note: category is null if no options are provided.\n */\n callback: PropTypes.func.isRequired,\n /**\n * If set to true, the text in the search box cannot be changed\n */\n disabled: PropTypes.bool,\n /**\n * If set, will be the value in the search bar when it first loads.\n * If not set, the search bar will just be empty.\n */\n initialValue: PropTypes.string,\n /**\n * Any additional classes to apply to the outside div of the search component\n */\n additionalClasses: PropTypes.string,\n /**\n * If set to true, a search icon will be displayed inside the search input.\n */\n showSearchIcon: PropTypes.bool,\n};\n\nSearch.displayName = \"Search\";\n"]}
|