@instincthub/react-ui 0.0.6 → 0.0.8

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.
@@ -1,6 +1,5 @@
1
1
  /* Submit Button Styles */
2
2
  .ihub-submit-btn-wrapper {
3
- margin-bottom: 20px;
4
3
  position: relative;
5
4
  display: inline-block;
6
5
  }
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,objectSpread2 as r,asyncToGenerator as a,regeneratorRuntime as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as c}from"react/jsx-runtime";import{reqOptions as s,API_HOST_URL as o}from"../lib/helpFunction.js";import i from"@mui/icons-material/SearchRounded";import{useRouter as u}from"next/navigation";import{useState as l,useEffect as h}from"react";var p=function(p){var m=u(),f=p.params.channel,d=p.searchParams.search,v=l(),b=e(v,2),x=b[0],y=b[1],g=l(d),k=e(g,2),N=k[0],w=k[1],j=function(e){var a=m.query,t=r(r({},a),{},{search:e});m.replace({query:t})},C=function(){var e=a(t().mark((function e(r){var a,n,c=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=c.length>1&&void 0!==c[1]&&c[1],(13===r.keyCode||a)&&(n=r.currentTarget.value,j(n));case 2:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),P=function(){var e=a(t().mark((function e(){var r,a,n,c;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return y(0),r=s("GET",null,p.token,!1,f),a="".concat(o).concat(p.urlPath,"search=").concat(d||""),e.prev=3,e.next=6,fetch(a,r);case 6:if(200!==(n=e.sent).status){e.next=14;break}return e.next=10,n.json();case 10:c=e.sent,p.setData(c.results),p.setNext(c.next),p.setPrevious(c.previous);case 14:y(n.status),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(3),console.error("Search error:",e.t0),y(500);case 21:case"end":return e.stop()}}),e,null,[[3,17]])})));return function(){return e.apply(this,arguments)}}();return h((function(){void 0!==d&&(P(),w(d))}),[d]),n("div",{className:"ihub-search-field",children:c("div",{className:"ihub-search-courses",children:[n("input",{type:"search",placeholder:"Search ".concat(p.labels?p.labels:"Items"," ..."),onChange:function(e){w(e.target.value)},value:N||"",onKeyDown:C}),N?n("svg",{className:"ihub-search-cancel",focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24","data-testid":"CloseIcon",onClick:function(){w(""),j("")},children:n("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})}):null,n("div",{className:"ihub-search-btn",children:0===x?n("div",{className:"ihub-loader"}):n(i,{className:"ihub-material-symbols-outlined",onClick:function(){return j(N)}})})]})})};export{p as default};
1
+ import{slicedToArray as e,asyncToGenerator as r,regeneratorRuntime as a}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{reqOptions as c,API_HOST_URL as s}from"../lib/helpFunction.js";import o from"@mui/icons-material/SearchRounded";import{useRouter as i}from"next/navigation";import{useState as l,useEffect as u}from"react";import"../lib/utils.js";import{urlQueryHelper as h}from"../lib/queryParameters/index.js";var m=function(m){var p=i(),v=m.params.channel,d=m.searchParams.search,f=l(),b=e(f,2),x=b[0],y=b[1],k=l(d),g=e(k,2),N=g[0],j=g[1],w=function(e){var r=h({key:"search",value:e,action:"add"});p.replace(r)},C=function(){var e=r(a().mark((function e(r){var t,n,c=arguments;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=c.length>1&&void 0!==c[1]&&c[1],(13===r.keyCode||t)&&(n=r.currentTarget.value,w(n));case 2:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),P=function(){var e=r(a().mark((function e(){var r,t,n,o,i;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return y(0),r=c("GET",null,m.token,!1,v),t="".concat(s).concat(m.urlPath,"search=").concat(d||""),e.prev=3,e.next=6,fetch(t,r);case 6:if(200!==(n=e.sent).status){e.next=14;break}return e.next=10,n.json();case 10:i=e.sent,m.setData(i.results),m.setNext(i.next),null===(o=m.setPrevious)||void 0===o||o.call(m,i.previous);case 14:y(n.status),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(3),console.error("Search error:",e.t0),y(500);case 21:case"end":return e.stop()}}),e,null,[[3,17]])})));return function(){return e.apply(this,arguments)}}();return u((function(){void 0!==d&&(P(),j(d))}),[d]),t("div",{className:"ihub-search-field",children:n("div",{className:"ihub-search-courses",children:[t("input",{type:"search",placeholder:"Search ".concat(m.labels?m.labels:"Items"," ..."),onChange:function(e){j(e.target.value)},value:N||"",onKeyDown:C}),N?t("svg",{className:"ihub-search-cancel",focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24","data-testid":"CloseIcon",onClick:function(){var e=h({key:"search",value:"",action:"remove"});p.replace(e)},children:t("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})}):null,t("div",{className:"ihub-search-btn",children:0===x?t("div",{className:"ihub-loader"}):t(o,{className:"ihub-material-symbols-outlined",onClick:function(){return w(N)}})})]})})};export{m as default};
2
2
  //# sourceMappingURL=SearchFieldDB.js.map
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,asyncToGenerator as n,regeneratorRuntime as r,typeof as i,toConsumableArray as a}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as c,jsxs as t}from"react/jsx-runtime";import{memo as l,useState as o,useEffect as s,useCallback as u}from"react";import{reqOptions as h,API_HOST_URL as m}from"../lib/helpFunction.js";import"../lib/utils.js";import d from"@mui/icons-material/SearchOutlined";import b from"@mui/icons-material/Check";import f from"@mui/icons-material/CloseOutlined";function p(l){var p=l.label,v=l.token,N=l.handle,g=l.setSelected,k=l.appLabel,y=l.modelName,x=l.filterChannel,C=void 0!==x&&x,_=l.limit_query,j=void 0===_?5:_,w=l.limit_select,E=void 0===w?0:w,T=l.key_name,S=void 0===T?"title":T,U=l.placeholder,q=void 0===U?"Search by Username or Email":U,A=l.searchUrl,D=l.selected,G=l.err,H=void 0!==G&&G,O=o(""),P=e(O,2),R=P[0],B=P[1],F=o([]),K=e(F,2),L=K[0],z=K[1],I=o(!1),J=e(I,2),M=J[0],Q=J[1],V=o(null),W=e(V,2),X=W[0],Y=W[1];s((function(){D&&D.length>0&&0===L.length&&z(D)}),[D]);var Z=u(n(r().mark((function e(){var n,i,a,c,t;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q(!0),Y(null),n=h("GET",null,v),i=A?A.includes("/?")?"".concat(A,"&search=").concat(R):"".concat(A,"?search=").concat(R):k?"".concat(m,"channels/").concat(N,"/dynamic-search/?app_label=").concat(k,"&model_name=").concat(y,"&value=").concat(R,"&filter_channel=").concat(C):"".concat(m,"auth/").concat(N,"/search-user/").concat(R,"/?limit=").concat(j),e.prev=4,e.next=7,fetch(i,n);case 7:if((a=e.sent).ok){e.next=10;break}throw new Error("HTTP error ".concat(a.status));case 10:return e.next=12,a.json();case 12:c=e.sent,z(c.results||[]),e.next=22;break;case 16:e.prev=16,e.t0=e.catch(4),t=e.t0 instanceof Error?e.t0.message:"Unknown error occurred",console.error("Error fetching search results:",t),Y(t),z([]);case 22:return e.prev=22,Q(!1),e.finish(22);case 25:case"end":return e.stop()}}),e,null,[[4,16,22,25]])}))),[R,v,A,k,y,N,C,j]),$=u((function(e){"Enter"===e.key&&(e.preventDefault(),Z())}),[Z]),ee=u((function(){B(""),z([]),Y(null)}),[]),ne=u((function(e){return D.some((function(n){return("object"===i(n)?null==n?void 0:n.id:n)===((null==e?void 0:e.username)||(null==e?void 0:e.id))}))}),[D]),re=u((function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=D.find((function(n){return n.id===e.id}));n?g(D.filter((function(n){return n.id!==e.id}))):!r&&(0===E||D.length<E)?g([].concat(a(D),[e])):1===E&&g([e])}),[D,g,E]);return c("div",{className:"ihub-react-search-container",children:t("div",{className:"ihub-react-search card",children:[p&&c("h4",{className:"ihub-fs-sm ihub-mt-2 ihub-mb-2",children:p}),t("div",{className:"ihub-search-input",children:[c("input",{type:"text",placeholder:q,onKeyDown:$,value:R,onChange:function(e){return B(e.target.value)},disabled:M}),t("div",{className:"ihub-search-icons",children:[R&&c(f,{onClick:ee,className:"ihub-search-icon ihub-close-icon"}),c(d,{onClick:Z,className:"ihub-search-icon ihub-search-button ".concat(M?"ihub-disabled":"")})]})]}),M&&c("div",{className:"ihub-loading",children:"Searching..."}),X&&c("div",{className:"ihub-search-error",children:X}),t("ul",{className:"ihub-search-results",children:[null==L?void 0:L.map((function(e,n){return t("li",{className:"ihub-search-result-item ihub-valid",onClick:function(){return re(e)},children:[ne(e)&&c(b,{className:"ihub-check-icon",style:{position:"relative",top:"5px",marginRight:"10px"}}),e[S]||e.title,ne(e)?c(f,{className:"ihub-delete-icon ihub-ml-auto",onClick:function(){return re(e,!0)}}):""]},"".concat(e.id||e.username||n))})),M||X||L.length||D.length?"":c("li",{className:"ihub-no-results",children:"No available options"})]}),H&&c("p",{className:"ihub-error",children:"This field is required"})]})})}var v=l(p);export{v as default};
1
+ import{slicedToArray as e,asyncToGenerator as i,regeneratorRuntime as n,toConsumableArray as r,typeof as c}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{memo as l,useState as o,useEffect as s,useCallback as u}from"react";import{reqOptions as h,API_HOST_URL as d}from"../lib/helpFunction.js";import"../lib/utils.js";import m from"@mui/icons-material/SearchOutlined";import b from"@mui/icons-material/Check";import f from"@mui/icons-material/CloseOutlined";function p(l){var p=l.label,v=l.token,N=l.handle,g=l.setSelected,k=l.appLabel,y=l.modelName,x=l.filterChannel,C=void 0!==x&&x,_=l.limit_query,j=void 0===_?5:_,w=l.limit_select,E=void 0===w?0:w,T=l.options,S=l.key_name,O=void 0===S?"title":S,U=l.placeholder,q=void 0===U?"Search by Username or Email":U,A=l.searchUrl,D=l.selected,G=l.err,H=void 0!==G&&G,P=o(""),R=e(P,2),B=R[0],F=R[1],K=o([]),L=e(K,2),z=L[0],I=L[1],J=o(!1),M=e(J,2),Q=M[0],V=M[1],W=o(null),X=e(W,2),Y=X[0],Z=X[1];s((function(){D&&D.length>0&&0===z.length&&I(D)}),[D]),s((function(){I(T||[])}),[T]);var $=u(i(n().mark((function e(){var i,c,t,a,l;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return V(!0),Z(null),i=h("GET",null,v),c=A?A.includes("/?")?"".concat(A,"&search=").concat(B):"".concat(A,"?search=").concat(B):k?"".concat(d,"channels/").concat(N,"/dynamic-search/?app_label=").concat(k,"&model_name=").concat(y,"&value=").concat(B,"&filter_channel=").concat(C):"".concat(d,"auth/").concat(N,"/search-user/").concat(B,"/?limit=").concat(j),e.prev=4,e.next=7,fetch(c,i);case 7:if((t=e.sent).ok){e.next=10;break}throw new Error("HTTP error ".concat(t.status));case 10:return e.next=12,t.json();case 12:a=e.sent,I([].concat(r(a.results||[]),r(T||[]))),e.next=22;break;case 16:e.prev=16,e.t0=e.catch(4),l=e.t0 instanceof Error?e.t0.message:"Unknown error occurred",console.error("Error fetching search results:",l),Z(l),I(r(T||[]));case 22:return e.prev=22,V(!1),e.finish(22);case 25:case"end":return e.stop()}}),e,null,[[4,16,22,25]])}))),[B,v,A,k,y,N,C,j]),ee=u((function(e){"Enter"===e.key&&(e.preventDefault(),$())}),[$]),ie=u((function(){F(""),I(r(T||[])),Z(null)}),[]),ne=u((function(e){return D.some((function(i){return("object"===c(i)?null==i?void 0:i.id:i)===((null==e?void 0:e.username)||(null==e?void 0:e.id))}))}),[D]),re=u((function(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e&&e.id){var n=D.find((function(i){return i.id===e.id}));i?g(D.filter((function(i){return i.id!==e.id}))):!n&&(0===E||D.length<E)?g([].concat(r(D),[e])):1===E&&g([e])}}),[D,g,E]);return t("div",{className:"ihub-react-search-container",children:a("div",{className:"ihub-react-search card",children:[p&&t("h4",{className:"ihub-fs-sm ihub-mt-2 ihub-mb-2",children:p}),a("div",{className:"ihub-search-input",children:[t("input",{type:"text",placeholder:q,onKeyDown:ee,value:B,onChange:function(e){return F(e.target.value)},disabled:Q}),a("div",{className:"ihub-search-icons",children:[B&&t(f,{onClick:ie,className:"ihub-search-icon ihub-close-icon"}),t(m,{onClick:$,className:"ihub-search-icon ihub-search-button ".concat(Q?"ihub-disabled":"")})]})]}),Q&&t("div",{className:"ihub-loading",children:"Searching..."}),Y&&t("div",{className:"ihub-search-error",children:Y}),a("ul",{className:"ihub-search-results",children:[null==z?void 0:z.map((function(e,i){return a("li",{className:"ihub-search-result-item ihub-valid",onClick:function(){return e&&re(e)},children:[ne(e)&&t(b,{className:"ihub-check-icon",style:{position:"relative",top:"5px",marginRight:"10px"}}),(null==e?void 0:e[O])||(null==e?void 0:e.title)||"",ne(e)?t(f,{className:"ihub-delete-icon ihub-ml-auto",onClick:function(){return e&&re(e,!0)}}):""]},"".concat((null==e?void 0:e.id)||(null==e?void 0:e.username)||i))})),Q||Y||z.length||D.length?"":t("li",{className:"ihub-no-results",children:"No available options"})]}),a("ul",{className:"ihub-selected-options ihub-mt-2 ihub-",children:[t("h4",{className:"ihub-fs-sm ihub-mt-2 ihub-mb-2",children:"Selected Options:"}),D.map((function(e){return a("li",{className:"ihub-fs-sm ihub-border-bottom ihub-pb-2 ihub-flex ihub-items-center",children:[e[O]||e.title,t(f,{className:"ihub-delete-icon ihub-ml-auto",onClick:function(){return re(e,!0)}})]},null==e?void 0:e.id)}))]}),H&&t("p",{className:"ihub-error",children:"This field is required"})]})})}var v=l(p);export{v as default};
2
2
  //# sourceMappingURL=SearchObjectsFromDB.js.map
