1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2407],{64472:(e,n,t)=>{t.d(n,{M:()=>u});var o=t(14232),a=t(85664),r=t(91592),i=t(17945),s=t(19711),l=t(5130);let c="sabinet_sso_active";"localhost"===window.location.hostname||window.location.hostname;let u=()=>{let e=(0,a.lZ)(i.PT),n=(0,a.lZ)(i.Lj),t=(0,a.lZ)(i.vx),u=(0,a.lZ)(i._7),d=(0,a.lZ)(i.UZ),p=(0,a.lZ)(i.O1),m=(0,a.lZ)(i.FS),f=(0,a.lZ)(i.N1),h=(0,a.lZ)(i.V6);(0,a.lZ)(i.EP);let y=(0,a.lZ)(i.MI),g=(0,a.vc)(i.UG),b=(0,s.A)();return{setSignOut:(0,o.useCallback)(async()=>{try{(()=>{let e=new l.A;e.remove(c,{path:"/",domain:".sabinet.co.za"}),e.remove(c,{path:"/"})})();let o=sessionStorage.getItem("temporary-action-list-owner");o&&sessionStorage.removeItem("temporary-action-list:".concat(o)),sessionStorage.removeItem("temporary-action-list-owner"),m([]),f({}),y({}),h(!1),e(!1),n(!1),t(!1),u(!1),d(!0),p(!1),await new Promise(e=>setTimeout(e,0)),await (0,r.CI)({redirect:!1}),g.productData&&g.productData.is_custom_product&&(window.location=b)}catch(e){}})}}},82407:(e,n,t)=>{t.r(n),t.d(n,{default:()=>ei});var o=t(28888),a=t(14232),r=t(50994),i=t(76463),s=t(2273),l=t(62384),c=t(97103),u=t(38993),d=t(84380),p=t(85850),m=t(90649),f=t(41242),h=t(83186),y=t(24931),g=t(4199),b=t(72649),x=t(19888);function Y(){let e=(0,o._)(["\n position: absolute;\n top: unset;\n bottom: 0px;\n left: 20px;\n right: unset;\n .ant-modal-content {\n border-radius: unset !important;\n padding: 0 !important; /* Keep content padding at 0 */\n }\n .ant-modal-body {\n padding: 24px !important; /* Add padding specifically to body */\n }\n .ant-modal-confirm-btns {\n display: flex;\n flex-direction: column-reverse;\n float: unset;\n }\n .ant-modal-footer .ant-btn {\n width: 100%;\n padding: 15px 0;\n height: unset;\n border-radius: unset;\n margin: 0 0 10px 0;\n background: #D7D9D9;\n border: 1px solid #D7D9D9;\n color: #000000;\n font: normal 600 normal 14px/16px Arial;\n }\n .ant-modal-footer {\n border-top:unset;\n padding: 10px 24px 20px !important; /* Add padding to footer */\n }\n .ant-modal-footer .accept-btn {\n background: #B21D20;\n border: 1px solid #B21D20;\n color: #ffffff;\n }\n .ant-modal-footer .reject-btn {\n margin-left: unset !important;\n }\n .ant-modal-footer .ant-btn-link {\n background: unset;\n border: unset;\n color: #B21D20;\n }\n .ant-modal-footer .ant-btn-link span {\n text-decoration: underline;\n }\n .ant-modal-body a{\n color: unset;\n text-decoration: underline;\n }\n @media (max-width: 767px) {\n bottom: unset;\n left: unset;\n position:unset;\n }\n"]);return Y=function(){return e},e}function w(){let e=(0,o._)(["\n .ant-modal-body {\n max-height: 80vh;\n overflow-y: auto;\n }\n .logo {\n max-height: 47px;\n margin-bottom: 10px;\n }\n .ant-modal-body a{\n color: unset;\n text-decoration: underline;\n }\n .accept-btn {\n margin: 15px 0;\n background: #B21D20;\n border: 1px solid #B21D20;\n color: #ffffff;\n padding: 15px 20px;\n height: unset;\n border-radius: unset;\n font: normal 600 normal 14px/16px Arial;\n }
1\n .cookie-setting .ant-row{\n margin-bottom:20px;\n }\n .cookie-setting .switch-container {\n text-align: right;\n }\n .cookie-setting .switch-container span {\n color: #3860be;\n font-weight: bold;\n }\n .cookie-setting p {\n margin-bottom: unset;\n }\n .save-btn {\n margin: 15px 0;\n background: #D7D9D9;\n border: 1px solid #D7D9D9;\n color: #000000;\n padding: 15px 20px;\n height: unset;\n border-radius: unset;\n font: normal 600 normal 14px/16px Arial;\n }\n"]);return w=function(){return e},e}function A(){let e=(0,o._)(["\n width: 100%;\n padding: 15px 0;\n height: unset;\n border-radius: unset;\n margin: 0;\n background: #D7D9D9;\n border: 1px solid #D7D9D9;\n color: #000000;\n font: normal 600 normal 14px/16px Arial;\n background: #B21D20;\n border: 1px solid #B21D20;\n color: #ffffff;\n"]);return A=function(){return e},e}let k=(0,u.AH)(Y()),v=(0,u.AH)(w()),S=(0,u.AH)(A()),C=function(){let[e,n]=a.useState(!(window.innerWidth<768)),[t,o]=a.useState(!0),[r,l]=a.useState(!1),[c,d]=(0,a.useState)(!0);(0,a.useEffect)(()=>{d(!1)},[]);let p=()=>{c||localStorage.setItem("accept-all-cookies",!0),o(!1)},m=()=>{c||localStorage.setItem("accept-all-cookies",!1),o(!1)};return(0,u.Y)(a.Fragment,null,!c&&null===localStorage.getItem("accept-all-cookies")&&(0,u.Y)(a.Fragment,null,e?(0,u.Y)(h.A,{open:t,onOk:p,onCancel:m,centered:!1,css:k,maskClosable:!1,keyboard:!1,closable:!1,width:400,footer:[(0,u.Y)(y.Ay,{className:"accept-btn",onClick:p,key:"accept-btn"},"Accept all cookies"),(0,u.Y)(y.Ay,{className:"reject-btn",onClick:m,key:"reject-btn"},"Reject unnecessary cookies")]},(0,u.Y)("h4",null,"Cookies on Sabinet"),(0,u.Y)("p",null,"Our web pages use cookiesâinformation about how you interact with the site. When you select âAccept all cookies,â youâre agreeing to let your browser store that data on your device so that we can provide you with a better, more relevant experience."),(0,u.Y)("p",null,"Selecting âReject unnecessary cookiesâ limits the data thatâs stored to whatâs strictly necessary for using the site. However, that may negatively impact your experience."),(0,u.Y)("a",{href:"https://sabinet.co.za/sabinet-privacy-policy",target:"_blank"},"See our Cookie Notice for more information")):(0,u.Y)(g.A,{offsetBottom:0},(0,u.Y)(y.Ay,{css:S,onClick:()=>{n(!0)}},"Cookies on sabinet ",(0,u.Y)(x.A,null))),(0,u.Y)(h.A,{open:r,closable:!0,onCancel:()=>l(!1),css:v,footer:!1},(0,u.Y)("img",{className:"logo",src:"/images/sabinet-logo-tagline.svg",alt:"Sabinet Logo"}),(0,u.Y)("h2",null,"Cookie Preference Center"),(0,u.Y)("p",null,"When you visit our website, it stores data on your device in what is commonly called âcookiesââinformation about how you interact with the site. This information might be about you, your preferences, your activities, or your device. Strictly necessary cookies are always active, but others are only stored with your consent. Choosing not to accept some categories of cookies may impact your experience using our website. Under each category below, you can see a listing of cookies by clicking on the âCookie Detailsâ link. When you have finished making your selections, click on âSave My Settingsâ to consent to storing the cookies you selected to be active. Alternatively, you can just click on âAccept All Cookies.â"),(0,u.Y)("a",{href:"#",target:"_blank"},"See our Privacy Policy for more information."),(0,u.Y)("div",{key:"accept-cookie"},(0,u.Y)(y.Ay,{className:"accept-btn",onClick:p},"Accept all cookies")),(0,u.Y)("h2",null,"Manage Consent Preferences"),(0,u.Y)("div",{className:"cookie-setting"},(0,u.Y)(i.A,{key:"strictly-necessary-cookies"},(0,u.Y)(s.A,{span:18},(0,u.Y)("h4",null,"Strictly Necessary Cookies")),(0,u.Y)(s.A,{span:6,className:"switch-container"},(0,u.Y)("span",null,"Always Active")),(0,u.Y)(s.A,{span:24},(0,u.Y)("p",null,"These cookies are necessary for the website to function. They are usually only set in response to actions made by you which amount to a request for services, such as logging in or filling in forms."),(0,u.Y)("a",{href:"#",target:"_blank"}
1,"Cookies Details"))),(0,u.Y)(i.A,{key:"performance-cookies"},(0,u.Y)(s.A,{span:20},(0,u.Y)("h4",null,"Performance Cookies")),(0,u.Y)(s.A,{span:4,className:"switch-container"},(0,u.Y)(b.A,null)),(0,u.Y)(s.A,{span:24},(0,u.Y)("p",null,"These cookies are necessary for the website to function. They are usually only set in response to actions made by you which amount to a request for services, such as logging in or filling in forms."),(0,u.Y)("a",{href:"#",target:"_blank"},"Cookies Details"))),(0,u.Y)(i.A,{key:"functional-cookies"},(0,u.Y)(s.A,{span:20},(0,u.Y)("h4",null,"Functional Cookies")),(0,u.Y)(s.A,{span:4,className:"switch-container"},(0,u.Y)(b.A,null)),(0,u.Y)(s.A,{span:24},(0,u.Y)("p",null,"These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies, then some or all of these services may not function properly."),(0,u.Y)("a",{href:"#",target:"_blank"},"Cookies Details"))),(0,u.Y)(i.A,{key:"targeting-cookies"},(0,u.Y)(s.A,{span:20},(0,u.Y)("h4",null,"Targeting Cookies")),(0,u.Y)(s.A,{span:4,className:"switch-container"},(0,u.Y)(b.A,null)),(0,u.Y)(s.A,{span:24},(0,u.Y)("p",null,"These cookies may be set through our site by third party services we use to provide functionality. They may be used by those companies to build a profile of your interests and show you relevant advertisements on other sites."),(0,u.Y)("a",{href:"#",target:"_blank"},"Cookies Details"))),(0,u.Y)(i.A,{key:"social-media-cookies"},(0,u.Y)(s.A,{span:20},(0,u.Y)("h4",null,"Social Media Cookies")),(0,u.Y)(s.A,{span:4,className:"switch-container"},(0,u.Y)(b.A,null)),(0,u.Y)(s.A,{span:24},(0,u.Y)("p",null,"These cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit."),(0,u.Y)("a",{href:"#",target:"_blank"},"Cookies Details"))),(0,u.Y)("div",{key:"save-cookie-setting"},(0,u.Y)(y.Ay,{className:"save-btn"},"Save my settings"))))))};var _=t(57831),P=t(50755),F=t(60771),D=t(93390),E=t(78264),z=t(94305),N=t(76684),I=t(85664),T=t(64472),B=t(17945),R=t(91592),H=t(20750);function O(){let e=(0,o._)(["\n font: normal normal normal 14px/22px Arial !important ;\n margin-right:15px;\n height: 32px;\n padding: 4px 15px;\n border-radius: unset;\n"]);return O=function(){return e},e}async function q(e){let n=await fetch("/api/account/forgot-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),t=await n.json();if(!n.ok)throw Error(t.error||"Request failed");return t}let Z=(0,u.AH)(O()),V=()=>{let e=(0,I.vc)(B._7),n=(0,I.vc)(B.UZ),t=(0,I.vc)(B.vx),[o,r]=(0,a.useState)(!1),[i]=_.A.useForm(),[s,l]=(0,a.useState)(!1),[c,d]=(0,a.useState)(!1),[p,m]=(0,a.useState)(null),[f,g]=(0,a.useState)(!1),{setSignOut:b}=(0,T.M)(),x=(0,I.lZ)(B._7),Y=(0,I.lZ)(B.vx),[w,A]=(0,a.useState)(!1),[k,v]=(0,a.useState)(!1),S=()=>{b(),r(!1)};(0,a.useEffect)(()=>{e&&e.forcePassword&&n&&(r(!0),m({username:e.username}),v(!0),e.email&&""!==e.email&&"[email protected]"!==e.email&&d(!0)),t&&t.forcePassword&&n&&(r(!0),m({username:t.username}),t.attributes.email&&""!==t.attributes.email&&"[email protected]"!==t.attributes.email&&d(!0)),t&&t.forcePassword},[e,t]),(0,a.useEffect)(()=>{(!e||!t||e.forcePassword||t.forcePassword)&&(!e||t||e.forcePassword)&&(e||!t||t.forcePassword)||r(!1)},[e,t]);let C=async()=>{try{let n=(await i.validateFields()).email,t="";try{var e;let n=await (0,R.Ht)();t=(null==n||null==(e=n.user)?void 0:e.sub)||""}catch(e){P.Ay.error("Error fetching session.");return}if(!t)return void P.Ay.error("Error fetching session.");try{let e=await (0,H.tX)("users/".concat(t,"/resetemail"),{email:n});"success"===e.status?(P.Ay.success("Email updated successfully."),B._7&&k&&x(e=>({...e,email:n})),B.vx&&!k&&Y(e=>({...e,email:n})),d(!0)):P.Ay.error("Error updating email.")}catch(e){console.error("API Error:",e),P.Ay.error("Error updating email.")}}catch(e){console.error("Validation Failed:",e),P.Ay.error("Validation Failed.")}},O=async e=>{var n=e.username;n?await q({username:n}).then(e=>{g(!0),m({username:n}),A(!0)}).catch(e=>{F.Ay.error({message:"Reset Password Error",description:e.message,placement:"topRight",key:"notification"})}):F.Ay.error({message:"Reset Password Error",description:"Please enter your username",placement:"topRight",key:"notification"})},V=async e=>{try{await q({username:p.username,code:e.code,newPassword:e.password});let t=await (0,R.Jv)("cognito-password",{redirect:!1,username:p.username,password:e.password});if(!t||t.error)throw Error((null==t?void 0:t.code)||(null==t?void 0:t.error)||"Sign in failed");let o="";try{var n;let e=await (0,R.Ht)();o=(null==e||null==(n=e.user)?void 0:n.sub)||""}catch(e){P.Ay.error("Error fetching session.");return}if(!o)return void P.Ay.error("Error fetching session.");try{let e=await (0,H.yx)("users/".concat(o,"/forcepassword"));"success"===e.status?(P.Ay.success("Password reset successfully."),B._7&&k&&x(e=>({...e,forcePassword:!1})),B.vx&&!k&&Y(e=>({...e,forcePassword:!1})),r(!1)):P.Ay.error("Password reset failed.")}catch(e){console.error("API Error:",e),P.Ay.error("Password reset failed")}}catch(e){F.Ay.error({message:"Reset Password Error",description:e.message,placement:"topRight",key:"notification"})}},j=async()=>
1{l(!0);try{await O({username:p.username}),P.Ay.success("Verification code resent successfully.")}catch(e){F.Ay.error({message:"Resend Code Error",description:e.message,placement:"topRight",key:"notification"})}l(!1)};return(0,u.Y)(h.A,{title:"Account Update",open:o,onOk:()=>{},onCancel:()=>{},footer:null,closable:!1,maskClosable:!1},c?(0,u.Y)(a.Fragment,null,f?(0,u.Y)(a.Fragment,null,(0,u.Y)("h2",null,"Reset your Password"),(0,u.Y)("p",null,"A reset code has been emailed to your registered email address."),(0,u.Y)("p",null,"If you don't receive your password reset code within 5 minutes, please check your spam folder or contact ",(0,u.Y)("a",{href:"mailto:[email protected]"},"[email protected]")," for assistance."),(0,u.Y)(_.A,{form:i,name:"forgotpaawordVerify",onFinish:e=>{l(!0),V(e),i.resetFields(),l(!1)},layout:"vertical"},(0,u.Y)(_.A.Item,{label:"Verification Code",name:"code",rules:[{required:!0,message:"Please input your code!"}]},(0,u.Y)(D.A,{placeholder:"Enter your code",size:"large"})),(0,u.Y)(_.A.Item,{label:(0,u.Y)("span",null,"New Password\xa0",(0,u.Y)(E.A,{title:"Password must be at least 8 characters, Requires a number, Requires a special character, Requires uppercase letters, Requires lowercase letters."},(0,u.Y)(N.A,null))),name:"password",rules:[{required:!0,message:"Please input your Password!"}]},(0,u.Y)(D.A.Password,{placeholder:"Password",size:"large"})),(0,u.Y)("div",{className:"amplify-custom-footer"},(0,u.Y)(_.A.Item,null,(0,u.Y)(y.Ay,{css:Z,htmlType:"submit",type:"primary",loading:s},"Confirm"),w&&(0,u.Y)(y.Ay,{css:Z,onClick:j,loading:s},"Resend Code"),(0,u.Y)(y.Ay,{onClick:S,css:Z}," Sign Out ",(0,u.Y)(z.A,null)))))):(0,u.Y)(a.Fragment,null,(0,u.Y)("h2",null,"Reset your Password"),(0,u.Y)("p",null,"Click send code to send a password reset code to your registered email address."),(0,u.Y)("p",null,"Please whitelist [email protected] and [email protected], and/or check your Junk Mail folder should you not receive an email with the verification code."),(0,u.Y)(_.A,{form:i,name:"forgotpaaword",onFinish:e=>{l(!0),O(e),i.resetFields(),l(!1)},layout:"vertical"},(0,u.Y)(_.A.Item,{label:"Username",name:"username",rules:[{required:!0,message:"Please input your username"}],initialValue:p?p.username:""},(0,u.Y)(D.A,{placeholder:"Username",size:"large"})),(0,u.Y)("div",{className:"amplify-custom-footer"},(0,u.Y)(_.A.Item,null,(0,u.Y)(y.Ay,{css:Z,htmlType:"submit",type:"primary",loading:s},"Send Code"),(0,u.Y)(y.Ay,{onClick:S,css:Z}," Sign Out ",(0,u.Y)(z.A,null))))))):(0,u.Y)(_.A,{form:i,layout:"vertical",name:"admin_email_form",onFinish:C},(0,u.Y)("p",null,"Sabinet now requires all users to register an email address and reset their passwords."),(0,u.Y)("p",null,"Please contact ",(0,u.Y)("a",{href:"mailto:[email protected]"},"[email protected]")," if you have any questions."),(0,u.Y)(_.A.Item,{name:"email",label:"Email",rules:[{required:!0,message:"Please input your email!",type:"email"}]},(0,u.Y)(D.A,null)),(0,u.Y)(_.A.Item,null,(0,u.Y)(y.Ay,{type:"primary",css:Z,htmlType:"submit"},"Submit"),(0,u.Y)(y.Ay,{onClick:S,css:Z}," Sign Out ",(0,u.Y)(z.A,null))),(0,u.Y)(E.A,{placement:"bottom",title:"Sign out"})))};var j=t(20208);function M(){let e=(0,o._)(["\n font: normal normal normal 14px/22px Arial !important ;\n margin-right:15px;\n height: 32px;\n padding: 4px 15px;\n border-radius: unset;\n"]);return M=function(){return e},e}async function L(e){let n=await fetch("/api/account/verify-email",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),t=await n.json();if(!n.ok)throw Error(t.error||"Verification failed");return t}let U=(0,u.AH)(M()),J=()=>{let e=(0,I.vc)(B.O1),n=(0,I.lZ)(B.O1),t=(0,I.vc)(B.vx),o=(0,I.vc)(B._7),[r,i]=(0,a.useState)(!1),[s]=_.A.useForm(),[l,c]=(0,a.useState)(!1),[d,p]=(0,a.useState)(!1),{setSignOut:m}=(0,T.M)();(0,a.useEffect)(()=>{e?i(!0):i(!1)},[e]);let f=()=>{m(),i(!1)},g=async()=>{c(!0);try{await L({send:!0}),P.Ay.success("Verification code sent to your email."),p(!0)}catch(e){console.error("Error sending verification code:",e),P.Ay.error(e.message||"Error sending verification code.")}c(!1)},b=async e=>{c(!0);try{await L({code:e.code});let o="";try{var t;let e=await (0,R.Ht)();o=(null==e||null==(t=e.user)?void 0:t.sub)||""}catch(e){console.error("Error fetching session:",e)}if(o)try{await (0,H.yx)("users/".concat(o,"/forceemailverify"))}catch(e){console.error("Error clearing force_email_verify flag:",e)}P.Ay.success("Email verified successfully."),n(!1),i(!1)}catch(e){console.error("Verification error:",e),P.Ay.error(e.message||"Invalid verification code.")}c(!1)};return(0,u.Y)(h.A,{title:"Email Verification Required",open:r,onOk:()=>{},onCancel:()=>{},footer:null,closable:!1,maskClosable:!1},d?(0,u.Y)(_.A,{form:s,layout:"vertical",name:"email_verify_form",onFinish:b},(0,u.Y)("p",null,"A verification code has been sent to your registered email address."),(0,u.Y)("p",null,"If you don't receive the code within 5 minutes, please check your spam folder or contact ",(0,u.Y)("a",{href:"mailto:[email protected]"},"[email protected]")," for assistance."),(0,u.Y)(_.A.Item,{name:"code",label:"Verification Code",rules:[{required:!0,message:"Please enter the verification code."}]},(0,u.Y)(D.A,{placeholder:"Enter your 6-digit code",size:"large"})),(0,u.Y)(_.A.Item,null,(0,u.Y)(y.Ay,{css:U,htmlType:"submit",type:"primary",loading:l},"Verify"),(0,u.Y)(y.Ay,{css:U,onClick:g,loading:l},"Resend Code"),(0,u.Y)(y.Ay,{onClick:f,css:U},"Sign Out ",(0,u.Y)(z.A,null))),(0,u.Y)("p",{style:{fontSize:"12px",color:"#666"}},"If you no longer have access to this email or need assistance, please contact ",(0,u.Y)("a",{href:"mailto:[email protected]"},"[email protected]"),".")):(0,u.Y)("div",null,(0,u.Y)("p",null,"As part of our security process, we need to verify that you still have access to your registered email address."),(0,u.Y)("p",null,"A verification code will be sent to: ",(0,u.Y)("strong",null,(e=>{if(!e)return"";let[n,t]=e.split("@");return t?n.charAt(0)+"***@"+t:e})(o&&o.email?o.email:t&&t.attributes&&t.attributes.email?t.attributes.email:""))),(0,u.Y)("p",{style:{marginTop:"16px"}},(0,u.Y)(y.Ay,{type:"primary",css:U,onClick:g,loading:l,icon:(0,u.Y)(j.A,null)},"Send Verification Code"),(0,u.Y)(y.Ay,{onClick:f,css:U},"Sign Out ",(0,u.Y)(z.A,null))),(0,u.Y)("p",{style:{marginTop:"16px",fontSize:"12px",color:"#666"}},"If you no longer have access to this email or need assistance, please contact ",(0,u.Y)("a",{href:"mailto:[email protected]"},"[email protected]"),".")))};var W=t(48230),X=t.n(W),G=t(76886);function K(){let e=(0,o._)(["\n background: #414043 !important;\n width:100%;\n padding: 50px 0 20px;\n @media (max-width: 767px) {\n > .ant-row .ant-col {\n /*text-align:center;*/\n padding:0 15px;\n }\n }\n .btn-back-top {\n background: #FFEEEE;\n border-radius:5px;\n border: 1px solid #B21D20;\n right: 50px;\n text-align: center;\n }\n .btn-back-top .ant-float-btn-body {\n background: unset;\n }\n .btn-back-top .ant-float-btn-body .ant-float-btn-content {\n min-height: unset;\n padding: unset;\n }\n .btn-back-top .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon {\n width: auto;\n }\n .footer-bottom {\n width: 100%;\n border-top: 1px solid #000000;\n padding: 20px 0 0;\n }\n .footer-links {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 8px;\n }\n .footer-links a,\n .footer-links a:hover,\n .footer-links a:visited {\n font: normal normal bold 14px/16px Arial;\n color: #ffffff;\n margin-right: 15px;\n margin-bottom: 5px;\n }\n \n a:focus {\n outline: 2px solid #B21D20 !important; /* Change the color and thickness as needed */\n }\n\n .footer-links:focus{\n outline: 2px solid #B21D20 !important; /* Change the color and thickness as needed */\n }\n\n .copyright {\n text-align: right;\n font: normal normal normal 12px/14px Arial;\n color: #ffffff;\n }\n @media (max-width: 992px) {\n .copyright {\n text-align: center;\n }\n }\n"]);return K=function(){return e},e}function Q(){let e=(0,o._)(["\nul {\n opacity: 0.7;\n padding:5px 0px 5px 0px;\n list-style: none;\n}\nul > li {\n font: normal normal normal 14px/20px Arial;\n letter-spacing: 0px;\n color: #FFFFFF;\n padding:3px 0;\n}\nli > span {\n color:#6D7477;\n margin-right:10px;\n}\nli.email-icon {\n margin-top: 20px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\nli >
1 img {\n width: 20px;\n height: 20px;\n margin-right: 10px;\n filter: invert(.6);\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n"]);return Q=function(){return e},e}function $(){let e=(0,o._)(["\npadding:40px 10px 15px 0px;\nfont-size:1.8em;\nfont: normal normal bold 20px/23px Arial;\nletter-spacing: 0px;\ncolor: #FFFFFF;\n"]);return $=function(){return e},e}function ee(){let e=(0,o._)(["\npadding-top:40px;\nfloat:right;\n@media (max-width: 767px) {\n /*margin: 0 auto;*/\n margin-right:15px;\n float:unset;\n min-width:230px;\n width:100%;\n}\ndiv {\n min-width:230px;\n height: 52px;\n background: rgb(0, 0, 0, 0.12);\n border-radius: 5px;\n margin-bottom:4px;\n padding: 3px;\n display:flex;\n flex-wrap:wrap;\n align-items: center;\n position:relative;\n}\ndiv > .anticon {\n z-index:9;\n}\ndiv > .whiteBack {\n position:absolute;\n width: 38px;\n height: 40px;\n left: 7px;\n background: #ffffff;\n z-index: 0;\n}\ndiv > .text {\n font: normal normal normal 16px/18px Arial;\n letter-spacing: 0px;\n color: #FFFFFF;\n margin-left:10px;\n opacity:0.7;\n}\n\n social-links:focus{\n outline: 2px solid #B21D20 !important; /* Change the color and thickness as needed */\n }\n"]);return ee=function(){return e},e}let{Footer:en}=r.A,et=(0,u.AH)(K()),eo=(0,u.AH)(Q()),ea=(0,u.AH)($()),er=(0,u.AH)(ee()),ei=e=>{let{dataSearchProps:n,hideShowButton:t,searchId:o}=e,r=(0,G.A)("media/footer-information"),h=(0,G.A)("media/footer-contact-us"),y=new Date().getFullYear();return(0,u.Y)(a.Fragment,null,(0,u.Y)(en,{css:et},(0,u.Y)(i.A,null,(0,u.Y)(s.A,{xxl:4,xl:2,lg:2,md:1,xs:0}),(0,u.Y)(s.A,{xxl:4,xl:5,lg:8,md:8,xs:24},r.response?(0,u.Y)(a.Fragment,null,(0,u.Y)("div",{css:ea},r.response.label),(0,u.Y)("div",{css:eo},(0,u.Y)("span",{dangerouslySetInnerHTML:{__html:r.response.body}}))):(0,u.Y)("div",{style:{minHeight:"180px"}},(0,u.Y)(l.A,{active:!0,title:{width:"60%"},paragraph:{rows:3}}))),(0,u.Y)(s.A,{xxl:8,xl:11,lg:6,md:7,xs:24},h.response?(0,u.Y)(a.Fragment,null,(0,u.Y)("div",{css:ea},h.response.label),(0,u.Y)("div",{css:eo},(0,u.Y)("span",{dangerouslySetInnerHTML:{__html:h.response.body}}))):(0,u.Y)("div",{style:{minHeight:"180px"}},(0,u.Y)(l.A,{active:!0,title:{width:"60%"},paragraph:{rows:3}}))),(0,u.Y)(s.A,{xxl:4,xl:4,lg:6,md:7,xs:24},(0,u.Y)("div",{css:er,className:"social-links"},(0,u.Y)(X(),{href:"https://www.facebook.com/sabinetsa/",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},(0,u.Y)("div",null,(0,u.Y)(d.A,{style:{fontSize:"46px",color:"#414043"}}),(0,u.Y)("span",{className:"whiteBack"}),(0,u.Y)("span",{className:"text"},"Like us on Facebook")))),(0,u.Y)(X(),{href:"https://twitter.com/sabinetsa?lang=en",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},(0,u.Y)("div",null,(0,u.Y)(p.A,{style:{fontSize:"36px",color:"white",backgroundColor:"#414043",marginLeft:"3px",width:"42px",height:"42px"}}),(0,u.Y)("span",{className:"text"},"Follow us on X")))),(0,u.Y)(X(),{href:"https://www.linkedin.com/company/sabinet-online/",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},(0,u.Y)("div",null,(0,u.Y)(m.A,{style:{fontSize:"46px",color:"#414043"}}),(0,u.Y)("span",{className:"whiteBack"}),(0,u.Y)("span",{className:"text"},"Join us on LinkedIn")))))),(0,u.Y)(s.A,{xxl:4,xl:2,lg:2,md:1,xs:0})),(0,u.Y)(i.A,null,(0,u.Y)(s.A,{xxl:4,xl:2,lg:2,md:1,xs:0}),(0,u.Y)(s.A,{xxl:16,xl:20,lg:20,md:22,xs:24},(0,u.Y)(i.A,{className:"footer-bottom"},(0,u.Y)(s.A,{xxl:16,xl:16,lg:17,md:24,xs:24,className:"footer-links"},(0,u.Y)(X(),{href:"https://www.sabinet.co.za/sabinet-disclaimer",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"Sabinet Disclaimer")),(0,u.Y)(X(),{href:"https://sabinet.co.za/terms-and-conditions/",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"Website Terms & Conditions")),(0,u.Y)(X(),{href:"https://www.sabinet.co.za/paia",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"PAIA")),(0,u.Y)(X(),{href:"https://sabinet.co.za/privacy-policy/",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"Sabinet Privacy Policy")),(0,u.Y)(X(),{href:"https://sabinet.co.za/sabinet-ai-statement/",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"Sabinet AI Statement")),(0,u.Y)(X(),{href:"/pages/sabinetdiscoveraccessibility",legacyBehavior:!0},(0,u.Y)("a",{target:"_blank"},"Accessibility"))),(0,u.Y)(s.A,{xxl:8,xl:8,lg:7,md:24,xs:24,className:"copyright"},"Copyright \xa9 1983 - ",y," Sabinet"))),(0,u.Y)(s.A,{xxl:4,xl:2,lg:2,md:1,xs:0})),(0,u.Y)(c.A.BackTop,{className:"btn-back-top",icon:(0,u.Y)(f.A,{style:{fontSize:"24px",color:"#B21D20"}}),shape:"square"}),(0,u.Y)(C,null),(0,u.Y)(V,null),(0,u.Y)(J,null)))}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.