{"version":3,"sources":["webpack:///./src/components/physics/Phy12th/Utils.js","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:///./node_modules/core-js/modules/_enum-keys.js"],"names":["createSpace","xmin","xmax","ymin","ymax","graph","JXG","JSXGraph","initBoard","boundingbox","keepaspectratio","axis","ticks","visible","grid","showCopyright","showNavigation","pan","enabled","zoom","placeLogo","board","imageAttributes","opacity","fixed","rotate","boundingBox","attr","size","im","create","placeUndo","loc","x","placeRedo","makeResponsive","resizeFunction","bb","resizeContainer","containerObj","clientWidth","clientHeight","setBoundingBox","fullUpdate","window","addEventListener","drawAngle","Pt1","Pt2","Pt3","lm","radius","strokeWidth","strokeColor","fillColor","highlight","radiusPoint","label","color","anchorX","anchorY","fontSize","canvasHeight","cssStyle","le","setAttribute","center","anglePoint","drawLine","Math","round","canvasWidth","X","Y","drawPoint","positionX","positionY","options","point","showInfoBox","ptA","name","display","ptM","drawDash","dash","drawArrow","pt1","pt2","recAttributes","fillOpacity","m","writeHTMLText","message","_m9","CssStyle","_defineProperty","ele","placeTitle","titleText","subTitleText","commonTextAttributes","titleTextAttributes","_objectSpread","subTitleTextAttributes","offset","title","subtitle","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","$Symbol","Symbol","charAt","anObject","$flags","DESCRIPTORS","TO_STRING","$toString","define","fn","source","R","concat","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","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","defineProperties","getOwnPropertyDescriptor","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","apply","valueOf","getKeys","gOPS","pIE","getSymbols","symbols"],"mappings":"4vCAUO,SAASA,EAAYC,EAAMC,EAAMC,EAAMC,GAC9C,IAAIC,EAAQC,IAAIC,SAASC,UAAU,UAAU,CAACC,YAAa,CAACR,EAAMG,EAAMF,EAAMC,GAC1EO,iBAAiB,EAAMC,MAAK,EAAOC,MAAM,CAACC,SAAQ,GAClDC,MAAK,EAAMC,eAAc,EAAOC,gBAAe,EAC/CC,IAAI,CAACC,SAAQ,GAAQC,KAAK,CAACD,SAAQ,KACvC,OAAOb,EA+XA,SAASe,EAAUC,GAExB,IAAMC,EAAiB,CACtBC,QAAQ,EACRC,OAAM,EACNC,OAAO,GAEFC,EAAcL,EAAMM,KAAKlB,YACzBmB,GAAOF,EAAY,GAAGA,EAAY,IAAI,GACxCG,EAAIR,EAAMS,OAAO,QAAS,CAAC,mBAAoB,CAACJ,EAAY,GAAGE,EAAMF,EAAY,GAAGE,GAAM,CAACA,EAAKA,IAAQN,GAC5G,OAAOO,EA8IF,SAASE,EAAUV,EAAOW,GAE/B,IAAMV,EAAiB,CACtBC,QAAQ,EACRC,OAAM,EACNC,OAAO,GAEFC,EAAcL,EAAMM,KAAKlB,YACzBmB,GAAOF,EAAY,GAAGA,EAAY,IAAI,GACtCO,EAAI,WAAW,MAAQ,QAALD,EACf,IAAKN,EAAY,GAAGA,EAAY,IAAI,IAAIE,EAGxC,IAAKF,EAAY,GAAGA,EAAY,IAAI,GAAIE,GAG7CC,EAAIR,EAAMS,OAAO,QAAS,CAAC,uBAAwB,CAACG,EAAGP,EAAY,GAAG,GAAKE,GAAM,CAACA,EAAKA,IAAQN,GACnG,OAAOO,EAGF,SAASK,EAAUb,EAAOW,GAE/B,IAAMV,EAAiB,CACtBC,QAAQ,EACRC,OAAM,EACNC,OAAO,GAEFC,EAAcL,EAAMM,KAAKlB,YACzBmB,GAAOF,EAAY,GAAGA,EAAY,IAAI,GACtCO,EAAI,WAAW,MAAQ,QAALD,EACf,IAAKN,EAAY,GAAGA,EAAY,IAAI,IAAIE,EAGxC,IAAKF,EAAY,GAAGA,EAAY,IAAI,GAAIE,GAG7CC,EAAIR,EAAMS,OAAO,QAAS,CAAC,mBAAoB,CAACG,EAAGP,EAAY,GAAG,GAAKE,GAAM,CAACA,EAAKA,IAAQN,GAC/F,OAAOO,EAkFF,SAASM,EAAed,GAC3B,IAAIe,EAAiB,WACjB,IAAMC,EAAKhB,EAAMM,KAAKlB,YACtBY,EAAMiB,gBAAgBjB,EAAMkB,aAAaC,YACnBnB,EAAMkB,aAAaE,cACnB,GACA,GACtBpB,EAAMqB,eAAeL,GACrBhB,EAAMsB,cAEVC,OAAOC,iBAAiB,SAAUT,GAG/B,SAASU,EAAUzB,EAAO0B,EAAKC,EAAKC,GACzC,IAAMC,EAAK,CACTC,OAAO,GACPC,YAAY,EACZC,YAAY,QACZC,UAAU,MACVC,WAAU,EACVC,YAAY,CAAC3C,SAAQ,GACrB4C,MAAM,CAACC,MAAM,QAASC,QAAQ,SAAUC,QAAQ,SAAUC,SAAS,WAAW,OAAO,GAAGxC,EAAMyC,aAAa,KAC3GC,SAAS,uBAEPC,EAAG3C,EAAMS,OAAO,iBAAkB,CAACiB,EAAKC,EAAKC,GAAMC,GAEvD,OADAc,EAAGC,aAAa,CAACC,OAAO,CAACrD,SAAQ,GAAO2C,YAAY,CAAC3C,SAAQ,GAAOsD,WAAW,CAACtD,SAAQ,KACjFmD,EAoCF,SAASI,EAAS/C,EAAO0B,EAAKC,GACnC,IAAME,EAAI,CACV1B,OAAM,EACN6B,YAAY,QACZE,WAAU,EACVH,YAAa,kBAAMiB,KAAKC,MAAM,EAAEjD,EAAMkD,YAAa,OAC/CP,EAAG3C,EAAMS,OAAO,OAAQ,CAAC,CAAC,kBAAIiB,EAAIyB,KAAK,kBAAIzB,EAAI0B,MAAK,CAAC,kBAAIzB,EAAIwB,KAAK,kBAAIxB,EAAIyB,OAAQvB,GACtF,OAAOc,EAcF,SAASU,EAAUrD,EAAOsD,EAAWC,GACvCvD,EAAMwD,QAAQC,MAAMC,aAAY,EAChC,IAAMC,EAAM,CACVC,KAAK,GACLxB,MAAO,CACLyB,QAAQ,YAEVtD,KAAM,kBAAIyC,KAAKC,MAAM,EAAEjD,EAAMkD,YAAY,MACzCjB,UAAU,MACVzC,SAAQ,EACRwC,YAAY,MACZE,WAAU,GACR4B,EAAK9D,EAAMS,OAAO,QAAS,CAAC6C,EAAWC,GAAYI,GACvD,OAAOG,EAmGL,SAASC,EAAS/D,EAAO0B,EAAKC,GACnC,IAAME,EAAI,CACV1B,OAAM,EACN6D,KAAK,EACLhC,YAAY,MACZE,WAAU,EACVH,YAAa,kBAAMiB,KAAKC,MAAM,EAAEjD,EAAMkD,YAAa,OAC/CP,EAAG3C,EAAMS,OAAO,UAAW,CAAC,CAAC,kBAAIiB,EAAIyB,KAAK,kBAAIzB,EAAI0B,MAAK,CAAC,kBAAIzB,EAAIwB,KAAK,kBAAIxB,EAAIyB,OAAQvB,GACzF,OAAOc,EAgBF,SAASsB,EAAUjE,EAAOkE,EAAKC,GACjC,IAAMC,EAAgB,CACpBrC,YAAa,kBAAMiB,KAAKC,MAAM,EAAEjD,EAAMkD,YAAY,MAClDlB,YAAY,MACZE,WAAU,EACVmC,YAAY,GACVC,EAAGtE,EAAMS,OAAO,QAAS,CAAC,CAAC,kBAAIyD,EAAIf,KAAK,kBAAIe,EAAId,MACrB,CAAC,kBAAIe,EAAIhB,KAAK,kBAAIgB,EAAIf,OAAOgB,GAC5D,OAAOE,EAiBL,SAASC,EAAcvE,EAAOsD,EAAWC,EAAWiB,GAAQ,IAAAC,EAC3DH,GAACG,EAAA,CACPnC,QAAS,SACTJ,WAAW,EACX/B,OAAO,EACPoC,QAAS,SACTmC,SAAU,sBAAoBC,eAAAF,EAAA,aACpB,GAAKE,eAAAF,EAAA,YACL,kBAAMzB,KAAKC,MAAM,GAAGjD,EAAMkD,YAAa,QAAKuB,GAClDG,EAAK5E,EAAMS,OAAO,OAAQ,CAAC6C,EAAWC,EAAWiB,GAAUF,GAC/D,OAAOM,EA+hBF,SAASC,EAAW7E,EAAO8E,EAAWC,GACzC,IAAMC,EAAuB,CACzB1C,QAAS,SACTuB,QAAS,WACT3B,WAAW,EACX/B,OAAO,GAEL8E,EAAmBC,IAAA,GAClBF,GAAoB,IACvBzC,QAAS,SACTmC,SAAU,yCACVxC,WAAU,EACVM,SAAU,kBAAMQ,KAAKC,MAAM,GAAKjD,EAAMkD,YAAa,QAEjDiC,EAAsBD,IAAA,GACrBF,GAAoB,IACvBzC,QAAS,SACTmC,SAAU,sBACVxC,WAAU,EACVM,SAAU,kBAAMQ,KAAKC,MAAM,GAAKjD,EAAMkD,YAAa,QAEjD7C,EAAcL,EAAMM,KAAKlB,YACzBgG,EAAS,CAAC,IAAK/E,EAAY,GAAKA,EAAY,IAAI,IAClDgF,EAAQrF,EAAMS,OACd,OACA,EAAEJ,EAAY,GAAKA,EAAY,IAAM,EAAM+E,EAAO,GACjD/E,EAAY,GAAK+E,EAAO,GACxBN,GACDG,GAEAK,EAAWtF,EAAMS,OACjB,OACA,EAAEJ,EAAY,GAAKA,EAAY,IAAM,EAAM+E,EAAO,GACjD/E,EAAY,GAAK,EAAE+E,EAAO,GAC1BL,GACDI,GAEJ,MAAO,CAACE,EAAOC,K,oCC99CnB,IAAIC,EAAM,EAAQ,QACdC,EAAU,EAAQ,QAClBC,EAAW,EAAQ,QACnBC,EAAO,EAAQ,QACfC,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QACzBC,EAAY,EAAQ,QAExBN,EAAQA,EAAQO,EAAIP,EAAQQ,GAAK,EAAQ,OAAR,EAA0B,SAAUC,GAAQC,MAAMC,KAAKF,MAAW,QAAS,CAE1GE,KAAM,SAAcC,GAClB,IAOIC,EAAQC,EAAQC,EAAMC,EAPtBC,EAAIhB,EAASW,GACbM,EAAmB,mBAARC,KAAqBA,KAAOT,MACvCU,EAAOC,UAAUR,OACjBS,EAAQF,EAAO,EAAIC,UAAU,QAAKE,EAClCC,OAAoBD,IAAVD,EACVG,EAAQ,EACRC,EAASpB,EAAUW,GAIvB,GAFIO,IAASF,EAAQvB,EAAIuB,EAAOF,EAAO,EAAIC,UAAU,QAAKE,EAAW,SAEvDA,GAAVG,GAAyBR,GAAKR,OAASP,EAAYuB,GAMrD,IADAb,EAAST,EAASa,EAAEJ,QACfC,EAAS,IAAII,EAAEL,GAASA,EAASY,EAAOA,IAC3CpB,EAAeS,EAAQW,EAAOD,EAAUF,EAAML,EAAEQ,GAAQA,GAASR,EAAEQ,SANrE,IAAKT,EAAWU,EAAOxB,KAAKe,GAAIH,EAAS,IAAII,IAAOH,EAAOC,EAASW,QAAQC,KAAMH,IAChFpB,EAAeS,EAAQW,EAAOD,EAAUtB,EAAKc,EAAUM,EAAO,CAACP,EAAKc,MAAOJ,IAAQ,GAAQV,EAAKc,OASpG,OADAf,EAAOD,OAASY,EACTX,M,uBCjCX,IAAId,EAAU,EAAQ,QAEtBA,EAAQA,EAAQO,EAAG,QAAS,CAAEuB,QAAS,EAAQ,W,uBCH/CC,EAAQC,EAAI,EAAQ,S,qBCChB,EAAQ,SAAmC,KAAd,KAAKC,OAAc,EAAQ,QAAgBD,EAAEE,OAAOC,UAAW,QAAS,CACvGC,cAAc,EACdC,IAAK,EAAQ,W,uBCHf,IAAIC,EAAS,EAAQ,QACjBC,EAAO,EAAQ,QACfC,EAAU,EAAQ,QAClBC,EAAS,EAAQ,QACjBC,EAAiB,EAAQ,QAAgBV,EAC7CW,EAAOZ,QAAU,SAAU3D,GACzB,IAAIwE,EAAUL,EAAKM,SAAWN,EAAKM,OAASL,EAAU,GAAKF,EAAOO,QAAU,IACtD,KAAlBzE,EAAK0E,OAAO,IAAe1E,KAAQwE,GAAUF,EAAeE,EAASxE,EAAM,CAAEyD,MAAOY,EAAOT,EAAE5D,O,oCCNnG,EAAQ,QACR,IAAI2E,EAAW,EAAQ,QACnBC,EAAS,EAAQ,QACjBC,EAAc,EAAQ,QACtBC,EAAY,WACZC,EAAY,IAAID,GAEhBE,EAAS,SAAUC,GACrB,EAAQ,OAAR,CAAuBnB,OAAOC,UAAWe,EAAWG,GAAI,IAItD,EAAQ,OAAR,EAAoB,WAAc,MAAsD,QAA/CF,EAAUjD,KAAK,CAAEoD,OAAQ,IAAKrB,MAAO,SAChFmB,GAAO,WACL,IAAIG,EAAIR,EAAS5B,MACjB,MAAO,IAAIqC,OAAOD,EAAED,OAAQ,IAC1B,UAAWC,EAAIA,EAAEtB,OAASgB,GAAeM,aAAarB,OAASc,EAAO9C,KAAKqD,QAAKhC,MAG3E4B,EAAU/E,MAAQ8E,GAC3BE,GAAO,WACL,OAAOD,EAAUjD,KAAKiB,U,uBCrB1B,IAAIsC,EAAY,EAAQ,QACpBC,EAAO,EAAQ,QAAkB1B,EACjC2B,EAAW,GAAGA,SAEdC,EAA+B,iBAAV7H,QAAsBA,QAAU8H,OAAOC,oBAC5DD,OAAOC,oBAAoB/H,QAAU,GAErCgI,EAAiB,SAAUC,GAC7B,IACE,OAAON,EAAKM,GACZ,MAAOC,GACP,OAAOL,EAAYM,UAIvBvB,EAAOZ,QAAQC,EAAI,SAA6BgC,GAC9C,OAAOJ,GAAoC,mBAArBD,EAASzD,KAAK8D,GAA2BD,EAAeC,GAAMN,EAAKD,EAAUO,M,uBCjBrG,IAAIG,EAAYC,KAAKjC,UACjBkC,EAAe,eACfnB,EAAY,WACZC,EAAYgB,EAAUjB,GACtBoB,EAAUH,EAAUG,QACpB,IAAIF,KAAKG,KAAO,IAAMF,GACxB,EAAQ,OAAR,CAAuBF,EAAWjB,GAAW,WAC3C,IAAIrB,EAAQyC,EAAQpE,KAAKiB,MAEzB,OAAOU,IAAUA,EAAQsB,EAAUjD,KAAKiB,MAAQkD,M,oCCPpD,IAAI/B,EAAS,EAAQ,QACjBkC,EAAM,EAAQ,QACdvB,EAAc,EAAQ,QACtBjD,EAAU,EAAQ,QAClByE,EAAW,EAAQ,QACnBC,EAAO,EAAQ,QAAWC,IAC1BC,EAAS,EAAQ,QACjBC,EAAS,EAAQ,QACjBC,EAAiB,EAAQ,QACzBC,EAAM,EAAQ,QACdC,EAAM,EAAQ,QACdvC,EAAS,EAAQ,QACjBwC,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QACnBpD,EAAU,EAAQ,QAClBiB,EAAW,EAAQ,QACnBoC,EAAW,EAAQ,QACnBlF,EAAW,EAAQ,QACnBwD,EAAY,EAAQ,QACpB2B,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAQ,EAAQ,QAChBC,EAAQ,EAAQ,QAChBC,EAAM,EAAQ,QACdC,EAAQ,EAAQ,QAChBC,EAAOJ,EAAMxD,EACb6D,EAAKH,EAAI1D,EACT0B,EAAO6B,EAAQvD,EACfY,EAAUN,EAAOO,OACjBiD,EAAQxD,EAAOyD,KACfC,EAAaF,GAASA,EAAMG,UAC5BC,EAAY,YACZC,EAASnB,EAAI,WACboB,EAAepB,EAAI,eACnBqB,EAAS,GAAGC,qBACZC,EAAiB1B,EAAO,mBACxB2B,EAAa3B,EAAO,WACpB4B,EAAY5B,EAAO,cACnB6B,EAAc7C,OAAOqC,GACrBS,EAA+B,mBAAX/D,KAA2B6C,EAAMzD,EACrD4E,EAAUtE,EAAOsE,QAEjBC,GAAUD,IAAYA,EAAQV,KAAeU,EAAQV,GAAWY,UAGhEC,EAAgB9D,GAAe2B,GAAO,WACxC,OAES,GAFFU,EAAQO,EAAG,GAAI,IAAK,CACzBxD,IAAK,WAAc,OAAOwD,EAAG1E,KAAM,IAAK,CAAEU,MAAO,IAAKmF,MACpDA,KACD,SAAUhD,EAAIiD,EAAKC,GACtB,IAAIC,EAAYvB,EAAKc,EAAaO,GAC9BE,UAAkBT,EAAYO,GAClCpB,EAAG7B,EAAIiD,EAAKC,GACRC,GAAanD,IAAO0C,GAAab,EAAGa,EAAaO,EAAKE,IACxDtB,EAEAuB,EAAO,SAAUC,GACnB,IAAIC,EAAMd,EAAWa,GAAO/B,EAAQ1C,EAAQsD,IAE5C,OADAoB,EAAIC,GAAKF,EACFC,GAGLE,EAAWb,GAAyC,iBAApB/D,EAAQ5B,SAAuB,SAAUgD,GAC3E,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAOA,aAAcpB,GAGnB6E,EAAkB,SAAwBzD,EAAIiD,EAAKC,GAKrD,OAJIlD,IAAO0C,GAAae,EAAgBhB,EAAWQ,EAAKC,GACxDnE,EAASiB,GACTiD,EAAM7B,EAAY6B,GAAK,GACvBlE,EAASmE,GACL1C,EAAIgC,EAAYS,IACbC,EAAEQ,YAIDlD,EAAIR,EAAImC,IAAWnC,EAAGmC,GAAQc,KAAMjD,EAAGmC,GAAQc,IAAO,GAC1DC,EAAI5B,EAAQ4B,EAAG,CAAEQ,WAAYrC,EAAW,GAAG,OAJtCb,EAAIR,EAAImC,IAASN,EAAG7B,EAAImC,EAAQd,EAAW,EAAG,KACnDrB,EAAGmC,GAAQc,IAAO,GAIXF,EAAc/C,EAAIiD,EAAKC,IACzBrB,EAAG7B,EAAIiD,EAAKC,IAEnBS,EAAoB,SAA0B3D,EAAI4D,GACpD7E,EAASiB,GACT,IAGIiD,EAHAY,EAAO3C,EAAS0C,EAAInE,EAAUmE,IAC9BE,EAAI,EACJC,EAAIF,EAAKhH,OAEb,MAAOkH,EAAID,EAAGL,EAAgBzD,EAAIiD,EAAMY,EAAKC,KAAMF,EAAEX,IACrD,OAAOjD,GAELgE,EAAU,SAAgBhE,EAAI4D,GAChC,YAAarG,IAANqG,EAAkBtC,EAAQtB,GAAM2D,EAAkBrC,EAAQtB,GAAK4D,IAEpEK,EAAwB,SAA8BhB,GACxD,IAAIiB,EAAI7B,EAAOnG,KAAKiB,KAAM8F,EAAM7B,EAAY6B,GAAK,IACjD,QAAI9F,OAASuF,GAAelC,EAAIgC,EAAYS,KAASzC,EAAIiC,EAAWQ,QAC7DiB,IAAM1D,EAAIrD,KAAM8F,KAASzC,EAAIgC,EAAYS,IAAQzC,EAAIrD,KAAMgF,IAAWhF,KAAKgF,GAAQc,KAAOiB,IAE/FC,GAA4B,SAAkCnE,EAAIiD,GAGpE,GAFAjD,EAAKP,EAAUO,GACfiD,EAAM7B,EAAY6B,GAAK,GACnBjD,IAAO0C,IAAelC,EAAIgC,EAAYS,IAASzC,EAAIiC,EAAWQ,GAAlE,CACA,IAAIC,EAAItB,EAAK5B,EAAIiD,GAEjB,OADIC,IAAK1C,EAAIgC,EAAYS,IAAUzC,EAAIR,EAAImC,IAAWnC,EAAGmC,GAAQc,KAAOC,EAAEQ,YAAa,GAChFR,IAELkB,GAAuB,SAA6BpE,GACtD,IAGIiD,EAHAoB,EAAQ3E,EAAKD,EAAUO,IACvBlD,EAAS,GACTgH,EAAI,EAER,MAAOO,EAAMxH,OAASiH,EACftD,EAAIgC,EAAYS,EAAMoB,EAAMP,OAASb,GAAOd,GAAUc,GAAOvC,GAAM5D,EAAOwH,KAAKrB,GACpF,OAAOnG,GAEPyH,GAAyB,SAA+BvE,GAC1D,IAIIiD,EAJAuB,EAAQxE,IAAO0C,EACf2B,EAAQ3E,EAAK8E,EAAQ/B,EAAYhD,EAAUO,IAC3ClD,EAAS,GACTgH,EAAI,EAER,MAAOO,EAAMxH,OAASiH,GAChBtD,EAAIgC,EAAYS,EAAMoB,EAAMP,OAAUU,IAAQhE,EAAIkC,EAAaO,IAAcnG,EAAOwH,KAAK9B,EAAWS,IACxG,OAAOnG,GAIN6F,IACH/D,EAAU,WACR,GAAIzB,gBAAgByB,EAAS,MAAM6F,UAAU,gCAC7C,IAAIpB,EAAMtC,EAAI1D,UAAUR,OAAS,EAAIQ,UAAU,QAAKE,GAChDmH,EAAO,SAAU7G,GACfV,OAASuF,GAAagC,EAAKxI,KAAKuG,EAAW5E,GAC3C2C,EAAIrD,KAAMgF,IAAW3B,EAAIrD,KAAKgF,GAASkB,KAAMlG,KAAKgF,GAAQkB,IAAO,GACrEN,EAAc5F,KAAMkG,EAAKhC,EAAW,EAAGxD,KAGzC,OADIoB,GAAe4D,GAAQE,EAAcL,EAAaW,EAAK,CAAEjF,cAAc,EAAMuG,IAAKD,IAC/EtB,EAAKC,IAEd5C,EAAS7B,EAAQsD,GAAY,YAAY,WACvC,OAAO/E,KAAKoG,MAGd/B,EAAMxD,EAAImG,GACVzC,EAAI1D,EAAIyF,EACR,EAAQ,QAAkBzF,EAAIuD,EAAQvD,EAAIoG,GAC1C,EAAQ,QAAiBpG,EAAIiG,EAC7BxC,EAAMzD,EAAIuG,GAENtF,IAAgB,EAAQ,SAC1BwB,EAASiC,EAAa,uBAAwBuB,GAAuB,GAGvExF,EAAOT,EAAI,SAAU5D,GACnB,OAAOgJ,EAAKpC,EAAI5G,MAIpB4B,EAAQA,EAAQ4I,EAAI5I,EAAQ6I,EAAI7I,EAAQQ,GAAKmG,EAAY,CAAE9D,OAAQD,IAEnE,IAAK,IAAIkG,GAAa,iHAGpBC,MAAM,KAAMC,GAAI,EAAGF,GAAWjI,OAASmI,IAAGhE,EAAI8D,GAAWE,OAE3D,IAAK,IAAIC,GAAmBtD,EAAMX,EAAIkE,OAAQC,GAAI,EAAGF,GAAiBpI,OAASsI,IAAIlE,EAAUgE,GAAiBE,OAE9GnJ,EAAQA,EAAQO,EAAIP,EAAQQ,GAAKmG,EAAY,SAAU,CAErD,IAAO,SAAUM,GACf,OAAOzC,EAAI+B,EAAgBU,GAAO,IAC9BV,EAAeU,GACfV,EAAeU,GAAOrE,EAAQqE,IAGpCmC,OAAQ,SAAgB9B,GACtB,IAAKE,EAASF,GAAM,MAAMmB,UAAUnB,EAAM,qBAC1C,IAAK,IAAIL,KAAOV,EAAgB,GAAIA,EAAeU,KAASK,EAAK,OAAOL,GAE1EoC,UAAW,WAAcxC,GAAS,GAClCyC,UAAW,WAAczC,GAAS,KAGpC7G,EAAQA,EAAQO,EAAIP,EAAQQ,GAAKmG,EAAY,SAAU,CAErD1L,OAAQ+M,EAERtF,eAAgB+E,EAEhB8B,iBAAkB5B,EAElB6B,yBAA0BrB,GAE1BrE,oBAAqBsE,GAErBqB,sBAAuBlB,KAKzB,IAAImB,GAAsB9E,GAAO,WAAca,EAAMzD,EAAE,MAEvDhC,EAAQA,EAAQO,EAAIP,EAAQQ,EAAIkJ,GAAqB,SAAU,CAC7DD,sBAAuB,SAA+BzF,GACpD,OAAOyB,EAAMzD,EAAE/B,EAAS+D,OAK5B8B,GAAS9F,EAAQA,EAAQO,EAAIP,EAAQQ,IAAMmG,GAAc/B,GAAO,WAC9D,IAAIrE,EAAIqC,IAIR,MAA0B,UAAnBoD,EAAW,CAACzF,KAA2C,MAAxByF,EAAW,CAAEgB,EAAGzG,KAAyC,MAAzByF,EAAWnC,OAAOtD,QACrF,OAAQ,CACX0F,UAAW,SAAmBjC,GAC5B,IAEI2F,EAAUC,EAFVC,EAAO,CAAC7F,GACR8D,EAAI,EAER,MAAOzG,UAAUR,OAASiH,EAAG+B,EAAKvB,KAAKjH,UAAUyG,MAEjD,GADA8B,EAAYD,EAAWE,EAAK,IACvB1E,EAASwE,SAAoBpI,IAAPyC,KAAoBwD,EAASxD,GAMxD,OALKlC,EAAQ6H,KAAWA,EAAW,SAAU1C,EAAKpF,GAEhD,GADwB,mBAAb+H,IAAyB/H,EAAQ+H,EAAU1J,KAAKiB,KAAM8F,EAAKpF,KACjE2F,EAAS3F,GAAQ,OAAOA,IAE/BgI,EAAK,GAAKF,EACH3D,EAAW8D,MAAMhE,EAAO+D,MAKnCjH,EAAQsD,GAAWE,IAAiB,EAAQ,OAAR,CAAmBxD,EAAQsD,GAAYE,EAAcxD,EAAQsD,GAAW6D,SAE5GjF,EAAelC,EAAS,UAExBkC,EAAetH,KAAM,QAAQ,GAE7BsH,EAAexC,EAAOyD,KAAM,QAAQ,I,qBCrPpC,EAAQ,OAAR,CAAyB,kB,qBCCzB,IAAIiE,EAAU,EAAQ,QAClBC,EAAO,EAAQ,QACfC,EAAM,EAAQ,QAClBvH,EAAOZ,QAAU,SAAUiC,GACzB,IAAIlD,EAASkJ,EAAQhG,GACjBmG,EAAaF,EAAKjI,EACtB,GAAImI,EAAY,CACd,IAGIlD,EAHAmD,EAAUD,EAAWnG,GACrBqC,EAAS6D,EAAIlI,EACb8F,EAAI,EAER,MAAOsC,EAAQvJ,OAASiH,EAAOzB,EAAOnG,KAAK8D,EAAIiD,EAAMmD,EAAQtC,OAAOhH,EAAOwH,KAAKrB,GAChF,OAAOnG","file":"js/chunk-2f514df7.3ef11800.js","sourcesContent":["////////////////////////////////////////////////////////\r\nvar printArray =[];\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\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[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/****************************************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\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(4*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(4*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 drawTangent(board, pt){\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 let ptM =board.create('tangent', [pt], ptA);\r\n return ptM;\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: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 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 drawRec(board, pt1, pt2){\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:1.0,\r\n hasInnerPoints:true}\r\n let m =board.create('polygon', [\r\n [()=>pt1.X(), ()=>pt1.Y()],\r\n [()=>pt1.X(), ()=>pt2.Y()],\r\n [()=>pt2.X(), ()=>pt2.Y()],\r\n [()=>pt2.X(), ()=>pt1.Y()]], 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:1,\r\n hasInnerPoints:true}\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/////////////////////////////////////////////////////////////\r\nexport function drawSq(board, pt1, pt2){\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:1,\r\n hasInnerPoints:true}\r\n let m =board.create('polygon', [\r\n [()=>pt1.X(), ()=>pt1.Y()],\r\n [()=>pt1.X(), ()=>pt2.Y()],\r\n [()=>pt2.X(), ()=>pt2.Y()],\r\n [()=>pt2.X(), ()=>pt1.Y()]], recAttributes);\r\n return m;\r\n}\r\n//////////////////////////////////////////////Circle////////////////////////\r\nexport function drawRegPoly(board, pt1, pt2, n){\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:1,\r\n hasInnerPoints:true}\r\n let m =board.create('regularpolygon', [\r\n [()=>pt1.X(), ()=>pt1.Y()],\r\n [()=>pt2.X(), ()=>pt2.Y()], n], recAttributes);\r\n return m\r\n}\r\n/////////////////////////////////////\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,lineCap:'round'},\r\n highline:{strokeWidth:7*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 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","'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","// 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":""}