2 lines
6.6 KiB
JavaScript
2 lines
6.6 KiB
JavaScript
(this["webpackJsonpworkout-editor"]=this["webpackJsonpworkout-editor"]||[]).push([[0],{117:function(n,e,t){"use strict";t.r(e);var r=t(0),a=t.n(r),o=t(54),c=t.n(o),i=(t(64),t(20)),u=t(1),l=t(2),d=t(3);function s(){var n=Object(u.a)(["\n display: inline-block;\n border-radius: 10px;\n vertical-align: bottom;\n margin-right: 0.1%;\n /* exclude 0.1% margin from bar width */\n width: ","%;\n height: ","%;\n background: ",";\n transition: width 0.1s, height 0.1s, background-color 0.1s;\n"]);return s=function(){return n},n}var f={free:"linear-gradient(to top, rgba(204,204,204,1), rgba(255,255,255,0))",Z1:"#7f7f7f",Z2:"#338cff",Z3:"#59bf59",Z4:"#ffcc3f",Z5:"#ff6639",Z6:"#ff330c"},m=l.a.div(s(),(function(n){return n.durationPercentage-.1}),(function(n){return"free"===n.zone?100:n.intensityPercentage}),(function(n){return f[n.zone]}));function b(){var n=Object(u.a)(["\n white-space: nowrap;\n overflow: hidden;\n height: 200px;\n border-radius: 5px;\n padding: 5px;\n margin: 10px 0;\n"]);return b=function(){return n},n}var p=l.a.div(b()),g=function(n){var e=n.intervals,t=Object(d.totalDuration)(e),r=Object(d.maximumIntensity)(e);return a.a.createElement(p,null,e.map((function(n){return function(n,e,t){return{zone:n.intensity.zone,durationPercentage:n.duration.seconds/e.seconds*100,intensityPercentage:n.intensity.value/t.value*100}}(n,t,r)})).map((function(n){return a.a.createElement(m,n)})))},v=function(n){var e=function(n){return{hours:Math.floor(n.seconds/60/60),minutes:Math.floor(n.seconds/60)%60,seconds:n.seconds%60}}(n),t=e.hours,r=e.minutes,a=e.seconds;return t>0?"".concat(t,"h ").concat(r,"min"):r>0?"".concat(r,"min"):a>0?"".concat(a,"sec"):"-"};function h(){var n=Object(u.a)(["\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n"]);return h=function(){return n},n}function w(){var n=Object(u.a)(["\n margin: 1m 0;\n padding: 0;\n list-style: none;\n"]);return w=function(){return n},n}function j(){var n=Object(u.a)(["\n margin: 0;\n font-size: 14px;\n font-weight: normal;\n"]);return j=function(){return n},n}function y(){var n=Object(u.a)([""]);return y=function(){return n},n}function E(){var n=Object(u.a)(["\n display: grid;\n grid-template-columns: 1fr 3fr;\n border: 1px solid #bbb;\n border-radius: 10px;\n padding: 10px;\n font-size: 12px;\n background: rgba(255, 255, 255, 0.6);\n"]);return E=function(){return n},n}var O=function(n){return"".concat(Math.round(100*n.value),"%")},x=function(n){var e=n.label,t=n.value;return a.a.createElement("li",null,a.a.createElement("strong",null,e)," ",t)},k=l.a.div(E()),z=l.a.section(y()),S=l.a.h2(j()),Z=l.a.ul(w()),I=Object(l.a)(Z)(h()),M=function(n){var e=n.workout,t=Object(d.stats)(e),r=t.totalDuration,o=t.averageIntensity,c=t.normalizedIntensity,i=t.tss,u=t.zones;return a.a.createElement(k,null,a.a.createElement(z,null,a.a.createElement(S,null,"Summary"),a.a.createElement(Z,null,a.a.createElement(x,{label:"Duration:",value:v(r)}),a.a.createElement(x,{label:"Average intensity:",value:O(o)}),a.a.createElement(x,{label:"Normalized intensity:",value:O(c)}),a.a.createElement(x,{label:"TSS:",value:Math.round(i)}))),a.a.createElement(z,null,a.a.createElement(S,null,"Zone distribution"),a.a.createElement(I,null,u.map((function(n){return a.a.createElement(x,{label:n.name,value:v(n.duration)})})))))};function $(){var n=Object(u.a)(["\n color: red;\n background: #fee;\n border-radius: 10px;\n border: 2px solid red;\n padding: 5px;\n margin: 10px 0;\n"]);return $=function(){return n},n}var C=l.a.p($()),D=t(58),R=t.n(D);function N(){var n=Object(u.a)(["\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;\n font-size: 14px;\n line-height: 1.3;\n border: 1px inset #bbb;\n border-radius: 3px;\n background: #fff;\n \n code.keyword {\n font-weight: bold;\n }\n code.duration {\n color: #681caf;\n }\n code.intensity {\n color: #af391c;\n }\n code.cadence {\n color: #86af1c;\n }\n code.range {\n color: #888;\n }\n code.comment {\n font-style: italic;\n color: #888;\n .duration {\n color: #8d67af;\n }\n }\n code.comment-start {\n font-weight: bold;\n font-style: italic;\n color: #888;\n }\n"]);return N=function(){return n},n}var P=Object(l.a)(R.a).attrs({padding:10,highlight:function(n){return n.replace(/^(Name|Author|Description|Warmup|Rest|Interval|Cooldown|FreeRide):/gm,"<code class='keyword'>$&</code>").replace(/(\d{1,2}:)?\d{1,2}:\d{1,2}/g,"<code class='duration'>$&</code>").replace(/\d+%/g,"<code class='intensity'>$&</code>").replace(/\d+rpm/g,"<code class='cadence'>$&</code>").replace(/\.\./g,"<code class='range'>$&</code>").replace(/@(.*?)$/gm,"<code class='comment-start'>@</code><code class='comment'>$1</code>")}})(N());function F(){var n=Object(u.a)(["\n border: 1px solid #bbb;\n border-radius: 3px;\n padding: 10px;\n"]);return F=function(){return n},n}function J(){var n=Object(u.a)(["\n font-weight: normal;\n font-size: 16px;\n"]);return J=function(){return n},n}var W=l.a.h2(J()),A=l.a.pre(F()),T=function(n){var e=n.workout;return a.a.createElement("div",null,a.a.createElement(W,null,"Generated Zwift workout file (.zwo):"),a.a.createElement(A,null,Object(d.generateZwo)(e)))};function B(){var n=Object(u.a)(["\n font-weight: normal;\n"]);return B=function(){return n},n}function G(){var n=Object(u.a)(["\n max-width: 800px;\n margin: 0 auto;\n"]);return G=function(){return n},n}var H="Name: Sample workout\nDescription: Try changing it, and see what happens below.\n\nWarmup: 10:00 30%..75%\nInterval: 15:00 100% 90rpm\n @ 00:00 Start off easy\n @ 01:00 Settle into rhythm\n @ 07:30 Half way through\n @ 14:00 Final minute, stay strong!\nRest: 10:00 75%\nFreeRide: 20:00\n @ 00:10 Just have some fun, riding as you wish\nCooldown: 10:00 70%..30%\n",V=l.a.div(G()),q=l.a.h1(B()),K=new d.Duration(60);function L(){var n=Object(r.useState)(H),e=Object(i.a)(n,2),t=e[0],o=e[1],c=Object(r.useState)(Object(d.parse)(H)),u=Object(i.a)(c,2),l=u[0],s=u[1],f=Object(r.useState)(void 0),m=Object(i.a)(f,2),b=m[0],p=m[1],v=Object(r.useCallback)((function(n){o(n);try{s(Object(d.parse)(n)),p(void 0)}catch(e){p(e.message)}}),[o,s,p]);return a.a.createElement(V,null,a.a.createElement(q,null,"Workout editor"),a.a.createElement(P,{onValueChange:v,value:t}),a.a.createElement(g,{intervals:Object(d.chunkRangeIntervals)(l.intervals,K)}),b&&a.a.createElement(C,null,b),a.a.createElement(M,{workout:l}),a.a.createElement(T,{workout:l}))}c.a.render(a.a.createElement(a.a.StrictMode,null,a.a.createElement(L,null)),document.getElementById("root"))},59:function(n,e,t){n.exports=t(117)},64:function(n,e,t){},74:function(n,e){},76:function(n,e){}},[[59,1,2]]]);
|
|
//# sourceMappingURL=main.05bc61d3.chunk.js.map
|