PageSourceSearch

https://app.posetracker.com/_next/static/chunks/6756-135c24f2611d2dcc.js

js posetracker.com collected 2026-09-30 23:54:07 UTC 10,420 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6756],{76756:function(e,t,r){r.r(t),r.d(t,{compute:function(){return c},currentMovement:function(){return o},detectIsReady:function(){return a}});var n=r(57545),i=r(78899);class s{setCurrentRecommendations(e){this.currentRecommendations=e}resetLostKeypointCounter(){this.lost_keypoint_counter=0}addLostKeypointCounter(){return this.lost_keypoint_counter+=1}calculateStepRecommendations(e,t,r){let n=this.steps[this.currentStepIndex],s=[];return null==n||n.movement_recommendations.forEach(n=>{let o=n.name.split("||"),a=!1;o.forEach(s=>{switch(n.type){case"angle":var o,c;let[p,l,u]=s.split("--"),h=null===(c=e[p])||void 0===c?void 0:null===(o=c[l])||void 0===o?void 0:o[u];h||0===h||(console.error("Missing angle:",s),console.error("angles:",e),console.error(e[p]),console.error(e[p][l]),alert("contact support at [email protected] with this error => Missing angle: "+s));let g=n.upper_scale_acceptance&&n.scale_acceptance?"up"===this.point_of_view?n.upper_scale_acceptance[r]:n.scale_acceptance[r]:n.value,_=(parseFloat(n.operator)||0)/100*g;n.operator.includes("%")&&h>=g-_&&h<=g+_?a=!0:n.operator.includes(">=")&&h>=g-_&&(a=!0);break;case"body_axe_without_arms":let d=Math.abs(t.get("right_hip").x-t.get("left_hip").x)/2,y=Math.abs(t.get("right_hip").y-t.get("left_hip").y)/2,m=Math.abs(t.get("right_shoulder").x-t.get("left_shoulder").x)/2,f=Math.abs(t.get("right_shoulder").y-t.get("left_shoulder").y)/2,x=(0,i.calculateAngle)({x:0,y:f},{y:f,x:m},{y:y,x:d});n.operator.includes("<=")&&x<=n.value&&(a=!0);break;case"upper_y":let v=t.get(n.name),S=t.get(n.reference);v.y>=S.y&&(a=!0);break;case"matching_x":let k=t.get(n.name),b=t.get(n.reference);n.operator.includes("+-")&&k.x<=b.x+n.value&&k.x>=b.x-n.value&&(a=!0);break;default:console.error("Unhandled parameter type:",n.type,n),alert("Unhandled parameter type: "+n.type)}});let c=s.indexOf(n.recommendation_text);-1===c?!1===a&&s.push(n.recommendation_text):c>-1&&!0===a&&s.splice(c,1)}),s}calculateStepCompletion(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=0,s=0,o=n?this.steps[n]:this.steps[this.currentStepIndex];this.currentStepCompletion=[],o.movement_parameters.forEach(n=>{let o=n.name.split("||"),a=0;o.forEach((i,s)=>{let c=0;switch(n.type){case"angle":var p,l;let[u,h,g]=i.split("--"),_=null===(l=e[u])||void 0===l?void 0:null===(p=l[h])||void 0===p?void 0:p[g];_||0===_||(console.error("Missing angle:",i),console.error("angles:",e),console.error(e[u]),console.error(e[u][h]),alert("Missing angle: "+i));let d=n.upper_scale_acceptance&&n.scale_acceptance?"up"===this.point_of_view?n.upper_scale_acceptance[r]:n.scale_acceptance[r]:n.value,y=(parseFloat(n.operator)||0)/100*d;n.operator.includes("%")&&_>=d-y&&_<=d+y?c=n.percentage:n.operator.includes("<=")&&_<=d+y?c=n.percentage:n.operator.includes(">=")&&_>=d+y&&(c=n.percentage),a=Math.max(a,c),(!0===n.public&&2===o.length&&1===s||!0===n.public&&1===o.length&&0===s)&&this.currentStepCompletion.push({type:n.type,valid:n.percentage===a,step_percentage:n.percentage,completion:{current_angle:i,current_angle_value:_,target_angle_value:d,tolerence:y,matching_operator:n.operator}});break;case"upper_y":let m=t.get(n.reference).y,f=t.get(i).y;f>=m&&(c=n.percentage),a=Math.max(a,c),(!0===n.public&&2===o.length&&1===s||!0===n.public&&1===o.length&&0===s)&&this.currentStepCompletion.push({type:n.type,valid:n.percentage===a,step_percentage:n.percentage,completion:{current_keypoint:i,current_keypoint_Y:f,reference_keypoint:n.reference,reference_keypoint_Y:m}});break;case"matching_y":let x=t.get(n.reference).y,v=t.get(i).y;v>=x&&v<=x+n.value/100*x&&(c=n.percentage),a=Math.max(a,c),(!0===n.public&&2===o.length&&1===s||!0===n.public&&1===o.length&&0===s)&&this.currentStepCompletion.push({type:n.type,valid:n.percentage===a,step_percentage:n.percentage,completion:{current_keypoint:i,current_keypoint_Y:v,reference_keypoint:n.reference,reference_keypoint_Y:x}});break;case"same_y":let[S,k]=n.reference.split("||")[0].split("--"),b=Math.abs(t.get(S).y-t.get(k).y),[C,M]=n.reference.split("||")[1].split("--"),P=Math.abs(t.get(C).y-t.get(M).y),[w,I]=i.split("--");t.get(I).y-t.get(w).y<=("up"===this.point_of_view?n.upper_scale_acceptance[r]:n.scale_acceptance[r])/100*Math.max(b,P)&&(c=n.percentage),a=Math.max(a,c);break;case"matching_x":let L=t.get(i),R=t.get(n.reference),q=n.value||0;n.operator.includes("+-")&&L.x<=R.x+q&&L.x>=R.x-q&&(c=n.percentage),a=Math.max(a,c),(!0===n.public&&2===o.length&&1===s||!0===n.public&&1===o.length&&0===s)&&this.currentStepCompletion.push({type:n.type,valid:n.percentage===a,step_percentage:n.percentage,completion:{current_keypoint:i,current_keypoint_X:L.x,current_keypoint_X_score:L.score,reference_keypoint:n.reference,reference_keypoint_X:R.x,reference_keypoint_X_score:R.score,tolerance:q}});break;case"same_x":let[E,X]=n.reference.split("||")[0].split("--"),U=Math.abs(t.get(E).x-t.get(X).x),[K,O]=n.reference.split("||")[1].split("--"),F=Math.abs(t.get(K).x-t.get(O).x),[N,Y]=i.split("--");t.get(N).y-t.get(Y).y<=("up"===this.point_of_view?n.upper_scale_acceptance[r]:n.scale_acceptance[r])/100*Math.max(U,F)&&(c=n.percentage),a=Math.max(a,c);break;case"distance_y":let[j,z]=i.split("--"),T=Math.abs(t.get(z).y-t.get(j).y),V=Math.abs(t.get(n.reference.split("--")[1]).y-t.get(n.reference.split("--")[0]).y),A="up"===this.point_of_view?n.upper_scale_acceptance[r]:n.scale_acceptance[r],H=n.value/100*V+A/100*V,B=V-n.value;c="<="===n.operator&&T<=H||">="===n.operator&&T>=H?n.percentage:n.percentage*((V-T)/B*100/100),a=Math.max(a,c);break;default:console.error("Unhandled parameter type:",n.type,n),alert("Unhandled parameter type: "+n.type)}}),s+=a,i+=n.percentage});let a=s/i*100;n?this.checkLastStep(a,n):this.currentStepProgression=a}setCurrentStepProgression(e,t,r){let n=this.steps[this.currentStepIndex];if(0===n.position)this.currentProgression=n.percentage*(this.currentStepProgression/100);else{var i;let e=0;null===(i=this.steps)||void 0===i||i.map(t=>{t.position<this.currentStepIndex&&(e+=t.percentage)}),this.currentProgression=e+n.percentage*(this.currentStepProgression/100)}if(!0===this.keepCheckingLastStep){let n=this.currentStepIndex-1>=0?this.currentStepIndex-1:this.steps.length-1;o.calculateStepCompletion(e,t,r,n)}}calculateUniqueTrueSeconds(){let e=new Set;
1return Object.entries(this.history).forEach(t=>{let[r,n]=t;if(n){let t=Math.floor(Number(r)/1e3);e.add(t)}}),e.size}checkLastStep(e,t){"dynamic"===this.type&&this.history[t]<e&&(this.history[t]=e)}validateCurrentStep(e,t){let r=this.steps[this.currentStepIndex];this.currentStepProgression>=r.scale_acceptance[e]&&("dynamic"===this.type?this.history[this.counter]=this.currentStepProgression:"static"!==this.type||this.history[t]||(this.history[t]=!0),this.keepCheckingLastStep=!0,this.currentStepProgression=0,this.currentStepIndex===this.steps.length-1?(this.counter+=1,this.currentStepIndex=0):this.currentStepIndex+=1)}getCurrentStepCompletion(){return this.currentStepCompletion}getKeepCheckingLastStep(){return this.keepCheckingLastStep}getInitialPosture(){return this.initialPosture}getHistory(){return Object.values(this.history).map((e,t)=>({name:(t+1).toString(),value:e}))}getCounter(){return"static"===this.type?this.calculateUniqueTrueSeconds():this.counter}getReady(){return this.ready}getCurrentProgression(){return this.currentProgression}getCurrentRecommendations(){return this.currentRecommendations}
1setPointOfView(e,t){let r=t/2,n=(e.get("left_knee").y+e.get("right_knee").y)/2;Math.abs(r-(e.get("left_hip").y+e.get("right_hip").y)/2)<=Math.abs(r-n)&&(this.point_of_view="up")}setSteps(e){this.steps=e.movement_steps,this.currentStepIndex=0,this.initialPosture=e.movement_initial_posture||null,this.type=e.type}setCounter(e){this.counter=e}setReady(e){this.ready=e}constructor(){this.counter=0,this.currentProgression=0,this.currentStepProgression=0,this.currentStepCompletion=[],this.currentStepIndex=0,this.currentRecommendations=[],this.globalRecommendations={},this.steps,this.keepCheckingLastStep=!1,this.type,this.initialPosture=null,this.ready=!1,this.point_of_view="low",this.history={},this.lost_keypoint_counter=0}}let o=new s;function a(e,t,r,i){if(!e)return{correct:!1,message:"please wait, we are loading keypoints"};let s=o.getInitialPosture();if(!(0,n.Xo)(null==s?void 0:s.required_points,e)||!(0,n.Lb)(e,null==s?void 0:s.required_points,s,r,i))return{correct:!1,message:"user is not in the detection frame",requirements:s};let a=(0,n.M_)(e);return"face"===s.type&&"face"!=a?{correct:!1,message:"user must face the camera",direction:"face-camera"}:"profile"===s.type&&"face"===a?{correct:!1,message:"user must be on one of his profile",direction:"profile-camera"}
1:(o.setReady(!0),o.setPointOfView(e,i),{correct:!0,message:"valid requirements"})}function c(e,t,r,i){var s;if(!o.getReady()||!e)return{count:o.getCounter(),progression:0,error:"invalid user placement"};if((0,n.Xo)(null===(s=o.getInitialPosture())||void 0===s?void 0:s.required_points,e))o.resetLostKeypointCounter();else if(o.addLostKeypointCounter()>10)return{count:o.getCounter(),progression:0,error:"some keypoints are missing"};o.calculateStepCompletion(t,e,r),o.setCurrentStepProgression(t,e,r),o.validateCurrentStep(r,i);let a=o.calculateStepRecommendations(t,e,r);return{count:o.getCounter(),progression:o.getCurrentProgression(),recommendations:a,step_completion:o.getCurrentStepCompletion()}}},57545:function(e,t,r){r.d(t,{Lb:function(){return n},M_:function(){return i},Xo:function(){return s}});let n=(e,t,r,n,i)=>{if(!t||0===t.length)return!1;let s=parseFloat(r.padding_horizontal)/100*n,o=parseFloat(r.padding_vertical)/100*i,a=n-s,c=i-o,p=e=>e&&e.x>=s&&e.x<=a&&e.y>=o&&e.y<=c&&Number(e.score)>=.5;for(let r of t)if(r.includes("||")){if(!r.split("||").some(t=>p(e.get(t))))return!1}else if(!p(e.get(r)))return!1;return!0},i=e=>{let t="face";return e.get("nose").x>e.get("left_hip").x&&e.get("nose").x>e.get("right_hip").x?t="profile_left":e.get("nose").x<e.get("left_hip").x&&e.get("nose").x<e.get("right_hip").x&&(t="profile_right"),t},s=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.5;for(let n of e)if(n.includes("||")){let e=n.split("||"),i=!1;for(let n of e){let e=t.get(n);if(e&&e.score>=r){i=!0;break}}if(!i)return!1}else{let e=t.get(n);if(!(null==e?void 0:e.score)||(null==e?void 0:e.score)<r)return!1}return!0}}}]);

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.