@instincthub/react-ui 0.1.35 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/assets/css/ui/tables.css +6 -2
- package/dist/src/components/forms/FilterObjects.js +1 -1
- package/dist/src/components/forms/SearchObjectsFromDB.js +1 -1
- package/dist/src/types/components/forms/FilterObjects.d.ts +8 -0
- package/dist/src/types/components/forms/SearchObjectsFromDB.d.ts +5 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -174,6 +174,10 @@
|
|
|
174
174
|
z-index: 10;
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
.ihub-table tr:nth-child(1n) {
|
|
178
|
+
background-color: var(--White);
|
|
179
|
+
}
|
|
180
|
+
|
|
177
181
|
.ihub-empty-state {
|
|
178
182
|
padding: 40px 0;
|
|
179
183
|
text-align: center;
|
|
@@ -283,7 +287,7 @@
|
|
|
283
287
|
}
|
|
284
288
|
|
|
285
289
|
/* Dark mode support */
|
|
286
|
-
@media (prefers-color-scheme: dark) {
|
|
290
|
+
/* @media (prefers-color-scheme: dark) {
|
|
287
291
|
.ihub-table th {
|
|
288
292
|
background-color: var(--OpacityBackground);
|
|
289
293
|
color: var(--Gunmetal);
|
|
@@ -322,7 +326,7 @@
|
|
|
322
326
|
background-color: var(--White);
|
|
323
327
|
color: var(--LavenderGray);
|
|
324
328
|
}
|
|
325
|
-
}
|
|
329
|
+
} */
|
|
326
330
|
|
|
327
331
|
/* Status Badge Styles */
|
|
328
332
|
.ihub-status-badge {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e,typeof as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,Fragment as i,jsx as l}from"react/jsx-runtime";import{useState as
|
|
1
|
+
import{slicedToArray as e,typeof as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,Fragment as i,jsx as l}from"react/jsx-runtime";import{useState as s,useEffect as r}from"react";import n from"@mui/icons-material/ExpandMore";import{setCookie as o}from"../lib/helpFunction.js";import u from"../ui/viewer/ContentViewer.js";var c=function(c){var d=s(!1),m=e(d,2),p=m[0],f=m[1],h=s("Choose..."),b=e(h,2),v=b[0],N=b[1],_=s([]),V=e(_,2),y=V[0],C=V[1],j=s(""),x=e(j,2),k=x[0],w=x[1];r(function(){var e=[];for(var t in c.options)c.options[t].id===c.defaultValue&&(N(c.options[t].title),w(c.options[t].id)),e.push(c.options[t]);C(e)},[c.options,c.defaultValue]),r(function(){var e;if("object"===t(c.defaultValue)&&null!==(e=c.defaultValue)&&void 0!==e&&e.id)N(c.defaultValue.title),w(c.defaultValue.id);else if(c.defaultValue){var a=c.options.find(function(e){return e.id===c.defaultValue});null!=a&&a.id&&(N(a.title),w(a.id))}else N("Choose..."),w("")},[c.defaultValue,c.options]);return a(i,{children:[a("div",{className:"ihub-select ".concat(c.err?"ihub-form-err":"").concat(c.className?" ".concat(c.className):""),style:{width:c.defaultWidth||"300px"},children:[a("div",{className:"ihub-select__btn",onClick:function(){return 0!==c.status&&f(!p)},children:[a("div",{className:0===c.status?"disabled":"",children:[l("input",{type:"text",className:"ihub-select__input",value:c.upperCases?String(k).toUpperCase():k||"",id:"id_"+c.name,name:c.name,required:c.required,"data-name":c.dataName||c.name,readOnly:!0}),l(u,{content:v||"...",showToolbar:!1})]}),c.label&&l("label",{className:"ihub-select__label",children:c.label}),l("div",{className:"search_btn",children:0===c.status?l("div",{className:"ihub-select__loader"}):l(n,{})})]}),p&&l("div",{className:"ihub-select__content",children:y.map(function(e,t){return l("div",{className:"ihub-select__item",onClick:function(){return function(e,t){N(t),w(e.id),f(!1),c.setValue&&c.setValue(e),c.setNameValue&&c.setNameValue(c.name,e),c.setObjects&&c.setObjects(e),c.setArrayProps&&c.setArrayProps(c.arrayProps||[],e),c.setCookies&&o(c.setCookies,JSON.stringify(e),365)}(e,e.title)},children:e.title},t)})})]}),c.note&&l("p",{className:"ihub-input-notes",children:c.note}),c.error&&l("span",{className:"ihub-error-text",children:c.error})]})};export{c as default};
|
|
2
2
|
//# sourceMappingURL=FilterObjects.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e,asyncToGenerator as
|
|
1
|
+
import{slicedToArray as e,asyncToGenerator as r,regenerator as n,toConsumableArray as a,typeof as i,createForOfIteratorHelper as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{memo as o,useState as s,useEffect as u,useCallback as d}from"react";import{reqOptions as h,API_HOST_URL as m}from"../lib/helpFunction.js";import"../lib/utils.js";import f from"@mui/icons-material/SearchOutlined";import v from"@mui/icons-material/Check";import p from"@mui/icons-material/CloseOutlined";var b=function(e){if(!e||!Array.isArray(e))return[];var r,n=[],c=t(e);try{for(c.s();!(r=c.n()).done;){var l=r.value;Array.isArray(l)?n.push.apply(n,a(b(l))):l&&"object"===i(l)&&l.id&&n.push(l)}}catch(e){c.e(e)}finally{c.f()}var o=n.filter(function(e,r,n){return n.findIndex(function(r){return r.id===e.id})===r});return o};function y(t){var o=t.label,y=t.token,g=t.handle,N=t.selected,k=t.setSelected,j=t.appLabel,S=t.modelName,w=t.filterChannel,O=void 0!==w&&w,C=t.limitQuery,D=void 0===C?5:C,E=t.limitSelect,T=void 0===E?0:E,_=t.options,x=t.keyName,F=void 0===x?"title":x,A=t.placeholder,B=void 0===A?"Search by Username or Email":A,I=t.searchUrl,U=t.err,q=void 0!==U&&U,H=t.required,P=void 0!==H&&H,G=t.defaultUrl,J=s(""),K=e(J,2),L=K[0],Q=K[1],R=s([]),z=e(R,2),M=z[0],V=z[1],W=s(!1),X=e(W,2),Y=X[0],Z=X[1],$=s(null),ee=e($,2),re=ee[0],ne=ee[1];u(function(){G||V(_||[])},[_,G]);var ae=d(r(n().m(function e(){var r,a,i,t,c;return n().w(function(e){for(;;)switch(e.p=e.n){case 0:if(G){e.n=1;break}return e.a(2);case 1:return Z(!0),ne(null),e.p=2,r=h("GET",null,y),e.n=3,fetch(G,r);case 3:if((a=e.v).ok){e.n=4;break}throw new Error("HTTP error ".concat(a.status));case 4:return e.n=5,a.json();case 5:i=e.v,V(i.results||i||[]),e.n=7;break;case 6:e.p=6,c=e.v,t=c instanceof Error?c.message:"Unknown error",console.error("SearchObjectsFromDB: Error fetching default data:",t),V(_||[]);case 7:return e.p=7,Z(!1),e.f(7);case 8:return e.a(2)}},e,null,[[2,6,7,8]])})),[G,y,_]);u(function(){G&&ae()},[G,ae]),u(function(){if(N&&N.length>0){var e=b(N);JSON.stringify(e)!==JSON.stringify(N)&&console.warn("SearchObjectsFromDB: Detected malformed selected array. Parent should provide flattened data:",{original:N,expectedFormat:e,keyName:F})}console.log("SearchObjectsFromDB Debug:",{keyName:F,selectedLength:(null==N?void 0:N.length)||0,selectedSample:null==N?void 0:N[0],label:o})},[N,F,o]);var ie,te=d(r(n().m(function e(){var r,i,t,c,l,o,s;return n().w(function(e){for(;;)switch(e.p=e.n){case 0:return Z(!0),ne(null),r=h("GET",null,y),i=I?I.includes("/?")?"".concat(I,"&search=").concat(L):"".concat(I,"?search=").concat(L):j?"".concat(m,"channels/").concat(g,"/dynamic-search/?app_label=").concat(j,"&model_name=").concat(S,"&value=").concat(L,"&filter_channel=").concat(O):"".concat(m,"auth/").concat(g,"/search-user/").concat(L,"/?limit=").concat(D),e.p=1,e.n=2,fetch(i,r);case 2:if((t=e.v).ok){e.n=3;break}throw new Error("HTTP error ".concat(t.status));case 3:return e.n=4,t.json();case 4:c=e.v,l=c.results||[],V(G?l:[].concat(a(l),a(_||[]))),e.n=6;break;case 5:e.p=5,s=e.v,o=s instanceof Error?s.message:"Unknown error occurred",console.error("Error fetching search results:",o),ne(o),V(G?[]:a(_||[]));case 6:return e.p=6,Z(!1),e.f(6);case 7:return e.a(2)}},e,null,[[1,5,6,7]])})),[L,y,I,j,S,g,O,D,G,_]),ce=d(function(e){"Enter"===e.key&&(e.preventDefault(),te())},[te]),le=d(function(){Q(""),ne(null),G?ae():V(a(_||[]))},[G,ae,_]),oe=d(function(e){return!(!e||!N||0===N.length)&&b(N).some(function(r){if(!r)return!1;var n="object"===i(r)?null==r?void 0:r.id:r,a=(null==e?void 0:e.username)||(null==e?void 0:e.id);return n===a&&null!=n&&null!=a})},[N]),se=d(function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e&&e.id&&N){var n=b(N),i=n.find(function(r){return(null==r?void 0:r.id)===e.id});if(r){var t=n.filter(function(r){return(null==r?void 0:r.id)!==e.id});k(t)}else!i&&(0===T||n.length<T)?k([].concat(a(n),[e])):1===T&&k([e])}},[N,k,T]);return c("div",{className:"ihub-react-search-container",children:l("div",{className:"ihub-react-search card",children:[o&&l("h4",{className:"ihub-fs-sm ihub-mt-2 ihub-mb-2",children:[o," ",P&&c("span",{className:"ihub-required",children:"*"})]}),l("div",{className:"ihub-search-input",children:[c("input",{type:"text",placeholder:B,onKeyDown:ce,value:L,onChange:function(e){return Q(e.target.value)},disabled:Y,required:P&&!N.length}),l("div",{className:"ihub-search-icons",children:[L&&c(p,{onClick:le,className:"ihub-search-icon ihub-close-icon"}),c(f,{onClick:te,className:"ihub-search-icon ihub-search-button ".concat(Y?"ihub-disabled":"")})]})]}),Y&&c("div",{className:"ihub-loading",children:"Searching..."}),re&&c("div",{className:"ihub-search-error",children:re}),l("ul",{className:"ihub-search-results",children:[null==M?void 0:M.map(function(e,r){return l("li",{className:"ihub-search-result-item ihub-valid",onClick:function(){return e&&se(e)},children:[oe(e)&&c(v,{className:"ihub-check-icon",style:{position:"relative",top:"5px",marginRight:"10px"}}),e[F]||(null==e?void 0:e.title)||"",oe(e)?c(p,{className:"ihub-delete-icon ihub-ml-auto",onClick:function(){return e&&se(e,!0)}}):""]},"".concat((null==e?void 0:e.id)||(null==e?void 0:e.username)||r))}),Y||re||M.length||N.length?"":c("li",{className:"ihub-no-results",children:"No available options"})]}),(ie=b(N||[]),0===ie.length?null:l("ul",{className:"ihub-selected-options",children:[c("h4",{className:"ihub-fs-md",children:"Selected Options:"}),ie.map(function(e,r){if(!e||"object"!==i(e))return console.warn("SearchObjectsFromDB: Invalid item in selected array:",e),null;var n=e,a=n[F]||n.title||n.name||n.full_name||n.name_plus_username||n.display_name||n.username||"Item ".concat(r+1),t=e.id||n.username||"selected-".concat(r);return a&&a!=="Item ".concat(r+1)||console.log("SearchObjectsFromDB: Display text debug:",{item:e,keyName:F,itemKeyName:n[F],title:n.title,name:n.name,fullName:n.full_name,displayText:a}),l("li",{children:[c("span",{children:a}),c(p,{className:"ihub-delete-icon",onClick:function(){return se(e,!0)}})]},t)})]})),q&&c("p",{className:"ihub-error",children:"This field is required"})]})})}var g=o(y);export{g as default};
|
|
2
2
|
//# sourceMappingURL=SearchObjectsFromDB.js.map
|
|
@@ -18,6 +18,7 @@ interface FilterObjectsProps {
|
|
|
18
18
|
status?: number;
|
|
19
19
|
upperCases?: boolean;
|
|
20
20
|
error?: string;
|
|
21
|
+
className?: string;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* FilterOnject dropdown
|
|
@@ -40,6 +41,13 @@ interface FilterObjectsProps {
|
|
|
40
41
|
* arrayProps={arrayProps}
|
|
41
42
|
* dataName="filterObjects"
|
|
42
43
|
* setCookies="filterObjects" // Optional
|
|
44
|
+
* className="custom-class" // Optional
|
|
45
|
+
* defaultWidth="400px" // Optional
|
|
46
|
+
* required // Optional
|
|
47
|
+
* err={hasError} // Optional
|
|
48
|
+
* upperCases // Optional
|
|
49
|
+
* status={isLoading ? 0 : 1} // Optional: 0 for loading/disabled, 1 for active
|
|
50
|
+
* error={errorMessage} // Optional: error message to display
|
|
43
51
|
* />
|
|
44
52
|
* ```
|
|
45
53
|
* Props interface for the FilterObjects component
|
|
@@ -17,6 +17,8 @@ interface SearchObjectsFromDBProps<T extends SearchObjectItemType = SearchObject
|
|
|
17
17
|
selected: T[];
|
|
18
18
|
err?: boolean;
|
|
19
19
|
required?: boolean;
|
|
20
|
+
/** URL to fetch the initial default display list on mount and after search is cleared */
|
|
21
|
+
defaultUrl?: string;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Component for searching objects from a database with filtering capabilities
|
|
@@ -46,7 +48,9 @@ interface SearchObjectsFromDBProps<T extends SearchObjectItemType = SearchObject
|
|
|
46
48
|
* @param {string} props.searchUrl - The search url for the API request
|
|
47
49
|
* @param {T[]} props.selected - The selected for the API request
|
|
48
50
|
* @param {boolean} props.err - The error for the API request
|
|
51
|
+
* @param {string} props.defaultUrl - URL to fetch the initial default display list on mount.
|
|
52
|
+
* When set, search results replace the list entirely (no merge with options), preventing duplicates.
|
|
49
53
|
*/
|
|
50
|
-
declare function SearchObjectsFromDB<T extends SearchObjectItemType = SearchObjectItemType>({ label, token, handle, selected, setSelected, appLabel, modelName, filterChannel, limitQuery, limitSelect, options, keyName, placeholder, searchUrl, err, required, }: SearchObjectsFromDBProps<T>): JSX.Element;
|
|
54
|
+
declare function SearchObjectsFromDB<T extends SearchObjectItemType = SearchObjectItemType>({ label, token, handle, selected, setSelected, appLabel, modelName, filterChannel, limitQuery, limitSelect, options, keyName, placeholder, searchUrl, err, required, defaultUrl, }: SearchObjectsFromDBProps<T>): JSX.Element;
|
|
51
55
|
declare const _default: typeof SearchObjectsFromDB;
|
|
52
56
|
export default _default;
|