@@ -1,2 +1,2 @@
1
- export{getChannel,getData}from"./auth/dbRequestst.js";export{INSTRUCTOR_TYPE,ROLE_GROUPING,adminAccessValidation}from"./roles.js";export{AllCoursesdataList,COMMENTS_BY,DataList,accounts,dataList,pending,projectStartHistory,statesNigeria}from"./json/accounts.js";export{unsplashDefaultObject}from"./json/unsplashDefaultObject.js";export{default as createSubscription}from"./createSubscription.js";export{default as elementIsVisibleInViewport}from"./elementIsVisibleInViewport.js";export{default as handleFormErrors}from"./formError.js";export{default as fileToBase64}from"./fileToBase64.js";export{default as getPriceObjects}from"./getPriceObjects.js";export{default as convertArrayToObject}from"./convertArrayToObject.js";export{formatTime}from"./format.js";export{API_HOST_URL,CODECS_URL_M3U8,FILE_URL,IN_DEV_MODE,TrackViewPort,VIDEO_URL,addUserDomain,calculateAmountAfterDeduction,calculateAverageRating,calculateTotalCredits,convertArrayToFormData,convertToFloat,convertToSlug,extractSubDomain,fetchAPI,fetchData,findNullOrEmptyKeys,formatDateToWord,formatDuration,formatNumberWithCommas,getCookie,getNestedValue,handleError,handleInvalid,handleResendOTP,handleStatusError,hostUrlEncode,isValidAlphanumeric,isValidEmail,objectIsEmpty,printErr,removeCookie,reqOptions,romansFigure,setCookie,slugifyFileName,spinBtn,stripCommaFromNumber,stripHtmlTags,toTitleCase,truncateHtml}from"./helpFunction.js";export{paystackHook,profile_goggle_provider}from"./oauth_json.js";export{chargeAuthorization,handlePaymentSubmit,payWithPaystack,paystackDataConfig}from"./paystack.js";export{findPermissions,headerKeyPermission,headerUsernamePermission}from"./permissions.js";export{ADMIN_PERMISSION,APPLICATION_FEE_TYPE_OPTIONS,CODE_LANGUAGES,COMPANY_SIZES_CHOICES,CONTENT_TYPE_OPTIONS,COURSE_REWARD_OPTIONS,CREDENTIALS,CURRENCY_SYMBOL,DURATION_FILTERS,INDUSTRIES,KEYWORD_DESCRIPTION,NEXT_AUTH_SESSION_DATA_DUMMY,NIGERIA_BANKS,PAYMENT_PROCESSING_OPTIONS,PRIVACY,PROGRAM_LEVELS,REGISTRAR_PERMISSION,SCOREBOARD_DURATION,SKILLS_LEVELS,STUDENT_STATUS,SUBSCRIPTION_OPTION,SUPER_PERMISSION,TRUE_FALSE,VIDEO_PLAYER_OPTIONS,YES_NO,gaugeData}from"./utils.js";export{calculatePercentageChange,createTimeSeriesTemplate,formatChartValue,formatDateForChart,generateChartColors,groupAndAggregateData,transformChartData}from"./charts.js";export{getUserEmailInputModal,openConfirmModal,openToast}from"./modals/modals.js";export{openConfirmDelete}from"./modals/openConfirmDelete.js";var e="/assets/logo/instincthub-logo-color.png",t="/assets/logo/instincthub-logo-white.png",o="/assets/logo/instincthub-logo-black.png",a="/assets/logo/instincthub-logo-thumbnail.png";export{e as instinctHubLogoUrl,o as instinctHubLogoUrlBlack,t as instinctHubLogoUrlWhite,a as instinctHubThumbnailLogo};
1
+ export{getChannel,getData}from"./auth/dbRequestst.js";export{INSTRUCTOR_TYPE,ROLE_GROUPING,adminAccessValidation}from"./roles.js";export{AllCoursesdataList,COMMENTS_BY,DataList,accounts,dataList,pending,projectStartHistory,statesNigeria}from"./json/accounts.js";export{unsplashDefaultObject}from"./json/unsplashDefaultObject.js";export{default as createSubscription}from"./createSubscription.js";export{default as elementIsVisibleInViewport}from"./elementIsVisibleInViewport.js";export{default as handleFormErrors}from"./formError.js";export{default as fileToBase64}from"./fileToBase64.js";export{default as getPriceObjects}from"./getPriceObjects.js";export{default as convertArrayToObject}from"./convertArrayToObject.js";export{formatTime}from"./format.js";export{API_HOST_URL,CODECS_URL_M3U8,FILE_URL,IN_DEV_MODE,TrackViewPort,VIDEO_URL,addUserDomain,calculateAmountAfterDeduction,calculateAverageRating,calculateTotalCredits,convertArrayToFormData,convertToFloat,convertToSlug,extractSubDomain,fetchAPI,fetchData,findNullOrEmptyKeys,formatDateToWord,formatDuration,formatNumberWithCommas,getCookie,getNestedValue,handleError,handleInvalid,handleResendOTP,handleStatusError,hostUrlEncode,isValidAlphanumeric,isValidEmail,objectIsEmpty,printErr,removeCookie,reqOptions,romansFigure,setCookie,slugifyFileName,spinBtn,stripCommaFromNumber,stripHtmlTags,toTitleCase,truncateHtml}from"./helpFunction.js";export{paystackHook,profile_goggle_provider}from"./oauth_json.js";export{chargeAuthorization,handlePaymentSubmit,payWithPaystack,paystackDataConfig}from"./paystack.js";export{findPermissions,headerKeyPermission,headerUsernamePermission}from"./permissions.js";export{ADMIN_PERMISSION,APPLICATION_FEE_TYPE_OPTIONS,CODE_LANGUAGES,COMPANY_SIZES_CHOICES,CONTENT_TYPE_OPTIONS,COURSE_REWARD_OPTIONS,CREDENTIALS,CURRENCY_SYMBOL,DURATION_FILTERS,INDUSTRIES,KEYWORD_DESCRIPTION,NEXT_AUTH_SESSION_DATA_DUMMY,NIGERIA_BANKS,PAYMENT_PROCESSING_OPTIONS,PRIVACY,PROGRAM_LEVELS,REGISTRAR_PERMISSION,SCOREBOARD_DURATION,SKILLS_LEVELS,STUDENT_STATUS,SUBSCRIPTION_OPTION,SUPER_PERMISSION,TRUE_FALSE,VIDEO_PLAYER_OPTIONS,YES_NO,gaugeData}from"./utils.js";export{buildDataFilterUrl,buildPaginationUrl,buildUrl,cleanUrl,getQueryParam,getQueryParams,hasQueryParam,navigateWithQuery,urlQueryHelper}from"./queryParameters/index.js";export{calculatePercentageChange,createTimeSeriesTemplate,formatChartValue,formatDateForChart,generateChartColors,groupAndAggregateData,transformChartData}from"./charts.js";export{getUserEmailInputModal,openConfirmModal,openToast}from"./modals/modals.js";export{openConfirmDelete}from"./modals/openConfirmDelete.js";var e="/assets/logo/instincthub-logo-color.png",t="/assets/logo/instincthub-logo-white.png",r="/assets/logo/instincthub-logo-black.png",a="/assets/logo/instincthub-logo-thumbnail.png";export{e as instinctHubLogoUrl,r as instinctHubLogoUrlBlack,t as instinctHubLogoUrlWhite,a as instinctHubThumbnailLogo};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/lib/index.ts"],"sourcesContent":["// src/components/lib/index.ts\r\n\r\nexport * from \"./auth/dbRequestst\";\r\nexport * from \"./roles\";\r\n\r\n// JSON exports\r\nexport * from \"./json/accounts\";\r\nexport * from \"./json/countryNigeria\";\r\nexport * from \"./json/countryObjects\";\r\nexport * from \"./json/educationLevels\";\r\nexport * from \"./json/unsplashDefaultObject\";\r\n\r\n// Utility functions\r\nexport { default as createSubscription } from \"./createSubscription\";\r\nexport { default as elementIsVisibleInViewport } from \"./elementIsVisibleInViewport\";\r\nexport { default as handleFormErrors } from \"./formError\";\r\nexport { default as fileToBase64 } from \"./fileToBase64\";\r\nexport { default as getPriceObjects } from \"./getPriceObjects\";\r\nexport {default as convertArrayToObject} from \"./convertArrayToObject\";\r\nexport * from \"./format\";\r\nexport * from \"./helpFunction\";\r\nexport * from \"./loadScript\";\r\nexport * from \"./oauth_json\";\r\nexport * from \"./paystack\";\r\nexport * from \"./permissions\";\r\nexport * from \"./utils\";\r\n\r\n// Charts\r\nexport * from \"./charts\";\r\n\r\n// Modals\r\nexport * from \"./modals/modals\";\r\nexport * from \"./modals/openConfirmDelete\";\r\n\r\n// Logo\r\nexport const instinctHubLogoUrl = \"/assets/logo/instincthub-logo-color.png\";\r\nexport const instinctHubLogoUrlWhite =\r\n \"/assets/logo/instincthub-logo-white.png\";\r\nexport const instinctHubLogoUrlBlack =\r\n \"/assets/logo/instincthub-logo-black.png\";\r\nexport const instinctHubThumbnailLogo =\r\n \"/assets/logo/instincthub-logo-thumbnail.png\";\r\n"],"names":["instinctHubLogoUrl","instinctHubLogoUrlWhite","instinctHubLogoUrlBlack","instinctHubThumbnailLogo"],"mappings":"m5EAmCO,IAAMA,EAAqB,0CACrBC,EACX,0CACWC,EACX,0CACWC,EACX"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/lib/index.ts"],"sourcesContent":["// src/components/lib/index.ts\r\n\r\nexport * from \"./auth/dbRequestst\";\r\nexport * from \"./roles\";\r\n\r\n// JSON exports\r\nexport * from \"./json/accounts\";\r\nexport * from \"./json/countryNigeria\";\r\nexport * from \"./json/countryObjects\";\r\nexport * from \"./json/educationLevels\";\r\nexport * from \"./json/unsplashDefaultObject\";\r\n\r\n// Utility functions\r\nexport { default as createSubscription } from \"./createSubscription\";\r\nexport { default as elementIsVisibleInViewport } from \"./elementIsVisibleInViewport\";\r\nexport { default as handleFormErrors } from \"./formError\";\r\nexport { default as fileToBase64 } from \"./fileToBase64\";\r\nexport { default as getPriceObjects } from \"./getPriceObjects\";\r\nexport {default as convertArrayToObject} from \"./convertArrayToObject\";\r\nexport * from \"./format\";\r\nexport * from \"./helpFunction\";\r\nexport * from \"./loadScript\";\r\nexport * from \"./oauth_json\";\r\nexport * from \"./paystack\";\r\nexport * from \"./permissions\";\r\nexport * from \"./utils\";\r\nexport * from \"./queryParameters\";\r\n\r\n// Charts\r\nexport * from \"./charts\";\r\n\r\n// Modals\r\nexport * from \"./modals/modals\";\r\nexport * from \"./modals/openConfirmDelete\";\r\n\r\n// Logo\r\nexport const instinctHubLogoUrl = \"/assets/logo/instincthub-logo-color.png\";\r\nexport const instinctHubLogoUrlWhite =\r\n \"/assets/logo/instincthub-logo-white.png\";\r\nexport const instinctHubLogoUrlBlack =\r\n \"/assets/logo/instincthub-logo-black.png\";\r\nexport const instinctHubThumbnailLogo =\r\n \"/assets/logo/instincthub-logo-thumbnail.png\";\r\n"],"names":["instinctHubLogoUrl","instinctHubLogoUrlWhite","instinctHubLogoUrlBlack","instinctHubThumbnailLogo"],"mappings":"+jFAoCO,IAAMA,EAAqB,0CACrBC,EACX,0CACWC,EACX,0CACWC,EACX"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";function e(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.baseUrl,t=void 0===n?"undefined"!=typeof window?window.location.href:"":n,o=e.preserveHash,a=void 0===o||o;e.encode;try{var i=new URL(t),c=new URLSearchParams(i.search),u=r.key,s=r.value,l=r.action;switch(l){case"add":null!=s&&c.append(u,String(s));break;case"update":null!=s&&c.set(u,String(s));break;case"remove":c.delete(u);break;case"toggle":c.has(u)?c.delete(u):null!=s&&c.set(u,String(s));break;case"clear":c.forEach((function(r,e){c.delete(e)}));break;default:throw new Error("Unsupported action: ".concat(l))}return i.search=c.toString(),a||(i.hash=""),i.toString()}catch(r){return console.error("URL manipulation error:",r),t}}function n(r){try{var e=r||("undefined"!=typeof window?window.location.href:""),n=new URL(e),t={};return n.searchParams.forEach((function(r,e){t[e]?Array.isArray(t[e])?t[e].push(r):t[e]=[t[e],r]:t[e]=r})),t}catch(r){return console.error("Error parsing query parameters:",r),{}}}function t(r,e){try{var n=e||("undefined"!=typeof window?window.location.href:"");return new URL(n).searchParams.get(r)}catch(r){return console.error("Error getting query parameter:",r),null}}function o(r,e){try{var n=e||("undefined"!=typeof window?window.location.href:"");return new URL(n).searchParams.has(r)}catch(r){return console.error("Error checking query parameter:",r),!1}}function a(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{t.encode;var o=new URL(e,"undefined"!=typeof window?window.location.origin:"http://localhost");return Object.entries(n).forEach((function(e){var n=r(e,2),t=n[0],a=n[1];null!=a&&(Array.isArray(a)?a.forEach((function(r){return o.searchParams.append(t,String(r))})):o.searchParams.set(t,String(a)))})),o.toString()}catch(r){return console.error("Error building URL:",r),e}}function i(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"!=typeof window){var t=n.replace,o=void 0!==t&&t,a=e(r,n);o?window.history.replaceState({},"",a):window.history.pushState({},"",a)}else console.warn("navigateWithQuery can only be used in browser environment")}function c(e){var n={};return Object.entries(e).forEach((function(e){var t=r(e,2),o=t[0],a=t[1];null!=a&&""!==a&&(n[o]=String(a))})),a(window.location.pathname,n)}function u(r){return!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?e({key:"page",value:r,action:"update"}):a(window.location.pathname,{page:r.toString()})}function s(r){try{var e=r||("undefined"!=typeof window?window.location.href:""),n=new URL(e),t=new URLSearchParams;return n.searchParams.forEach((function(r,e){r&&""!==r.trim()&&t.set(e,r)})),n.search=t.toString(),n.toString()}catch(e){return console.error("Error cleaning URL:",e),r||""}}export{c as buildDataFilterUrl,u as buildPaginationUrl,a as buildUrl,s as cleanUrl,t as getQueryParam,n as getQueryParams,o as hasQueryParam,i as navigateWithQuery,e as urlQueryHelper};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/lib/queryParameters/index.ts"],"sourcesContent":["/**\r\n * URL Query Parameter Helper for InstinctHub React UI\r\n * Handles adding, updating, removing, and manipulating URL query parameters\r\n */\r\n\r\nimport { QueryContextType } from \"@/types\";\r\n\r\n// Type definitions\r\n\r\ninterface QueryParams {\r\n [key: string]: string | string[] | undefined;\r\n}\r\n\r\ninterface UrlHelperOptions {\r\n baseUrl?: string;\r\n preserveHash?: boolean;\r\n encode?: boolean;\r\n}\r\n\r\n/**\r\n * Main URL query parameter helper function\r\n * @example\r\n * ```tsx\r\n * urlQueryHelper({ key: \"page\", value: 1, action: \"add\" });\r\n * ```\r\n * @param context - Object containing key, value, and action\r\n * @param options - Additional configuration options\r\n * @returns Updated URL string\r\n */\r\nexport function urlQueryHelper(\r\n context: QueryContextType,\r\n options: UrlHelperOptions = {}\r\n): string {\r\n const {\r\n baseUrl = typeof window !== \"undefined\" ? window.location.href : \"\",\r\n preserveHash = true,\r\n encode = true,\r\n } = options;\r\n\r\n try {\r\n const url = new URL(baseUrl);\r\n const params = new URLSearchParams(url.search);\r\n const { key, value, action } = context;\r\n\r\n // Perform the requested action\r\n switch (action) {\r\n case \"add\":\r\n if (value !== undefined && value !== null) {\r\n if (encode) {\r\n params.append(key, String(value));\r\n } else {\r\n params.append(key, String(value));\r\n }\r\n }\r\n break;\r\n\r\n case \"update\":\r\n if (value !== undefined && value !== null) {\r\n params.set(key, String(value));\r\n }\r\n break;\r\n\r\n case \"remove\":\r\n params.delete(key);\r\n break;\r\n\r\n case \"toggle\":\r\n if (params.has(key)) {\r\n params.delete(key);\r\n } else if (value !== undefined && value !== null) {\r\n params.set(key, String(value));\r\n }\r\n break;\r\n\r\n case \"clear\":\r\n // Clear all parameters\r\n params.forEach((_, paramKey) => {\r\n params.delete(paramKey);\r\n });\r\n break;\r\n\r\n default:\r\n throw new Error(`Unsupported action: ${action}`);\r\n }\r\n\r\n // Rebuild URL\r\n url.search = params.toString();\r\n\r\n // Handle hash preservation\r\n if (!preserveHash) {\r\n url.hash = \"\";\r\n }\r\n\r\n return url.toString();\r\n } catch (error) {\r\n console.error(\"URL manipulation error:\", error);\r\n return baseUrl;\r\n }\r\n}\r\n\r\n/**\r\n * Get all query parameters as an object\r\n * @param url - URL string to parse (defaults to current URL)\r\n * @returns Object with query parameters\r\n */\r\nexport function getQueryParams(url?: string): QueryParams {\r\n try {\r\n const targetUrl =\r\n url || (typeof window !== \"undefined\" ? window.location.href : \"\");\r\n const urlObj = new URL(targetUrl);\r\n const params: QueryParams = {};\r\n\r\n urlObj.searchParams.forEach((value, key) => {\r\n if (params[key]) {\r\n // Handle multiple values for same key\r\n if (Array.isArray(params[key])) {\r\n (params[key] as string[]).push(value);\r\n } else {\r\n params[key] = [params[key] as string, value];\r\n }\r\n } else {\r\n params[key] = value;\r\n }\r\n });\r\n\r\n return params;\r\n } catch (error) {\r\n console.error(\"Error parsing query parameters:\", error);\r\n return {};\r\n }\r\n}\r\n\r\n/**\r\n * Get specific query parameter value\r\n * @param key - Parameter key to retrieve\r\n * @param url - URL string to parse (defaults to current URL)\r\n * @returns Parameter value or null if not found\r\n */\r\nexport function getQueryParam(key: string, url?: string): string | null {\r\n try {\r\n const targetUrl =\r\n url || (typeof window !== \"undefined\" ? window.location.href : \"\");\r\n const urlObj = new URL(targetUrl);\r\n return urlObj.searchParams.get(key);\r\n } catch (error) {\r\n console.error(\"Error getting query parameter:\", error);\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Check if a query parameter exists\r\n * @param key - Parameter key to check\r\n * @param url - URL string to parse (defaults to current URL)\r\n * @returns Boolean indicating if parameter exists\r\n */\r\nexport function hasQueryParam(key: string, url?: string): boolean {\r\n try {\r\n const targetUrl =\r\n url || (typeof window !== \"undefined\" ? window.location.href : \"\");\r\n const urlObj = new URL(targetUrl);\r\n return urlObj.searchParams.has(key);\r\n } catch (error) {\r\n console.error(\"Error checking query parameter:\", error);\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Build URL from base path and parameters object\r\n * @param basePath - Base URL or path\r\n * @param params - Object of parameters to add\r\n * @param options - Additional configuration\r\n * @returns Complete URL string\r\n */\r\nexport function buildUrl(\r\n basePath: string,\r\n params: QueryParams,\r\n options: UrlHelperOptions = {}\r\n): string {\r\n try {\r\n const { encode = true } = options;\r\n const url = new URL(\r\n basePath,\r\n typeof window !== \"undefined\"\r\n ? window.location.origin\r\n : \"http://localhost\"\r\n );\r\n\r\n Object.entries(params).forEach(([key, value]) => {\r\n if (value !== undefined && value !== null) {\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => url.searchParams.append(key, String(v)));\r\n } else {\r\n url.searchParams.set(key, String(value));\r\n }\r\n }\r\n });\r\n\r\n return url.toString();\r\n } catch (error) {\r\n console.error(\"Error building URL:\", error);\r\n return basePath;\r\n }\r\n}\r\n\r\n/**\r\n * Navigate to URL with updated query parameters (client-side only)\r\n * @example\r\n * ```tsx\r\n * navigateWithQuery({ key: \"page\", value: 1, action: \"add\" });\r\n * ```\r\n * @param context - Query context for manipulation\r\n * @param options - Navigation options\r\n */\r\nexport function navigateWithQuery(\r\n context: QueryContextType,\r\n options: UrlHelperOptions & { replace?: boolean } = {}\r\n): void {\r\n if (typeof window === \"undefined\") {\r\n console.warn(\"navigateWithQuery can only be used in browser environment\");\r\n return;\r\n }\r\n\r\n const { replace = false } = options;\r\n const newUrl = urlQueryHelper(context, options);\r\n\r\n if (replace) {\r\n window.history.replaceState({}, \"\", newUrl);\r\n } else {\r\n window.history.pushState({}, \"\", newUrl);\r\n }\r\n}\r\n\r\n/**\r\n * InstinctHub-specific helper for course filtering\r\n * @example\r\n * ```tsx\r\n * buildDataFilterUrl({ subject: \"Math\", level: \"100\", instructor: \"John Doe\" });\r\n * ```\r\n * @param filters - Course filter parameters\r\n * @returns URL with course filters applied\r\n */\r\nexport function buildDataFilterUrl(filters: {\r\n subject?: string;\r\n level?: string;\r\n instructor?: string;\r\n search?: string;\r\n page?: number;\r\n sort?: string;\r\n}): string {\r\n const params: QueryParams = {};\r\n\r\n Object.entries(filters).forEach(([key, value]) => {\r\n if (value !== undefined && value !== null && value !== \"\") {\r\n params[key] = String(value);\r\n }\r\n });\r\n\r\n return buildUrl(window.location.pathname, params);\r\n}\r\n\r\n/**\r\n * InstinctHub-specific helper for pagination\r\n * @example\r\n * ```tsx\r\n * buildPaginationUrl(1);\r\n * ```\r\n * @param page - Page number\r\n * @param preserveFilters - Whether to keep existing filters\r\n * @returns URL with pagination applied\r\n */\r\nexport function buildPaginationUrl(\r\n page: number,\r\n preserveFilters = true\r\n): string {\r\n if (preserveFilters) {\r\n return urlQueryHelper({ key: \"page\", value: page, action: \"update\" });\r\n } else {\r\n return buildUrl(window.location.pathname, { page: page.toString() });\r\n }\r\n}\r\n\r\n/**\r\n * Clean URL by removing empty or null parameters\r\n * @example\r\n * ```tsx\r\n * cleanUrl();\r\n * ```\r\n * @param url - URL to clean (defaults to current URL)\r\n * @returns Cleaned URL string\r\n */\r\nexport function cleanUrl(url?: string): string {\r\n try {\r\n const targetUrl =\r\n url || (typeof window !== \"undefined\" ? window.location.href : \"\");\r\n const urlObj = new URL(targetUrl);\r\n const params = new URLSearchParams();\r\n\r\n urlObj.searchParams.forEach((value, key) => {\r\n if (value && value.trim() !== \"\") {\r\n params.set(key, value);\r\n }\r\n });\r\n\r\n urlObj.search = params.toString();\r\n return urlObj.toString();\r\n } catch (error) {\r\n console.error(\"Error cleaning URL:\", error);\r\n return url || \"\";\r\n }\r\n}\r\n"],"names":["urlQueryHelper","context","options","_options$baseUrl","baseUrl","window","location","href","_options$preserveHash","preserveHash","encode","url","URL","params","URLSearchParams","search","key","value","action","append","String","set","has","forEach","_","paramKey","Error","concat","toString","hash","error","console","getQueryParams","targetUrl","urlObj","searchParams","Array","isArray","push","getQueryParam","get","hasQueryParam","buildUrl","basePath","origin","Object","entries","_ref","_ref2","_slicedToArray","v","navigateWithQuery","_options$replace","replace","newUrl","history","replaceState","pushState","warn","buildDataFilterUrl","filters","_ref3","_ref4","pathname","buildPaginationUrl","page","arguments","length","undefined","cleanUrl","trim"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as r,jsx as i}from"react/jsx-runtime";import{useState as t}from"react";import{API_HOST_URL as a}from"../../lib/helpFunction.js";import"../../lib/utils.js";import n from"./Pagination.js";var l=function(){var l=t({count:150,next:"http://127.0.0.1:8000/api/v1/posts/?limit=20&offset=20",previous:null,results:[]}),o=e(l,2),s=o[0],d=o[1],c=t(""),p=e(c,2),u=p[0],h=p[1],m=t(""),v=e(m,2),g=v[0],f=v[1],b=t("0"),y=e(b,2),x=y[0],C=y[1];return r("div",{style:{padding:"2rem",fontFamily:"var(--Nunito, sans-serif)"},children:[i("h2",{style:{marginBottom:"2rem",color:"var(--DarkCyan)"},children:"Enhanced Pagination with API Integration"}),r("div",{style:{marginBottom:"2rem",display:"flex",gap:"1rem",flexWrap:"wrap"},children:[r("div",{children:[i("label",{children:"Search: "}),i("input",{type:"text",value:u,onChange:function(e){return r=e.target.value,h(r),void C("0");var r},placeholder:"Search posts...",style:{padding:"0.5rem",border:"1px solid #ccc",borderRadius:"4px"}})]}),r("div",{children:[i("label",{children:"Category: "}),r("select",{value:g,onChange:function(e){return r=e.target.value,f(r),void C("0");var r},style:{padding:"0.5rem",border:"1px solid #ccc",borderRadius:"4px"},children:[i("option",{value:"",children:"All Categories"}),i("option",{value:"tech",children:"Technology"}),i("option",{value:"design",children:"Design"}),i("option",{value:"business",children:"Business"})]})]})]}),r("div",{style:{marginBottom:"2rem",padding:"1rem",backgroundColor:"#f8f9fa",borderRadius:"8px"},children:[i("h3",{children:"Current State:"}),r("p",{children:["Offset: ",x]}),r("p",{children:['Search: "',u,'"']}),r("p",{children:['Tab: "',g,'"']}),r("p",{children:["Total items: ",s.count]})]}),i(n,{offset:x,data:s,limit:20,urlPath:a+"posts/",setData:d,token:"mock-token",searchValues:u,tabsValues:g,rangeLimit:5,showFirstLast:!0})]})};export{l as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as r,jsx as i}from"react/jsx-runtime";import{useState as t}from"react";import a from"./Pagination.js";import{API_HOST_URL as n}from"../../lib/helpFunction.js";import"../../lib/utils.js";var l=function(){var l=t({count:150,next:"http://127.0.0.1:8000/api/v1/posts/?limit=20&offset=20",previous:null,results:[]}),o=e(l,2),s=o[0],d=o[1],c=t(""),p=e(c,2),u=p[0],h=p[1],m=t(""),v=e(m,2),g=v[0],f=v[1],b=t("0"),y=e(b,2),x=y[0],C=y[1];return r("div",{style:{padding:"2rem",fontFamily:"var(--Nunito, sans-serif)"},children:[i("h2",{style:{marginBottom:"2rem",color:"var(--DarkCyan)"},children:"Enhanced Pagination with API Integration"}),r("div",{style:{marginBottom:"2rem",display:"flex",gap:"1rem",flexWrap:"wrap"},children:[r("div",{children:[i("label",{children:"Search: "}),i("input",{type:"text",value:u,onChange:function(e){return r=e.target.value,h(r),void C("0");var r},placeholder:"Search posts...",style:{padding:"0.5rem",border:"1px solid #ccc",borderRadius:"4px"}})]}),r("div",{children:[i("label",{children:"Category: "}),r("select",{value:g,onChange:function(e){return r=e.target.value,f(r),void C("0");var r},style:{padding:"0.5rem",border:"1px solid #ccc",borderRadius:"4px"},children:[i("option",{value:"",children:"All Categories"}),i("option",{value:"tech",children:"Technology"}),i("option",{value:"design",children:"Design"}),i("option",{value:"business",children:"Business"})]})]})]}),r("div",{style:{marginBottom:"2rem",padding:"1rem",backgroundColor:"#f8f9fa",borderRadius:"8px"},children:[i("h3",{children:"Current State:"}),r("p",{children:["Offset: ",x]}),r("p",{children:['Search: "',u,'"']}),r("p",{children:['Tab: "',g,'"']}),r("p",{children:["Total items: ",s.count]})]}),i(a,{offset:x,data:s,limit:20,urlPath:n+"posts/",setData:d,token:"mock-token",searchValues:u,tabsValues:g,rangeLimit:5,showFirstLast:!0})]})};export{l as default};
2
2
  //# sourceMappingURL=PaginationDemo.js.map
