@phelian/react-body-highlighter 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/assets/index.d.ts +10 -0
- package/dist/component/Model.d.ts +23 -0
- package/dist/component/metadata.d.ts +60 -0
- package/dist/constants/index.d.ts +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -0
- package/dist/react-body-highlighter.cjs.development.js +442 -0
- package/dist/react-body-highlighter.cjs.development.js.map +1 -0
- package/dist/react-body-highlighter.cjs.production.min.js +2 -0
- package/dist/react-body-highlighter.cjs.production.min.js.map +1 -0
- package/dist/react-body-highlighter.esm.js +436 -0
- package/dist/react-body-highlighter.esm.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/package.json +706 -0
- package/src/assets/index.ts +424 -0
- package/src/component/Model.tsx +72 -0
- package/src/component/metadata.ts +69 -0
- package/src/constants/index.ts +32 -0
- package/src/index.ts +2 -0
- package/src/utils/index.ts +42 -0
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
var MuscleType = {
|
|
8
|
+
TRAPEZIUS: 'trapezius',
|
|
9
|
+
UPPER_BACK: 'upper-back',
|
|
10
|
+
LOWER_BACK: 'lower-back',
|
|
11
|
+
CHEST: 'chest',
|
|
12
|
+
BICEPS: 'biceps',
|
|
13
|
+
TRICEPS: 'triceps',
|
|
14
|
+
FOREARM: 'forearm',
|
|
15
|
+
BACK_DELTOIDS: 'back-deltoids',
|
|
16
|
+
FRONT_DELTOIDS: 'front-deltoids',
|
|
17
|
+
ABS: 'abs',
|
|
18
|
+
OBLIQUES: 'obliques',
|
|
19
|
+
ADDUCTOR: 'adductor',
|
|
20
|
+
ABDUCTORS: 'abductors',
|
|
21
|
+
HAMSTRING: 'hamstring',
|
|
22
|
+
QUADRICEPS: 'quadriceps',
|
|
23
|
+
CALVES: 'calves',
|
|
24
|
+
GLUTEAL: 'gluteal',
|
|
25
|
+
HEAD: 'head',
|
|
26
|
+
NECK: 'neck',
|
|
27
|
+
KNEES: 'knees',
|
|
28
|
+
LEFT_SOLEUS: 'left-soleus',
|
|
29
|
+
RIGHT_SOLEUS: 'right-soleus'
|
|
30
|
+
};
|
|
31
|
+
var ModelType = {
|
|
32
|
+
POSTERIOR: 'posterior',
|
|
33
|
+
ANTERIOR: 'anterior'
|
|
34
|
+
};
|
|
35
|
+
var BodyType = {
|
|
36
|
+
MALE: 'male',
|
|
37
|
+
FEMALE: 'female'
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var femaleAnteriorData = [{
|
|
41
|
+
muscle: MuscleType.HEAD,
|
|
42
|
+
svgPoints: ['43 3 41 10 42 18 45 22 50 24 55 22 58 18 59 10 57 3 50 0']
|
|
43
|
+
}, {
|
|
44
|
+
muscle: MuscleType.NECK,
|
|
45
|
+
svgPoints: ['54 23 51 30 51 37 58 38 64 42 64 37 60 34 56 29', '36 42 36 37 40 34 44 29 46 23 49 30 49 37 42 38']
|
|
46
|
+
}, {
|
|
47
|
+
muscle: MuscleType.FRONT_DELTOIDS,
|
|
48
|
+
svgPoints: ['72 51 73 46 73 41 70 38 66 37 67 42 66 47', '34 47 28 51 27 46 27 41 30 38 34 37 33 42']
|
|
49
|
+
}, {
|
|
50
|
+
muscle: MuscleType.CHEST,
|
|
51
|
+
svgPoints: ['51 42 51 48 52 54 56 58 62 56 65 50 63 44 58 40', '35 50 38 56 44 58 48 54 49 48 49 42 42 40 37 44']
|
|
52
|
+
}, {
|
|
53
|
+
muscle: MuscleType.BICEPS,
|
|
54
|
+
svgPoints: ['23 64 24 68 27 64 31 54 30 50 25 54', '69 50 68 54 72 64 76 68 77 65 74 54']
|
|
55
|
+
}, {
|
|
56
|
+
muscle: MuscleType.TRICEPS,
|
|
57
|
+
svgPoints: ['66 54 66 59 71 68 73 66 71 63', '27 66 32 54 32 59 28 68']
|
|
58
|
+
}, {
|
|
59
|
+
muscle: MuscleType.OBLIQUES,
|
|
60
|
+
svgPoints: ['62 60 61 56 56 58 56 62 57 72 58 82 62 80 63 70', '38 80 37 70 36 60 39 56 44 58 44 62 43 72 42 82']
|
|
61
|
+
}, {
|
|
62
|
+
muscle: MuscleType.ABS,
|
|
63
|
+
svgPoints: ['54 59 55 64 56 74 56 84 55 92 54 98 51 102 51 82 51 66 51 58', '46 59 49 58 49 66 49 82 49 102 46 98 44 92 44 84 44 74 45 64']
|
|
64
|
+
}, {
|
|
65
|
+
muscle: MuscleType.ABDUCTORS,
|
|
66
|
+
svgPoints: ['52 104 54 116 60 108 64 98 68 92 63 90 58 98 55 104', '48 104 46 116 40 108 36 98 32 92 37 90 42 98 45 104']
|
|
67
|
+
}, {
|
|
68
|
+
muscle: MuscleType.QUADRICEPS,
|
|
69
|
+
svgPoints: ['32 96 34 104 35 120 33 132 30 128 28 118 27 108 28 98 31 93', '68 93 72 98 73 108 72 118 70 128 67 132 65 120 66 104 68 96', '37 124 37 110 39 116 42 124 41 132 39 142 36 142 35 136', '63 142 61 124 64 112 65 126 67 136 65 142', '32 134 27 140 26 132 26 124 27 112 29 128', '73 112 74 124 74 136 73 140 68 134 71 128']
|
|
70
|
+
}, {
|
|
71
|
+
muscle: MuscleType.KNEES,
|
|
72
|
+
svgPoints: ['33 136 34 140 35 144 35 148 34 153 30 153 28 150 28 145 30 141', '67 136 72 145 72 150 70 153 66 153 65 148']
|
|
73
|
+
}, {
|
|
74
|
+
muscle: MuscleType.CALVES,
|
|
75
|
+
svgPoints: ['72 156 74 151 76 158 78 164 77 182 78 192 74 192', '26 192 28 162 28 157 27 152 26 155 24 159 23 165 23 184 22 192', '73 192 71 157 67 156 66 160 66 164 67 174', '35 156 35 160 35 165 35 170 34 175 33 180 31 185 28 192 28 186 29 178 29 173 30 168 30 163 31 157']
|
|
76
|
+
}, {
|
|
77
|
+
muscle: MuscleType.FOREARM,
|
|
78
|
+
svgPoints: ['12 84 15 74 19 70 20 73 22 72 10 92 6 95', '81 70 80 73 78 72 90 92 94 95 88 85 85 74', '75 71 76 75 78 81 82 87 88 96 90 94', '12 96 17 87 21 81 23 75 23 71 10 93']
|
|
79
|
+
}];
|
|
80
|
+
var femalePosteriorData = [{
|
|
81
|
+
muscle: MuscleType.HEAD,
|
|
82
|
+
svgPoints: ['50 2 46 3 43 7 43 13 46 18 50 19 54 18 57 13 57 7 54 3']
|
|
83
|
+
}, {
|
|
84
|
+
muscle: MuscleType.TRAPEZIUS,
|
|
85
|
+
svgPoints: ['46 19 48 19 48 34 48 54 43 48 41 42 38 39 42 35 45 25', '52 19 54 19 55 25 58 35 62 39 59 42 57 48 52 54 52 34']
|
|
86
|
+
}, {
|
|
87
|
+
muscle: MuscleType.BACK_DELTOIDS,
|
|
88
|
+
svgPoints: ['36 39 31 41 27 45 28 52 31 49 34 46', '64 39 69 41 73 45 72 52 69 49 66 46']
|
|
89
|
+
}, {
|
|
90
|
+
muscle: MuscleType.UPPER_BACK,
|
|
91
|
+
svgPoints: ['38 41 35 48 36 54 40 66 48 64 48 60 43 52 40 44', '62 41 65 48 64 54 60 66 52 64 52 60 57 52 60 44']
|
|
92
|
+
}, {
|
|
93
|
+
muscle: MuscleType.TRICEPS,
|
|
94
|
+
svgPoints: ['34 50 27 54 24 67 26 74 29 62 34 55', '66 50 73 54 76 67 74 74 71 62 66 55', '34 57 34 65 31 70 28 72 30 64', '66 57 70 64 72 72 69 70 66 65']
|
|
95
|
+
}, {
|
|
96
|
+
muscle: MuscleType.LOWER_BACK,
|
|
97
|
+
svgPoints: ['48 64 43 67 44 73 50 84 48 73', '52 64 57 67 56 73 50 84 52 73']
|
|
98
|
+
}, {
|
|
99
|
+
muscle: MuscleType.FOREARM,
|
|
100
|
+
svgPoints: ['77 71 82 78 84 86 90 98 87 96 81 84 78 78', '23 71 18 78 16 86 10 98 13 96 19 84 22 78', '74 75 72 74 73 79 83 95 85 100 86 97', '26 75 28 74 27 79 17 95 15 100 14 97']
|
|
101
|
+
}, {
|
|
102
|
+
muscle: MuscleType.GLUTEAL,
|
|
103
|
+
svgPoints: ['44 82 22 90 20 105 22 116 26 124 44 120 50 102', '56 82 50 102 56 120 74 124 78 116 80 105 78 90']
|
|
104
|
+
}, {
|
|
105
|
+
muscle: MuscleType.ADDUCTOR,
|
|
106
|
+
svgPoints: ['49 122 42 122 36 126 42 146 49 136 49 128', '51 122 58 122 64 126 58 146 51 136 51 128']
|
|
107
|
+
}, {
|
|
108
|
+
muscle: MuscleType.HAMSTRING,
|
|
109
|
+
svgPoints: ['22 120 27 128 33 126 32 136 30 152 26 160 25 150 23 142 22 132', '78 120 73 128 67 126 68 136 70 152 74 160 75 150 77 142 78 132', '35 125 42 146 38 168 32 156 34 135', '65 125 66 135 68 156 62 168 58 146']
|
|
110
|
+
}, {
|
|
111
|
+
muscle: MuscleType.KNEES,
|
|
112
|
+
svgPoints: ['30 156 27 162 29 168 33 165', '70 156 67 165 71 168 73 162']
|
|
113
|
+
}, {
|
|
114
|
+
muscle: MuscleType.CALVES,
|
|
115
|
+
svgPoints: ['25 162 24 170 21 181 20 194 22 198 24 195 25 183 27 175 27 170', '32 168 30 171 29 175 27 183 26 195 29 202 33 194 34 172', '67 168 66 172 66 194 70 202 74 195 73 183 71 174', '75 162 76 172 79 182 80 194 78 198 76 195 75 183 73 172']
|
|
116
|
+
}, {
|
|
117
|
+
muscle: MuscleType.LEFT_SOLEUS,
|
|
118
|
+
svgPoints: ['24 197 26 197 29 203 26 220 24 215 22 201']
|
|
119
|
+
}, {
|
|
120
|
+
muscle: MuscleType.RIGHT_SOLEUS,
|
|
121
|
+
svgPoints: ['74 197 76 197 78 201 76 215 74 220 71 204']
|
|
122
|
+
}];
|
|
123
|
+
var anteriorData = [{
|
|
124
|
+
muscle: MuscleType.CHEST,
|
|
125
|
+
svgPoints: ['51.8367347 41.6326531 51.0204082 55.1020408 57.9591837 57.9591837 67.755102 55.5102041 70.6122449 47.3469388 62.0408163 41.6326531 ', '29.7959184 46.5306122 31.4285714 55.5102041 40.8163265 57.9591837 48.1632653 55.1020408 47.755102 42.0408163 37.5510204 42.0408163']
|
|
126
|
+
}, {
|
|
127
|
+
muscle: MuscleType.OBLIQUES,
|
|
128
|
+
svgPoints: ['68.5714286 63.2653061 67.3469388 57.1428571 58.7755102 59.5918367 60 64.0816327 60.4081633 83.2653061 65.7142857 78.7755102 66.5306122 69.7959184', '33.877551 78.3673469 33.0612245 71.8367347 31.0204082 63.2653061 32.244898 57.1428571 40.8163265 59.1836735 39.1836735 63.2653061 39.1836735 83.6734694']
|
|
129
|
+
}, {
|
|
130
|
+
muscle: MuscleType.ABS,
|
|
131
|
+
svgPoints: ['56.3265306 59.1836735 57.9591837 64.0816327 58.3673469 77.9591837 58.3673469 92.6530612 56.3265306 98.3673469 55.1020408 104.081633 51.4285714 107.755102 51.0204082 84.4897959 50.6122449 67.3469388 51.0204082 57.1428571', '43.6734694 58.7755102 48.5714286 57.1428571 48.9795918 67.3469388 48.5714286 84.4897959 48.1632653 107.346939 44.4897959 103.673469 40.8163265 91.4285714 40.8163265 78.3673469 41.2244898 64.4897959']
|
|
132
|
+
}, {
|
|
133
|
+
muscle: MuscleType.BICEPS,
|
|
134
|
+
svgPoints: ['16.7346939 68.1632653 17.9591837 71.4285714 22.8571429 66.122449 28.9795918 53.877551 27.755102 49.3877551 20.4081633 55.9183673', '71.4285714 49.3877551 70.2040816 54.6938776 76.3265306 66.122449 81.6326531 71.8367347 82.8571429 68.9795918 78.7755102 55.5102041']
|
|
135
|
+
}, {
|
|
136
|
+
muscle: MuscleType.TRICEPS,
|
|
137
|
+
svgPoints: ['69.3877551 55.5102041 69.3877551 61.6326531 75.9183673 72.6530612 77.5510204 70.2040816 75.5102041 67.3469388', '22.4489796 69.3877551 29.7959184 55.5102041 29.7959184 60.8163265 22.8571429 73.0612245']
|
|
138
|
+
}, {
|
|
139
|
+
muscle: MuscleType.NECK,
|
|
140
|
+
svgPoints: ['55.5102041 23.6734694 50.6122449 33.4693878 50.6122449 39.1836735 61.6326531 40 70.6122449 44.8979592 69.3877551 36.7346939 63.2653061 35.1020408 58.3673469 30.6122449', '28.9795918 44.8979592 30.2040816 37.1428571 36.3265306 35.1020408 41.2244898 30.2040816 44.4897959 24.4897959 48.9795918 33.877551 48.5714286 39.1836735 37.9591837 39.5918367']
|
|
141
|
+
}, {
|
|
142
|
+
muscle: MuscleType.FRONT_DELTOIDS,
|
|
143
|
+
svgPoints: ['78.3673469 53.0612245 79.5918367 47.755102 79.1836735 41.2244898 75.9183673 37.9591837 71.0204082 36.3265306 72.244898 42.8571429 71.4285714 47.3469388', '28.1632653 47.3469388 21.2244898 53.0612245 20 47.755102 20.4081633 40.8163265 24.4897959 37.1428571 28.5714286 37.1428571 26.9387755 43.2653061']
|
|
144
|
+
}, {
|
|
145
|
+
muscle: MuscleType.HEAD,
|
|
146
|
+
svgPoints: ['42.4489796 2.85714286 40 11.8367347 42.0408163 19.5918367 46.122449 23.2653061 49.7959184 25.3061224 54.6938776 22.4489796 57.5510204 19.1836735 59.1836735 10.2040816 57.1428571 2.44897959 49.7959184 0']
|
|
147
|
+
}, {
|
|
148
|
+
muscle: MuscleType.ABDUCTORS,
|
|
149
|
+
svgPoints: ['52.6530612 110.204082 54.2857143 124.897959 60 110.204082 62.0408163 100 64.8979592 94.2857143 60 92.6530612 56.7346939 104.489796', '47.755102 110.612245 44.8979592 125.306122 42.0408163 115.918367 40.4081633 113.061224 39.5918367 107.346939 37.9591837 102.44898 34.6938776 93.877551 39.5918367 92.244898 41.6326531 99.1836735 43.6734694 105.306122']
|
|
150
|
+
}, {
|
|
151
|
+
muscle: MuscleType.QUADRICEPS,
|
|
152
|
+
svgPoints: ['34.6938776 98.7755102 37.1428571 108.163265 37.1428571 127.755102 34.2857143 137.142857 31.0204082 132.653061 29.3877551 120 28.1632653 111.428571 29.3877551 100.816327 32.244898 94.6938776', '63.2653061 105.714286 64.4897959 100 66.9387755 94.6938776 70.2040816 101.22449 71.0204082 111.836735 68.1632653 133.061224 65.3061224 137.55102 62.4489796 128.571429 62.0408163 111.428571', '38.7755102 129.387755 38.3673469 112.244898 41.2244898 118.367347 44.4897959 129.387755 42.8571429 135.102041 40 146.122449 36.3265306 146.530612 35.5102041 140', '59.5918367 145.714286 55.5102041 128.979592 60.8163265 113.877551 61.2244898 130.204082 64.0816327 139.591837 62.8571429 146.530612', '32.6530612 138.367347 26.5306122 145.714286 25.7142857 136.734694 25.7142857 127.346939 26.9387755 114.285714 29.3877551 133.469388', '71.8367347 113.061224 73.877551 124.081633 73.877551 140.408163 72.6530612 145.714286 66.5306122 138.367347 70.2040816 133.469388']
|
|
153
|
+
}, {
|
|
154
|
+
muscle: MuscleType.KNEES,
|
|
155
|
+
svgPoints: ['33.877551 140 34.6938776 143.265306 35.5102041 147.346939 36.3265306 151.020408 35.1020408 156.734694 29.7959184 156.734694 27.3469388 152.653061 27.3469388 147.346939 30.2040816 144.081633', '65.7142857 140 72.244898 147.755102 72.244898 152.244898 69.7959184 157.142857 64.8979592 156.734694 62.8571429 151.020408']
|
|
156
|
+
}, {
|
|
157
|
+
muscle: MuscleType.CALVES,
|
|
158
|
+
svgPoints: ['71.4285714 160.408163 73.4693878 153.469388 76.7346939 161.22449 79.5918367 167.755102 78.3673469 187.755102 79.5918367 195.510204 74.6938776 195.510204', '24.8979592 194.693878 27.755102 164.897959 28.1632653 160.408163 26.122449 154.285714 24.8979592 157.55102 22.4489796 161.632653 20.8163265 167.755102 22.0408163 188.163265 20.8163265 195.510204', '72.6530612 195.102041 69.7959184 159.183673 65.3061224 158.367347 64.0816327 162.44898 64.0816327 165.306122 65.7142857 177.142857', '35.5102041 158.367347 35.9183673 162.44898 35.9183673 166.938776 35.1020408 172.244898 35.1020408 176.734694 32.244898 182.040816 30.6122449 187.346939 26.9387755 194.693878 27.3469388 187.755102 28.1632653 180.408163 28.5714286 175.510204 28.9795918 169.795918 29.7959184 164.081633 30.2040816 158.77551']
|
|
159
|
+
}, {
|
|
160
|
+
muscle: MuscleType.FOREARM,
|
|
161
|
+
svgPoints: ['6.12244898 88.5714286 10.2040816 75.1020408 14.6938776 70.2040816 16.3265306 74.2857143 19.1836735 73.4693878 4.48979592 97.5510204 0 100', '84.4897959 69.7959184 83.2653061 73.4693878 80 73.0612245 95.1020408 98.3673469 100 100.408163 93.4693878 89.3877551 89.7959184 76.3265306', '77.5510204 72.244898 77.5510204 77.5510204 80.4081633 84.0816327 85.3061224 89.7959184 92.244898 101.22449 94.6938776 99.5918367', '6.93877551 101.22449 13.4693878 90.6122449 18.7755102 84.0816327 21.6326531 77.1428571 21.2244898 71.8367347 4.89795918 98.7755102']
|
|
162
|
+
}];
|
|
163
|
+
var posteriorData = [{
|
|
164
|
+
muscle: MuscleType.HEAD,
|
|
165
|
+
svgPoints: ['50.6382979 0 45.9574468 0.85106383 40.8510638 5.53191489 40.4255319 12.7659574 45.106383 20 55.7446809 20 59.1489362 13.6170213 59.5744681 4.68085106 55.7446809 1.27659574']
|
|
166
|
+
}, {
|
|
167
|
+
muscle: MuscleType.TRAPEZIUS,
|
|
168
|
+
svgPoints: ['44.6808511 21.7021277 47.6595745 21.7021277 47.2340426 38.2978723 47.6595745 64.6808511 38.2978723 53.1914894 35.3191489 40.8510638 31.0638298 36.5957447 39.1489362 33.1914894 43.8297872 27.2340426', '52.3404255 21.7021277 55.7446809 21.7021277 56.5957447 27.2340426 60.8510638 32.7659574 68.9361702 36.5957447 64.6808511 40.4255319 61.7021277 53.1914894 52.3404255 64.6808511 53.1914894 38.2978723']
|
|
169
|
+
}, {
|
|
170
|
+
muscle: MuscleType.BACK_DELTOIDS,
|
|
171
|
+
svgPoints: ['29.3617021 37.0212766 22.9787234 39.1489362 17.4468085 44.2553191 18.2978723 53.6170213 24.2553191 49.3617021 27.2340426 46.3829787', '71.0638298 37.0212766 78.2978723 39.5744681 82.5531915 44.6808511 81.7021277 53.6170213 74.893617 48.9361702 72.3404255 45.106383']
|
|
172
|
+
}, {
|
|
173
|
+
muscle: MuscleType.UPPER_BACK,
|
|
174
|
+
svgPoints: ['31.0638298 38.7234043 28.0851064 48.9361702 28.5106383 55.3191489 34.0425532 75.3191489 47.2340426 71.0638298 47.2340426 66.3829787 36.5957447 54.0425532 33.6170213 41.2765957', '68.9361702 38.7234043 71.9148936 49.3617021 71.4893617 56.1702128 65.9574468 75.3191489 52.7659574 71.0638298 52.7659574 66.3829787 63.4042553 54.4680851 66.3829787 41.7021277']
|
|
175
|
+
}, {
|
|
176
|
+
muscle: MuscleType.TRICEPS,
|
|
177
|
+
svgPoints: ['26.8085106 49.787234 17.8723404 55.7446809 14.4680851 72.3404255 16.5957447 81.7021277 21.7021277 63.8297872 26.8085106 55.7446809', '73.6170213 50.212766 82.1276596 55.7446809 85.9574468 73.1914894 83.4042553 82.1276596 77.8723404 62.9787234 73.1914894 55.7446809', '26.8085106 58.2978723 26.8085106 68.5106383 22.9787234 75.3191489 19.1489362 77.4468085 22.5531915 65.5319149', '72.7659574 58.2978723 77.0212766 64.6808511 80.4255319 77.4468085 76.5957447 75.3191489 72.7659574 68.9361702']
|
|
178
|
+
}, {
|
|
179
|
+
muscle: MuscleType.LOWER_BACK,
|
|
180
|
+
svgPoints: ['47.6595745 72.7659574 34.4680851 77.0212766 35.3191489 83.4042553 49.3617021 102.12766 46.8085106 82.9787234', '52.3404255 72.7659574 65.5319149 77.0212766 64.6808511 83.4042553 50.6382979 102.12766 53.1914894 83.8297872']
|
|
181
|
+
}, {
|
|
182
|
+
muscle: MuscleType.FOREARM,
|
|
183
|
+
svgPoints: ['86.3829787 75.7446809 91.0638298 83.4042553 93.1914894 94.0425532 100 106.382979 96.1702128 104.255319 88.0851064 89.3617021 84.2553191 83.8297872', '13.6170213 75.7446809 8.93617021 83.8297872 6.80851064 93.6170213 0 106.382979 3.82978723 104.255319 12.3404255 88.5106383 15.7446809 82.9787234', '81.2765957 79.5744681 77.4468085 77.8723404 79.1489362 84.6808511 91.0638298 103.829787 93.1914894 108.93617 94.4680851 104.680851', '18.7234043 79.5744681 22.1276596 77.8723404 20.8510638 84.2553191 9.36170213 102.978723 6.80851064 108.510638 5.10638298 104.680851']
|
|
184
|
+
}, {
|
|
185
|
+
muscle: MuscleType.GLUTEAL,
|
|
186
|
+
svgPoints: ['44.6808511 99.5744681 30.212766 108.510638 29.787234 118.723404 31.4893617 125.957447 47.2340426 121.276596 49.3617021 114.893617', '55.3191489 99.1489362 51.0638298 114.468085 52.3404255 120.851064 68.0851064 125.957447 69.787234 119.148936 69.3617021 108.510638']
|
|
187
|
+
}, {
|
|
188
|
+
muscle: MuscleType.ADDUCTOR,
|
|
189
|
+
svgPoints: ['48.0851064 122.978723 44.6808511 122.978723 41.2765957 125.531915 45.106383 144.255319 48.5106383 135.744681 48.9361702 129.361702', '51.9148936 122.553191 55.7446809 123.404255 59.1489362 125.957447 54.893617 144.255319 51.9148936 136.170213 51.0638298 129.361702']
|
|
190
|
+
}, {
|
|
191
|
+
muscle: MuscleType.HAMSTRING,
|
|
192
|
+
svgPoints: ['28.9361702 122.12766 31.0638298 129.361702 36.5957447 125.957447 35.3191489 135.319149 34.4680851 150.212766 29.3617021 158.297872 28.9361702 146.808511 27.6595745 141.276596 27.2340426 131.489362', '71.4893617 121.702128 69.3617021 128.93617 63.8297872 125.957447 65.5319149 136.595745 66.3829787 150.212766 71.0638298 158.297872 71.4893617 147.659574 72.7659574 142.12766 73.6170213 131.914894', '38.7234043 125.531915 44.2553191 145.957447 40.4255319 166.808511 36.1702128 152.765957 37.0212766 135.319149', '61.7021277 125.531915 63.4042553 136.170213 64.2553191 153.191489 60 166.808511 56.1702128 146.382979']
|
|
193
|
+
}, {
|
|
194
|
+
muscle: MuscleType.KNEES,
|
|
195
|
+
svgPoints: ['34.4680851 153.191489 31.0638298 159.148936 33.6170213 166.382979 37.4468085 162.553191', '66.3829787 153.617021 62.9787234 162.978723 66.8085106 166.382979 69.3617021 159.148936']
|
|
196
|
+
}, {
|
|
197
|
+
muscle: MuscleType.CALVES,
|
|
198
|
+
svgPoints: ['29.3617021 160.425532 28.5106383 167.234043 24.6808511 179.574468 23.8297872 192.765957 25.5319149 197.021277 28.5106383 193.191489 29.787234 180 31.9148936 171.06383 31.9148936 166.808511', '37.4468085 165.106383 35.3191489 167.659574 33.1914894 171.914894 31.0638298 180.425532 30.212766 191.914894 34.0425532 200 38.7234043 190.638298 39.1489362 168.93617', '62.9787234 165.106383 61.2765957 168.510638 61.7021277 190.638298 66.3829787 199.574468 70.6382979 191.914894 68.9361702 179.574468 66.8085106 170.212766', '70.6382979 160.425532 72.3404255 168.510638 75.7446809 179.148936 76.5957447 192.765957 74.4680851 196.595745 72.3404255 193.617021 70.6382979 179.574468 68.0851064 168.085106']
|
|
199
|
+
}, {
|
|
200
|
+
muscle: MuscleType.LEFT_SOLEUS,
|
|
201
|
+
svgPoints: ['28.5106383 195.744681 30.212766 195.744681 33.6170213 201.702128 30.6382979 220 28.5106383 213.617021 26.8085106 198.297872']
|
|
202
|
+
}, {
|
|
203
|
+
muscle: MuscleType.RIGHT_SOLEUS,
|
|
204
|
+
svgPoints: ['69.787234 195.744681 71.9148936 195.744681 73.6170213 198.297872 71.9148936 213.191489 70.212766 219.574468 67.2340426 202.12766']
|
|
205
|
+
}];
|
|
206
|
+
|
|
207
|
+
function _arrayLikeToArray(r, a) {
|
|
208
|
+
(null == a || a > r.length) && (a = r.length);
|
|
209
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
210
|
+
return n;
|
|
211
|
+
}
|
|
212
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
213
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
214
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
215
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
216
|
+
t && (r = t);
|
|
217
|
+
var o = 0;
|
|
218
|
+
return function () {
|
|
219
|
+
return o >= r.length ? {
|
|
220
|
+
done: !0
|
|
221
|
+
} : {
|
|
222
|
+
done: !1,
|
|
223
|
+
value: r[o++]
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
228
|
+
}
|
|
229
|
+
function _unsupportedIterableToArray(r, a) {
|
|
230
|
+
if (r) {
|
|
231
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
232
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
233
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var DEFAULT_MUSCLE_DATA = {
|
|
238
|
+
trapezius: {
|
|
239
|
+
exercises: [],
|
|
240
|
+
frequency: 0
|
|
241
|
+
},
|
|
242
|
+
'upper-back': {
|
|
243
|
+
exercises: [],
|
|
244
|
+
frequency: 0
|
|
245
|
+
},
|
|
246
|
+
'lower-back': {
|
|
247
|
+
exercises: [],
|
|
248
|
+
frequency: 0
|
|
249
|
+
},
|
|
250
|
+
chest: {
|
|
251
|
+
exercises: [],
|
|
252
|
+
frequency: 0
|
|
253
|
+
},
|
|
254
|
+
biceps: {
|
|
255
|
+
exercises: [],
|
|
256
|
+
frequency: 0
|
|
257
|
+
},
|
|
258
|
+
triceps: {
|
|
259
|
+
exercises: [],
|
|
260
|
+
frequency: 0
|
|
261
|
+
},
|
|
262
|
+
forearm: {
|
|
263
|
+
exercises: [],
|
|
264
|
+
frequency: 0
|
|
265
|
+
},
|
|
266
|
+
'back-deltoids': {
|
|
267
|
+
exercises: [],
|
|
268
|
+
frequency: 0
|
|
269
|
+
},
|
|
270
|
+
'front-deltoids': {
|
|
271
|
+
exercises: [],
|
|
272
|
+
frequency: 0
|
|
273
|
+
},
|
|
274
|
+
abs: {
|
|
275
|
+
exercises: [],
|
|
276
|
+
frequency: 0
|
|
277
|
+
},
|
|
278
|
+
obliques: {
|
|
279
|
+
exercises: [],
|
|
280
|
+
frequency: 0
|
|
281
|
+
},
|
|
282
|
+
adductor: {
|
|
283
|
+
exercises: [],
|
|
284
|
+
frequency: 0
|
|
285
|
+
},
|
|
286
|
+
hamstring: {
|
|
287
|
+
exercises: [],
|
|
288
|
+
frequency: 0
|
|
289
|
+
},
|
|
290
|
+
quadriceps: {
|
|
291
|
+
exercises: [],
|
|
292
|
+
frequency: 0
|
|
293
|
+
},
|
|
294
|
+
abductors: {
|
|
295
|
+
exercises: [],
|
|
296
|
+
frequency: 0
|
|
297
|
+
},
|
|
298
|
+
calves: {
|
|
299
|
+
exercises: [],
|
|
300
|
+
frequency: 0
|
|
301
|
+
},
|
|
302
|
+
gluteal: {
|
|
303
|
+
exercises: [],
|
|
304
|
+
frequency: 0
|
|
305
|
+
},
|
|
306
|
+
head: {
|
|
307
|
+
exercises: [],
|
|
308
|
+
frequency: 0
|
|
309
|
+
},
|
|
310
|
+
neck: {
|
|
311
|
+
exercises: [],
|
|
312
|
+
frequency: 0
|
|
313
|
+
},
|
|
314
|
+
knees: {
|
|
315
|
+
exercises: [],
|
|
316
|
+
frequency: 0
|
|
317
|
+
},
|
|
318
|
+
'left-soleus': {
|
|
319
|
+
exercises: [],
|
|
320
|
+
frequency: 0
|
|
321
|
+
},
|
|
322
|
+
'right-soleus': {
|
|
323
|
+
exercises: [],
|
|
324
|
+
frequency: 0
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
var DEFAULT_BODY_COLOR = '#B6BDC3';
|
|
328
|
+
var DEFAULT_HIGHLIGHTED_COLORS = ['#81b1d9', '#277abf'];
|
|
329
|
+
var DEFAULT_MODEL_TYPE = ModelType.ANTERIOR;
|
|
330
|
+
var DEFAULT_BODY_TYPE = BodyType.MALE;
|
|
331
|
+
|
|
332
|
+
/*
|
|
333
|
+
* Utility function for choosing backup value if first value is undefined
|
|
334
|
+
*/
|
|
335
|
+
var ensure = function ensure(value, backupValue) {
|
|
336
|
+
return value == null ? backupValue : value;
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* Function which determines color of muscle based on how often it has been exercised
|
|
340
|
+
*/
|
|
341
|
+
var fillIntensityColor = function fillIntensityColor(activityMap, highlightedColors, muscle) {
|
|
342
|
+
var _activityMap$muscle;
|
|
343
|
+
var frequency = (_activityMap$muscle = activityMap[muscle]) == null ? void 0 : _activityMap$muscle.frequency;
|
|
344
|
+
if (frequency == null || frequency === 0) {
|
|
345
|
+
return undefined;
|
|
346
|
+
}
|
|
347
|
+
return highlightedColors[Math.min(highlightedColors.length - 1, frequency - 1)];
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Function which generates object with muscle data
|
|
351
|
+
*/
|
|
352
|
+
var fillMuscleData = function fillMuscleData(data) {
|
|
353
|
+
return data.reduce(function (acc, exercise) {
|
|
354
|
+
for (var _iterator = _createForOfIteratorHelperLoose(exercise.muscles), _step; !(_step = _iterator()).done;) {
|
|
355
|
+
var muscle = _step.value;
|
|
356
|
+
if (acc[muscle]) {
|
|
357
|
+
acc[muscle].exercises.push(exercise.name);
|
|
358
|
+
acc[muscle].frequency += exercise.frequency || 1;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return acc;
|
|
362
|
+
}, JSON.parse(JSON.stringify(DEFAULT_MUSCLE_DATA)));
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Component which displays a model of a body. Accepts many optional props for manipulating functionality or visuals of the component.
|
|
367
|
+
*
|
|
368
|
+
* @param data Array containing exercise objects
|
|
369
|
+
* @param bodyColor Default color of body model (with no muscles worked)
|
|
370
|
+
* @param bodyType Body type to display (default `male` vs `female`)
|
|
371
|
+
* @param highlightedColors Array containing colors to display depending on frequency muscle is worked (where array index = frequency - 1)
|
|
372
|
+
* @param onClick Callback function when a muscle is clicked (returns back object with muscle-related data)
|
|
373
|
+
* @param svgStyle Style object that gets passed to SVG element
|
|
374
|
+
* @param style Style object that gets passed to SVG parent wrapper (div)
|
|
375
|
+
* @param type Denotes type of model (default `anterior` view vs `posterior` view)
|
|
376
|
+
*
|
|
377
|
+
* @component
|
|
378
|
+
* @example
|
|
379
|
+
* const data = [{ name: 'Bench Press', muscles: ['chest', 'triceps', 'front-deltoids'] }]
|
|
380
|
+
* return (
|
|
381
|
+
* <Model type="posterior" bodyType="female" data={data} />
|
|
382
|
+
* )
|
|
383
|
+
*/
|
|
384
|
+
var Model = /*#__PURE__*/React.memo(function Model(_ref) {
|
|
385
|
+
var _ref$data = _ref.data,
|
|
386
|
+
data = _ref$data === void 0 ? [] : _ref$data,
|
|
387
|
+
_ref$bodyColor = _ref.bodyColor,
|
|
388
|
+
bodyColor = _ref$bodyColor === void 0 ? DEFAULT_BODY_COLOR : _ref$bodyColor,
|
|
389
|
+
_ref$bodyType = _ref.bodyType,
|
|
390
|
+
bodyType = _ref$bodyType === void 0 ? DEFAULT_BODY_TYPE : _ref$bodyType,
|
|
391
|
+
_ref$highlightedColor = _ref.highlightedColors,
|
|
392
|
+
highlightedColors = _ref$highlightedColor === void 0 ? DEFAULT_HIGHLIGHTED_COLORS : _ref$highlightedColor,
|
|
393
|
+
_onClick = _ref.onClick,
|
|
394
|
+
svgStyle = _ref.svgStyle,
|
|
395
|
+
style = _ref.style,
|
|
396
|
+
_ref$type = _ref.type,
|
|
397
|
+
type = _ref$type === void 0 ? DEFAULT_MODEL_TYPE : _ref$type;
|
|
398
|
+
var muscleData = fillMuscleData(data);
|
|
399
|
+
var getModelData = function getModelData() {
|
|
400
|
+
if (bodyType === BodyType.FEMALE) {
|
|
401
|
+
return type === ModelType.ANTERIOR ? femaleAnteriorData : femalePosteriorData;
|
|
402
|
+
}
|
|
403
|
+
return type === ModelType.ANTERIOR ? anteriorData : posteriorData;
|
|
404
|
+
};
|
|
405
|
+
var modelData = getModelData();
|
|
406
|
+
var handleClick = function handleClick(muscle, callback) {
|
|
407
|
+
callback == null || callback({
|
|
408
|
+
muscle: muscle,
|
|
409
|
+
data: muscleData[muscle]
|
|
410
|
+
});
|
|
411
|
+
};
|
|
412
|
+
return React.createElement("div", {
|
|
413
|
+
style: style,
|
|
414
|
+
className: "rbh-wrapper"
|
|
415
|
+
}, React.createElement("svg", {
|
|
416
|
+
className: "rbh",
|
|
417
|
+
width: "100%",
|
|
418
|
+
height: "100%",
|
|
419
|
+
viewBox: "0 0 100 200",
|
|
420
|
+
style: svgStyle
|
|
421
|
+
}, modelData.map(function (exercise) {
|
|
422
|
+
return exercise.svgPoints.map(function (points, index) {
|
|
423
|
+
return React.createElement("polygon", {
|
|
424
|
+
key: exercise.muscle + "-" + index,
|
|
425
|
+
points: points,
|
|
426
|
+
onClick: function onClick() {
|
|
427
|
+
return handleClick(exercise.muscle, _onClick);
|
|
428
|
+
},
|
|
429
|
+
style: {
|
|
430
|
+
cursor: 'pointer',
|
|
431
|
+
fill: ensure(fillIntensityColor(muscleData, highlightedColors, exercise.muscle), bodyColor)
|
|
432
|
+
}
|
|
433
|
+
});
|
|
434
|
+
});
|
|
435
|
+
})));
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
exports.BodyType = BodyType;
|
|
439
|
+
exports.ModelType = ModelType;
|
|
440
|
+
exports.MuscleType = MuscleType;
|
|
441
|
+
exports.default = Model;
|
|
442
|
+
//# sourceMappingURL=react-body-highlighter.cjs.development.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-body-highlighter.cjs.development.js","sources":["../src/component/metadata.ts","../src/assets/index.ts","../src/constants/index.ts","../src/utils/index.ts","../src/component/Model.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\n\nexport const MuscleType = {\n TRAPEZIUS: 'trapezius',\n UPPER_BACK: 'upper-back',\n LOWER_BACK: 'lower-back',\n CHEST: 'chest',\n BICEPS: 'biceps',\n TRICEPS: 'triceps',\n FOREARM: 'forearm',\n BACK_DELTOIDS: 'back-deltoids',\n FRONT_DELTOIDS: 'front-deltoids',\n ABS: 'abs',\n OBLIQUES: 'obliques',\n ADDUCTOR: 'adductor',\n ABDUCTORS: 'abductors',\n HAMSTRING: 'hamstring',\n QUADRICEPS: 'quadriceps',\n CALVES: 'calves',\n GLUTEAL: 'gluteal',\n HEAD: 'head',\n NECK: 'neck',\n KNEES: 'knees',\n LEFT_SOLEUS: 'left-soleus',\n RIGHT_SOLEUS: 'right-soleus',\n} as const;\n\nexport type Muscle = typeof MuscleType[keyof typeof MuscleType];\n\nexport const ModelType = {\n POSTERIOR: 'posterior',\n ANTERIOR: 'anterior',\n} as const;\n\ntype ModelType = typeof ModelType[keyof typeof ModelType];\n\nexport const BodyType = {\n MALE: 'male',\n FEMALE: 'female',\n} as const;\n\ntype BodyType = typeof BodyType[keyof typeof BodyType];\n\nexport interface IExerciseData {\n name: string;\n muscles: Muscle[];\n frequency?: number;\n}\n\nexport interface IMuscleData {\n exercises: string[];\n frequency: number;\n}\n\nexport interface IMuscleStats {\n muscle: Muscle;\n data: IMuscleData;\n}\n\nexport interface IModelProps {\n bodyColor?: string;\n bodyType?: BodyType;\n data?: IExerciseData[];\n highlightedColors?: string[];\n onClick?: ((exercise: IMuscleStats) => void) | (() => void);\n style?: CSSProperties;\n svgStyle?: CSSProperties;\n type?: ModelType;\n}\n","import { Muscle, MuscleType } from '../component/metadata';\n\ninterface ISVGModelData {\n muscle: Muscle;\n svgPoints: string[];\n}\n\nexport const femaleAnteriorData: ISVGModelData[] = [\n {\n muscle: MuscleType.HEAD,\n svgPoints: ['43 3 41 10 42 18 45 22 50 24 55 22 58 18 59 10 57 3 50 0'],\n },\n\n {\n muscle: MuscleType.NECK,\n svgPoints: ['54 23 51 30 51 37 58 38 64 42 64 37 60 34 56 29', '36 42 36 37 40 34 44 29 46 23 49 30 49 37 42 38'],\n },\n\n {\n muscle: MuscleType.FRONT_DELTOIDS,\n svgPoints: ['72 51 73 46 73 41 70 38 66 37 67 42 66 47', '34 47 28 51 27 46 27 41 30 38 34 37 33 42'],\n },\n\n {\n muscle: MuscleType.CHEST,\n svgPoints: ['51 42 51 48 52 54 56 58 62 56 65 50 63 44 58 40', '35 50 38 56 44 58 48 54 49 48 49 42 42 40 37 44'],\n },\n\n {\n muscle: MuscleType.BICEPS,\n svgPoints: ['23 64 24 68 27 64 31 54 30 50 25 54', '69 50 68 54 72 64 76 68 77 65 74 54'],\n },\n\n {\n muscle: MuscleType.TRICEPS,\n svgPoints: ['66 54 66 59 71 68 73 66 71 63', '27 66 32 54 32 59 28 68'],\n },\n\n {\n muscle: MuscleType.OBLIQUES,\n svgPoints: ['62 60 61 56 56 58 56 62 57 72 58 82 62 80 63 70', '38 80 37 70 36 60 39 56 44 58 44 62 43 72 42 82'],\n },\n\n {\n muscle: MuscleType.ABS,\n svgPoints: [\n '54 59 55 64 56 74 56 84 55 92 54 98 51 102 51 82 51 66 51 58',\n '46 59 49 58 49 66 49 82 49 102 46 98 44 92 44 84 44 74 45 64',\n ],\n },\n\n {\n muscle: MuscleType.ABDUCTORS,\n svgPoints: [\n '52 104 54 116 60 108 64 98 68 92 63 90 58 98 55 104',\n '48 104 46 116 40 108 36 98 32 92 37 90 42 98 45 104',\n ],\n },\n\n {\n muscle: MuscleType.QUADRICEPS,\n svgPoints: [\n '32 96 34 104 35 120 33 132 30 128 28 118 27 108 28 98 31 93',\n '68 93 72 98 73 108 72 118 70 128 67 132 65 120 66 104 68 96',\n '37 124 37 110 39 116 42 124 41 132 39 142 36 142 35 136',\n '63 142 61 124 64 112 65 126 67 136 65 142',\n '32 134 27 140 26 132 26 124 27 112 29 128',\n '73 112 74 124 74 136 73 140 68 134 71 128',\n ],\n },\n\n {\n muscle: MuscleType.KNEES,\n svgPoints: [\n '33 136 34 140 35 144 35 148 34 153 30 153 28 150 28 145 30 141',\n '67 136 72 145 72 150 70 153 66 153 65 148',\n ],\n },\n\n {\n muscle: MuscleType.CALVES,\n svgPoints: [\n '72 156 74 151 76 158 78 164 77 182 78 192 74 192',\n '26 192 28 162 28 157 27 152 26 155 24 159 23 165 23 184 22 192',\n '73 192 71 157 67 156 66 160 66 164 67 174',\n '35 156 35 160 35 165 35 170 34 175 33 180 31 185 28 192 28 186 29 178 29 173 30 168 30 163 31 157',\n ],\n },\n\n {\n muscle: MuscleType.FOREARM,\n svgPoints: [\n '12 84 15 74 19 70 20 73 22 72 10 92 6 95',\n '81 70 80 73 78 72 90 92 94 95 88 85 85 74',\n '75 71 76 75 78 81 82 87 88 96 90 94',\n '12 96 17 87 21 81 23 75 23 71 10 93',\n ],\n },\n];\n\nexport const femalePosteriorData: ISVGModelData[] = [\n {\n muscle: MuscleType.HEAD,\n svgPoints: ['50 2 46 3 43 7 43 13 46 18 50 19 54 18 57 13 57 7 54 3'],\n },\n\n {\n muscle: MuscleType.TRAPEZIUS,\n svgPoints: [\n '46 19 48 19 48 34 48 54 43 48 41 42 38 39 42 35 45 25',\n '52 19 54 19 55 25 58 35 62 39 59 42 57 48 52 54 52 34',\n ],\n },\n\n {\n muscle: MuscleType.BACK_DELTOIDS,\n svgPoints: ['36 39 31 41 27 45 28 52 31 49 34 46', '64 39 69 41 73 45 72 52 69 49 66 46'],\n },\n\n {\n muscle: MuscleType.UPPER_BACK,\n svgPoints: ['38 41 35 48 36 54 40 66 48 64 48 60 43 52 40 44', '62 41 65 48 64 54 60 66 52 64 52 60 57 52 60 44'],\n },\n\n {\n muscle: MuscleType.TRICEPS,\n svgPoints: [\n '34 50 27 54 24 67 26 74 29 62 34 55',\n '66 50 73 54 76 67 74 74 71 62 66 55',\n '34 57 34 65 31 70 28 72 30 64',\n '66 57 70 64 72 72 69 70 66 65',\n ],\n },\n\n {\n muscle: MuscleType.LOWER_BACK,\n svgPoints: ['48 64 43 67 44 73 50 84 48 73', '52 64 57 67 56 73 50 84 52 73'],\n },\n\n {\n muscle: MuscleType.FOREARM,\n svgPoints: [\n '77 71 82 78 84 86 90 98 87 96 81 84 78 78',\n '23 71 18 78 16 86 10 98 13 96 19 84 22 78',\n '74 75 72 74 73 79 83 95 85 100 86 97',\n '26 75 28 74 27 79 17 95 15 100 14 97',\n ],\n },\n\n {\n muscle: MuscleType.GLUTEAL,\n svgPoints: ['44 82 22 90 20 105 22 116 26 124 44 120 50 102', '56 82 50 102 56 120 74 124 78 116 80 105 78 90'],\n },\n\n {\n muscle: MuscleType.ADDUCTOR,\n svgPoints: ['49 122 42 122 36 126 42 146 49 136 49 128', '51 122 58 122 64 126 58 146 51 136 51 128'],\n },\n\n {\n muscle: MuscleType.HAMSTRING,\n svgPoints: [\n '22 120 27 128 33 126 32 136 30 152 26 160 25 150 23 142 22 132',\n '78 120 73 128 67 126 68 136 70 152 74 160 75 150 77 142 78 132',\n '35 125 42 146 38 168 32 156 34 135',\n '65 125 66 135 68 156 62 168 58 146',\n ],\n },\n\n {\n muscle: MuscleType.KNEES,\n svgPoints: ['30 156 27 162 29 168 33 165', '70 156 67 165 71 168 73 162'],\n },\n\n {\n muscle: MuscleType.CALVES,\n svgPoints: [\n '25 162 24 170 21 181 20 194 22 198 24 195 25 183 27 175 27 170',\n '32 168 30 171 29 175 27 183 26 195 29 202 33 194 34 172',\n '67 168 66 172 66 194 70 202 74 195 73 183 71 174',\n '75 162 76 172 79 182 80 194 78 198 76 195 75 183 73 172',\n ],\n },\n\n {\n muscle: MuscleType.LEFT_SOLEUS,\n svgPoints: ['24 197 26 197 29 203 26 220 24 215 22 201'],\n },\n {\n muscle: MuscleType.RIGHT_SOLEUS,\n svgPoints: ['74 197 76 197 78 201 76 215 74 220 71 204'],\n },\n];\n\nexport const anteriorData: ISVGModelData[] = [\n {\n muscle: MuscleType.CHEST,\n svgPoints: [\n '51.8367347 41.6326531 51.0204082 55.1020408 57.9591837 57.9591837 67.755102 55.5102041 70.6122449 47.3469388 62.0408163 41.6326531 ',\n '29.7959184 46.5306122 31.4285714 55.5102041 40.8163265 57.9591837 48.1632653 55.1020408 47.755102 42.0408163 37.5510204 42.0408163',\n ],\n },\n\n {\n muscle: MuscleType.OBLIQUES,\n svgPoints: [\n '68.5714286 63.2653061 67.3469388 57.1428571 58.7755102 59.5918367 60 64.0816327 60.4081633 83.2653061 65.7142857 78.7755102 66.5306122 69.7959184',\n '33.877551 78.3673469 33.0612245 71.8367347 31.0204082 63.2653061 32.244898 57.1428571 40.8163265 59.1836735 39.1836735 63.2653061 39.1836735 83.6734694',\n ],\n },\n\n {\n muscle: MuscleType.ABS,\n svgPoints: [\n '56.3265306 59.1836735 57.9591837 64.0816327 58.3673469 77.9591837 58.3673469 92.6530612 56.3265306 98.3673469 55.1020408 104.081633 51.4285714 107.755102 51.0204082 84.4897959 50.6122449 67.3469388 51.0204082 57.1428571',\n '43.6734694 58.7755102 48.5714286 57.1428571 48.9795918 67.3469388 48.5714286 84.4897959 48.1632653 107.346939 44.4897959 103.673469 40.8163265 91.4285714 40.8163265 78.3673469 41.2244898 64.4897959',\n ],\n },\n\n {\n muscle: MuscleType.BICEPS,\n svgPoints: [\n '16.7346939 68.1632653 17.9591837 71.4285714 22.8571429 66.122449 28.9795918 53.877551 27.755102 49.3877551 20.4081633 55.9183673',\n '71.4285714 49.3877551 70.2040816 54.6938776 76.3265306 66.122449 81.6326531 71.8367347 82.8571429 68.9795918 78.7755102 55.5102041',\n ],\n },\n\n {\n muscle: MuscleType.TRICEPS,\n svgPoints: [\n '69.3877551 55.5102041 69.3877551 61.6326531 75.9183673 72.6530612 77.5510204 70.2040816 75.5102041 67.3469388',\n '22.4489796 69.3877551 29.7959184 55.5102041 29.7959184 60.8163265 22.8571429 73.0612245',\n ],\n },\n\n {\n muscle: MuscleType.NECK,\n svgPoints: [\n '55.5102041 23.6734694 50.6122449 33.4693878 50.6122449 39.1836735 61.6326531 40 70.6122449 44.8979592 69.3877551 36.7346939 63.2653061 35.1020408 58.3673469 30.6122449',\n '28.9795918 44.8979592 30.2040816 37.1428571 36.3265306 35.1020408 41.2244898 30.2040816 44.4897959 24.4897959 48.9795918 33.877551 48.5714286 39.1836735 37.9591837 39.5918367',\n ],\n },\n\n {\n muscle: MuscleType.FRONT_DELTOIDS,\n svgPoints: [\n '78.3673469 53.0612245 79.5918367 47.755102 79.1836735 41.2244898 75.9183673 37.9591837 71.0204082 36.3265306 72.244898 42.8571429 71.4285714 47.3469388',\n '28.1632653 47.3469388 21.2244898 53.0612245 20 47.755102 20.4081633 40.8163265 24.4897959 37.1428571 28.5714286 37.1428571 26.9387755 43.2653061',\n ],\n },\n\n {\n muscle: MuscleType.HEAD,\n svgPoints: [\n '42.4489796 2.85714286 40 11.8367347 42.0408163 19.5918367 46.122449 23.2653061 49.7959184 25.3061224 54.6938776 22.4489796 57.5510204 19.1836735 59.1836735 10.2040816 57.1428571 2.44897959 49.7959184 0',\n ],\n },\n\n {\n muscle: MuscleType.ABDUCTORS,\n svgPoints: [\n '52.6530612 110.204082 54.2857143 124.897959 60 110.204082 62.0408163 100 64.8979592 94.2857143 60 92.6530612 56.7346939 104.489796',\n '47.755102 110.612245 44.8979592 125.306122 42.0408163 115.918367 40.4081633 113.061224 39.5918367 107.346939 37.9591837 102.44898 34.6938776 93.877551 39.5918367 92.244898 41.6326531 99.1836735 43.6734694 105.306122',\n ],\n },\n\n {\n muscle: MuscleType.QUADRICEPS,\n svgPoints: [\n '34.6938776 98.7755102 37.1428571 108.163265 37.1428571 127.755102 34.2857143 137.142857 31.0204082 132.653061 29.3877551 120 28.1632653 111.428571 29.3877551 100.816327 32.244898 94.6938776',\n '63.2653061 105.714286 64.4897959 100 66.9387755 94.6938776 70.2040816 101.22449 71.0204082 111.836735 68.1632653 133.061224 65.3061224 137.55102 62.4489796 128.571429 62.0408163 111.428571',\n '38.7755102 129.387755 38.3673469 112.244898 41.2244898 118.367347 44.4897959 129.387755 42.8571429 135.102041 40 146.122449 36.3265306 146.530612 35.5102041 140',\n '59.5918367 145.714286 55.5102041 128.979592 60.8163265 113.877551 61.2244898 130.204082 64.0816327 139.591837 62.8571429 146.530612',\n '32.6530612 138.367347 26.5306122 145.714286 25.7142857 136.734694 25.7142857 127.346939 26.9387755 114.285714 29.3877551 133.469388',\n '71.8367347 113.061224 73.877551 124.081633 73.877551 140.408163 72.6530612 145.714286 66.5306122 138.367347 70.2040816 133.469388',\n ],\n },\n\n {\n muscle: MuscleType.KNEES,\n svgPoints: [\n '33.877551 140 34.6938776 143.265306 35.5102041 147.346939 36.3265306 151.020408 35.1020408 156.734694 29.7959184 156.734694 27.3469388 152.653061 27.3469388 147.346939 30.2040816 144.081633',\n '65.7142857 140 72.244898 147.755102 72.244898 152.244898 69.7959184 157.142857 64.8979592 156.734694 62.8571429 151.020408',\n ],\n },\n\n {\n muscle: MuscleType.CALVES,\n svgPoints: [\n '71.4285714 160.408163 73.4693878 153.469388 76.7346939 161.22449 79.5918367 167.755102 78.3673469 187.755102 79.5918367 195.510204 74.6938776 195.510204',\n '24.8979592 194.693878 27.755102 164.897959 28.1632653 160.408163 26.122449 154.285714 24.8979592 157.55102 22.4489796 161.632653 20.8163265 167.755102 22.0408163 188.163265 20.8163265 195.510204',\n '72.6530612 195.102041 69.7959184 159.183673 65.3061224 158.367347 64.0816327 162.44898 64.0816327 165.306122 65.7142857 177.142857',\n '35.5102041 158.367347 35.9183673 162.44898 35.9183673 166.938776 35.1020408 172.244898 35.1020408 176.734694 32.244898 182.040816 30.6122449 187.346939 26.9387755 194.693878 27.3469388 187.755102 28.1632653 180.408163 28.5714286 175.510204 28.9795918 169.795918 29.7959184 164.081633 30.2040816 158.77551',\n ],\n },\n\n {\n muscle: MuscleType.FOREARM,\n svgPoints: [\n '6.12244898 88.5714286 10.2040816 75.1020408 14.6938776 70.2040816 16.3265306 74.2857143 19.1836735 73.4693878 4.48979592 97.5510204 0 100',\n '84.4897959 69.7959184 83.2653061 73.4693878 80 73.0612245 95.1020408 98.3673469 100 100.408163 93.4693878 89.3877551 89.7959184 76.3265306',\n '77.5510204 72.244898 77.5510204 77.5510204 80.4081633 84.0816327 85.3061224 89.7959184 92.244898 101.22449 94.6938776 99.5918367',\n '6.93877551 101.22449 13.4693878 90.6122449 18.7755102 84.0816327 21.6326531 77.1428571 21.2244898 71.8367347 4.89795918 98.7755102',\n ],\n },\n];\n\nexport const posteriorData: ISVGModelData[] = [\n {\n muscle: MuscleType.HEAD,\n svgPoints: [\n '50.6382979 0 45.9574468 0.85106383 40.8510638 5.53191489 40.4255319 12.7659574 45.106383 20 55.7446809 20 59.1489362 13.6170213 59.5744681 4.68085106 55.7446809 1.27659574',\n ],\n },\n\n {\n muscle: MuscleType.TRAPEZIUS,\n svgPoints: [\n '44.6808511 21.7021277 47.6595745 21.7021277 47.2340426 38.2978723 47.6595745 64.6808511 38.2978723 53.1914894 35.3191489 40.8510638 31.0638298 36.5957447 39.1489362 33.1914894 43.8297872 27.2340426',\n '52.3404255 21.7021277 55.7446809 21.7021277 56.5957447 27.2340426 60.8510638 32.7659574 68.9361702 36.5957447 64.6808511 40.4255319 61.7021277 53.1914894 52.3404255 64.6808511 53.1914894 38.2978723',\n ],\n },\n\n {\n muscle: MuscleType.BACK_DELTOIDS,\n svgPoints: [\n '29.3617021 37.0212766 22.9787234 39.1489362 17.4468085 44.2553191 18.2978723 53.6170213 24.2553191 49.3617021 27.2340426 46.3829787',\n '71.0638298 37.0212766 78.2978723 39.5744681 82.5531915 44.6808511 81.7021277 53.6170213 74.893617 48.9361702 72.3404255 45.106383',\n ],\n },\n\n {\n muscle: MuscleType.UPPER_BACK,\n svgPoints: [\n '31.0638298 38.7234043 28.0851064 48.9361702 28.5106383 55.3191489 34.0425532 75.3191489 47.2340426 71.0638298 47.2340426 66.3829787 36.5957447 54.0425532 33.6170213 41.2765957',\n '68.9361702 38.7234043 71.9148936 49.3617021 71.4893617 56.1702128 65.9574468 75.3191489 52.7659574 71.0638298 52.7659574 66.3829787 63.4042553 54.4680851 66.3829787 41.7021277',\n ],\n },\n\n {\n muscle: MuscleType.TRICEPS,\n svgPoints: [\n '26.8085106 49.787234 17.8723404 55.7446809 14.4680851 72.3404255 16.5957447 81.7021277 21.7021277 63.8297872 26.8085106 55.7446809',\n '73.6170213 50.212766 82.1276596 55.7446809 85.9574468 73.1914894 83.4042553 82.1276596 77.8723404 62.9787234 73.1914894 55.7446809',\n '26.8085106 58.2978723 26.8085106 68.5106383 22.9787234 75.3191489 19.1489362 77.4468085 22.5531915 65.5319149',\n '72.7659574 58.2978723 77.0212766 64.6808511 80.4255319 77.4468085 76.5957447 75.3191489 72.7659574 68.9361702',\n ],\n },\n\n {\n muscle: MuscleType.LOWER_BACK,\n svgPoints: [\n '47.6595745 72.7659574 34.4680851 77.0212766 35.3191489 83.4042553 49.3617021 102.12766 46.8085106 82.9787234',\n '52.3404255 72.7659574 65.5319149 77.0212766 64.6808511 83.4042553 50.6382979 102.12766 53.1914894 83.8297872',\n ],\n },\n\n {\n muscle: MuscleType.FOREARM,\n svgPoints: [\n '86.3829787 75.7446809 91.0638298 83.4042553 93.1914894 94.0425532 100 106.382979 96.1702128 104.255319 88.0851064 89.3617021 84.2553191 83.8297872',\n '13.6170213 75.7446809 8.93617021 83.8297872 6.80851064 93.6170213 0 106.382979 3.82978723 104.255319 12.3404255 88.5106383 15.7446809 82.9787234',\n '81.2765957 79.5744681 77.4468085 77.8723404 79.1489362 84.6808511 91.0638298 103.829787 93.1914894 108.93617 94.4680851 104.680851',\n '18.7234043 79.5744681 22.1276596 77.8723404 20.8510638 84.2553191 9.36170213 102.978723 6.80851064 108.510638 5.10638298 104.680851',\n ],\n },\n\n {\n muscle: MuscleType.GLUTEAL,\n svgPoints: [\n '44.6808511 99.5744681 30.212766 108.510638 29.787234 118.723404 31.4893617 125.957447 47.2340426 121.276596 49.3617021 114.893617',\n '55.3191489 99.1489362 51.0638298 114.468085 52.3404255 120.851064 68.0851064 125.957447 69.787234 119.148936 69.3617021 108.510638',\n ],\n },\n\n {\n muscle: MuscleType.ADDUCTOR,\n svgPoints: [\n '48.0851064 122.978723 44.6808511 122.978723 41.2765957 125.531915 45.106383 144.255319 48.5106383 135.744681 48.9361702 129.361702',\n '51.9148936 122.553191 55.7446809 123.404255 59.1489362 125.957447 54.893617 144.255319 51.9148936 136.170213 51.0638298 129.361702',\n ],\n },\n\n {\n muscle: MuscleType.HAMSTRING,\n svgPoints: [\n '28.9361702 122.12766 31.0638298 129.361702 36.5957447 125.957447 35.3191489 135.319149 34.4680851 150.212766 29.3617021 158.297872 28.9361702 146.808511 27.6595745 141.276596 27.2340426 131.489362',\n '71.4893617 121.702128 69.3617021 128.93617 63.8297872 125.957447 65.5319149 136.595745 66.3829787 150.212766 71.0638298 158.297872 71.4893617 147.659574 72.7659574 142.12766 73.6170213 131.914894',\n '38.7234043 125.531915 44.2553191 145.957447 40.4255319 166.808511 36.1702128 152.765957 37.0212766 135.319149',\n '61.7021277 125.531915 63.4042553 136.170213 64.2553191 153.191489 60 166.808511 56.1702128 146.382979',\n ],\n },\n\n {\n muscle: MuscleType.KNEES,\n svgPoints: [\n '34.4680851 153.191489 31.0638298 159.148936 33.6170213 166.382979 37.4468085 162.553191',\n '66.3829787 153.617021 62.9787234 162.978723 66.8085106 166.382979 69.3617021 159.148936',\n ],\n },\n\n {\n muscle: MuscleType.CALVES,\n svgPoints: [\n '29.3617021 160.425532 28.5106383 167.234043 24.6808511 179.574468 23.8297872 192.765957 25.5319149 197.021277 28.5106383 193.191489 29.787234 180 31.9148936 171.06383 31.9148936 166.808511',\n '37.4468085 165.106383 35.3191489 167.659574 33.1914894 171.914894 31.0638298 180.425532 30.212766 191.914894 34.0425532 200 38.7234043 190.638298 39.1489362 168.93617',\n '62.9787234 165.106383 61.2765957 168.510638 61.7021277 190.638298 66.3829787 199.574468 70.6382979 191.914894 68.9361702 179.574468 66.8085106 170.212766',\n '70.6382979 160.425532 72.3404255 168.510638 75.7446809 179.148936 76.5957447 192.765957 74.4680851 196.595745 72.3404255 193.617021 70.6382979 179.574468 68.0851064 168.085106',\n ],\n },\n\n {\n muscle: MuscleType.LEFT_SOLEUS,\n svgPoints: [\n '28.5106383 195.744681 30.212766 195.744681 33.6170213 201.702128 30.6382979 220 28.5106383 213.617021 26.8085106 198.297872',\n ],\n },\n {\n muscle: MuscleType.RIGHT_SOLEUS,\n svgPoints: [\n '69.787234 195.744681 71.9148936 195.744681 73.6170213 198.297872 71.9148936 213.191489 70.212766 219.574468 67.2340426 202.12766',\n ],\n },\n];\n","import { BodyType, ModelType, Muscle, IMuscleData } from '../component/metadata';\n\nexport const DEFAULT_MUSCLE_DATA: Record<Muscle, IMuscleData> = {\n trapezius: { exercises: [], frequency: 0 },\n 'upper-back': { exercises: [], frequency: 0 },\n 'lower-back': { exercises: [], frequency: 0 },\n chest: { exercises: [], frequency: 0 },\n biceps: { exercises: [], frequency: 0 },\n triceps: { exercises: [], frequency: 0 },\n forearm: { exercises: [], frequency: 0 },\n 'back-deltoids': { exercises: [], frequency: 0 },\n 'front-deltoids': { exercises: [], frequency: 0 },\n abs: { exercises: [], frequency: 0 },\n obliques: { exercises: [], frequency: 0 },\n adductor: { exercises: [], frequency: 0 },\n hamstring: { exercises: [], frequency: 0 },\n quadriceps: { exercises: [], frequency: 0 },\n abductors: { exercises: [], frequency: 0 },\n calves: { exercises: [], frequency: 0 },\n gluteal: { exercises: [], frequency: 0 },\n head: { exercises: [], frequency: 0 },\n neck: { exercises: [], frequency: 0 },\n knees: { exercises: [], frequency: 0 },\n 'left-soleus': { exercises: [], frequency: 0 },\n 'right-soleus': { exercises: [], frequency: 0 },\n};\n\nexport const DEFAULT_BODY_COLOR = '#B6BDC3';\nexport const DEFAULT_HIGHLIGHTED_COLORS = ['#81b1d9', '#277abf'];\n\nexport const DEFAULT_MODEL_TYPE = ModelType.ANTERIOR;\nexport const DEFAULT_BODY_TYPE = BodyType.MALE;\n","import { IExerciseData, IMuscleData, Muscle } from '../component/metadata';\nimport { DEFAULT_MUSCLE_DATA } from '../constants';\n\n/*\n * Utility function for choosing backup value if first value is undefined\n */\nexport const ensure = <T>(value: T | undefined, backupValue: T): T => {\n return value == null ? backupValue : value;\n};\n\n/**\n * Function which determines color of muscle based on how often it has been exercised\n */\nexport const fillIntensityColor = (\n activityMap: Record<Muscle, IMuscleData>,\n highlightedColors: string[],\n muscle: Muscle\n): string | undefined => {\n const frequency = activityMap[muscle]?.frequency;\n\n if (frequency == null || frequency === 0) {\n return undefined;\n }\n\n return highlightedColors[Math.min(highlightedColors.length - 1, frequency - 1)];\n};\n\n/**\n * Function which generates object with muscle data\n */\nexport const fillMuscleData = (data: IExerciseData[]): Record<Muscle, IMuscleData> => {\n return data.reduce((acc, exercise: IExerciseData) => {\n for (const muscle of exercise.muscles) {\n if (acc[muscle]) {\n acc[muscle].exercises.push(exercise.name);\n acc[muscle].frequency += exercise.frequency || 1;\n }\n }\n\n return acc;\n }, JSON.parse(JSON.stringify(DEFAULT_MUSCLE_DATA)));\n};\n","import * as React from 'react';\n\nimport { BodyType, ModelType, Muscle, IModelProps, IMuscleStats } from './metadata';\n\nimport { anteriorData, posteriorData, femaleAnteriorData, femalePosteriorData } from '../assets';\nimport { ensure, fillIntensityColor, fillMuscleData } from '../utils';\nimport { DEFAULT_BODY_COLOR, DEFAULT_BODY_TYPE, DEFAULT_HIGHLIGHTED_COLORS, DEFAULT_MODEL_TYPE } from '../constants';\n\n/**\n * Component which displays a model of a body. Accepts many optional props for manipulating functionality or visuals of the component.\n *\n * @param data Array containing exercise objects\n * @param bodyColor Default color of body model (with no muscles worked)\n * @param bodyType Body type to display (default `male` vs `female`)\n * @param highlightedColors Array containing colors to display depending on frequency muscle is worked (where array index = frequency - 1)\n * @param onClick Callback function when a muscle is clicked (returns back object with muscle-related data)\n * @param svgStyle Style object that gets passed to SVG element\n * @param style Style object that gets passed to SVG parent wrapper (div)\n * @param type Denotes type of model (default `anterior` view vs `posterior` view)\n *\n * @component\n * @example\n * const data = [{ name: 'Bench Press', muscles: ['chest', 'triceps', 'front-deltoids'] }]\n * return (\n * <Model type=\"posterior\" bodyType=\"female\" data={data} />\n * )\n */\nexport default React.memo(function Model({\n data = [],\n bodyColor = DEFAULT_BODY_COLOR,\n bodyType = DEFAULT_BODY_TYPE,\n highlightedColors = DEFAULT_HIGHLIGHTED_COLORS,\n onClick,\n svgStyle,\n style,\n type = DEFAULT_MODEL_TYPE,\n}: IModelProps) {\n const muscleData = fillMuscleData(data);\n\n const getModelData = () => {\n if (bodyType === BodyType.FEMALE) {\n return type === ModelType.ANTERIOR ? femaleAnteriorData : femalePosteriorData;\n }\n return type === ModelType.ANTERIOR ? anteriorData : posteriorData;\n };\n\n const modelData = getModelData();\n\n const handleClick = (muscle: Muscle, callback?: (exercise: IMuscleStats) => void) => {\n callback?.({ muscle, data: muscleData[muscle] });\n };\n\n return (\n <div style={style} className=\"rbh-wrapper\">\n <svg className=\"rbh\" width=\"100%\" height=\"100%\" viewBox=\"0 0 100 200\" style={svgStyle}>\n {modelData.map(exercise =>\n exercise.svgPoints.map((points, index) => (\n <polygon\n key={`${exercise.muscle}-${index}`}\n points={points}\n onClick={() => handleClick(exercise.muscle, onClick)}\n style={{\n cursor: 'pointer',\n fill: ensure(fillIntensityColor(muscleData, highlightedColors, exercise.muscle), bodyColor),\n }}\n />\n ))\n )}\n </svg>\n </div>\n );\n});\n"],"names":["MuscleType","TRAPEZIUS","UPPER_BACK","LOWER_BACK","CHEST","BICEPS","TRICEPS","FOREARM","BACK_DELTOIDS","FRONT_DELTOIDS","ABS","OBLIQUES","ADDUCTOR","ABDUCTORS","HAMSTRING","QUADRICEPS","CALVES","GLUTEAL","HEAD","NECK","KNEES","LEFT_SOLEUS","RIGHT_SOLEUS","ModelType","POSTERIOR","ANTERIOR","BodyType","MALE","FEMALE","femaleAnteriorData","muscle","svgPoints","femalePosteriorData","anteriorData","posteriorData","DEFAULT_MUSCLE_DATA","trapezius","exercises","frequency","chest","biceps","triceps","forearm","abs","obliques","adductor","hamstring","quadriceps","abductors","calves","gluteal","head","neck","knees","DEFAULT_BODY_COLOR","DEFAULT_HIGHLIGHTED_COLORS","DEFAULT_MODEL_TYPE","DEFAULT_BODY_TYPE","ensure","value","backupValue","fillIntensityColor","activityMap","highlightedColors","_activityMap$muscle","undefined","Math","min","length","fillMuscleData","data","reduce","acc","exercise","_iterator","_createForOfIteratorHelperLoose","muscles","_step","done","push","name","JSON","parse","stringify","React","Model","_ref","_ref$data","_ref$bodyColor","bodyColor","_ref$bodyType","bodyType","_ref$highlightedColor","onClick","svgStyle","style","_ref$type","type","muscleData","getModelData","modelData","handleClick","callback","className","width","height","viewBox","map","points","index","key","cursor","fill"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),s={TRAPEZIUS:"trapezius",UPPER_BACK:"upper-back",LOWER_BACK:"lower-back",CHEST:"chest",BICEPS:"biceps",TRICEPS:"triceps",FOREARM:"forearm",BACK_DELTOIDS:"back-deltoids",FRONT_DELTOIDS:"front-deltoids",ABS:"abs",OBLIQUES:"obliques",ADDUCTOR:"adductor",ABDUCTORS:"abductors",HAMSTRING:"hamstring",QUADRICEPS:"quadriceps",CALVES:"calves",GLUTEAL:"gluteal",HEAD:"head",NECK:"neck",KNEES:"knees",LEFT_SOLEUS:"left-soleus",RIGHT_SOLEUS:"right-soleus"},r={POSTERIOR:"posterior",ANTERIOR:"anterior"},t={MALE:"male",FEMALE:"female"},n=[{muscle:s.HEAD,svgPoints:["43 3 41 10 42 18 45 22 50 24 55 22 58 18 59 10 57 3 50 0"]},{muscle:s.NECK,svgPoints:["54 23 51 30 51 37 58 38 64 42 64 37 60 34 56 29","36 42 36 37 40 34 44 29 46 23 49 30 49 37 42 38"]},{muscle:s.FRONT_DELTOIDS,svgPoints:["72 51 73 46 73 41 70 38 66 37 67 42 66 47","34 47 28 51 27 46 27 41 30 38 34 37 33 42"]},{muscle:s.CHEST,svgPoints:["51 42 51 48 52 54 56 58 62 56 65 50 63 44 58 40","35 50 38 56 44 58 48 54 49 48 49 42 42 40 37 44"]},{muscle:s.BICEPS,svgPoints:["23 64 24 68 27 64 31 54 30 50 25 54","69 50 68 54 72 64 76 68 77 65 74 54"]},{muscle:s.TRICEPS,svgPoints:["66 54 66 59 71 68 73 66 71 63","27 66 32 54 32 59 28 68"]},{muscle:s.OBLIQUES,svgPoints:["62 60 61 56 56 58 56 62 57 72 58 82 62 80 63 70","38 80 37 70 36 60 39 56 44 58 44 62 43 72 42 82"]},{muscle:s.ABS,svgPoints:["54 59 55 64 56 74 56 84 55 92 54 98 51 102 51 82 51 66 51 58","46 59 49 58 49 66 49 82 49 102 46 98 44 92 44 84 44 74 45 64"]},{muscle:s.ABDUCTORS,svgPoints:["52 104 54 116 60 108 64 98 68 92 63 90 58 98 55 104","48 104 46 116 40 108 36 98 32 92 37 90 42 98 45 104"]},{muscle:s.QUADRICEPS,svgPoints:["32 96 34 104 35 120 33 132 30 128 28 118 27 108 28 98 31 93","68 93 72 98 73 108 72 118 70 128 67 132 65 120 66 104 68 96","37 124 37 110 39 116 42 124 41 132 39 142 36 142 35 136","63 142 61 124 64 112 65 126 67 136 65 142","32 134 27 140 26 132 26 124 27 112 29 128","73 112 74 124 74 136 73 140 68 134 71 128"]},{muscle:s.KNEES,svgPoints:["33 136 34 140 35 144 35 148 34 153 30 153 28 150 28 145 30 141","67 136 72 145 72 150 70 153 66 153 65 148"]},{muscle:s.CALVES,svgPoints:["72 156 74 151 76 158 78 164 77 182 78 192 74 192","26 192 28 162 28 157 27 152 26 155 24 159 23 165 23 184 22 192","73 192 71 157 67 156 66 160 66 164 67 174","35 156 35 160 35 165 35 170 34 175 33 180 31 185 28 192 28 186 29 178 29 173 30 168 30 163 31 157"]},{muscle:s.FOREARM,svgPoints:["12 84 15 74 19 70 20 73 22 72 10 92 6 95","81 70 80 73 78 72 90 92 94 95 88 85 85 74","75 71 76 75 78 81 82 87 88 96 90 94","12 96 17 87 21 81 23 75 23 71 10 93"]}],c=[{muscle:s.HEAD,svgPoints:["50 2 46 3 43 7 43 13 46 18 50 19 54 18 57 13 57 7 54 3"]},{muscle:s.TRAPEZIUS,svgPoints:["46 19 48 19 48 34 48 54 43 48 41 42 38 39 42 35 45 25","52 19 54 19 55 25 58 35 62 39 59 42 57 48 52 54 52 34"]},{muscle:s.BACK_DELTOIDS,svgPoints:["36 39 31 41 27 45 28 52 31 49 34 46","64 39 69 41 73 45 72 52 69 49 66 46"]},{muscle:s.UPPER_BACK,svgPoints:["38 41 35 48 36 54 40 66 48 64 48 60 43 52 40 44","62 41 65 48 64 54 60 66 52 64 52 60 57 52 60 44"]},{muscle:s.TRICEPS,svgPoints:["34 50 27 54 24 67 26 74 29 62 34 55","66 50 73 54 76 67 74 74 71 62 66 55","34 57 34 65 31 70 28 72 30 64","66 57 70 64 72 72 69 70 66 65"]},{muscle:s.LOWER_BACK,svgPoints:["48 64 43 67 44 73 50 84 48 73","52 64 57 67 56 73 50 84 52 73"]},{muscle:s.FOREARM,svgPoints:["77 71 82 78 84 86 90 98 87 96 81 84 78 78","23 71 18 78 16 86 10 98 13 96 19 84 22 78","74 75 72 74 73 79 83 95 85 100 86 97","26 75 28 74 27 79 17 95 15 100 14 97"]},{muscle:s.GLUTEAL,svgPoints:["44 82 22 90 20 105 22 116 26 124 44 120 50 102","56 82 50 102 56 120 74 124 78 116 80 105 78 90"]},{muscle:s.ADDUCTOR,svgPoints:["49 122 42 122 36 126 42 146 49 136 49 128","51 122 58 122 64 126 58 146 51 136 51 128"]},{muscle:s.HAMSTRING,svgPoints:["22 120 27 128 33 126 32 136 30 152 26 160 25 150 23 142 22 132","78 120 73 128 67 126 68 136 70 152 74 160 75 150 77 142 78 132","35 125 42 146 38 168 32 156 34 135","65 125 66 135 68 156 62 168 58 146"]},{muscle:s.KNEES,svgPoints:["30 156 27 162 29 168 33 165","70 156 67 165 71 168 73 162"]},{muscle:s.CALVES,svgPoints:["25 162 24 170 21 181 20 194 22 198 24 195 25 183 27 175 27 170","32 168 30 171 29 175 27 183 26 195 29 202 33 194 34 172","67 168 66 172 66 194 70 202 74 195 73 183 71 174","75 162 76 172 79 182 80 194 78 198 76 195 75 183 73 172"]},{muscle:s.LEFT_SOLEUS,svgPoints:["24 197 26 197 29 203 26 220 24 215 22 201"]},{muscle:s.RIGHT_SOLEUS,svgPoints:["74 197 76 197 78 201 76 215 74 220 71 204"]}],i=[{muscle:s.CHEST,svgPoints:["51.8367347 41.6326531 51.0204082 55.1020408 57.9591837 57.9591837 67.755102 55.5102041 70.6122449 47.3469388 62.0408163 41.6326531 ","29.7959184 46.5306122 31.4285714 55.5102041 40.8163265 57.9591837 48.1632653 55.1020408 47.755102 42.0408163 37.5510204 42.0408163"]},{muscle:s.OBLIQUES,svgPoints:["68.5714286 63.2653061 67.3469388 57.1428571 58.7755102 59.5918367 60 64.0816327 60.4081633 83.2653061 65.7142857 78.7755102 66.5306122 69.7959184","33.877551 78.3673469 33.0612245 71.8367347 31.0204082 63.2653061 32.244898 57.1428571 40.8163265 59.1836735 39.1836735 63.2653061 39.1836735 83.6734694"]},{muscle:s.ABS,svgPoints:["56.3265306 59.1836735 57.9591837 64.0816327 58.3673469 77.9591837 58.3673469 92.6530612 56.3265306 98.3673469 55.1020408 104.081633 51.4285714 107.755102 51.0204082 84.4897959 50.6122449 67.3469388 51.0204082 57.1428571","43.6734694 58.7755102 48.5714286 57.1428571 48.9795918 67.3469388 48.5714286 84.4897959 48.1632653 107.346939 44.4897959 103.673469 40.8163265 91.4285714 40.8163265 78.3673469 41.2244898 64.4897959"]},{muscle:s.BICEPS,svgPoints:["16.7346939 68.1632653 17.9591837 71.4285714 22.8571429 66.122449 28.9795918 53.877551 27.755102 49.3877551 20.4081633 55.9183673","71.4285714 49.3877551 70.2040816 54.6938776 76.3265306 66.122449 81.6326531 71.8367347 82.8571429 68.9795918 78.7755102 55.5102041"]},{muscle:s.TRICEPS,svgPoints:["69.3877551 55.5102041 69.3877551 61.6326531 75.9183673 72.6530612 77.5510204 70.2040816 75.5102041 67.3469388","22.4489796 69.3877551 29.7959184 55.5102041 29.7959184 60.8163265 22.8571429 73.0612245"]},{muscle:s.NECK,svgPoints:["55.5102041 23.6734694 50.6122449 33.4693878 50.6122449 39.1836735 61.6326531 40 70.6122449 44.8979592 69.3877551 36.7346939 63.2653061 35.1020408 58.3673469 30.6122449","28.9795918 44.8979592 30.2040816 37.1428571 36.3265306 35.1020408 41.2244898 30.2040816 44.4897959 24.4897959 48.9795918 33.877551 48.5714286 39.1836735 37.9591837 39.5918367"]},{muscle:s.FRONT_DELTOIDS,svgPoints:["78.3673469 53.0612245 79.5918367 47.755102 79.1836735 41.2244898 75.9183673 37.9591837 71.0204082 36.3265306 72.244898 42.8571429 71.4285714 47.3469388","28.1632653 47.3469388 21.2244898 53.0612245 20 47.755102 20.4081633 40.8163265 24.4897959 37.1428571 28.5714286 37.1428571 26.9387755 43.2653061"]},{muscle:s.HEAD,svgPoints:["42.4489796 2.85714286 40 11.8367347 42.0408163 19.5918367 46.122449 23.2653061 49.7959184 25.3061224 54.6938776 22.4489796 57.5510204 19.1836735 59.1836735 10.2040816 57.1428571 2.44897959 49.7959184 0"]},{muscle:s.ABDUCTORS,svgPoints:["52.6530612 110.204082 54.2857143 124.897959 60 110.204082 62.0408163 100 64.8979592 94.2857143 60 92.6530612 56.7346939 104.489796","47.755102 110.612245 44.8979592 125.306122 42.0408163 115.918367 40.4081633 113.061224 39.5918367 107.346939 37.9591837 102.44898 34.6938776 93.877551 39.5918367 92.244898 41.6326531 99.1836735 43.6734694 105.306122"]},{muscle:s.QUADRICEPS,svgPoints:["34.6938776 98.7755102 37.1428571 108.163265 37.1428571 127.755102 34.2857143 137.142857 31.0204082 132.653061 29.3877551 120 28.1632653 111.428571 29.3877551 100.816327 32.244898 94.6938776","63.2653061 105.714286 64.4897959 100 66.9387755 94.6938776 70.2040816 101.22449 71.0204082 111.836735 68.1632653 133.061224 65.3061224 137.55102 62.4489796 128.571429 62.0408163 111.428571","38.7755102 129.387755 38.3673469 112.244898 41.2244898 118.367347 44.4897959 129.387755 42.8571429 135.102041 40 146.122449 36.3265306 146.530612 35.5102041 140","59.5918367 145.714286 55.5102041 128.979592 60.8163265 113.877551 61.2244898 130.204082 64.0816327 139.591837 62.8571429 146.530612","32.6530612 138.367347 26.5306122 145.714286 25.7142857 136.734694 25.7142857 127.346939 26.9387755 114.285714 29.3877551 133.469388","71.8367347 113.061224 73.877551 124.081633 73.877551 140.408163 72.6530612 145.714286 66.5306122 138.367347 70.2040816 133.469388"]},{muscle:s.KNEES,svgPoints:["33.877551 140 34.6938776 143.265306 35.5102041 147.346939 36.3265306 151.020408 35.1020408 156.734694 29.7959184 156.734694 27.3469388 152.653061 27.3469388 147.346939 30.2040816 144.081633","65.7142857 140 72.244898 147.755102 72.244898 152.244898 69.7959184 157.142857 64.8979592 156.734694 62.8571429 151.020408"]},{muscle:s.CALVES,svgPoints:["71.4285714 160.408163 73.4693878 153.469388 76.7346939 161.22449 79.5918367 167.755102 78.3673469 187.755102 79.5918367 195.510204 74.6938776 195.510204","24.8979592 194.693878 27.755102 164.897959 28.1632653 160.408163 26.122449 154.285714 24.8979592 157.55102 22.4489796 161.632653 20.8163265 167.755102 22.0408163 188.163265 20.8163265 195.510204","72.6530612 195.102041 69.7959184 159.183673 65.3061224 158.367347 64.0816327 162.44898 64.0816327 165.306122 65.7142857 177.142857","35.5102041 158.367347 35.9183673 162.44898 35.9183673 166.938776 35.1020408 172.244898 35.1020408 176.734694 32.244898 182.040816 30.6122449 187.346939 26.9387755 194.693878 27.3469388 187.755102 28.1632653 180.408163 28.5714286 175.510204 28.9795918 169.795918 29.7959184 164.081633 30.2040816 158.77551"]},{muscle:s.FOREARM,svgPoints:["6.12244898 88.5714286 10.2040816 75.1020408 14.6938776 70.2040816 16.3265306 74.2857143 19.1836735 73.4693878 4.48979592 97.5510204 0 100","84.4897959 69.7959184 83.2653061 73.4693878 80 73.0612245 95.1020408 98.3673469 100 100.408163 93.4693878 89.3877551 89.7959184 76.3265306","77.5510204 72.244898 77.5510204 77.5510204 80.4081633 84.0816327 85.3061224 89.7959184 92.244898 101.22449 94.6938776 99.5918367","6.93877551 101.22449 13.4693878 90.6122449 18.7755102 84.0816327 21.6326531 77.1428571 21.2244898 71.8367347 4.89795918 98.7755102"]}],o=[{muscle:s.HEAD,svgPoints:["50.6382979 0 45.9574468 0.85106383 40.8510638 5.53191489 40.4255319 12.7659574 45.106383 20 55.7446809 20 59.1489362 13.6170213 59.5744681 4.68085106 55.7446809 1.27659574"]},{muscle:s.TRAPEZIUS,svgPoints:["44.6808511 21.7021277 47.6595745 21.7021277 47.2340426 38.2978723 47.6595745 64.6808511 38.2978723 53.1914894 35.3191489 40.8510638 31.0638298 36.5957447 39.1489362 33.1914894 43.8297872 27.2340426","52.3404255 21.7021277 55.7446809 21.7021277 56.5957447 27.2340426 60.8510638 32.7659574 68.9361702 36.5957447 64.6808511 40.4255319 61.7021277 53.1914894 52.3404255 64.6808511 53.1914894 38.2978723"]},{muscle:s.BACK_DELTOIDS,svgPoints:["29.3617021 37.0212766 22.9787234 39.1489362 17.4468085 44.2553191 18.2978723 53.6170213 24.2553191 49.3617021 27.2340426 46.3829787","71.0638298 37.0212766 78.2978723 39.5744681 82.5531915 44.6808511 81.7021277 53.6170213 74.893617 48.9361702 72.3404255 45.106383"]},{muscle:s.UPPER_BACK,svgPoints:["31.0638298 38.7234043 28.0851064 48.9361702 28.5106383 55.3191489 34.0425532 75.3191489 47.2340426 71.0638298 47.2340426 66.3829787 36.5957447 54.0425532 33.6170213 41.2765957","68.9361702 38.7234043 71.9148936 49.3617021 71.4893617 56.1702128 65.9574468 75.3191489 52.7659574 71.0638298 52.7659574 66.3829787 63.4042553 54.4680851 66.3829787 41.7021277"]},{muscle:s.TRICEPS,svgPoints:["26.8085106 49.787234 17.8723404 55.7446809 14.4680851 72.3404255 16.5957447 81.7021277 21.7021277 63.8297872 26.8085106 55.7446809","73.6170213 50.212766 82.1276596 55.7446809 85.9574468 73.1914894 83.4042553 82.1276596 77.8723404 62.9787234 73.1914894 55.7446809","26.8085106 58.2978723 26.8085106 68.5106383 22.9787234 75.3191489 19.1489362 77.4468085 22.5531915 65.5319149","72.7659574 58.2978723 77.0212766 64.6808511 80.4255319 77.4468085 76.5957447 75.3191489 72.7659574 68.9361702"]},{muscle:s.LOWER_BACK,svgPoints:["47.6595745 72.7659574 34.4680851 77.0212766 35.3191489 83.4042553 49.3617021 102.12766 46.8085106 82.9787234","52.3404255 72.7659574 65.5319149 77.0212766 64.6808511 83.4042553 50.6382979 102.12766 53.1914894 83.8297872"]},{muscle:s.FOREARM,svgPoints:["86.3829787 75.7446809 91.0638298 83.4042553 93.1914894 94.0425532 100 106.382979 96.1702128 104.255319 88.0851064 89.3617021 84.2553191 83.8297872","13.6170213 75.7446809 8.93617021 83.8297872 6.80851064 93.6170213 0 106.382979 3.82978723 104.255319 12.3404255 88.5106383 15.7446809 82.9787234","81.2765957 79.5744681 77.4468085 77.8723404 79.1489362 84.6808511 91.0638298 103.829787 93.1914894 108.93617 94.4680851 104.680851","18.7234043 79.5744681 22.1276596 77.8723404 20.8510638 84.2553191 9.36170213 102.978723 6.80851064 108.510638 5.10638298 104.680851"]},{muscle:s.GLUTEAL,svgPoints:["44.6808511 99.5744681 30.212766 108.510638 29.787234 118.723404 31.4893617 125.957447 47.2340426 121.276596 49.3617021 114.893617","55.3191489 99.1489362 51.0638298 114.468085 52.3404255 120.851064 68.0851064 125.957447 69.787234 119.148936 69.3617021 108.510638"]},{muscle:s.ADDUCTOR,svgPoints:["48.0851064 122.978723 44.6808511 122.978723 41.2765957 125.531915 45.106383 144.255319 48.5106383 135.744681 48.9361702 129.361702","51.9148936 122.553191 55.7446809 123.404255 59.1489362 125.957447 54.893617 144.255319 51.9148936 136.170213 51.0638298 129.361702"]},{muscle:s.HAMSTRING,svgPoints:["28.9361702 122.12766 31.0638298 129.361702 36.5957447 125.957447 35.3191489 135.319149 34.4680851 150.212766 29.3617021 158.297872 28.9361702 146.808511 27.6595745 141.276596 27.2340426 131.489362","71.4893617 121.702128 69.3617021 128.93617 63.8297872 125.957447 65.5319149 136.595745 66.3829787 150.212766 71.0638298 158.297872 71.4893617 147.659574 72.7659574 142.12766 73.6170213 131.914894","38.7234043 125.531915 44.2553191 145.957447 40.4255319 166.808511 36.1702128 152.765957 37.0212766 135.319149","61.7021277 125.531915 63.4042553 136.170213 64.2553191 153.191489 60 166.808511 56.1702128 146.382979"]},{muscle:s.KNEES,svgPoints:["34.4680851 153.191489 31.0638298 159.148936 33.6170213 166.382979 37.4468085 162.553191","66.3829787 153.617021 62.9787234 162.978723 66.8085106 166.382979 69.3617021 159.148936"]},{muscle:s.CALVES,svgPoints:["29.3617021 160.425532 28.5106383 167.234043 24.6808511 179.574468 23.8297872 192.765957 25.5319149 197.021277 28.5106383 193.191489 29.787234 180 31.9148936 171.06383 31.9148936 166.808511","37.4468085 165.106383 35.3191489 167.659574 33.1914894 171.914894 31.0638298 180.425532 30.212766 191.914894 34.0425532 200 38.7234043 190.638298 39.1489362 168.93617","62.9787234 165.106383 61.2765957 168.510638 61.7021277 190.638298 66.3829787 199.574468 70.6382979 191.914894 68.9361702 179.574468 66.8085106 170.212766","70.6382979 160.425532 72.3404255 168.510638 75.7446809 179.148936 76.5957447 192.765957 74.4680851 196.595745 72.3404255 193.617021 70.6382979 179.574468 68.0851064 168.085106"]},{muscle:s.LEFT_SOLEUS,svgPoints:["28.5106383 195.744681 30.212766 195.744681 33.6170213 201.702128 30.6382979 220 28.5106383 213.617021 26.8085106 198.297872"]},{muscle:s.RIGHT_SOLEUS,svgPoints:["69.787234 195.744681 71.9148936 195.744681 73.6170213 198.297872 71.9148936 213.191489 70.212766 219.574468 67.2340426 202.12766"]}];function u(e,s){(null==s||s>e.length)&&(s=e.length);for(var r=0,t=Array(s);r<s;r++)t[r]=e[r];return t}var l={trapezius:{exercises:[],frequency:0},"upper-back":{exercises:[],frequency:0},"lower-back":{exercises:[],frequency:0},chest:{exercises:[],frequency:0},biceps:{exercises:[],frequency:0},triceps:{exercises:[],frequency:0},forearm:{exercises:[],frequency:0},"back-deltoids":{exercises:[],frequency:0},"front-deltoids":{exercises:[],frequency:0},abs:{exercises:[],frequency:0},obliques:{exercises:[],frequency:0},adductor:{exercises:[],frequency:0},hamstring:{exercises:[],frequency:0},quadriceps:{exercises:[],frequency:0},abductors:{exercises:[],frequency:0},calves:{exercises:[],frequency:0},gluteal:{exercises:[],frequency:0},head:{exercises:[],frequency:0},neck:{exercises:[],frequency:0},knees:{exercises:[],frequency:0},"left-soleus":{exercises:[],frequency:0},"right-soleus":{exercises:[],frequency:0}},a=["#81b1d9","#277abf"],E=r.ANTERIOR,m=t.MALE,v=function(e,s,r){var t,n=null==(t=e[r])?void 0:t.frequency;if(null!=n&&0!==n)return s[Math.min(s.length-1,n-1)]},P=e.memo((function(s){var P=s.data,g=s.bodyColor,S=void 0===g?"#B6BDC3":g,A=s.bodyType,f=void 0===A?m:A,y=s.highlightedColors,R=void 0===y?a:y,d=s.onClick,T=s.svgStyle,C=s.style,O=s.type,p=void 0===O?E:O,I=(void 0===P?[]:P).reduce((function(e,s){for(var r,t=function(e,s){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,s){if(e){if("string"==typeof e)return u(e,s);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,s):void 0}}(e))){r&&(e=r);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(s.muscles);!(r=t()).done;){var n=r.value;e[n]&&(e[n].exercises.push(s.name),e[n].frequency+=s.frequency||1)}return e}),JSON.parse(JSON.stringify(l)));return e.createElement("div",{style:C,className:"rbh-wrapper"},e.createElement("svg",{className:"rbh",width:"100%",height:"100%",viewBox:"0 0 100 200",style:T},(f===t.FEMALE?p===r.ANTERIOR?n:c:p===r.ANTERIOR?i:o).map((function(s){return s.svgPoints.map((function(r,t){return e.createElement("polygon",{key:s.muscle+"-"+t,points:r,onClick:function(){return e=s.muscle,void(null==(r=d)||r({muscle:e,data:I[e]}));var e,r},style:{cursor:"pointer",fill:(n=v(I,R,s.muscle),c=S,null==n?c:n)}});var n,c}))}))))}));exports.BodyType=t,exports.ModelType=r,exports.MuscleType=s,exports.default=P;
|
|
2
|
+
//# sourceMappingURL=react-body-highlighter.cjs.production.min.js.map
|