PageSourceSearch

https://assets.bodyspec.com/master/c8ae0c406c2079a204c1bed147ca6d34b07a53fc-7f9a86d57fbeec4c49a7.js

js bodyspec.com collected 2026-10-03 19:51:15 UTC 20,025 bytes, 26 lines download raw bytes

1"use strict";(self.webpackChunkweb_v3=self.webpackChunkweb_v3||[]).push([[3078],{55428:function(e,t,s){s.d(t,{Z:function(){return m}});var n=s(67294),o=s(7867),i=s.n(o);function a(e){return e&&e.stopPropagation&&e.stopPropagation(),e&&e.preventDefault&&e.preventDefault(),!1}function r(e){return null==e?[]:Array.isArray(e)?e.slice():[e]}function l(e){return null!==e&&1===e.length?e[0]:e.slice()}function u(e){Object.keys(e).forEach((t=>{"undefined"!=typeof document&&document.addEventListener(t,e[t],!1)}))}function c(e,t){return p(function(e,t){let s=e;return s<=t.min&&(s=t.min),s>=t.max&&(s=t.max),s}(e,t),t)}function p(e,t){const s=(e-t.min)%t.step;let n=e-s;return 2*Math.abs(s)>=t.step&&(n+=s>0?t.step:-t.step),parseFloat(n.toFixed(5))}let d=function(e){function t(t){var s;(s=e.call(this,t)||this).onKeyUp=()=>{s.onEnd()},s.onMouseUp=()=>{s.onEnd(s.getMouseEventMap())},s.onTouchEnd=e=>{e.preventDefault(),s.onEnd(s.getTouchEventMap())},s.onBlur=()=>{s.setState({index:-1},s.onEnd(s.getKeyDownEventMap()))},s.onMouseMove=e=>{s.setState({pending:!0});const t=s.getMousePosition(e),n=s.getDiffPosition(t[0]),o=s.getValueFromPosition(n);s.move(o)},s.onTouchMove=e=>{if(e.touches.length>1)return;s.setState({pending:!0});const t=s.getTouchPosition(e);if(void 0===s.isScrolling){const e=t[0]-s.startPosition[0],n=t[1]-s.startPosition[1];s.isScrolling=Math.abs(n)>Math.abs(e)}if(s.isScrolling)return void s.setState({index:-1});const n=s.getDiffPosition(t[0]),o=s.getValueFromPosition(n);s.move(o)},s.onKeyDown=e=>{if(!(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey))switch(s.setState({pending:!0}),e.key){case"ArrowLeft":case"ArrowDown":case"Left":case"Down":e.preventDefault(),s.moveDownByStep();break;case"ArrowRight":case"ArrowUp":case"Right":case"Up":e.preventDefault(),s.moveUpByStep();break;case"Home":e.preventDefault(),s.move(s.props.min);break;case"End":e.preventDefault(),s.move(s.props.max);break;case"PageDown":e.preventDefault(),s.moveDownByStep(s.props.pageFn(s.props.step));break;case"PageUp":e.preventDefault(),s.moveUpByStep(s.props.pageFn(s.props.step))}},s.onSliderMouseDown=e=>{if(!s.props.disabled&&2!==e.button){if(s.setState({pending:!0}),!s.props.snapDragDisabled){const t=s.getMousePosition(e);s.forceValueFromPosition(t[0],(e=>{s.start(e,t[0]),u(s.getMouseEventMap())}))}a(e)}},s.onSliderClick=e=>{if(!s.props.disabled&&s.props.onSliderClick&&!s.hasMoved){const t=s.getMousePosition(e),n=c(s.calcValue(s.calcOffsetFromPosition(t[0])),s.props);s.props.onSliderClick(n)}},s.createOnKeyDown=e=>t=>{s.props.disabled||(s.start(e),u(s.getKeyDownEventMap()),a(t))},s.createOnMouseDown=e=>t=>{if(s.props.disabled||2===t.button)return;s.setState({pending:!0});const n=s.getMousePosition(t);s.start(e,n[0]),u(s.getMouseEventMap()),a(t)},s.createOnTouchStart=e=>t=>{if(s.props.disabled||t.touches.length>1)return;s.setState({pending:!0});const n=s.getTouchPosition(t);s.startPosition=n,s.isScrolling=void 0,s.start(e,n[0]),u(s.getTouchEventMap()),function(e){e.stopPropagation&&e.stopPropagation()}(t)},s.handleResize=()=>{const e=window.setTimeout((()=>{s.pendingResizeTimeouts.shift(),s.resize()}),0);s.pendingResizeTimeouts.push(e)},s.renderThumb=(e,t)=>{const n=s.props.thumbClassName+" "+s.props.thumbClassName+"-"+t+" "+(s.state.index===t?s.props.thumbActiveClassName:""),o={ref:e=>{s["thumb"+t]=e},key:s.props.thumbClassName+"-"+t,className:n,style:e,onMouseDown:s.createOnMouseDown(t),onTouchStart:s.createOnTouchStart(t),onFocus:s.createOnKeyDown(t),tabIndex:0,role:"slider","aria-orientation":s.props.orientation,"aria-valuenow":s.state.value[t],"aria-valuemin":s.props.min,"aria-valuemax":s.props.max,"aria-label":Array.isArray(s.props.ariaLabel)?s.props.ariaLabel[t]:s.props.ariaLabel,"aria-labelledby":Array.isArray(s.props.ariaLabelledby)?s.props.ariaLabelledby[t]:s.props.ariaLabelledby,"aria-disabled":s.props.disabled},i={index:t,value:l(s.state.value),valueNow:s.state.value[t]};return s.props.ariaValuetext&&(o["aria-valuetext"]="string"==typeof s.props.ariaValuetext?s.props.ariaValuetext:s.props.ariaValuetext(i)),s.props.renderThumb(o,i)},s.renderTrack=(e,t,n)=>{const o={key:s.props.trackClassName+"-"+e,className:s.props.trackClassName+" "+s.props.trackClassName+"-"+e,style:s.buildTrackStyle(t,s.state.upperBound-n)},i={index:e,value:l(s.state.value)};return s.props.renderTrack(o,i)};
1let o=r(t.value);o.length||(o=r(t.defaultValue)),s.pendingResizeTimeouts=[];const i=[];for(let e=0;e<o.length;e+=1)o[e]=c(o[e],t),i.push(e);return s.resizeObserver=null,s.resizeElementRef=n.createRef(),s.state={index:-1,upperBound:0,sliderLength:0,value:o,zIndices:i},s}i()(t,e);var s=t.prototype;return s.componentDidMount=function(){"undefined"!=typeof window&&(this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.resizeElementRef.current),this.resize())},t.getDerivedStateFromProps=function(e,t){const s=r(e.value);return s.length?t.pending?null:{value:s.map((t=>c(t,e)))}:null},s.componentDidUpdate=function(){0===this.state.upperBound&&this.resize()},s.componentWillUnmount=function(){this.clearPendingResizeTimeouts(),this.resizeObserver&&this.resizeObserver.disconnect()},s.onEnd=function(e){e&&function(e){Object.keys(e).forEach((t=>{"undefined"!=typeof document&&document.removeEventListener(t,e[t],!1)}))}(e),this.hasMoved&&this.fireChangeEvent("onAfterChange"),this.setState({pending:!1}),this.hasMoved=!1},s.getValue=function(){return l(this.state.value)},s.getClosestIndex=function(e){let t=Number.MAX_VALUE,s=-1;const{value:n}=this.state,o=n.length;for(let i=0;i<o;i+=1){const o=this.calcOffset(n[i]),a=Math.abs(e-o);a<t&&(t=a,s=i)}return s},s.getMousePosition=function(e){return[e["page"+this.axisKey()],e["page"+this.orthogonalAxisKey()]]},s.getTouchPosition=function(e){const t=e.touches[0];return[t["page"+this.axisKey()],t["page"+this.orthogonalAxisKey()]]},s.getKeyDownEventMap=function(){return{keydown:this.onKeyDown,keyup:this.onKeyUp,focusout:this.onBlur}},s.getMouseEventMap=function(){return{mousemove:this.onMouseMove,mouseup:this.onMouseUp}},s.getTouchEventMap=function(){return{touchmove:this.onTouchMove,touchend:this.onTouchEnd}},s.getValueFromPosition=function(e){const t=e/(this.state.sliderLength-this.state.thumbSize)*(this.props.max-this.props.min);return c(this.state.startValue+t,this.props)},s.getDiffPosition=function(e){let t=e-this.state.startPosition;return this.props.invert&&(t*=-1),t},s.resize=function(){const{slider:e,thumb0:t}=this;if(!e||!t)return;const s=this.sizeKey(),n=e.getBoundingClientRect(),o=e[s],i=n[this.posMaxKey()],a=n[this.posMinKey()],r=t.getBoundingClientRect()[s.replace("client","").toLowerCase()],l=o-r,u=Math.abs(i-a);this.state.upperBound===l&&this.state.sliderLength===u&&this.state.thumbSize===r||this.setState({upperBound:l,sliderLength:u,thumbSize:r})},s.calcOffset=function(e){const t=this.props.max-this.props.min;return 0===t?0:(e-this.props.min)/t*this.state.upperBound},s.calcValue=function(e){return e/this.state.upperBound*(this.props.max-this.props.min)+this.props.min},s.calcOffsetFromPosition=function(e){const{slider:t}=this,s=t.getBoundingClientRect(),n=s[this.posMaxKey()],o=s[this.posMinKey()];let i=e-(window["page"+this.axisKey()+"Offset"]+(this.props.invert?n:o));return this.props.invert&&(i=this.state.sliderLength-i),i-=this.state.thumbSize/2,i},s.forceValueFromPosition=function(e,t){const s=this.calcOffsetFromPosition(e),n=this.getClosestIndex(s),o=c(this.calcValue(s),this.props),i=this.state.value.slice();i[n]=o;for(let a=0;a<i.length-1;a+=1)if(i[a+1]-i[a]<this.props.minDistance)return;this.fireChangeEvent("onBeforeChange"),this.hasMoved=!0,this.setState({value:i},(()=>{t(n),this.fireChangeEvent("onChange")}))},s.clearPendingResizeTimeouts=function(){do{const e=this.pendingResizeTimeouts.shift();clearTimeout(e)}while(this.pendingResizeTimeouts.length)},s.start=function(e,t){const s=this["thumb"+e];s&&s.focus();const{zIndices:n}=this.state;n.splice(n.indexOf(e),1),n.push(e),this.setState((s=>({startValue:s.value[e],startPosition:void 0!==t?t:s.startPosition,index:e,zIndices:n})))},s.moveUpByStep=function(e){void 0===e&&(e=this.props.step);const t=this.state.value[this.state.index],s=c(this.props.invert&&"horizontal"===this.props.orientation?t-e:t+e,this.props);
1this.move(Math.min(s,this.props.max))},s.moveDownByStep=function(e){void 0===e&&(e=this.props.step);const t=this.state.value[this.state.index],s=c(this.props.invert&&"horizontal"===this.props.orientation?t+e:t-e,this.props);this.move(Math.max(s,this.props.min))},s.move=function(e){const t=this.state.value.slice(),{index:s}=this.state,{length:n}=t,o=t[s];if(e===o)return;this.hasMoved||this.fireChangeEvent("onBeforeChange"),this.hasMoved=!0;const{pearling:i,max:a,min:r,minDistance:l}=this.props;if(!i){if(s>0){const n=t[s-1];e<n+l&&(e=n+l)}if(s<n-1){const n=t[s+1];e>n-l&&(e=n-l)}}t[s]=e,i&&n>1&&(e>o?(this.pushSucceeding(t,l,s),function(e,t,s,n){for(let o=0;o<e;o+=1){const i=n-o*s;t[e-1-o]>i&&(t[e-1-o]=i)}}(n,t,l,a)):e<o&&(this.pushPreceding(t,l,s),function(e,t,s,n){for(let o=0;o<e;o+=1){const e=n+o*s;t[o]<e&&(t[o]=e)}}(n,t,l,r))),this.setState({value:t},this.fireChangeEvent.bind(this,"onChange"))},s.pushSucceeding=function(e,t,s){let n,o;for(n=s,o=e[n]+t;null!==e[n+1]&&o>e[n+1];n+=1,o=e[n]+t)e[n+1]=p(o,this.props)},s.pushPreceding=function(e,t,s){for(let n=s,o=e[n]-t;null!==e[n-1]&&o<e[n-1];n-=1,o=e[n]-t)e[n-1]=p(o,this.props)},s.axisKey=function(){return"vertical"===this.props.orientation?"Y":"X"},s.orthogonalAxisKey=function(){return"vertical"===this.props.orientation?"X":"Y"},s.posMinKey=function(){return"vertical"===this.props.orientation?this.props.invert?"bottom":"top":this.props.invert?"right":"left"},s.posMaxKey=function(){return"vertical"===this.props.orientation?this.props.invert?"top":"bottom":this.props.invert?"left":"right"},s.sizeKey=function(){return"vertical"===this.props.orientation?"clientHeight":"clientWidth"},s.fireChangeEvent=function(e){this.props[e]&&this.props[e](l(this.state.value),this.state.index)},s.buildThumbStyle=function(e,t){const s={position:"absolute",touchAction:"none",willChange:this.state.index>=0?this.posMinKey():void 0,zIndex:this.state.zIndices.indexOf(t)+1};return s[this.posMinKey()]=e+"px",s},s.buildTrackStyle=function(e,t){const s={position:"absolute",willChange:this.state.index>=0?this.posMinKey()+","+this.posMaxKey():void 0};return s[this.posMinKey()]=e,s[this.posMaxKey()]=t,s},s.buildMarkStyle=function(e){var t;return(t={position:"absolute"})[this.posMinKey()]=e,t},s.renderThumbs=function(e){const{length:t}=e,s=[];for(let o=0;o<t;o+=1)s[o]=this.buildThumbStyle(e[o],o);const n=[];for(let o=0;o<t;o+=1)n[o]=this.renderThumb(s[o],o);return n},s.renderTracks=function(e){const t=[],s=e.length-1;t.push(this.renderTrack(0,0,e[0]));for(let n=0;n<s;n+=1)t.push(this.renderTrack(n+1,e[n],e[n+1]));return t.push(this.renderTrack(s+1,e[s],this.state.upperBound)),t},s.renderMarks=function(){let{marks:e}=this.props;const t=this.props.max-this.props.min+1;return"boolean"==typeof e?e=Array.from({length:t}).map(((e,t)=>t)):"number"==typeof e&&(e=Array.from({length:t}).map(((e,t)=>t)).filter((t=>t%e==0))),e.map(parseFloat).sort(((e,t)=>e-t)).map((e=>{const t=this.calcOffset(e),s={key:e,className:this.props.markClassName,style:this.buildMarkStyle(t)};return this.props.renderMark(s)}))},s.render=function(){const e=[],{value:t}=this.state,s=t.length;for(let n=0;n<s;n+=1)e[n]=this.calcOffset(t[n],n);const o=this.props.withTracks?this.renderTracks(e):null,i=this.renderThumbs(e),a=this.props.marks?this.renderMarks():null;return n.createElement("div",{ref:e=>{this.slider=e,this.resizeElementRef.current=e},style:{position:"relative"},className:this.props.className+(this.props.disabled?" disabled":""),onMouseDown:this.onSliderMouseDown,onClick:this.onSliderClick},o,i,a)},t}(n.Component);d.displayName="ReactSlider",d.defaultProps={min:0,max:100,step:1,pageFn:e=>10*e,minDistance:0,defaultValue:0,orientation:"horizontal",className:"slider",thumbClassName:"thumb",thumbActiveClassName:"active",trackClassName:"track",markClassName:"mark",withTracks:!0,pearling:!1,disabled:!1,snapDragDisabled:!1,invert:!1,marks:[],renderThumb:e=>n.createElement("div",e),renderTrack:e=>n.createElement("div",e),renderMark:e=>n.createElement("span",e)};var h=d;var m=e=>{let{label:t=!0,defaultValue:s,min:o,max:i,onChange:a}=e;return n.createElement("div",{className:"styles-module--wrapper--db8c2"},t&&n.createElement("p",{className:"styles-module--label--7b0ac"},"Number of scan credits"),n.createElement("div",{className:"styles-module--picker--5256e"},n.createElement("span",null,o),n.createElement(h,{className:"styles-module--slider--bab30",thumbClassName:"styles-module--thumb--7b0d3",trackClassName:"styles-module--track--57cef",defaultValue:s||o,min:o,max:i,onChange:a,renderThumb:(e,t)=>n.createElement("div",e,n.createElement("div",{className:"styles-module--circle--a02f8"}),n.createElement("div",{className:"styles-module--text--ec237"},t.valueNow))}),n.createElement("span",null,i)))}},76087:function(e,t,s){s.d(t,{Nr:function(){return o},Xl:function(){return n}});const n=[{title:"How often should I get a DEXA scan?",body:"We recommend starting with a baseline scan and booking follow-up scans monthly or quarterly. Regular scans help you stay motivated, track your progress, and adjust your health and fitness routines to achieve your goals."},{title:"How long does it take to get a DEXA scan?",body:"Less than 15 minutes! You'll get your personalized, comprehensive, total body measurement quickly and be on your way."},{title:"Who should get a DEXA scan?",body:"Anyone that's interested in better health. A DEXA scan is a powerful tool that provides a comprehensive full-body snapshot and deep visibility into what's going on under your skin."},{title:"Do I have to go to a BodySpec office?",body:"No - we also provide scans in our mobile clinics! BodyS
1pec vans are equipped with DEXA machines to provide quick and convenient scans at your office, gym, local business or public space. If you're interested in hosting one of our vans, click [HERE](/work-with-us)."},{title:"Are DEXA scans safe?",body:"The amount of radiation from a DEXA scan is very low and very safe. Our average scan is equivalent to the radiation from eating 4 bananas."},{title:"How accurate are DEXA scans?",body:"DEXA scans are the gold standard for measuring body composition as they use medical-grade technology that is both precise AND accurate. We run daily quality assurance testing on all our machines to ensure they achieve an accuracy of +/- 0.5% before testing any clients."},{title:"How long will it take to receive my results?",body:"Usually within a few hours! We'll upload the scan results to your BodySpec account so they're always available and also email you a link to access via your Dashboard."},{title:"Can I get help understanding my results?",body:'Yes! Click the "Explain My Results" button on the dashboard to speak with our AI voice consultant about your report and get personalized insights and recommendations.'}],o=[{title:"How do I buy a gift card?",body:"Simply buy your gift credits and head to Transfer or share credits in your Account. You'll be able to enter all the details and select the gift card theme you'd like to send. Even schedule it to be sent on a future date for special occasions or holidays."},{title:"How will my gift card be delivered?",body:"Once you've selected which gift card and how many credits you'd like to send, we'll send an email to your friend with their unique gift card along with instructions for how to redeem. If you select a future date, we'll hold off until then to make the moment really special."},{title:"How do I get help buying or redeeming a gift card?",body:"Our team is always here to help. Simply email us at [email protected], call or chat with us and we'd be happy to support you."},{title:"How many gift cards can I send?",body:"As many as you'd like! All you need is to purchase the credits with your BodySpec account login, and you'll be able to send the gift credits from your account under Transfer or share credits. You can send up to 4 credits within any one gift card."}]},37164:function(e,t,s){s.d(t,{Z:function(){return k}});var n=s(67294),o=s(93197),i=s(84604),a=s(86234),r=s(338),l=s(92130),u=s.n(l),c=s(93891),p=s(11407),d=s(1825);const h=p.Ps`
2mutation (
3	$id: ID,
4	$message: String!,
5) {
6	assistant {
7		faq(id: $id) {
8			id
9
10			fromUser(message: $message) {
11				messages {
12					id
13					source
14					message
15					created {
16						unix
17					}
18				}
19
20				error
21			}
22		}
23	}
24}
25`,m=()=>{const[e,t]=(0,c.e)(),[s]=(e=>(0,d.D)(h,{onCompleted:(t,s)=>{var n;const{fromUser:o}=t.assistant.faq;var i;o.error?e({type:"ERROR",counter:(null==s||null===(i=s.context)||void 0===i?void 0:i.counter)||0}):e({type:"RESULT",id:t.assistant.faq.id,messages:o.messages,counter:(null==s||null===(n=s.context)||void 0===n?void 0:n.counter)||0})},onError:(t,s)=>{var n;e({type:"ERROR",counter:(null==s||null===(n=s.context)||void 0===n?void 0:n.counter)||0})}}))(t);return{state:e,send:n=>{const o=(e.counter||0)+1,i=Math.max(o,Number(new Date));t({type:"SEND",message:n,counter:i}),s({context:{counter:i,slowQuery:"super-slow"},variables:{id:e.id,message:n}})}}};var f=s(69445),y=s(12630),v=s(41339);const g=()=>{const{0:e,1:t}=(0,n.useState)(!1),{state:s,send:o}=m();return n.createElement("div",{className:u()({"styles-module--dialog--f5333":!0,"styles-module--active--a5e28":e})},e&&n.createElement("div",{className:"styles-module--messages--79707"},n.createElement(f.h,{state:s,prompt:v.Z,track:"ai:faq"})),n.createElement(y.G,{onSubmit:e=>{o(e),t(!0)}},"Type your question here"))},b=()=>n.createElement("div",{className:"styles-module--wrapper--27445"},n.createElement("h4",null,"Have a specific question?"),n.createElement(g,null));var E=s(76087);const w=e=>{let{children:t,eventKey:s,onClick:i}=e;const a=(0,o.k)(s,i);return n.createElement("button",{className:"styles-module--button--8d7d5",onClick:a},t)};var k=Object.assign((e=>{let{questions:t=E.Xl,defaultTab:s=-1}=e;const{0:o,1:l}
25=(0,n.useState)(s),u=e=>()=>{l(o===e?-1:e)};return n.createElement("div",{className:"styles-module--wrapper--227e4"},n.createElement("h2",null,"Frequently Asked Questions"),n.createElement(b,null),n.createElement(i.Z,{defaultActiveKey:String(o)},t.map(((e,t)=>n.createElement(a.Z,{key:e.title,className:"styles-module--card--920dd"},n.createElement(a.Z.Header,{className:"styles-module--header--94ce4"},n.createElement(w,{eventKey:String(t),onClick:u(t)},n.createElement("span",{style:{textAlign:"left"}},e.title),n.createElement("span",{className:"styles-module--toggle--d274a"},o===t?"-":"+"))),n.createElement(i.Z.Collapse,{eventKey:String(t)},n.createElement(a.Z.Body,null,n.createElement(r.U,{markdown:e.body}))))))))}),{Spacer:()=>n.createElement("div",{className:"styles-module--spacer--e992a"})})},2896:function(e,t,s){var n=s(67294),o=s(66009);t.Z=e=>n.createElement("div",{className:"spinner-container"},n.createElement(o.Z,e))},15277:function(e,t,s){s.d(t,{Z:function(){return r}});var n=s(67294),o=s(88108),i=s(92130),a=s.n(i);var r=e=>{let{children:t,className:s,title:i,light:r}=e;return n.createElement("div",{className:s},n.createElement("span",null,i),n.createElement("ul",{className:a()({"styles-module--list--eb204":!0,"styles-module--light--a6b82":r})},t().map(((e,t)=>n.createElement("li",{key:t},n.createElement(o.J,null),n.createElement("span",null,e))))))}},40669:function(e,t,s){s.d(t,{Z:function(){return o}});var n=s(67294);var o=e=>{let{children:t}=e;return n.createElement("span",{className:"styles-module--label--36ca2"},t)}},24404:function(e,t,s){s.d(t,{Z:function(){return a}});var n=s(67294),o=s(92130),i=s.n(o);var a=e=>{let{children:t,white:s}=e;return n.createElement("div",{className:i()({"styles-module--card--da90b":!0,"styles-module--white--f4dee":s})},t)}},41339:function(e,t){t.Z="Can I help answer any questions about our service?\n"}}]);
26//# sourceMappingURL=c8ae0c406c2079a204c1bed147ca6d34b07a53fc-7f9a86d57fbeec4c49a7.js.map

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.