diff --git a/README.md b/README.md
index ab97b1f..e4cf53f 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,11 @@
"type": "penalty", // Штрафной пункт. Указано количество баллов которое снимается, если он выбран.
"text": "Тестовый - Oшибки или предупреждения eslint-config-airbnb-base",
"max": -15
+ },
+ {
+ "type": "penalty", // Штрафной пункт. Указан процент от общего количества баллов которые снимается, если он выбран.
+ "text": "Тестовый - Pull Request сделан НЕ в свой репозиторий",
+ "max": "-20%"
}
]
}
diff --git a/active-tasks/node-nodejs-basics.json b/active-tasks/node-nodejs-basics.json
new file mode 100644
index 0000000..09bd75d
--- /dev/null
+++ b/active-tasks/node-nodejs-basics.json
@@ -0,0 +1,161 @@
+{
+ "taskName": "Node.js basics Q4-2022",
+ "github": "https://github.com/AlreadyBored/nodejs-assignments/blob/main/assignments/nodejs-basics/assignment.md",
+ "information": "Scoring: Node.js basics",
+ "criteria": [
+ {
+ "type": "title",
+ "title": "For check simplification you have npm-scripts in \"package.json.\"\nNB! Some scripts have predefined data (e.g. environment variables, CLI arguments). Feel free to change it during the check if necessary.\n\nMax score: 206"
+ },
+ {
+ "type": "title",
+ "title": "File system (src/fs)"
+ },
+ {
+ "type": "subtask",
+ "text": "`create.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "subtask",
+ "text": "`copy.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`rename.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`delete.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "subtask",
+ "text": "`list.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "subtask",
+ "text": "`read.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "title",
+ "title": "Command line interface(src/cli)"
+ },
+ {
+ "type": "subtask",
+ "text": "`env.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "subtask",
+ "text": "`args.js` implemented properly",
+ "max": 6
+ },
+ {
+ "type": "title",
+ "title": "Modules(src/modules)"
+ },
+ {
+ "type": "subtask",
+ "text": "`cjsToEsm.cjs` refactored properly",
+ "max": 20
+ },
+ {
+ "type": "title",
+ "title": "Hash (src/hash)"
+ },
+ {
+ "type": "subtask",
+ "text": "`calcHash.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "title",
+ "title": "Streams (src/streams)"
+ },
+ {
+ "type": "subtask",
+ "text": "`read.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`write.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`transform.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "title",
+ "title": "Zlib (src/zip)"
+ },
+ {
+ "type": "subtask",
+ "text": "`compress.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`decompress.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "title",
+ "title": "Advanced Scope"
+ },
+ {
+ "type": "title",
+ "title": "Worker Threads (src/wt)"
+ },
+ {
+ "type": "subtask",
+ "text": "`worker.js` implemented properly",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "`main.js` implemented properly",
+ "max": 30
+ },
+ {
+ "type": "title",
+ "title": "Child Processes (src/cp)"
+ },
+ {
+ "type": "subtask",
+ "text": "spawns child process",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "child process `stdin` receives input from master process `stdin`",
+ "max": 10
+ },
+ {
+ "type": "subtask",
+ "text": "child process `stdout` sends data to master process `stdout`",
+ "max": 10
+ },
+ {
+ "type": "title",
+ "title": "Forfeits"
+ },
+ {
+ "type": "penalty",
+ "text": "Any external tools/libraries are used",
+ "max": "-95%"
+ },
+ {
+ "type": "penalty",
+ "text": "Commits after deadline (except commits that affect only Readme.md, .gitignore, etc.)",
+ "max": "-30%"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/css/styles.css b/css/styles.css
index d079885..f1a324c 100644
--- a/css/styles.css
+++ b/css/styles.css
@@ -564,6 +564,10 @@ label:hover {
font-size: 35px;
}
+.task-max-score .wide-digit {
+ font-size: 24px;
+}
+
.feedback-buttons {
position: relative;
text-align: right;
@@ -633,3 +637,12 @@ label:hover {
width: 60%;
text-align: left;
}
+
+code {
+ display: inline-block;
+ padding: 0 6px;
+ border-radius: 4px;
+ background: #00000026;
+ font-size: .85em;
+ line-height: 150%;
+}
\ No newline at end of file
diff --git a/index.js b/index.js
index 4d766be..688a1b1 100644
--- a/index.js
+++ b/index.js
@@ -1 +1 @@
-!function(t){var n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(r,i,function(n){return t[n]}.bind(null,i));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=121)}([function(t,n,e){var r=e(1),i=e(7),o=e(14),u=e(11),c=e(17),a=function(t,n,e){var f,s,l,h,p=t&a.F,v=t&a.G,d=t&a.S,y=t&a.P,g=t&a.B,m=v?r:d?r[n]||(r[n]={}):(r[n]||{}).prototype,b=v?i:i[n]||(i[n]={}),x=b.prototype||(b.prototype={});for(f in v&&(e=n),e)l=((s=!p&&m&&void 0!==m[f])?m:e)[f],h=g&&s?c(l,r):y&&"function"==typeof l?c(Function.call,l):l,m&&u(m,f,l,t&a.U),b[f]!=l&&o(b,f,h),y&&x[f]!=l&&(x[f]=l)};r.core=i,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,e){var r=e(4);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,e){var r=e(48)("wks"),i=e(29),o=e(1).Symbol,u="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=r},function(t,n,e){var r=e(19),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,n){var e=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=e)},function(t,n,e){t.exports=!e(2)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,n,e){var r=e(3),i=e(88),o=e(26),u=Object.defineProperty;n.f=e(8)?Object.defineProperty:function(t,n,e){if(r(t),n=o(n,!0),r(e),i)try{return u(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},function(t,n,e){var r=e(24);t.exports=function(t){return Object(r(t))}},function(t,n,e){var r=e(1),i=e(14),o=e(13),u=e(29)("src"),c=e(126),a=(""+c).split("toString");e(7).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,e,c){var f="function"==typeof e;f&&(o(e,"name")||i(e,"name",n)),t[n]!==e&&(f&&(o(e,u)||i(e,u,t[n]?""+t[n]:a.join(String(n)))),t===r?t[n]=e:c?t[n]?t[n]=e:i(t,n,e):(delete t[n],i(t,n,e)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[u]||c.call(this)}))},function(t,n,e){var r=e(0),i=e(2),o=e(24),u=/"/g,c=function(t,n,e,r){var i=String(o(t)),c="<"+n;return""!==e&&(c+=" "+e+'="'+String(r).replace(u,""")+'"'),c+">"+i+""+n+">"};t.exports=function(t,n){var e={};e[t]=n(c),r(r.P+r.F*i((function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3})),"String",e)}},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},function(t,n,e){var r=e(9),i=e(28);t.exports=e(8)?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n,e){var r=e(44),i=e(24);t.exports=function(t){return r(i(t))}},function(t,n,e){"use strict";var r=e(2);t.exports=function(t,n){return!!t&&r((function(){n?t.call(null,(function(){}),1):t.call(null)}))}},function(t,n,e){var r=e(18);t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,i){return t.call(n,e,r,i)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},function(t,n,e){var r=e(45),i=e(28),o=e(15),u=e(26),c=e(13),a=e(88),f=Object.getOwnPropertyDescriptor;n.f=e(8)?f:function(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(t){}if(c(t,n))return i(!r.f.call(t,n),t[n])}},function(t,n,e){var r=e(0),i=e(7),o=e(2);t.exports=function(t,n){var e=(i.Object||{})[t]||Object[t],u={};u[t]=n(e),r(r.S+r.F*o((function(){e(1)})),"Object",u)}},function(t,n,e){var r=e(17),i=e(44),o=e(10),u=e(6),c=e(104);t.exports=function(t,n){var e=1==t,a=2==t,f=3==t,s=4==t,l=6==t,h=5==t||l,p=n||c;return function(n,c,v){for(var d,y,g=o(n),m=i(g),b=r(c,v,3),x=u(m.length),S=0,w=e?p(n,x):a?p(n,0):void 0;x>S;S++)if((h||S in m)&&(y=b(d=m[S],S,g),t))if(e)w[S]=y;else if(y)switch(t){case 3:return!0;case 5:return d;case 6:return S;case 2:w.push(d)}else if(s)return!1;return l?-1:f||s?s:w}}},function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,n,e){"use strict";if(e(8)){var r=e(30),i=e(1),o=e(2),u=e(0),c=e(59),a=e(84),f=e(17),s=e(42),l=e(28),h=e(14),p=e(43),v=e(19),d=e(6),y=e(115),g=e(32),m=e(26),b=e(13),x=e(46),S=e(4),w=e(10),E=e(76),_=e(33),k=e(35),O=e(34).f,L=e(78),F=e(29),M=e(5),P=e(22),A=e(49),T=e(47),I=e(80),j=e(40),N=e(52),R=e(41),C=e(79),D=e(106),W=e(9),q=e(20),V=W.f,U=q.f,G=i.RangeError,B=i.TypeError,H=i.Uint8Array,z=Array.prototype,Y=a.ArrayBuffer,K=a.DataView,$=P(0),J=P(2),X=P(3),Z=P(4),Q=P(5),tt=P(6),nt=A(!0),et=A(!1),rt=I.values,it=I.keys,ot=I.entries,ut=z.lastIndexOf,ct=z.reduce,at=z.reduceRight,ft=z.join,st=z.sort,lt=z.slice,ht=z.toString,pt=z.toLocaleString,vt=M("iterator"),dt=M("toStringTag"),yt=F("typed_constructor"),gt=F("def_constructor"),mt=c.CONSTR,bt=c.TYPED,xt=c.VIEW,St=P(1,(function(t,n){return Ot(T(t,t[gt]),n)})),wt=o((function(){return 1===new H(new Uint16Array([1]).buffer)[0]})),Et=!!H&&!!H.prototype.set&&o((function(){new H(1).set({})})),_t=function(t,n){var e=v(t);if(e<0||e%n)throw G("Wrong offset!");return e},kt=function(t){if(S(t)&&bt in t)return t;throw B(t+" is not a typed array!")},Ot=function(t,n){if(!S(t)||!(yt in t))throw B("It is not a typed array constructor!");return new t(n)},Lt=function(t,n){return Ft(T(t,t[gt]),n)},Ft=function(t,n){for(var e=0,r=n.length,i=Ot(t,r);r>e;)i[e]=n[e++];return i},Mt=function(t,n,e){V(t,n,{get:function(){return this._d[e]}})},Pt=function(t){var n,e,r,i,o,u,c=w(t),a=arguments.length,s=a>1?arguments[1]:void 0,l=void 0!==s,h=L(c);if(null!=h&&!E(h)){for(u=h.call(c),r=[],n=0;!(o=u.next()).done;n++)r.push(o.value);c=r}for(l&&a>2&&(s=f(s,arguments[2],2)),n=0,e=d(c.length),i=Ot(this,e);e>n;n++)i[n]=l?s(c[n],n):c[n];return i},At=function(){for(var t=0,n=arguments.length,e=Ot(this,n);n>t;)e[t]=arguments[t++];return e},Tt=!!H&&o((function(){pt.call(new H(1))})),It=function(){return pt.apply(Tt?lt.call(kt(this)):kt(this),arguments)},jt={copyWithin:function(t,n){return D.call(kt(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Z(kt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return C.apply(kt(this),arguments)},filter:function(t){return Lt(this,J(kt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(kt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(kt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){$(kt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return et(kt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(kt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ft.apply(kt(this),arguments)},lastIndexOf:function(t){return ut.apply(kt(this),arguments)},map:function(t){return St(kt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ct.apply(kt(this),arguments)},reduceRight:function(t){return at.apply(kt(this),arguments)},reverse:function(){for(var t,n=kt(this).length,e=Math.floor(n/2),r=0;r ").concat(t.max," ".concat(t.text," Ваша оценка - ".concat(g>=0?g:0," ").concat(l," \r\n Отзыв по пунктам ТЗ:\r\n ".concat(p[t],"\r\n ".concat(n+1,") ").concat(t.text," \r\n").concat(t.feedback?' Отзыв: '+t.feedback+"i)return NaN;return parseInt(a,r)}}return+n};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var n=arguments.length<1?0:t,e=this;return e instanceof p&&(y?a((function(){d.valueOf.call(e)})):"Number"!=o(e))?u(new v(m(n)),e,p):m(n)};for(var b,x=e(8)?f(v):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;x.length>S;S++)i(v,b=x[S])&&!i(p,b)&&l(p,b,s(v,b));p.prototype=d,d.constructor=p,e(11)(r,"Number",p)}},function(t,n,e){"use strict";var r=e(0),i=e(19),o=e(99),u=e(68),c=1..toFixed,a=Math.floor,f=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var e=-1,r=n;++e<6;)r+=t*f[e],f[e]=r%1e7,r=a(r/1e7)},h=function(t){for(var n=6,e=0;--n>=0;)e+=f[n],f[n]=a(e/t),e=e%t*1e7},p=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==f[t]){var e=String(f[t]);n=""===n?e:n+u.call("0",7-e.length)+e}return n},v=function(t,n,e){return 0===n?e:n%2==1?v(t,n-1,e*t):v(t*t,n/2,e)};r(r.P+r.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!e(2)((function(){c.call({})}))),"Number",{toFixed:function(t){var n,e,r,c,a=o(this,s),f=i(t),d="",y="0";if(f<0||f>20)throw RangeError(s);if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return String(a);if(a<0&&(d="-",a=-a),a>1e-21)if(e=(n=function(t){for(var n=0,e=t;e>=4096;)n+=12,e/=4096;for(;e>=2;)n+=1,e/=2;return n}(a*v(2,69,1))-69)<0?a*v(2,-n,1):a/v(2,n,1),e*=4503599627370496,(n=52-n)>0){for(l(0,e),r=f;r>=7;)l(1e7,0),r-=7;for(l(v(10,r,1),0),r=n-1;r>=23;)h(1<<23),r-=23;h(1<1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=e+r);r>=0;r--)if(r in n&&n[r]===t)return r||0;return-1}})},function(t,n,e){var r=e(0);r(r.P,"Array",{copyWithin:e(106)}),e(36)("copyWithin")},function(t,n,e){var r=e(0);r(r.P,"Array",{fill:e(79)}),e(36)("fill")},function(t,n,e){"use strict";var r=e(0),i=e(22)(5),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),e(36)("find")},function(t,n,e){"use strict";var r=e(0),i=e(22)(6),o="findIndex",u=!0;o in[]&&Array(1)[o]((function(){u=!1})),r(r.P+r.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),e(36)(o)},function(t,n,e){e(41)("Array")},function(t,n,e){var r=e(1),i=e(67),o=e(9).f,u=e(34).f,c=e(74),a=e(53),f=r.RegExp,s=f,l=f.prototype,h=/a/g,p=/a/g,v=new f(h)!==h;if(e(8)&&(!v||e(2)((function(){return p[e(5)("match")]=!1,f(h)!=h||f(p)==p||"/a/i"!=f(h,"i")})))){f=function(t,n){var e=this instanceof f,r=c(t),o=void 0===n;return!e&&r&&t.constructor===f&&o?t:i(v?new s(r&&!o?t.source:t,n):s((r=t instanceof f)?t.source:t,r&&o?a.call(t):n),e?this:l,f)};for(var d=function(t){t in f||o(f,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})},y=u(s),g=0;y.length>g;)d(y[g++]);l.constructor=f,f.prototype=l,e(11)(r,"RegExp",f)}e(41)("RegExp")},function(t,n,e){"use strict";e(109);var r=e(3),i=e(53),o=e(8),u=/./.toString,c=function(t){e(11)(RegExp.prototype,"toString",t,!0)};e(2)((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?c((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)})):"toString"!=u.name&&c((function(){return u.call(this)}))},function(t,n,e){"use strict";var r=e(3),i=e(6),o=e(82),u=e(54);e(55)("match",1,(function(t,n,e,c){return[function(e){var r=t(this),i=null==e?void 0:e[n];return void 0!==i?i.call(e,r):new RegExp(e)[n](String(r))},function(t){var n=c(e,t,this);if(n.done)return n.value;var a=r(t),f=String(this);if(!a.global)return u(a,f);var s=a.unicode;a.lastIndex=0;for(var l,h=[],p=0;null!==(l=u(a,f));){var v=String(l[0]);h[p]=v,""===v&&(a.lastIndex=o(f,i(a.lastIndex),s)),p++}return 0===p?null:h}]}))},function(t,n,e){"use strict";var r=e(3),i=e(10),o=e(6),u=e(19),c=e(82),a=e(54),f=Math.max,s=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;e(55)("replace",2,(function(t,n,e,v){return[function(r,i){var o=t(this),u=null==r?void 0:r[n];return void 0!==u?u.call(r,o,i):e.call(String(o),r,i)},function(t,n){var i=v(e,t,this,n);if(i.done)return i.value;var l=r(t),h=String(this),p="function"==typeof n;p||(n=String(n));var y=l.global;if(y){var g=l.unicode;l.lastIndex=0}for(var m=[];;){var b=a(l,h);if(null===b)break;if(m.push(b),!y)break;""===String(b[0])&&(l.lastIndex=c(h,o(l.lastIndex),g))}for(var x,S="",w=0,E=0;E
3?'class="wide-digit"':"",">").concat(t.max,"
");var h=document.createElement("div");h.classList.add("task-description"),h.innerHTML="".concat(t.text.split("`").map((function(t,n,e){return n
Ваша оценка - ".concat(m>=0?m:0," ").concat(l," \r\n
Отзыв по пунктам ТЗ:\r\n
");var p={0:"Не выполненные/не засчитанные пункты:",1:"Частично выполненные пункты:",2:"Выполненные пункты:",penalty:"Штрафы:"};Object.keys(p).forEach((function(t){f.some((function(n){return n.type==t&&0!=n.status||"penalty"!=n.type&&n.status==t}))&&(e.innerHTML+="".concat(p[t],"\r\n
"),f.filter((function(n){return n.type==t&&0!=n.status||"penalty"!=n.type&&n.status==t})).map((function(t,n){e.innerHTML+="".concat(n+1,") ").concat(t.text," \r\n").concat(t.feedback?'
Отзыв: '+t.feedback+"
":"","\r\n")})))})),o=e.innerText}h.appendChild(n),h.appendChild(e),h.classList.add("visible"),i=!0}function O(t){t?c=0:c++,v.innerText=c}function F(t){if(!y[t].needFeedback||!y[t].feedback||((e=y[t]).feedback=e.feedback.replace(/(\s+)/g," ").trim(),e.feedback.length<8)){if(y[t].needFeedback){var n=y[t].activeRadio.closest(".checkbox-container");return n.querySelector("a").click(),k(n,"Фидбек не может быть пустым! Минимальная длина 8 символов"),void setTimeout((function(){return k(n,s)}),3e3)}}else document.querySelectorAll(".checkbox-container").forEach((function(t){t.dataset.active="true"}));var e}function M(t){var n;y[t].needFeedback&&(c--,v.innerText=c,y[t].activeRadio.checked=!1,n=y[t].max,g-=+(n/2).toFixed(1),p.innerHTML=g<0?0:g,delete y[t].needFeedback,delete y[t].activeRadio,delete y[t].status,document.querySelectorAll(".checkbox-container").forEach((function(t){t.dataset.active="true"})),g||S.classList.add("hidden"))}function P(t,n,e,r){y[t].feedback=n.value,n.value?(e.classList.add("feedback-add"),e.innerHTML="Изменить отзыв"):(delete y[t].feedback,e.classList.remove("feedback-add"),e.innerHTML="Добавить отзыв"),r.remove()}x.addEventListener("click",(function(t){var n=t.target.parentElement,e=t.target.dataset.id,r=y[e];if("INPUT"===t.target.tagName){var o=t.target,c=o.dataset.score;if(u&&"true"==n.dataset.active)return n.dataset.active="false",void t.preventDefault();if(u&&"false"==n.dataset.active)return n.dataset.active="true",void t.preventDefault();if(!u&&"false"!=n.dataset.active){void 0===r.status&&O();var a="%"===r.max[r.max.length-1],f=[0,+(r.max/2).toFixed(1),r.max];r.status>=0&&!a&&(g-="penalty"!==r.type?f[r.status]:2*f[r.status]),a?1==c?E[r.text]=r.max.slice(0,-1):delete E[r.text]:g+="penalty"!==r.type?f[c]:2*f[c];var l=Object.keys(E).reduce((function(t,n){return t-E[n]}),0);if(m=(g-g*(.01*l)).toFixed(1),r.status=c,p.innerHTML=m<0?0:m,1==+c&&"subtask"==r.type){r.needFeedback=!0,r.activeRadio=o;var h=o.closest(".checkbox-container");h.querySelector("textarea")||h.querySelector("a").click(),h.scrollIntoView({behavior:"smooth"}),k(h,s),document.querySelectorAll(".checkbox-container").forEach((function(t){t.dataset.active="false",t===h&&(t.dataset.active="true")}))}else if(r.needFeedback&&"subtask"==r.type){r.needFeedback=!1;var v=o.closest(".checkbox-container").querySelector("form");v&&v.remove(),document.querySelectorAll(".checkbox-container").forEach((function(t){t.dataset.active="true"}))}if(void 0!==r.activeRadio&&r.activeRadio.dataset.score!==c&&r.feedback){r.activeRadio=o;var d=o.closest(".checkbox-container");d.querySelector("a").click(),k(d,"Вы изменили оценку. Возможно стоит изменить отзыв?")}i&&L(y)}y.some((function(t){return t&&void 0!==t.status}))?S.classList.remove("hidden"):S.classList.add("hidden"),r.activeRadio=o}})),window.addFeedback=function(t){t.preventDefault(),document.querySelectorAll(".add-form").forEach((function(t){return t.remove()}));var n=t.target,e=n.closest(".checkbox-container").querySelector("input").dataset.id,r=document.createElement("form");r.classList.add("add-form");var i=document.createElement("textarea");i.setAttribute("placeholder","Use Ctrl + Enter to save this feedback or ESC to cancel"),y[e].feedback&&(i.value=y[e].feedback),r.appendChild(i);var o=document.createElement("a");o.innerText="Отмена",o.onclick=function(){r.remove(),M(e)};var c=o.cloneNode();c.innerText="Сохранить",c.onclick=function(){P(e,i,n,r),F(e)};var a=document.createElement("DIV");a.classList.add("feedback-buttons"),a.appendChild(o),a.appendChild(c),r.appendChild(a),n.parentElement.appendChild(r),i.focus(),i.select(),r.addEventListener("keyup",(function(t){13==t.keyCode&&u?(P(e,i,n,r),F(e)):27==t.keyCode&&(M(e),r.remove())}))},window.copyToClipboard=function(t){t.preventDefault(),t.target.classList.add("not-link"),t.target.innerText="Скопировано!",setTimeout((function(){t.target.classList.remove("not-link"),t.target.innerText="Скопировать в буфер"}),1e3);var n=document.createElement("textarea");n.value=o,n.setAttribute("readonly",""),n.style.position="absolute",n.style.left="-9999px",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}}function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */o=function(){return t};var t={},n=Object.prototype,e=n.hasOwnProperty,r=Object.defineProperty||function(t,n,e){t[n]=e.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",a=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function s(t,n,e){return Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[n]}try{s({},"")}catch(t){s=function(t,n,e){return t[n]=e}}function l(t,n,e,i){var o=n&&n.prototype instanceof v?n:v,u=Object.create(o.prototype),c=new O(i||[]);return r(u,"_invoke",{value:E(t,e,c)}),u}function h(t,n,e){try{return{type:"normal",arg:t.call(n,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var p={};function v(){}function d(){}function y(){}var g={};s(g,c,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(F([])));b&&b!==n&&e.call(b,c)&&(g=b);var x=y.prototype=v.prototype=Object.create(g);function w(t){["next","throw","return"].forEach((function(n){s(t,n,(function(t){return this._invoke(n,t)}))}))}function S(t,n){var o;r(this,"_invoke",{value:function(r,u){function c(){return new n((function(o,c){!function r(o,u,c,a){var f=h(t[o],t,u);if("throw"!==f.type){var s=f.arg,l=s.value;return l&&"object"==i(l)&&e.call(l,"__await")?n.resolve(l.__await).then((function(t){r("next",t,c,a)}),(function(t){r("throw",t,c,a)})):n.resolve(l).then((function(t){s.value=t,c(s)}),(function(t){return r("throw",t,c,a)}))}a(f.arg)}(r,u,o,c)}))}return o=o?o.then(c,c):c()}})}function E(t,n,e){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return M()}for(e.method=i,e.arg=o;;){var u=e.delegate;if(u){var c=_(u,e);if(c){if(c===p)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if("suspendedStart"===r)throw r="completed",e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r="executing";var a=h(t,n,e);if("normal"===a.type){if(r=e.done?"completed":"suspendedYield",a.arg===p)continue;return{value:a.arg,done:e.done}}"throw"===a.type&&(r="completed",e.method="throw",e.arg=a.arg)}}}function _(t,n){var e=n.method,r=t.iterator[e];if(void 0===r)return n.delegate=null,"throw"===e&&t.iterator.return&&(n.method="return",n.arg=void 0,_(t,n),"throw"===n.method)||"return"!==e&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+e+"' method")),p;var i=h(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,p;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,p):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function k(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function L(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function O(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function F(t){if(t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function n(){for(;++r${el.max}
`; + taskMaxScore.innerHTML = `${scoreDesc}3) ? 'class="wide-digit"' : ''}>${el.max}
`; const taskDesc = document.createElement('div'); taskDesc.classList.add('task-description'); - taskDesc.innerHTML = `${el.text}
`; + taskDesc.innerHTML = `${getFormatedText(el.text)}
`; taskDesc.innerHTML += "Добавить отзыв"; @@ -297,9 +313,9 @@ export function render(criteria, taskName, information) { let resultList = filteredCriteria.filter( (item) => item && item.status != undefined ); - let points = total % 10 > 1 && total % 10 <= 4 ? 'балла' : 'баллов'; + let points = totalWithPercent % 10 > 1 && totalWithPercent % 10 <= 4 ? 'балла' : 'баллов'; content.innerHTML += `Ваша оценка - ${ - total >= 0 ? total : 0 + totalWithPercent >= 0 ? totalWithPercent : 0 } ${points} \r\n
Отзыв по пунктам ТЗ:\r\n
`; const resultDescriptions = { @@ -485,3 +501,16 @@ export function render(criteria, taskName, information) { document.body.removeChild(el); }; } + +//chande `some code` tosome code
+function getFormatedText(text) {
+ return text
+ .split('`')
+ .map((text, i, arr) =>
+ (i < (arr.length - 1))
+ ? [text, ((i % 2) === 0 ? '' : '
')]
+ : text
+ )
+ .flat()
+ .join('')
+}
\ No newline at end of file
diff --git a/public/script.js b/public/script.js
new file mode 100644
index 0000000..a87f690
--- /dev/null
+++ b/public/script.js
@@ -0,0 +1,22 @@
+"use strict";
+
+var _RenderTasks = require("../js/RenderTasks.js");
+var start = document.querySelector('.start');
+start && start.addEventListener("click", function (e) {
+ e.stopPropagation();
+ if (e.target.parentElement.tagName == "SECTION") e.target.parentElement.style.display = "none";
+});
+var header = document.querySelector('header');
+var offsetTop = header.offsetTop;
+window.onscroll = function () {
+ return stickyHeader();
+};
+function stickyHeader() {
+ if (window.pageYOffset > offsetTop + 100) {
+ header.classList.add("sticky");
+ } else {
+ header.classList.remove("sticky");
+ }
+}
+var renderTasks = new _RenderTasks.RenderTasks('tasks-to-render.json');
+renderTasks.initTasks();
\ No newline at end of file
diff --git a/tasks-to-render.json b/tasks-to-render.json
index 112ad29..c9dbce8 100644
--- a/tasks-to-render.json
+++ b/tasks-to-render.json
@@ -1 +1 @@
-{"0":"active-tasks/Angular-YouTube-client.json","1":"active-tasks/HTML&CSS.json","2":"active-tasks/Nodejs_basic-task1-caesar.json","3":"active-tasks/art-quiz.json","4":"active-tasks/async-race.json","5":"active-tasks/audio-player.json","6":"active-tasks/calculator.json","7":"active-tasks/clean-code-s1e1.json","8":"active-tasks/codejam-2022q3.json","9":"active-tasks/codejam-the-gem-puzzle.json","10":"active-tasks/covid-dashboard.json","11":"active-tasks/custom-video.json","12":"active-tasks/cv-stage1.json","13":"active-tasks/cv.json","14":"active-tasks/eco-sounds.json","15":"active-tasks/english-for-kids.json","16":"active-tasks/english-puzzle.json","17":"active-tasks/fancy-weather.json","18":"active-tasks/image-galery.json","19":"active-tasks/js30.json","20":"active-tasks/memory-game.json","21":"active-tasks/momentum-stage1.json","22":"active-tasks/momentum.json","23":"active-tasks/movie-app.json","24":"active-tasks/movie-search.json","25":"active-tasks/museum-adaptive.json","26":"active-tasks/museum-dom.json","27":"active-tasks/museum-stage0.json","28":"active-tasks/museum.json","29":"active-tasks/photo-filter.json","30":"active-tasks/portfolio.json","31":"active-tasks/random-game.json","32":"active-tasks/random-jokes.json","33":"active-tasks/react-schedule.json","34":"active-tasks/react-xcheck.json","35":"active-tasks/rs-clone-presentation.json","36":"active-tasks/rs-clone.json","37":"active-tasks/rs-ds-2-linear-regression.json","38":"active-tasks/rs-ds-7-clustering-dimensionality-reduction.json","39":"active-tasks/rs-lang.json","40":"active-tasks/rs-scc.json","41":"active-tasks/rslang.json","42":"active-tasks/rss-english-for-kids.json","43":"active-tasks/rss-fancy-weather.json","44":"active-tasks/rss-movie-search.json","45":"active-tasks/rss-singolo-dom-and-responsive.json","46":"active-tasks/rss-singolo.json","47":"active-tasks/rss-virtual-keyboard.json","48":"active-tasks/schedule.json","49":"active-tasks/song-bird.json","50":"active-tasks/songbird.json","51":"active-tasks/speakit.json","52":"active-tasks/tic-tac-toe.json","53":"active-tasks/travel-part1.json","54":"active-tasks/travel-part2.json","55":"active-tasks/travel-part3.json","56":"active-tasks/virtual-keyboard.json","57":"active-tasks/virtual-piano.json","58":"active-tasks/wildlife.json"}
\ No newline at end of file
+{"0":"active-tasks/Angular-YouTube-client.json","1":"active-tasks/HTML&CSS.json","2":"active-tasks/Nodejs_basic-task1-caesar.json","3":"active-tasks/art-quiz.json","4":"active-tasks/async-race.json","5":"active-tasks/audio-player.json","6":"active-tasks/calculator.json","7":"active-tasks/clean-code-s1e1.json","8":"active-tasks/codejam-2022q3.json","9":"active-tasks/codejam-the-gem-puzzle.json","10":"active-tasks/covid-dashboard.json","11":"active-tasks/custom-video.json","12":"active-tasks/cv-stage1.json","13":"active-tasks/cv.json","14":"active-tasks/eco-sounds.json","15":"active-tasks/english-for-kids.json","16":"active-tasks/english-puzzle.json","17":"active-tasks/fancy-weather.json","18":"active-tasks/image-galery.json","19":"active-tasks/js30.json","20":"active-tasks/memory-game.json","21":"active-tasks/momentum-stage1.json","22":"active-tasks/momentum.json","23":"active-tasks/movie-app.json","24":"active-tasks/movie-search.json","25":"active-tasks/museum-adaptive.json","26":"active-tasks/museum-dom.json","27":"active-tasks/museum-stage0.json","28":"active-tasks/museum.json","29":"active-tasks/node-nodejs-basics.json","30":"active-tasks/photo-filter.json","31":"active-tasks/portfolio.json","32":"active-tasks/random-game.json","33":"active-tasks/random-jokes.json","34":"active-tasks/react-schedule.json","35":"active-tasks/react-xcheck.json","36":"active-tasks/rs-clone-presentation.json","37":"active-tasks/rs-clone.json","38":"active-tasks/rs-ds-2-linear-regression.json","39":"active-tasks/rs-ds-7-clustering-dimensionality-reduction.json","40":"active-tasks/rs-lang.json","41":"active-tasks/rs-scc.json","42":"active-tasks/rslang.json","43":"active-tasks/rss-english-for-kids.json","44":"active-tasks/rss-fancy-weather.json","45":"active-tasks/rss-movie-search.json","46":"active-tasks/rss-singolo-dom-and-responsive.json","47":"active-tasks/rss-singolo.json","48":"active-tasks/rss-virtual-keyboard.json","49":"active-tasks/schedule.json","50":"active-tasks/song-bird.json","51":"active-tasks/songbird.json","52":"active-tasks/speakit.json","53":"active-tasks/tic-tac-toe.json","54":"active-tasks/travel-part1.json","55":"active-tasks/travel-part2.json","56":"active-tasks/travel-part3.json","57":"active-tasks/virtual-keyboard.json","58":"active-tasks/virtual-piano.json","59":"active-tasks/wildlife.json"}
\ No newline at end of file