@@ -7,7 +7,7 @@ interface SearchFieldDBProps {
7
7
  /** Function to set next page URL */
8
8
  setNext: React.Dispatch<React.SetStateAction<string | null>>;
9
9
  /** Function to set previous page URL */
10
- setPrevious: React.Dispatch<React.SetStateAction<string | null>>;
10
+ setPrevious?: React.Dispatch<React.SetStateAction<string | null>>;
11
11
  /** Auth token for API requests */
12
12
  token?: string | null;
13
13
  /** Search parameters from URL */
@@ -5,7 +5,7 @@ interface SearchObjectsFromDBProps<T extends SearchObjectItemType = SearchObject
5
5
  token: string;
6
6
  handle: string;
7
7
  setSelected: React.Dispatch<React.SetStateAction<T[]>>;
8
- value?: T[];
8
+ options?: T[];
9
9
  appLabel?: string;
10
10
  modelName?: string;
11
11
  filterChannel?: boolean;
@@ -33,18 +33,18 @@ interface SearchObjectsFromDBProps<T extends SearchObjectItemType = SearchObject
33
33
  * @param {string} props.token - The token for the API request
34
34
  * @param {string} props.handle - The handle for the API request
35
35
  * @param {Function} props.setSelected - The function to set the handle object
36
- * @param {T[]} props.value - The prevent defaults for the API request
37
36
  * @param {string} props.appLabel - The app label for the API request
38
37
  * @param {string} props.modelName - The model name for the API request
39
38
  * @param {boolean} props.filterChannel - The filter channel for the API request
40
- * @param {number} props.limit_query - The limit for the API request
39
+ * @param {number} props.limit_query - 0 means unlimited, 1 means only one result
41
40
  * @param {number} props.limit_select - The limit user can select (0 means unlimited)
41
+ * @param {T[]} props.options - The options for the API request
42
42
  * @param {keyof T | "name_plus_username"} props.key_name - The key_name to display search results (option[key_name])
43
43
  * @param {string} props.placeholder - The placeholder for the API request
44
44
  * @param {string} props.searchUrl - The search url for the API request
45
45
  * @param {T[]} props.selected - The selected for the API request
46
46
  * @param {boolean} props.err - The error for the API request
47
47
  */
48
- declare function SearchObjectsFromDB<T extends SearchObjectItemType = SearchObjectItemType>({ label, token, handle, setSelected, appLabel, modelName, filterChannel, limit_query, limit_select, key_name, placeholder, searchUrl, selected, err, }: SearchObjectsFromDBProps<T>): JSX.Element;
48
+ declare function SearchObjectsFromDB<T extends SearchObjectItemType = SearchObjectItemType>({ label, token, handle, setSelected, appLabel, modelName, filterChannel, limit_query, limit_select, options, key_name, placeholder, searchUrl, selected, err, }: SearchObjectsFromDBProps<T>): JSX.Element;
49
49
  declare const _default: typeof SearchObjectsFromDB;
50
50
  export default _default;
@@ -18,6 +18,7 @@ export * from "./oauth_json";
18
18
  export * from "./paystack";
19
19
  export * from "./permissions";
20
20
  export * from "./utils";
21
+ export * from "./queryParameters";
21
22
  export * from "./charts";
22
23
  export * from "./modals/modals";
23
24
  export * from "./modals/openConfirmDelete";
@@ -0,0 +1,103 @@
1
+ /**
2
+ * URL Query Parameter Helper for InstinctHub React UI
3
+ * Handles adding, updating, removing, and manipulating URL query parameters
4
+ */
5
+ import { QueryContextType } from "@/types";
6
+ interface QueryParams {
7
+ [key: string]: string | string[] | undefined;
8
+ }
9
+ interface UrlHelperOptions {
10
+ baseUrl?: string;
11
+ preserveHash?: boolean;
12
+ encode?: boolean;
13
+ }
14
+ /**
15
+ * Main URL query parameter helper function
16
+ * @example
17
+ * ```tsx
18
+ * urlQueryHelper({ key: "page", value: 1, action: "add" });
19
+ * ```
20
+ * @param context - Object containing key, value, and action
21
+ * @param options - Additional configuration options
22
+ * @returns Updated URL string
23
+ */
24
+ export declare function urlQueryHelper(context: QueryContextType, options?: UrlHelperOptions): string;
25
+ /**
26
+ * Get all query parameters as an object
27
+ * @param url - URL string to parse (defaults to current URL)
28
+ * @returns Object with query parameters
29
+ */
30
+ export declare function getQueryParams(url?: string): QueryParams;
31
+ /**
32
+ * Get specific query parameter value
33
+ * @param key - Parameter key to retrieve
34
+ * @param url - URL string to parse (defaults to current URL)
35
+ * @returns Parameter value or null if not found
36
+ */
37
+ export declare function getQueryParam(key: string, url?: string): string | null;
38
+ /**
39
+ * Check if a query parameter exists
40
+ * @param key - Parameter key to check
41
+ * @param url - URL string to parse (defaults to current URL)
42
+ * @returns Boolean indicating if parameter exists
43
+ */
44
+ export declare function hasQueryParam(key: string, url?: string): boolean;
45
+ /**
46
+ * Build URL from base path and parameters object
47
+ * @param basePath - Base URL or path
48
+ * @param params - Object of parameters to add
49
+ * @param options - Additional configuration
50
+ * @returns Complete URL string
51
+ */
52
+ export declare function buildUrl(basePath: string, params: QueryParams, options?: UrlHelperOptions): string;
53
+ /**
54
+ * Navigate to URL with updated query parameters (client-side only)
55
+ * @example
56
+ * ```tsx
57
+ * navigateWithQuery({ key: "page", value: 1, action: "add" });
58
+ * ```
59
+ * @param context - Query context for manipulation
60
+ * @param options - Navigation options
61
+ */
62
+ export declare function navigateWithQuery(context: QueryContextType, options?: UrlHelperOptions & {
63
+ replace?: boolean;
64
+ }): void;
65
+ /**
66
+ * InstinctHub-specific helper for course filtering
67
+ * @example
68
+ * ```tsx
69
+ * buildDataFilterUrl({ subject: "Math", level: "100", instructor: "John Doe" });
70
+ * ```
71
+ * @param filters - Course filter parameters
72
+ * @returns URL with course filters applied
73
+ */
74
+ export declare function buildDataFilterUrl(filters: {
75
+ subject?: string;
76
+ level?: string;
77
+ instructor?: string;
78
+ search?: string;
79
+ page?: number;
80
+ sort?: string;
81
+ }): string;
82
+ /**
83
+ * InstinctHub-specific helper for pagination
84
+ * @example
85
+ * ```tsx
86
+ * buildPaginationUrl(1);
87
+ * ```
88
+ * @param page - Page number
89
+ * @param preserveFilters - Whether to keep existing filters
90
+ * @returns URL with pagination applied
91
+ */
92
+ export declare function buildPaginationUrl(page: number, preserveFilters?: boolean): string;
93
+ /**
94
+ * Clean URL by removing empty or null parameters
95
+ * @example
96
+ * ```tsx
97
+ * cleanUrl();
98
+ * ```
99
+ * @param url - URL to clean (defaults to current URL)
100
+ * @returns Cleaned URL string
101
+ */
102
+ export declare function cleanUrl(url?: string): string;
103
+ export {};
@@ -19,6 +19,15 @@ interface BreadcrumbProps {
19
19
  /**
20
20
  * Modern breadcrumb component for InstinctHub NextJS application
21
21
  * Automatically generates breadcrumb from current path
22
+ * @example
23
+ * ```tsx
24
+ * <Breadcrumb homeLabel="Home" pathMapping={{ "/courses": "Courses" }} excludePaths={["/courses/1"]} />
25
+ * ```
26
+ * @param {string} props.homeLabel - The label for the home page
27
+ * @param {Record<string, string>} props.pathMapping - The mapping of path segments to display names
28
+ * @param {string[]} props.excludePaths - The paths to exclude from the breadcrumb
29
+ * @param {string} props.className - The class name for the breadcrumb container
30
+ *
22
31
  */
23
32
  declare const Breadcrumb: ({ homeLabel, pathMapping, excludePaths, className, }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element | null;
24
33
  export default Breadcrumb;
@@ -451,3 +451,8 @@ export interface PaginationPropsType {
451
451
  /** Whether to show first/last buttons */
452
452
  showFirstLast?: boolean;
453
453
  }
454
+ export interface QueryContextType {
455
+ key: string;
456
+ value?: string | number | boolean | null;
457
+ action: "add" | "update" | "remove" | "toggle" | "clear";
458
+ }