{"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:///./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:///./src/components/physics/springs/Utils.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","toIObject","gOPN","toString","windowNames","window","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","i","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","push","$getOwnPropertySymbols","IS_OP","TypeError","$set","set","G","W","es6Symbols","split","j","wellKnownSymbols","store","k","keyFor","useSetter","useSimple","create","defineProperties","getOwnPropertyDescriptor","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","apply","valueOf","Math","alert","board","msg","setAttribute","visible","setTimeout","placeLogo","imageAttributes","opacity","fixed","rotate","boundingBox","attr","boundingbox","size","im","placeShuffle","loc","x","placeStartOver","placeGo","makeResponsive","resizeFunction","bb","resizeContainer","containerObj","clientWidth","clientHeight","setBoundingBox","fullUpdate","addEventListener","drawSegment","Pt1","Pt2","lm","strokeColor","highlight","dash","strokeWidth","round","canvasWidth","le","X","Y","drawPoint","positionX","positionY","options","point","showInfoBox","ptA","label","display","fillColor","ptM","drawDash","writeHTMLText","message","_m9","m","anchorX","anchorY","CssStyle","_defineProperty","ele","writeMiddleText","_m10","writeRightText","_m14","placeGravity","pt1","pt2","val","arrowAttributes","fillOpacity","gAttributes","color","fontSize","gtext","abs","garrow","placeTapeVert","point1","face","point2","unitsLabel","placeSlider","limit1","start","limit2","sliderAttributes","baseline","canvasHeight","lineCap","highline","unitLabel","withTicks","precision","offset","cssStyle","placeInput","_inputAttributes","inputAttributes","inp","toggle","placeTitle","titleText","subTitleText","commonTextAttributes","titleTextAttributes","_objectSpread","subTitleTextAttributes","title","subtitle","placeDash","width","cols","getKeys","gOPS","pIE","getSymbols","symbols"],"mappings":"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","file":"js/chunk-3fef1a16.0d225da9.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","// 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","////////////////////////////////////////////////////////\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///////////////////////////////////////////\r\nexport function alert(board, msg)\r\n{\r\n msg.setAttribute({visible:true});\r\n setTimeout(() => {\r\n msg.setAttribute({visible:false});\r\n}, \"500\")\r\n// setTimeout(msg.setAttribute({visible:false}), 400);\r\n}\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[0]+0.5;\r\n const positionY = boundingBox[1]-1.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[0]+0.5;\r\n const positionY = boundingBox[1]-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-2.35],[0.5,0.5]], m);\r\n imgs[1]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-3.35],[0.5,0.5]], m);\r\n imgs[2]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-4.35],[0.5,0.5]], m);\r\n imgs[3]=board.create('image',['/assets/finger.svg', [positionX-0.45, positionY-5.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[0]+0.5;\r\n const positionY = boundingBox[1]-1.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 label:{display:'internal'},\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', ['/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', ['/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', ['/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', ['/assets/shuffle.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n////////////////////////////////////////////////\r\nexport function placeStartOver(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/replay.svg', [x, boundingBox[3]+0.50*size],[size,size]], imageAttributes);\r\n return im;\r\n}\r\n//////////////////////////////////////\r\nexport function placeGo(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/go.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', ['/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\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', ['/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', ['/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', ['/assets/next.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 visible:true,\r\n strokeColor:'black',\r\n highlight:false,\r\n dash:0,\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 writeMiddleText(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 writeMiddleHTML(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'middle',\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(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function writeLeftText(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 writeLeftHTML(board, positionX, positionY, message){\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(24*board.canvasWidth /800.)};\r\n let ele =board.create('text', [positionX, positionY, message], m)\r\n return ele;\r\n}\r\nexport function writeRightText(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 writeRightHTML(board, positionX, positionY, message){\r\n const m ={\r\n anchorX: 'right',\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(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:Math.round(2*board.canvasWidth/800.), fillColor:'black', fillOpacity:1},\r\n point2:{face:'circle', size:Math.round(2*board.canvasWidth/800.), fillColor:'black', fillOpacity:1},\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:'bottom',\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.X(), ()=>pt1.Y()],[()=>pt2.X(), ()=>pt2.Y()]], 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:Math.round(2*board.canvasWidth/800.), fillColor:'black', fillOpacity:1},\r\n point2:{face:'circle', size:Math.round(2*board.canvasWidth/800.), fillColor:'black', fillOpacity:1},\r\n highlight:false,\r\n strokeWidth: () => Math.round(3*board.canvasWidth/800.),\r\n strokeColor:'black',\r\n unitsLabel:'',\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(20*board.canvasWidth /800.)}\r\n };\r\n let garrow=board.create('tapemeasure', [[()=>pt1.X(), ()=>pt1.Y()],[()=>pt2.X(), ()=>pt2.Y()]], 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:8*board.canvasHeight/800, strokeColor:'grey', highlight:false, lineCap:'round'},\r\n highline:{strokeWidth:8*board.canvasHeight/800, strokeColor:'black', highlight:false, lineCap:'round'},\r\n name:name,\r\n highlight:false,\r\n size:()=>8*board.canvasHeight/800,\r\n face:'circle',\r\n fillColor:'grey',\r\n strokeColor:'black',\r\n unitLabel: '',\r\n withTicks:false,\r\n precision:2,\r\n label:{fontSize:()=> Math.round(20*board.canvasWidth/800.), offset:[25,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 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 let 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///////////////////////////////////////////LINE////////////////////////////////\r\nexport function placeLine(board, Pt1, Pt2, width, cols){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:cols,\r\n highlight:false,\r\n strokeWidth: () => Math.round(width*board.canvasWidth /800.)};\r\n let le=board.create('segment', [[Pt1[0], Pt1[1]],[Pt2[0], Pt2[1]]] , lm);\r\n return le;\r\n}\r\n/////////////////////////////////////////////////////////////////////////////\r\nexport function placeDash(board, Pt1, Pt2, width, cols){\r\n const lm ={\r\n fixed:true,\r\n dash:1,\r\n strokeColor:cols,\r\n highlight:false,\r\n strokeWidth: () => Math.round(width*board.canvasWidth /800.)};\r\n let le=board.create('segment', [[Pt1[0], Pt1[1]],[Pt2[0], Pt2[1]]] , lm);\r\n return le;\r\n}\r\n///////////////////////////////////////////CIRCLE/////////////////////////\r\nexport function placeCircle(board, Pt1, Pt2, width, cols){\r\n const lm ={\r\n fixed:true,\r\n strokeColor:cols,\r\n fillColor:'white',\r\n fillOpacity:1,\r\n highlight:false,\r\n strokeWidth: () => Math.round(width*board.canvasWidth /800.)};\r\n let le=board.create('circle', [[Pt1[0], Pt1[1]],[Pt2[0], Pt2[1]]] , lm);\r\n return le;\r\n}\r\n/////////////////////////////////////////////////////ARC//////////////////////////\r\nexport function placeArc(board, Pt1, Pt2, Pt3, width, cols){\r\n const lm ={\r\n fixed:true,\r\n dash:1,\r\n strokeColor:cols,\r\n fillOpacity:1,\r\n highlight:false,\r\n strokeWidth: () => Math.round(width*board.canvasWidth /800.)};\r\n let le=board.create('arc', [[Pt1[0], Pt1[1]],[Pt2[0], Pt2[1]],[Pt3[0], Pt3[1]]], lm);\r\n le.setAttribute({center:{visible:false}, radiusPoint:{visible:false}, anglePoint:{visible:false}});\r\n return le;\r\n}\r\n///////////////////////////////////////////////////////////////////////\r\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":""}