{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./src/components/mathematics/Math11thGrade/quizTangent/Lesson.vue","webpack:///./src/components/mathematics/Math11thGrade/quizTangent/Utils.js","webpack:///./src/components/mathematics/Math11thGrade/quizTangent/Boxes.js","webpack:///src/components/mathematics/Math11thGrade/quizTangent/Lesson.vue","webpack:///./src/components/mathematics/Math11thGrade/quizTangent/Lesson.vue?8bcb","webpack:///./src/components/mathematics/Math11thGrade/quizTangent/Lesson.vue?d11d","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.date.to-string.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/_enum-keys.js"],"names":["ctx","$export","toObject","call","isArrayIter","toLength","createProperty","getIterFn","S","F","iter","Array","from","arrayLike","length","result","step","iterator","O","C","this","aLen","arguments","mapfn","undefined","mapping","index","iterFn","next","done","value","isArray","exports","f","flags","RegExp","prototype","configurable","get","global","core","LIBRARY","wksExt","defineProperty","module","name","$Symbol","Symbol","charAt","anObject","$flags","DESCRIPTORS","TO_STRING","$toString","define","fn","source","R","concat","attrs","staticClass","_c","_vm","_self","staticStyle","createSpace","xmin","xmax","ymin","ymax","graph","JXG","JSXGraph","initBoard","boundingbox","keepaspectratio","axis","ticks","visible","grid","showCopyright","showNavigation","pan","enabled","zoom","placeCircles","board","boundingBox","attr","positionX","positionY","imgs","i","create","opacity","fixed","highlight","rotate","placeBCircles","placeExclaim","placeChecks","placeCross","placeQuestion","msg","_m","Math","abs","m","anchorX","display","anchorY","color","CssStyle","_defineProperty","round","canvasWidth","placeComment","_m2","placeFingers","placeAnswers","obj","_m3","letters","txts","createAxes","xAxis","strokeColor","strokeWidth","withLabel","label","fontSize","canvasHeight","position","offset","yAxis","drawSlider","track","ptA","size","ceil","ptM","placeLogo","imageAttributes","im","placeTest","loc","x","placeRedo","makeResponsive","resizeFunction","bb","resizeContainer","containerObj","clientWidth","clientHeight","setBoundingBox","fullUpdate","window","addEventListener","drawPoint","options","point","showInfoBox","fillColor","plotFunction","fx","lm","pt","labelIt","namee","setAttribute","cssStyle","writeHTMLText","message","_m9","ele","placeStartOver","toggle","toggleTF","hoverMe","element","Xoffset","Yoffset","setLabel","on","placeWhite","Boxes","box1","Options","minimizeReflow","image","line","text","curve","cssDefaultStyle","suspendUpdate","layer","height","ax","yourScore","yourMissed","yourWrong","yourTotal","scoreCard","missedCard","wrongCard","k","vis","index_selected_answer","answers","index_right_answer","PtmList","coeff","Ptm","g1","question","comment","note","bck","hide","check","cross","exclaim","pointers","test","redo","ansList","ansArray","_loop","ij","forEach","item","valueOf","hint","moveTo","edliy","unsuspendUpdate","created","$store","commit","title","newshowhome","newMath","newLeftArrow","newModule","mounted","MathJax","Hub","Queue","metaInfo","titleTemplate","meta","vmid","content","component","staticRenderFns","toIObject","gOPN","toString","windowNames","Object","getOwnPropertyNames","getWindowNames","it","e","slice","DateProto","Date","INVALID_DATE","getTime","NaN","has","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksDefine","enumKeys","isObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$GOPS","$DP","$keys","gOPD","dP","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","a","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","$defineProperty","enumerable","$defineProperties","P","keys","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","push","$getOwnPropertySymbols","IS_OP","TypeError","$set","set","G","W","es6Symbols","split","j","wellKnownSymbols","store","keyFor","useSetter","useSimple","defineProperties","getOwnPropertyDescriptor","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","apply","getKeys","gOPS","pIE","getSymbols","symbols"],"mappings":"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","file":"js/chunk-2ceff865.641e783e.js","sourcesContent":["'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","exports.f = require('./_wks');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('br'),_c('h5',[_vm._v(\"Problem Description\")]),_vm._m(0),_c('h5',[_vm._v(\" Buttons on the MagicGraph \")]),_vm._m(1),_c('h5',[_vm._v(\" Marks & Indications \")]),_vm._m(2),_c('br'),_vm._m(3),_c('v-responsive',[_c('v-layout',{attrs:{\"justify-center\":\"\"}},[_c('div',{staticClass:\"edliy-box-about\",attrs:{\"id\":\"jxgbox1\"}})])],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"big mt-2\"},[_vm._v(\"\\n You are given a parabolic curve (shown in red). You are also given the tangent (shown in blue) to this curve at point P.\\n \"),_c('br'),_vm._v(\"\\n Use the concept of the derivative to find the slope of the tangent to this curve at point P.\\n \"),_c('br'),_vm._v(\"\\n Recall that the slope of the tangent to a curve \\\\(y=f(x)\\\\) at a point \\\\(x=x_0\\\\) is given by \\\\( \\\\lgroup\\\\frac{dy}{dx}\\\\rgroup_{x=x_0} = f'(x_0)\\\\).\\n \")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"big mt-2\"},[_c('i',{staticClass:\"redoer ma-1\"}),_vm._v(\" — is the 'Next' button. Tap on this button to move over to the next question. \"),_c('br'),_c('i',{staticClass:\"tester ma-1\"}),_vm._v(\" — is the 'Check Your Answer' button. Tap on this button to check your answer and move over to the next question.\"),_c('br'),_c('i',{staticClass:\"logor ma-1\"}),_vm._v(\"— is the 'Get a Hint' button. Tap on this button to receive a hint on how to solve this problem. \"),_c('br'),_c('i',{staticClass:\"undoer ma-1\"}),_vm._v(\" — is the 'Start Over' button. Tap on this button to start over the exercise from the begining.\\n \")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"big mt-2\"},[_vm._v(\"\\n The marks and indications are located on the top-left corner of the MagicGraph, and show your attempt status. \"),_c('br'),_c('i',{staticClass:\"righter ma-1\"}),_vm._v(\" — the right checkmark indicates that your attempted response was correct. \"),_c('br'),_c('i',{staticClass:\"wrong ma-1\"}),_vm._v(\" — this crossmark indicates that your attempted response was incorrect. \"),_c('br'),_c('i',{staticClass:\"missed ma-1\"}),_vm._v(\" — this exclaimation mark indicates an unattempted (missed) response. \"),_c('br')])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"text-align\":\"center\"}},[_c('h5',[_vm._v(\" MagicGraph | Slope of the Tangent to a Curve \")])])\n}]\n\nexport { render, staticRenderFns }","////////////////////////////////////////////////////////\r\nvar printArray =[];\r\nexport function createSpace(xmin, xmax, ymin, ymax){\r\nlet graph = JXG.JSXGraph.initBoard('jxgbox1',{boundingbox: [xmin, ymax, xmax, ymin],\r\n keepaspectratio: true, axis:false, ticks:{visible:false},\r\n grid:true, showCopyright:false, showNavigation:false,\r\n pan:{enabled:false}, zoom:{enabled:false}});\r\nreturn graph\r\n }\r\n///////////////removing the object/////////////////////////////////////////////\r\nfunction removeIt(board, obj)\r\n{\r\nboard.removeObject(obj);\r\n}\r\n///////////////////////repeat an action////////////////////////////////////////////////////\r\nexport function repeatTask(n, act)\r\n{\r\nfor(let i=0;i Math.round(26*board.canvasWidth /800.)};\r\n ////////////////////////////////////////////////////////\r\n let imgs =board.create('text', [positionX, positionY, msg], m);\r\n return imgs;\r\n}\r\n///////////////////////////////placeComment////////////////////\r\nexport function placeComment(board, msg){\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/12;\r\n const positionX = -(boundingBox[2]-boundingBox[0])/2+0.5;\r\n const positionY = (boundingBox[2]-boundingBox[0])/2-0.5;\r\n const m ={\r\n anchorX: 'left',\r\n display: 'html',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n color:'black',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(26*board.canvasWidth /800.)};\r\n ////////////////////////////////////////////////////////\r\n let imgs =board.create('text', [positionX, positionY-5, msg], m);\r\n return imgs;\r\n}\r\n//////////////////////////////////////////////////////////////////////\r\nexport function placeFingers(board)\r\n{\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/12;\r\n const positionX = -(boundingBox[2]-boundingBox[0])/2+0.5;\r\n const positionY = (boundingBox[2]-boundingBox[0])/2-0.5;\r\n let imgs =[];\r\n const m = {opacity:1, fixed:true, highlight:false, rotate:0, visible:false};\r\n imgs[0]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-1.35],[0.5,0.5]], m);\r\n imgs[1]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-2.35],[0.5,0.5]], m);\r\n imgs[2]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-3.35],[0.5,0.5]], m);\r\n imgs[3]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-4.35],[0.5,0.5]], m);\r\n return imgs;\r\n}\r\n///////////////////////////////////////////////////////////////////////\r\nexport function placeAnswers(board, obj){\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/12;\r\n const positionX = -(boundingBox[2]-boundingBox[0])/2+0.5;\r\n const positionY = (boundingBox[1]-boundingBox[3])/2-0.5;\r\n const m ={\r\n anchorX: 'left',\r\n display: 'html',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n color:'grey',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(26*board.canvasWidth /800.)};\r\n ////////////////////////////////////////////////////////\r\n const letters =['a. ', 'b. ', 'c. ', 'd. '];\r\n let txts =[];\r\n txts[0] =board.create('text', [positionX+0.15, positionY-1, ()=>letters[0]+obj[0]], m);\r\n txts[1] =board.create('text', [positionX+0.15, positionY-2, ()=>letters[1]+obj[1]], m);\r\n txts[2] =board.create('text', [positionX+0.15, positionY-3, ()=>letters[2]+obj[2]], m);\r\n txts[3] =board.create('text', [positionX+0.15, positionY-4, ()=>letters[3]+obj[3]], m);\r\n return txts;\r\n}\r\n//////////////////////////////////\r\nexport function moveIt(obj, xnew, ynew){\r\n obj.moveTo([xnew, ynew], 1000);\r\n}\r\n/////////////////////////////////////////////////////////////////////\r\nexport function draw3DBox(board, Pt,col)\r\n{\r\n let ops = {\r\n vertices:{visible:false},\r\n fillOpacity:1,\r\n fillColor:col,\r\n highlight:false,\r\n borders:{strokeColor:'black',\r\n highlight:false,\r\n strokeWidth: ()=>Math.round(1*board.canvasWidth/800.)}}\r\n let f1 =board.create('regularpolygon', [[()=>Pt[0], ()=>Pt[1]], [()=>Pt[0]+1, ()=>Pt[1]], 4],ops);\r\n let f2 = board.create('regularpolygon', [[()=>Pt[0]+0.5, ()=>Pt[1]+0.5], [()=>Pt[0]+0.5+1, ()=>Pt[1]+0.5], 4],ops);\r\n let f3 =board.create('polygon', [[()=>Pt[0], ()=>Pt[1]+1], [()=>Pt[0]+1, ()=>Pt[1]+1],[()=>Pt[0]+1+0.5, ()=>Pt[1]+1+0.5],[()=>Pt[0]+0.5, ()=>Pt[1]+1+0.5]], ops);\r\n let f4 = board.create('polygon', [[()=>Pt[0]+1, ()=>Pt[1]], [()=>Pt[0]+1, ()=>Pt[1]+1],[()=>Pt[0]+1+0.5, ()=>Pt[1]+1+0.5],[()=>Pt[0]+1+0.5, ()=>Pt[1]+0.5]], ops);\r\n return [f1, f2, f3, f4]\r\n}\r\n////////////////////////////////////////////////////////////////////////////////\r\nexport function createAxes(board)\r\n{\r\n let xAxis =board.create('axis', [[-1, 0],[1, 0]], {\r\n strokeColor:'grey',\r\n highlight:false,\r\n strokeWidth: ()=>Math.round(2*board.canvasWidth/800.),\r\n withLabel:true,\r\n name: '',\r\n label: {\r\n display:'internal',\r\n fontSize:function(){return 24*board.canvasHeight/800},\r\n CssStyle: 'fontFamily:Oswald;fontWeight:bold',\r\n position: 'rt',\r\n offset: [-20, 20]}});\r\n let yAxis =board.create('axis', [[0, -1],[0, 1]], {\r\n strokeColor:'grey',\r\n highlight:false,\r\n strokeWidth: ()=>Math.round(2*board.canvasWidth/800.),\r\n withLabel:true,\r\n name: '',\r\n label: {\r\n display:'internal',\r\n fontSize:function(){return 24*board.canvasHeight/800},\r\n CssStyle: 'fontFamily:Oswald;fontWeight:bold',\r\n position: 'rt',\r\n offset: [20, -20]}\r\n });\r\n return [xAxis, yAxis];\r\n}\r\n//////////////////////////////////\r\nexport function drawPerp(board, Ln, Pt){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:'black',\r\n highlight:false,\r\n perpendicularpoint:{visible:false},\r\n strokeWidth: () => Math.round(2*board.canvasWidth /800.)};\r\n let le=board.create('perpendicular', [Ln, [()=>Pt.X(), ()=>Pt.Y()]], lm);\r\n return le;\r\n}\r\n///////////////////////////////////////////////////////////////////\r\nexport function drawPerpP(board, Ln, Pt){\r\n const ptA = {\r\n name:'',\r\n size: ()=>Math.round(2*board.canvasWidth/800.),\r\n fillColor:'white',\r\n strokeColor:'white',\r\n visible:false,\r\n highlight:false};\r\n let le=board.create('perpendicularpoint', [Ln, [()=>Pt.X(), ()=>Pt.Y()]], ptA);\r\n return le;\r\n}\r\n///////////////////////////////////////////////////////////\r\nexport function drawIntersection(board, Ln1, Ln2)\r\n{\r\n const ptA = {\r\n name:'',\r\n size: ()=>Math.round(2*board.canvasWidth/800.),\r\n color:'black',\r\n strokeWidth:()=>Math.ceil(4*board.canvasWidth/800.),\r\n highlight:false\r\n };\r\n let pts = board.create('intersection', [Ln1, Ln2], ptA);\r\n return pts;\r\n}\r\n///////////////////////////////////////////////////////////////\r\nexport function drawSlider(board, track, positionX, positionY){\r\n const ptA = {\r\n name:'',\r\n size: ()=>Math.round(2*board.canvasWidth/800.),\r\n color:'black',\r\n label: {\r\n display:'internal'\r\n },\r\n strokeWidth:()=>Math.ceil(4*board.canvasWidth/800.),\r\n highlight:false};\r\n let ptM =board.create('glider', [positionX, positionY, track], ptA);\r\n return ptM;\r\n }\r\n//////////////////////////////////////////////\r\nexport function drawMarker(board, track, positionX, positionY){\r\n const ptA = {\r\n name:'',\r\n\t label: {\r\n display:'internal'\r\n },\r\n size: ()=>Math.round(2*board.canvasWidth/800.),\r\n color:'black',\r\n highlight:false};\r\n let ptM =board.create('glider', [positionX, positionY, track], ptA);\r\n return ptM;\r\n }\r\n/////////////////////////////////////////////////\r\nexport function placeLogo(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/10;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/logo.png', [boundingBox[2]-size, boundingBox[1]-size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////\r\nexport function placePlay(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/play.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////////////////\r\nexport function placePause(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/pause.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////\r\nexport function placeShuffle(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/shuffle.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n/****************************************Hint****************************/\r\nexport function placeHint(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/12;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['/assets/Hint.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n///////////////////////////////////////////////////////////////////////////\r\nexport function placeShuffleRight(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/shuffle.svg', [0.5*(boundingBox[2]+boundingBox[0])+0.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////////////////////////////////////////\r\nexport function placeTest(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['/assets/puzzle.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n////////////////////////////////////////////////////////////////////////////\r\nexport function placeRight(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/redo.svg', [0.5*(boundingBox[2]+boundingBox[0])+0.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n///////////////////////////////////////////////////////////\r\nexport function placeLeft(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/undo.svg', [0.5*(boundingBox[2]+boundingBox[0])-1.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n///////////////////////////////////////////\r\nexport function placeUndo(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/previous.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n/////////////////////////////////////////////\r\nexport function placeRedo(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/play.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////////////\r\nexport function placeDynamic(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['assets/dynamic.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n///////////////////////////////////////////\r\nexport function placeStatic(board, loc)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n const x = function(){if(loc=='left')\r\n {return 0.5*(boundingBox[2]+boundingBox[0])-1.4*size\r\n }\r\n else{\r\n return 0.5*(boundingBox[2]+boundingBox[0])+0.4*size\r\n }\r\n }\r\n let im =board.create('image', ['/assets/static.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n///////////////////////////////////////////////////////////\r\nexport function placeErase(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/eraser.svg', [0.5*(boundingBox[2]+boundingBox[0])+0.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n////////////////////////////////////\r\nexport function placeEraseLeft(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/eraser.svg', [0.5*(boundingBox[2]+boundingBox[0])-1.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////\r\nexport function placeStat(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['https://s3.amazonaws.com/edliy.com/assets/statistics.svg', [0.5*(boundingBox[2]+boundingBox[0])+0.4*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n/////////////////////////////////////\r\nexport function makeResponsive(board) {\r\n let resizeFunction = function() {\r\n const bb = board.attr.boundingbox;\r\n board.resizeContainer(board.containerObj.clientWidth,\r\n board.containerObj.clientHeight,\r\n true,\r\n true);\r\n board.setBoundingBox(bb);\r\n board.fullUpdate();\r\n };\r\n window.addEventListener(\"resize\", resizeFunction);\r\n}\r\n////////////////////////////////////////PLACE ANGLE/////////////////////////////\r\nexport function drawAngle(board, Pt1, Pt2, Pt3){\r\n const lm = {\r\n radius:0.5,\r\n strokeWidth:1,\r\n strokeColor:'black',\r\n fillColor:'red',\r\n highlight:false,\r\n radiusPoint:{visible:false},\r\n label:{color:'black', anchorX:'middle', anchorY:'middle', fontSize:function(){return 24*board.canvasHeight/800},\r\n cssStyle:'fontFamily:Oswald;'}\r\n }\r\n let le=board.create('nonreflexangle', [Pt1, Pt2, Pt3], lm);\r\n le.setAttribute({center:{visible:true}, radiusPoint:{visible:true}, anglePoint:{visible:true}});\r\n return le;\r\n}\r\n//////////////////////////////\r\nexport function print(board, value)\r\n{\r\n const boundingBox = board.attr.boundingbox;\r\n const size =(boundingBox[2]-boundingBox[0])/12;\r\n const positionX = -(boundingBox[2]-boundingBox[0])/2+0.5;\r\n const positionY = (boundingBox[2]-boundingBox[0])/2-0.5;\r\n const m ={\r\n anchorX: 'left',\r\n display: 'html',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(18*board.canvasWidth /800.)\r\n};\r\nprintArray.push(value);\r\nlet i = printArray.length-1;\r\nboard.create('text', [positionX, positionY-i, printArray[i]], m);\r\n}\r\n///////////////////////////////////////////LINE////////////////////////////////\r\nexport function drawSegment(board, Pt1, Pt2){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:'black',\r\n highlight:false,\r\n strokeWidth: () => Math.round(2*board.canvasWidth /800.)};\r\n let le=board.create('segment', [[()=>Pt1.X(), ()=>Pt1.Y()],[()=>Pt2.X(), ()=>Pt2.Y()]] , lm);\r\n return le;\r\n}\r\n/////////////////////////////////////////////////////////////////////////////\r\nexport function drawLine(board, Pt1, Pt2){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:'black',\r\n highlight:false,\r\n strokeWidth: () => Math.round(2*board.canvasWidth /800.)};\r\n let le=board.create('line', [[()=>Pt1.X(), ()=>Pt1.Y()],[()=>Pt2.X(), ()=>Pt2.Y()]] , lm);\r\n return le;\r\n}\r\n/////////////////////////////////////////////////////////////////////\r\nexport function drawPoint(board, positionX, positionY){\r\n board.options.point.showInfoBox=false;\r\n const ptA = {\r\n name:'',\r\n label: {\r\n display:'internal'\r\n },\r\n size: ()=>Math.round(2*board.canvasWidth/800.),\r\n fillColor:'red',\r\n visible:true,\r\n strokeColor:'red',\r\n highlight:false};\r\n let ptM =board.create('point', [positionX, positionY], ptA);\r\n return ptM;\r\n }\r\n///////////////////////////////////////////////////////\r\nexport function drawCircle(board, Pt1, Pt2){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:'red',\r\n fillColor:'white',\r\n fillOpacity:0,\r\n highlight:false,\r\n strokeWidth: () => Math.round(4*board.canvasWidth /800.)};\r\n let le=board.create('circle', [[()=>Pt1.X(), ()=>Pt1.Y()],[()=>Pt2.X(), ()=>Pt2.Y()]], lm);\r\n return le;\r\n}\r\n////////////////////////////////\r\nexport function plotFunction(board, fx, xmin, xmax)\r\n{\r\n const lm ={\r\n fixed:true,\r\n strokeColor:'red',\r\n highlight:false,\r\n strokeWidth: () => Math.round(4*board.canvasWidth /800.)};\r\n let pt = board.create('functiongraph',\r\n [fx, xmin, xmax],lm);\r\n return pt;\r\n}\r\n//////////////////////////////////////////////////////\r\nexport function writeSmallText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(18*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\n///////////////////////////////////////\r\nexport function writeMediumText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\n/////////////////////////////////////////////////\r\nexport function writeLargeText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(30*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\n///////////////////////////////////////////////////\r\nexport function setColor(board, obj, cols){\r\n obj.setAttribute({\r\n strokeColor:cols,\r\n fillColor:cols});\r\n}\r\nexport function setWidth(board, obj, width){\r\n obj.setAttribute({\r\n strokeWidth: () => Math.round(width*board.canvasWidth /800.)});\r\n}\r\nexport function setSize(board, obj, size){\r\n obj.setAttribute({\r\n size: () => Math.round(size*board.canvasWidth /800.)});\r\n}\r\nexport function labelIt(board, obj, namee){\r\n obj.setAttribute({name:namee});\r\n obj.label.setAttribute({\r\n color:'black',\r\n offset:[0,20],\r\n cssStyle:'fontFamily:Oswald',\r\n fontSize:()=>Math.round(20*board.canvasWidth/800.)\r\n })\r\n}\r\nexport function showInfo(board, obj){\r\n board.options.point.showInfoBox=true\r\n}\r\nexport function setFix(board, obj){\r\n obj.setAttribute({\r\n fixed:true})\r\n}\r\n//////////////////////////////////////////////////////\r\nexport function drawDash(board, Pt1, Pt2){\r\n const lm ={\r\n fixed:true,\r\n dash:1,\r\n strokeColor:'red',\r\n highlight:false,\r\n strokeWidth: () => Math.round(2*board.canvasWidth /800.)};\r\n let le=board.create('segment', [[()=>Pt1.X(), ()=>Pt1.Y()],[()=>Pt2.X(), ()=>Pt2.Y()]] , lm);\r\n return le;\r\n}\r\n/////////////////////////// Arc /////////////////////////////\r\nexport function drawArc(board, Pt1, Pt2, Pt3){\r\n const lm ={\r\n fixed:true,\r\n dash:1,\r\n strokeColor:'red',\r\n fillOpacity:1,\r\n highlight:false,\r\n strokeWidth: () => Math.round(2*board.canvasWidth /800.)};\r\n let le=board.create('arc', [[()=>Pt1.X(), ()=>Pt1.Y()],[()=>Pt2.X(), ()=>Pt2.Y()],[()=>Pt3.X(), ()=>Pt3.Y()]], lm);\r\n le.setAttribute({center:{visible:false}, radiusPoint:{visible:false}, anglePoint:{visible:false}});\r\n return le;\r\n}\r\n////////////////////////////////Arrow//////////////////////////////\r\nexport function drawArrow(board, pt1, pt2){\r\n const recAttributes = {\r\n strokeWidth: () => Math.round(2*board.canvasWidth/800.),\r\n strokeColor:'red',\r\n highlight:false,\r\n fillOpacity:1.0}\r\n let m =board.create('arrow', [[()=>pt1.X(), ()=>pt1.Y()],\r\n [()=>pt2.X(), ()=>pt2.Y()]], recAttributes);\r\n return m;\r\n }\r\n//////////////////////////////////////TEXT/////////////////////////////\r\nexport function placeText(board, positionX, positionY, size, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(size*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\n////////////////////////////////////////////////////////\r\nexport function writeHTMLText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeMiddleText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeLeftText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'left',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeRightText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'right',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeBoldText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;fontWeight:bold',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeBoldRightText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'right',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;fontWeight:bold',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function placeBoldLeftText(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'left',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily:Oswald;fontWeight:bold',\r\n highlight:false,\r\n fontSize: () => Math.round(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\n/////////////////////////// Draggable Point/////////////////////////////////////\r\nexport function dragMe(board, positionX, positionY){\r\n const pointAttributes ={\r\n name:'Drag me',\r\n size:3,\r\n strokeColor:'black',\r\n fillColor:'white',\r\n fixed:false,\r\n label:{color:'blue',\r\n offset:[0,20],\r\n cssStyle:'fontFamily:Oswald',\r\n fontSize:()=>Math.round(16*board.canvasWidth/800.)\r\n }\r\n };\r\n let pt = board.create('point',[positionX, positionY], pointAttributes);\r\n return [pt];\r\n }\r\n//////////////////////////HiddenPoint////////////////////////////////////////\r\nexport function hiddenPt(board, positionX, positionY){\r\n const pointAttributes ={\r\n name:'Drag me',\r\n size:3,\r\n strokeColor:'black',\r\n fillColor:'white',\r\n fixed:false,\r\n visible:false,\r\n label:{color:'blue',\r\n offset:[0,20],\r\n cssStyle:'fontFamily:Oswald',\r\n fontSize:()=>Math.round(16*board.canvasWidth/800.)\r\n }\r\n };\r\n let pt = board.create('point',[positionX, positionY], pointAttributes);\r\n return pt;\r\n }\r\n///////////////////////////FixedPoint/////////////////////////////////////////\r\nexport function fixedPt(board, positionX, positionY, size, name, cols1, cols2){\r\n const pointAttributes ={\r\n name:name,\r\n size: ()=>Math.round(size*board.canvasWidth/800.),\r\n strokeWidth:()=>Math.ceil(2*board.canvasWidth/800.),\r\n fillColor:cols1,\r\n strokeColor:cols2,\r\n highlight:false,\r\n fixed:true,\r\n label:{color:'blue',\r\n offset:[0,20],\r\n cssStyle:'fontFamily:Oswald',\r\n fontSize:()=>Math.round(16*board.canvasWidth/800.)\r\n }\r\n };\r\n let pt = board.create('point',[positionX, positionY], pointAttributes);\r\n return pt;\r\n }\r\n/////////////////////////////////////////////////////////////////////////////\r\n//////////////////////////////Gravity ////////////////////////////////////////\r\nexport function placeGlider(board, line, positionX, positionY, size, cols1, cols2){\r\n const ptA = {\r\n name:'',\r\n size: ()=>Math.round(size*board.canvasWidth/800.),\r\n strokeWidth:()=>Math.ceil(2*board.canvasWidth/800.),\r\n fillColor:cols1,\r\n strokeColor:cols2,\r\n highlight:false};\r\n let ptM =board.create('glider', [positionX, positionY, line], ptA);\r\n return ptM;\r\n }\r\n//////////////////////////////////////////////////////////////////////////////////\r\nexport function placeGravity(board, pt1, pt2, val)\r\n {\r\n const arrowAttributes = {\r\n fixed:true,\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n fillOpacity:1.0\r\n };\r\n const gAttributes={\r\n fixed:true,\r\n highlight:false,\r\n anchorX: 'left',\r\n anchorY:'middle',\r\n color:'black',\r\n CssStyle: 'font-weight:bold; fontFamily:Oswald;',\r\n fontSize: () => Math.round(24*board.canvasWidth/800.)\r\n };\r\n let gtext =board.create('text', [0.5*(pt1[0]+pt2[0])+Math.abs(pt1[1]-pt2[1])*0.25, 0.5*(pt1[1]+pt2[1])+Math.abs(pt1[0]-pt2[0])*0.25, val], gAttributes);\r\n let garrow=board.create('arrow', [\r\n [pt1[0], pt1[1]],\r\n [pt2[0], pt2[1]]\r\n ], arrowAttributes);\r\n\r\n return [garrow, gtext];\r\n }\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\nexport function placeRuler(board, pt1, pt2, val)\r\n {\r\n const arrowAttributes = {\r\n fixed:true,\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n fillOpacity:1.0\r\n };\r\n const gAttributes={\r\n fixed:true,\r\n highlight:false,\r\n anchorX: 'middle',\r\n anchorY:'middle',\r\n color:'black',\r\n display:'internal',\r\n CssStyle: 'font-weight: bold;fontFamily:Oswald;',\r\n fontSize: ()=>Math.round(28*board.canvasWidth/800.)\r\n };\r\n let garrow=board.create('arrow', [[pt1[0], pt1[1]],[pt2[0], pt2[1]]], arrowAttributes);\r\n let gtext =board.create('text',[0.5*(1.00*pt1[0]+1.00*pt2[0])+Math.abs(1.00*pt1[1]-1.00*pt2[1])*0.25, 0.5*(1.00*pt1[1]+1.00*pt2[1])+Math.abs(1.00*pt1[0]-1.00*pt2[0])*0.25, val], gAttributes);\r\n return [garrow, gtext];\r\n }\r\n///////////////////////////////////////////////////////////////////////////////\r\nexport function placeTape(board, pt1, pt2, val)\r\n {\r\n const arrowAttributes = {\r\n name:val,\r\n fixed:true,\r\n point1:{face:'circle', size:2, fillColor:'red'},\r\n point2:{face:'circle', size:2, fillColor:'red'},\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n fillOpacity:1.0,\r\n label:{fixed:true,\r\n highlight:false,\r\n anchorX: 'left',\r\n anchorY:'middle',\r\n color:'black',\r\n display:'internal',\r\n CssStyle: 'font-weight:normal; fontFamily: Oswald;',\r\n fontSize: () => Math.round(28*board.canvasWidth /800.)}\r\n };\r\n const gAttributes={\r\n fixed:true,\r\n highlight:false,\r\n anchorX: 'middle',\r\n anchorY:'middle',\r\n color:'black',\r\n display:'internal',\r\n CssStyle: 'font-weight: bold; fontFamily: Oswald;',\r\n fontSize: () => Math.round(28*board.canvasWidth /800.)\r\n };\r\n let garrow=board.create('tapemeasure', [[pt1[0], pt1[1]],[pt2[0], pt2[1]]], arrowAttributes);\r\n //let gtext =board.create('text',[0.5*(1.00*pt1[0]+1.00*pt2[0])+Math.abs(1.00*pt1[1]-1.00*pt2[1])*0.25, 0.5*(1.00*pt1[1]+1.00*pt2[1])+Math.abs(1.00*pt1[0]-1.00*pt2[0])*0.25, val], gAttributes);\r\n return garrow;\r\n }\r\n/////////////////////////////////////////////////////////////////////////////////////////////\r\nexport function placeTapeHori(board, pt1, pt2, val)\r\n {\r\n const arrowAttributes = {\r\n name:val,\r\n fixed:true,\r\n point1:{face:'circle', size:2, fillColor:'red'},\r\n point2:{face:'circle', size:2, fillColor:'red'},\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n fillOpacity:1.0,\r\n label:{fixed:true,\r\n highlight:false,\r\n anchorX: 'middle',\r\n anchorY:'middle',\r\n color:'black',\r\n display:'internal',\r\n CssStyle: 'font-weight:normal; fontFamily: Oswald;',\r\n fontSize: () => Math.round(20*board.canvasWidth /800.)}\r\n };\r\n let garrow=board.create('tapemeasure', [[pt1[0], pt1[1]],[pt2[0], pt2[1]]], arrowAttributes);\r\n //let gtext =board.create('text',[0.5*(1.00*pt1[0]+1.00*pt2[0])+Math.abs(1.00*pt1[1]-1.00*pt2[1])*0.25, 0.5*(1.00*pt1[1]+1.00*pt2[1])+Math.abs(1.00*pt1[0]-1.00*pt2[0])*0.25, val], gAttributes);\r\n return garrow;\r\n }\r\n/////////////////////////////////////////////////////////\r\nexport function placeTapeVert(board, pt1, pt2, val)\r\n {\r\n const arrowAttributes = {\r\n name:val,\r\n fixed:true,\r\n point1:{face:'circle', size:2, fillColor:'red'},\r\n point2:{face:'circle', size:2, fillColor:'red'},\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n fillOpacity:1.0,\r\n label:{fixed:true,\r\n highlight:false,\r\n anchorX: 'middle',\r\n anchorY:'middle',\r\n color:'black',\r\n display:'internal',\r\n CssStyle: 'font-weight:normal; fontFamily: Oswald;',\r\n fontSize: () => Math.round(20*board.canvasWidth /800.)}\r\n };\r\n let garrow=board.create('tapemeasure', [[pt1[0], pt1[1]],[pt2[0], pt2[1]]], arrowAttributes);\r\n //let gtext =board.create('text',[0.5*(1.00*pt1[0]+1.00*pt2[0])+Math.abs(1.00*pt1[1]-1.00*pt2[1])*0.25, 0.5*(1.00*pt1[1]+1.00*pt2[1])+Math.abs(1.00*pt1[0]-1.00*pt2[0])*0.25, val], gAttributes);\r\n return garrow;\r\n }\r\n///////////////////////////////////////Polygon////////////////////////////////////////\r\nexport function placeRec(board, pt1, pt2, pt3, pt4, cols){\r\n const recAttributes = {\r\n vertices:{visible:false, fixed:true},\r\n borders:{visible:false},\r\n highlight:false,\r\n fillColor:cols,\r\n fillOpacity:1.0}\r\n let m =board.create('polygon', [[pt1[0], pt1[1]],\r\n [pt2[0], pt2[1]],\r\n [pt3[0], pt3[1]],\r\n [pt4[0], pt4[1]]], recAttributes);\r\n return m;\r\n}\r\n/////////////////////////////////////////////////////////////////\r\nexport function placeSq(board, pt1, pt2, cols){\r\n const recAttributes = {\r\n vertices:{visible:false, fixed:true},\r\n borders:{visible:false},\r\n highlight:false,\r\n fillColor:cols,\r\n fillOpacity:1.0}\r\n let m =board.create('polygon', [[pt1[0], pt1[1]],\r\n [pt2[0], pt1[1]],\r\n [pt2[0], pt2[1]],\r\n [pt1[0], pt2[1]]], recAttributes);\r\n return m;\r\n}\r\n/////////////////////////////////////////////////////////////////\r\nexport function drawTriangle(board, pt1, pt2, pt3){\r\n const recAttributes = {\r\n vertices:{visible:false, fixed:true},\r\n borders:{visible:false},\r\n highlight:false,\r\n fillColor:'blue',\r\n fillOpacity:0.5}\r\n let m =board.create('polygon', [[()=>pt1.X(), ()=>pt1.Y()], [()=>pt2.X(), ()=>pt2.Y()],\r\n [()=>pt3.X(), ()=>pt3.Y()]], recAttributes);\r\n return m;\r\n}\r\n//////////////////////////////////////////////Circle/////////////////////////////////////\r\nexport function placeSlider(board, positionX, positionY, limit1, start, limit2, length, name)\r\n{\r\n const sliderAttributes={\r\n baseline:{strokeWidth:7*board.canvasHeight/800, strokeColor:'grey', highlight:false},\r\n highline:{strokeWidth:7*board.canvasHeight/800, strokeColor:'black', highlight:false},\r\n name:name,\r\n highlight:false,\r\n size:()=>8*board.canvasHeight/800,\r\n face:'square',\r\n fillColor:'grey',\r\n strokeColor:'black',\r\n withTicks:false,\r\n precision:2,\r\n label:{fontSize:()=> Math.round(18*board.canvasWidth/800.), offset:[15,0],\r\n cssStyle:'fontFamily:Oswald;', highlight:false}\r\n }\r\n let m = board.create('slider',[[positionX, positionY],[positionX+length, positionY],[limit1, start, limit2]], sliderAttributes); //\r\n return m;\r\n}\r\n//////////////////////////////////////////////////////////////////////\r\n///////////////////////////////////////////////////////////\r\nexport function placeStartOver(board)\r\n{\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0,\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const positionX = (boundingBox[2]+boundingBox[0])/2;\r\n const positionY = (boundingBox[1]+boundingBox[3])/2;\r\n const size =(boundingBox[2]-boundingBox[0])/13;\r\n let im =board.create('image', ['/assets/replay.svg', [positionX+2.2*size, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////////////////////////////\r\nexport function placeSliderSwitch(board, positionX, positionY, limit1, limit2, length, name)\r\n{\r\n const sliderAttributes={\r\n baseline:{strokeWidth:7*board.canvasHeight/800,strokeColor:'grey'},\r\n highline:{strokeWidth:7*board.canvasHeight/800,strokeColor:'black'},\r\n name:name,\r\n size:()=>8*board.canvasHeight/800,\r\n highlight:false,\r\n face:'square',\r\n fillColor:'#FF0000',\r\n strokeColor:'black',\r\n snapWidth:1,\r\n withTicks:false,\r\n label:{anchorX:'left',fontSize:()=> Math.round(24*board.canvasWidth/800.),\r\n cssStyle:'fontFamily:Oswald;'}\r\n }\r\n let m = board.create('slider',[[positionX, positionY],[positionX+length, positionY],[limit1, 0.5*(limit1+limit2), limit2]], sliderAttributes); //\r\n return m;\r\n}\r\n/////////////////////////////////////////////////////////////////\r\nexport function placeImage(board, imValue, positionX, positionY){\r\n const imageAttributes ={\r\n opacity:1,\r\n fixed:true,\r\n rotate:0\r\n };\r\n let im =board.create('image', [imValue, [positionX, positionY],[1,1]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////\r\nexport function placeInput(board, positionX, positionY, val){\r\n const inputAttributes ={\r\n fixed: true,\r\n cssStyle: 'fontFamily:Oswald; width:10%; background-color:#008CBA;border:1px solid black;border-radius:3.5px;',\r\n fontSize:function(){return Math.round(24*board.canvasWidth/800.)},\r\n fixed:true,\r\n alignY:'bottom',\r\n parse:true\r\n }\r\n let inp =board.create('input', [positionX, positionY, val, ''], inputAttributes);\r\n return inp;\r\n}\r\n///////////////////////////////Shuffle Function ////////////////////////////\r\nexport function shuffle(listName, varName){\r\n if(varName Math.round(32 * board.canvasWidth /800.)\r\n };\r\n\r\n const boundingBox = board.attr.boundingbox;\r\n\r\n let title = board.create(\r\n 'text',\r\n [(boundingBox[0] + boundingBox[2]) / 2.0,\r\n (boundingBox[1] + boundingBox[3]) / 2.0,\r\n function(){return titleText+'/5'}], titleTextAttributes);\r\n\r\n return title;\r\n}\r\n///////////////////////////////////////////////////////////////////////\r\nexport function placeWhite(board){\r\n const imageAttributes ={\r\n opacity:0,\r\n fixed:true,\r\n visible:true\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const size = 20;\r\n let im =board.create('image', ['/assets/square.svg', [(boundingBox[0] + boundingBox[2]-size) / 2.0,\r\n (boundingBox[1] + boundingBox[3]-size) / 2.0,],[size, size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////////////////////////////////////////////\r\nexport function placeTitle(board, titleText, subTitleText){\r\n const commonTextAttributes = {\r\n anchorX: 'middle',\r\n display: 'internal',\r\n highlight: false,\r\n fixed: true\r\n };\r\n const titleTextAttributes = {\r\n ...commonTextAttributes,\r\n anchorY: 'middle',\r\n CssStyle: 'font-weight: bold; fontFamily: Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(32 * board.canvasWidth /800.)\r\n };\r\n const subTitleTextAttributes = {\r\n ...commonTextAttributes,\r\n anchorY: 'middle',\r\n CssStyle: 'fontFamily: Oswald;',\r\n highlight:false,\r\n fontSize: () => Math.round(24 * board.canvasWidth /800.)\r\n };\r\n const boundingBox = board.attr.boundingbox;\r\n const offset = [0, -(boundingBox[2] - boundingBox[0])/20.0];\r\n let title = board.create(\r\n 'text',\r\n [(boundingBox[0] + boundingBox[2]) / 2.0 + offset[0],\r\n boundingBox[1] + offset[1],\r\n titleText],\r\n titleTextAttributes\r\n );\r\n let subtitle = board.create(\r\n 'text',\r\n [(boundingBox[0] + boundingBox[2]) / 2.0 + offset[0],\r\n boundingBox[1] + 2*offset[1],\r\n subTitleText],\r\n subTitleTextAttributes\r\n );\r\n return [title, subtitle];\r\n}\r\n/////////////////////////////////////////////////////////////////////////////\r\nexport function clearInputFields(board) {\r\n let magicGraph = board.containerObj;\r\n let inputFields = magicGraph.querySelectorAll(\"input\");\r\n for (let inputField of inputFields) {\r\n inputField.value = \"\"\r\n }\r\n}\r\n/////////////////////////////////////////////////////////////////////////////\r\nexport function setInputFieldAnswerColor(inputObject, isAnswerCorrect) {\r\n // TODO: Tableau colors don't look great with blue background, find a\r\n // different color scheme that looks better.\r\n let colorizeElement = function (element, condition) {\r\n if (element) {\r\n if (condition) {\r\n // element.style.borderColor = '#59A14F';\r\n element.style.backgroundColor = 'green';\r\n } else {\r\n // element.style.borderColor = '#E15759';\r\n element.style.backgroundColor = 'red';\r\n }\r\n }\r\n }\r\n\r\n colorizeElement(inputObject.rendNodeInput, isAnswerCorrect);\r\n colorizeElement(inputObject.rendNode, isAnswerCorrect);\r\n}\r\n/////////////////////////////////////////////////////////////\r\nexport function markInteractive(inputObject) {\r\n let board = inputObject.board;\r\n if (!board._xedliy) {\r\n board._xedliy = {};\r\n }\r\n\r\n if (!board._xedliy.interactive) {\r\n let magicGraph = board.containerObj;\r\n let svgs = magicGraph.querySelectorAll(\"svg\");\r\n for (let svg of svgs) {\r\n svg.style.pointerEvents = \"none\";\r\n }\r\n board._xedliy.interactive = true;\r\n }\r\n\r\n if (inputObject) {\r\n // console.log(inputObject);\r\n inputObject.rendNode.style.cursor = \"pointer\";\r\n inputObject.rendNode.style.pointerEvents = \"all\";\r\n }\r\n}\r\n///////////////////////////////////////////////////////////////\r\n","import{\r\n makeResponsive,\r\n placeTitle,\r\n createSpace,\r\n placeQuestion,\r\n placeComment,\r\n createAxes,\r\n writeHTMLText,\r\n drawPoint,\r\n setSize,\r\n labelIt,\r\n placeMarker,\r\n drawCircle,\r\n placeImage,\r\n placeShuffle,\r\n placeTest,\r\n drawArrow,\r\n drawAngle,\r\n drawSegment,\r\n placeBWhite,\r\n placeWhite,\r\n placeBCircles,\r\n placeCircles,\r\n placeChecks,\r\n placeCross,\r\n placeExclaim,\r\n hoverMe,\r\n placeLogo,\r\n drawMarker,\r\n toggle,\r\n toggleTF,\r\n placeFingers,\r\n placeAnswers,\r\n drawTriangle,\r\n placeRedo,\r\n placeStartOver,\r\n placeBoldText,\r\n placeLeftText,\r\n plotFunction,\r\n drawSlider\r\n} from './Utils.js'\r\nconst Boxes = {\r\n box1: function () {\r\n///////////////////////////////////GLOBAL SETTINGS//////////////////////\r\n\tJXG.Options.board.minimizeReflow = 'none';\r\n JXG.Options.point.showInfoBox=false;\r\n JXG.Options.point.highlight=false;\r\n JXG.Options.image.highlight=false;\r\n JXG.Options.line.highlight=false;\r\n JXG.Options.text.highlight=false;\r\n JXG.Options.text.fixed=true;\r\n JXG.Options.curve.highlight=false;\r\n JXG.Options.text.cssDefaultStyle='fontFamily:Oswald;'\r\n//////////////////////////////////LOCAL SETTINGS//////////////////////////////////\r\nvar graph =createSpace(-8,8,-7,9);\r\nmakeResponsive(graph);\r\ngraph.suspendUpdate();\r\ngraph.options.layer['image']=26;\r\ngraph.options.layer['text']=2;\r\ngraph.options.layer['html']=2;\r\ngraph.options.layer['line']=2;\r\ngraph.options.layer['point']=10;\r\ngraph.options.layer['circle']=1;\r\ngraph.options.image.highlight=false;\r\n/*********************GRAPH DIMENSIONS*******************/\r\nconst boundingBox = graph.attr.boundingbox;\r\nconst positionX = (boundingBox[2]+boundingBox[0])/2;\r\nconst positionY = (boundingBox[1]+boundingBox[3])/2-2;\r\nconst height = (boundingBox[1]-boundingBox[3])/2;\r\n/**********************PUT AXES **********************/\r\nvar ax = createAxes(graph);\r\n/***************** PUT AXES TITLE *******************/\r\nax[0].setAttribute({name:'X'});\r\nax[1].setAttribute({name:'Y'});\r\n/***********************SCORING *******************/\r\nvar yourScore =0; var yourMissed =0; var yourWrong =0; var yourTotal=0;\r\nvar scoreCard = writeHTMLText(graph, positionX, positionY+3, function(){return 'Your Score ( ✓ ): '+ yourScore+'/5'});\r\nvar missedCard = writeHTMLText(graph, positionX, positionY+2, function(){return 'Missed Questions ( ! ): '+ yourMissed+'/5'});\r\nvar wrongCard = writeHTMLText(graph, positionX, positionY+1, function(){return 'Wrong Answers ( x ): '+ yourWrong+'/5'});\r\nscoreCard.setAttribute({visible:false});\r\nmissedCard.setAttribute({visible:false});\r\nwrongCard.setAttribute({visible:false});\r\n/******************ITERATIVE VARIABLE **************/\r\nvar i=0; var k=0; var vis=false;\r\n/*************************ANSWERS*********************/\r\nvar index_selected_answer = -1;\r\nconst answers = [['1/2', '2', '1', '3'], ['2/3', '2', '1/2', '3/2'],['-1', '-2', '-1/4', '-3/4'],\r\n[ '1', '2', '5/6', '3/6'], ['2', '1', '-1', '-2']];\r\nconst index_right_answer = [3,1,0,0,3];\r\n/**/\r\nconst PtmList = [1, 2, -2, 1, -1];\r\nconst offset = [1, 2, -1, 1, 2];\r\nconst coeff = [1.5, 1/2, 1/4, 1/2, 1]\r\nvar Ptm = drawPoint(graph, PtmList[0], 8);\r\nPtm.setAttribute({visible:false});\r\n/**/\r\n/********************************************************************************************/\r\n/********************************************************************************************/\r\nvar track = plotFunction(graph, function(x){return coeff[i]*x*x+offset[i]}, -8, +8);\r\nvar g1 = drawSlider(graph, track, ()=>PtmList[i], ()=>coeff[i]*PtmList[i]*PtmList[i]+offset[i]);\r\n//setSize(graph, g1, 4);\r\nlabelIt(graph, g1, 'P');\r\ngraph.create('tangent', [g1],{strokeColor:'blue', strokeWidth:4});\r\ng1.label.setAttribute({offset:[20, 0]});\r\n/*************************************PRINT ANSWER ****************************************/\r\n//print(graph, ()=> (0.5*(180-2*alpha.Value()*180/Math.PI)).toFixed(1))\r\n/****************PUT TITLE ****************************/\r\nvar question = placeQuestion(graph, function(){return 'Tangent to the parabola at point P has a slope of —'});\r\nvar comment = placeComment(graph, function(){return 'Parabola Equation: y='+coeff[i]+'x^2 + '+offset[i]});\r\nvar note = writeHTMLText(graph, positionX, positionY+height/2., 'You did not make a selection.');\r\nnote.setAttribute({visible:false});\r\n//print(graph, ()=>(alpha.Value()*180/Math.PI).toFixed(1));\r\n///////////////////////////GRAPHICS MODULES//////////////////\r\nvar bck =placeWhite(graph);\r\nvar show =placeBCircles(graph);\r\nvar hide=placeCircles(graph);\r\nvar check = placeChecks(graph);\r\nvar cross = placeCross(graph);\r\nvar exclaim = placeExclaim(graph);\r\nvar pointers = placeFingers(graph);\r\nhide[0].setAttribute({visible:false});\r\n/***************************BUTTON MODULES******************/\r\nvar test =placeTest(graph,'left');\r\nhoverMe(graph, test, 'Check Your Answer', -20, 0);\r\n/**/\r\nvar next = placeRedo(graph);\r\nhoverMe(graph, next, 'Next Question', 0, 0);\r\n/**/\r\nvar redo = placeStartOver(graph);\r\nredo.setAttribute({visible:false});\r\nhoverMe(graph, redo, 'Start Over', 0, 0);\r\n/***************************************/\r\n///////////////////////////////////////////////////////////////\r\nvar ansList = ['1/2', '2', '1', '3'];\r\nvar ansArray = placeAnswers(graph, ansList);\r\nfor(let ij=0; ij<=3; ij++)\r\n{\r\n ansArray[ij].on('down', function(){\r\n ansArray.forEach(function(item){item.setAttribute({color:'grey'})});\r\n pointers.forEach(function(item){item.setAttribute({visible:false})});\r\n ansArray[ij].setAttribute({color:'black'});\r\n pointers[ij].setAttribute({visible:true});\r\n index_selected_answer = ij.valueOf();})\r\n}\r\n////////////////////////////////////////////////////////////////////////\r\nvar hint =writeHTMLText(graph, positionX, positionY+2, '
  1. Equation of the parabolic curve is given to you: y = f(x)

  2. To find the slope of tangent at point P, calculate dy/dx at x = x_P.

');\r\nhint.setAttribute({visible:false, color:'white'});\r\n/**************************TEST BUTTON ***********************/\r\ntest.on('down', function()\r\n{\r\n note.setAttribute({visible:false});\r\n if(i<=PtmList.length-1)\r\n {\r\n if(index_selected_answer == index_right_answer[i] && yourTotal\r\n
\r\n
\r\n
Problem Description
\r\n

\n You are given a parabolic curve (shown in red). You are also given the tangent (shown in blue) to this curve at point P.\n
\n Use the concept of the derivative to find the slope of the tangent to this curve at point P.\n
\n Recall that the slope of the tangent to a curve \\(y=f(x)\\) at a point \\(x=x_0\\) is given by \\( \\lgroup\\frac{dy}{dx}\\rgroup_{x=x_0} = f'(x_0)\\).\r\n

\r\n
Buttons on the MagicGraph
\r\n

\r\n — is the 'Next' button. Tap on this button to move over to the next question.
\r\n — is the 'Check Your Answer' button. Tap on this button to check your answer and move over to the next question.
\r\n — is the 'Get a Hint' button. Tap on this button to receive a hint on how to solve this problem.
\r\n — is the 'Start Over' button. Tap on this button to start over the exercise from the begining.\r\n

\r\n
Marks & Indications
\r\n

\r\n The marks and indications are located on the top-left corner of the MagicGraph, and show your attempt status.
\r\n — the right checkmark indicates that your attempted response was correct.
\r\n — this crossmark indicates that your attempted response was incorrect.
\r\n — this exclaimation mark indicates an unattempted (missed) response.
\r\n

\r\n
\r\n
\r\n
MagicGraph | Slope of the Tangent to a Curve
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lesson.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lesson.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Lesson.vue?vue&type=template&id=2c68d0c2&\"\nimport script from \"./Lesson.vue?vue&type=script&lang=js&\"\nexport * from \"./Lesson.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n"],"sourceRoot":""}