forked from LaserWeb/lw.comm-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path18a575df30f389e25f39.worker.js.map
1 lines (1 loc) · 49.7 KB
/
18a575df30f389e25f39.worker.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap 18a575df30f389e25f39","webpack:///./lib/cam-gcode-lathe.js","webpack:///./lib/workers/cam-lathe.js"],"names":["getLatheGcodeFromOp","GcodeGenerator","constructor","decimal","toolFeedUnits","Object","assign","feedScale","gcode","getMotion","mode","motionMode","getFeed","f","strF","toFixed","roundedF","Number","rapidZ","z","strZ","roundedZ","rapidXDia","xDia","backSide","strX","roundedX","x","moveZ","moveXDia","latheConvFaceTurn","gen","showAlert","props","latheToolBackSide","latheRapidToDiameter","latheRapidToZ","latheStartZ","latheRoughingFeed","latheRoughingDepth","latheFinishFeed","latheFinishDepth","latheFinishExtraPasses","latheFace","latheFaceEndDiameter","latheTurns","length","i","startDiameter","endDiameter","turn","nextZ","Math","max","min","n","turnRapidToDiameter","startX","turnStartZ","done","settings","opIndex","op","geometry","openGeometry","tabGeometry","progress","type","hookOperationStart","hookOperationEnd","onmessage","event","data","errors","message","level","push","postMessage","JSON","stringify","apply"],"mappings":";QAAA;QACA;QACA,2DAA2D;QAC3D;QACA;QACA,GAAG;;QAEH,4CAA4C;QAC5C;QACA;;QAEA,0CAA0C;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA,qCAAqC;QACrC;QACA;;;;QAIA;QACA,8CAA8C;QAC9C;QACA,4BAA4B;QAC5B,6BAA6B;QAC7B,iCAAiC;;QAEjC,uCAAuC;QACvC;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA,sCAAsC;QACtC;QACA;QACA,6BAA6B;QAC7B,6BAA6B;QAC7B;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,oBAAoB,gBAAgB;QACpC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA,oBAAoB,gBAAgB;QACpC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA,iBAAiB,8BAA8B;QAC/C;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA,oDAAoD;QACpD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL,IAAI;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,mBAAmB,2BAA2B;QAC9C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAO;QACP;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,kBAAkB,cAAc;QAChC;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,aAAa,4BAA4B;QACzC;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;;QAEJ;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,cAAc,4BAA4B;QAC1C;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA,cAAc,4BAA4B;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,gBAAgB,uCAAuC;QACvD;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,eAAe,uCAAuC;QACtD;QACA;QACA;QACA;QACA;QACA,eAAe,sBAAsB;QACrC;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,SAAS;QACT;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,aAAa,wCAAwC;QACrD;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,SAAS;QACT;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,QAAQ;QACR;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,eAAe;QACf;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QA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","file":"18a575df30f389e25f39.worker.js","sourcesContent":[" \tvar parentHotUpdateCallback = this[\"webpackHotUpdate\"];\n \tthis[\"webpackHotUpdate\"] = \r\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars\r\n \t\thotAddUpdateChunk(chunkId, moreModules);\r\n \t\tif(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\r\n \t} ;\r\n \t\r\n \tfunction hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars\r\n \t\timportScripts(__webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\");\r\n \t}\r\n \t\r\n \tfunction hotDownloadManifest(callback) { // eslint-disable-line no-unused-vars\r\n \t\treturn new Promise(function(resolve, reject) {\r\n \t\t\tif(typeof XMLHttpRequest === \"undefined\")\r\n \t\t\t\treturn reject(new Error(\"No browser support\"));\r\n \t\t\ttry {\r\n \t\t\t\tvar request = new XMLHttpRequest();\r\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\r\n \t\t\t\trequest.open(\"GET\", requestPath, true);\r\n \t\t\t\trequest.timeout = 10000;\r\n \t\t\t\trequest.send(null);\r\n \t\t\t} catch(err) {\r\n \t\t\t\treturn reject(err);\r\n \t\t\t}\r\n \t\t\trequest.onreadystatechange = function() {\r\n \t\t\t\tif(request.readyState !== 4) return;\r\n \t\t\t\tif(request.status === 0) {\r\n \t\t\t\t\t// timeout\r\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" timed out.\"));\r\n \t\t\t\t} else if(request.status === 404) {\r\n \t\t\t\t\t// no update available\r\n \t\t\t\t\tresolve();\r\n \t\t\t\t} else if(request.status !== 200 && request.status !== 304) {\r\n \t\t\t\t\t// other failure\r\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\r\n \t\t\t\t} else {\r\n \t\t\t\t\t// success\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\r\n \t\t\t\t\t} catch(e) {\r\n \t\t\t\t\t\treject(e);\r\n \t\t\t\t\t\treturn;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tresolve(update);\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t});\r\n \t}\r\n \t\r\n \tfunction hotDisposeChunk(chunkId) { //eslint-disable-line no-unused-vars\r\n \t\tdelete installedChunks[chunkId];\r\n \t}\r\n\n \t\r\n \t\r\n \tvar hotApplyOnUpdate = true;\r\n \tvar hotCurrentHash = \"18a575df30f389e25f39\"; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentModuleData = {};\r\n \tvar hotCurrentChildModule; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentParents = []; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars\r\n \t\r\n \tfunction hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars\r\n \t\tvar me = installedModules[moduleId];\r\n \t\tif(!me) return __webpack_require__;\r\n \t\tvar fn = function(request) {\r\n \t\t\tif(me.hot.active) {\r\n \t\t\t\tif(installedModules[request]) {\r\n \t\t\t\t\tif(installedModules[request].parents.indexOf(moduleId) < 0)\r\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\r\n \t\t\t\t} else {\r\n \t\t\t\t\thotCurrentParents = [moduleId];\r\n \t\t\t\t\thotCurrentChildModule = request;\r\n \t\t\t\t}\r\n \t\t\t\tif(me.children.indexOf(request) < 0)\r\n \t\t\t\t\tme.children.push(request);\r\n \t\t\t} else {\r\n \t\t\t\tconsole.warn(\"[HMR] unexpected require(\" + request + \") from disposed module \" + moduleId);\r\n \t\t\t\thotCurrentParents = [];\r\n \t\t\t}\r\n \t\t\treturn __webpack_require__(request);\r\n \t\t};\r\n \t\tvar ObjectFactory = function ObjectFactory(name) {\r\n \t\t\treturn {\r\n \t\t\t\tconfigurable: true,\r\n \t\t\t\tenumerable: true,\r\n \t\t\t\tget: function() {\r\n \t\t\t\t\treturn __webpack_require__[name];\r\n \t\t\t\t},\r\n \t\t\t\tset: function(value) {\r\n \t\t\t\t\t__webpack_require__[name] = value;\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t};\r\n \t\tfor(var name in __webpack_require__) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(__webpack_require__, name) && name !== \"e\") {\r\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\r\n \t\t\t}\r\n \t\t}\r\n \t\tfn.e = function(chunkId) {\r\n \t\t\tif(hotStatus === \"ready\")\r\n \t\t\t\thotSetStatus(\"prepare\");\r\n \t\t\thotChunksLoading++;\r\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\r\n \t\t\t\tfinishChunkLoading();\r\n \t\t\t\tthrow err;\r\n \t\t\t});\r\n \t\r\n \t\t\tfunction finishChunkLoading() {\r\n \t\t\t\thotChunksLoading--;\r\n \t\t\t\tif(hotStatus === \"prepare\") {\r\n \t\t\t\t\tif(!hotWaitingFilesMap[chunkId]) {\r\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(hotChunksLoading === 0 && hotWaitingFiles === 0) {\r\n \t\t\t\t\t\thotUpdateDownloaded();\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t};\r\n \t\treturn fn;\r\n \t}\r\n \t\r\n \tfunction hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars\r\n \t\tvar hot = {\r\n \t\t\t// private stuff\r\n \t\t\t_acceptedDependencies: {},\r\n \t\t\t_declinedDependencies: {},\r\n \t\t\t_selfAccepted: false,\r\n \t\t\t_selfDeclined: false,\r\n \t\t\t_disposeHandlers: [],\r\n \t\t\t_main: hotCurrentChildModule !== moduleId,\r\n \t\r\n \t\t\t// Module API\r\n \t\t\tactive: true,\r\n \t\t\taccept: function(dep, callback) {\r\n \t\t\t\tif(typeof dep === \"undefined\")\r\n \t\t\t\t\thot._selfAccepted = true;\r\n \t\t\t\telse if(typeof dep === \"function\")\r\n \t\t\t\t\thot._selfAccepted = dep;\r\n \t\t\t\telse if(typeof dep === \"object\")\r\n \t\t\t\t\tfor(var i = 0; i < dep.length; i++)\r\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\r\n \t\t\t\telse\r\n \t\t\t\t\thot._acceptedDependencies[dep] = callback || function() {};\r\n \t\t\t},\r\n \t\t\tdecline: function(dep) {\r\n \t\t\t\tif(typeof dep === \"undefined\")\r\n \t\t\t\t\thot._selfDeclined = true;\r\n \t\t\t\telse if(typeof dep === \"object\")\r\n \t\t\t\t\tfor(var i = 0; i < dep.length; i++)\r\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\r\n \t\t\t\telse\r\n \t\t\t\t\thot._declinedDependencies[dep] = true;\r\n \t\t\t},\r\n \t\t\tdispose: function(callback) {\r\n \t\t\t\thot._disposeHandlers.push(callback);\r\n \t\t\t},\r\n \t\t\taddDisposeHandler: function(callback) {\r\n \t\t\t\thot._disposeHandlers.push(callback);\r\n \t\t\t},\r\n \t\t\tremoveDisposeHandler: function(callback) {\r\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\r\n \t\t\t\tif(idx >= 0) hot._disposeHandlers.splice(idx, 1);\r\n \t\t\t},\r\n \t\r\n \t\t\t// Management API\r\n \t\t\tcheck: hotCheck,\r\n \t\t\tapply: hotApply,\r\n \t\t\tstatus: function(l) {\r\n \t\t\t\tif(!l) return hotStatus;\r\n \t\t\t\thotStatusHandlers.push(l);\r\n \t\t\t},\r\n \t\t\taddStatusHandler: function(l) {\r\n \t\t\t\thotStatusHandlers.push(l);\r\n \t\t\t},\r\n \t\t\tremoveStatusHandler: function(l) {\r\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\r\n \t\t\t\tif(idx >= 0) hotStatusHandlers.splice(idx, 1);\r\n \t\t\t},\r\n \t\r\n \t\t\t//inherit from previous dispose call\r\n \t\t\tdata: hotCurrentModuleData[moduleId]\r\n \t\t};\r\n \t\thotCurrentChildModule = undefined;\r\n \t\treturn hot;\r\n \t}\r\n \t\r\n \tvar hotStatusHandlers = [];\r\n \tvar hotStatus = \"idle\";\r\n \t\r\n \tfunction hotSetStatus(newStatus) {\r\n \t\thotStatus = newStatus;\r\n \t\tfor(var i = 0; i < hotStatusHandlers.length; i++)\r\n \t\t\thotStatusHandlers[i].call(null, newStatus);\r\n \t}\r\n \t\r\n \t// while downloading\r\n \tvar hotWaitingFiles = 0;\r\n \tvar hotChunksLoading = 0;\r\n \tvar hotWaitingFilesMap = {};\r\n \tvar hotRequestedFilesMap = {};\r\n \tvar hotAvailableFilesMap = {};\r\n \tvar hotDeferred;\r\n \t\r\n \t// The update info\r\n \tvar hotUpdate, hotUpdateNewHash;\r\n \t\r\n \tfunction toModuleId(id) {\r\n \t\tvar isNumber = (+id) + \"\" === id;\r\n \t\treturn isNumber ? +id : id;\r\n \t}\r\n \t\r\n \tfunction hotCheck(apply) {\r\n \t\tif(hotStatus !== \"idle\") throw new Error(\"check() is only allowed in idle status\");\r\n \t\thotApplyOnUpdate = apply;\r\n \t\thotSetStatus(\"check\");\r\n \t\treturn hotDownloadManifest().then(function(update) {\r\n \t\t\tif(!update) {\r\n \t\t\t\thotSetStatus(\"idle\");\r\n \t\t\t\treturn null;\r\n \t\t\t}\r\n \t\t\thotRequestedFilesMap = {};\r\n \t\t\thotWaitingFilesMap = {};\r\n \t\t\thotAvailableFilesMap = update.c;\r\n \t\t\thotUpdateNewHash = update.h;\r\n \t\r\n \t\t\thotSetStatus(\"prepare\");\r\n \t\t\tvar promise = new Promise(function(resolve, reject) {\r\n \t\t\t\thotDeferred = {\r\n \t\t\t\t\tresolve: resolve,\r\n \t\t\t\t\treject: reject\r\n \t\t\t\t};\r\n \t\t\t});\r\n \t\t\thotUpdate = {};\r\n \t\t\tvar chunkId = 0;\r\n \t\t\t{ // eslint-disable-line no-lone-blocks\r\n \t\t\t\t/*globals chunkId */\r\n \t\t\t\thotEnsureUpdateChunk(chunkId);\r\n \t\t\t}\r\n \t\t\tif(hotStatus === \"prepare\" && hotChunksLoading === 0 && hotWaitingFiles === 0) {\r\n \t\t\t\thotUpdateDownloaded();\r\n \t\t\t}\r\n \t\t\treturn promise;\r\n \t\t});\r\n \t}\r\n \t\r\n \tfunction hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars\r\n \t\tif(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\r\n \t\t\treturn;\r\n \t\thotRequestedFilesMap[chunkId] = false;\r\n \t\tfor(var moduleId in moreModules) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\r\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\r\n \t\t\t}\r\n \t\t}\r\n \t\tif(--hotWaitingFiles === 0 && hotChunksLoading === 0) {\r\n \t\t\thotUpdateDownloaded();\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotEnsureUpdateChunk(chunkId) {\r\n \t\tif(!hotAvailableFilesMap[chunkId]) {\r\n \t\t\thotWaitingFilesMap[chunkId] = true;\r\n \t\t} else {\r\n \t\t\thotRequestedFilesMap[chunkId] = true;\r\n \t\t\thotWaitingFiles++;\r\n \t\t\thotDownloadUpdateChunk(chunkId);\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotUpdateDownloaded() {\r\n \t\thotSetStatus(\"ready\");\r\n \t\tvar deferred = hotDeferred;\r\n \t\thotDeferred = null;\r\n \t\tif(!deferred) return;\r\n \t\tif(hotApplyOnUpdate) {\r\n \t\t\thotApply(hotApplyOnUpdate).then(function(result) {\r\n \t\t\t\tdeferred.resolve(result);\r\n \t\t\t}, function(err) {\r\n \t\t\t\tdeferred.reject(err);\r\n \t\t\t});\r\n \t\t} else {\r\n \t\t\tvar outdatedModules = [];\r\n \t\t\tfor(var id in hotUpdate) {\r\n \t\t\t\tif(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\r\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\tdeferred.resolve(outdatedModules);\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotApply(options) {\r\n \t\tif(hotStatus !== \"ready\") throw new Error(\"apply() is only allowed in ready status\");\r\n \t\toptions = options || {};\r\n \t\r\n \t\tvar cb;\r\n \t\tvar i;\r\n \t\tvar j;\r\n \t\tvar module;\r\n \t\tvar moduleId;\r\n \t\r\n \t\tfunction getAffectedStuff(updateModuleId) {\r\n \t\t\tvar outdatedModules = [updateModuleId];\r\n \t\t\tvar outdatedDependencies = {};\r\n \t\r\n \t\t\tvar queue = outdatedModules.slice().map(function(id) {\r\n \t\t\t\treturn {\r\n \t\t\t\t\tchain: [id],\r\n \t\t\t\t\tid: id\r\n \t\t\t\t};\r\n \t\t\t});\r\n \t\t\twhile(queue.length > 0) {\r\n \t\t\t\tvar queueItem = queue.pop();\r\n \t\t\t\tvar moduleId = queueItem.id;\r\n \t\t\t\tvar chain = queueItem.chain;\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tif(!module || module.hot._selfAccepted)\r\n \t\t\t\t\tcontinue;\r\n \t\t\t\tif(module.hot._selfDeclined) {\r\n \t\t\t\t\treturn {\r\n \t\t\t\t\t\ttype: \"self-declined\",\r\n \t\t\t\t\t\tchain: chain,\r\n \t\t\t\t\t\tmoduleId: moduleId\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tif(module.hot._main) {\r\n \t\t\t\t\treturn {\r\n \t\t\t\t\t\ttype: \"unaccepted\",\r\n \t\t\t\t\t\tchain: chain,\r\n \t\t\t\t\t\tmoduleId: moduleId\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tfor(var i = 0; i < module.parents.length; i++) {\r\n \t\t\t\t\tvar parentId = module.parents[i];\r\n \t\t\t\t\tvar parent = installedModules[parentId];\r\n \t\t\t\t\tif(!parent) continue;\r\n \t\t\t\t\tif(parent.hot._declinedDependencies[moduleId]) {\r\n \t\t\t\t\t\treturn {\r\n \t\t\t\t\t\t\ttype: \"declined\",\r\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\r\n \t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\tparentId: parentId\r\n \t\t\t\t\t\t};\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(outdatedModules.indexOf(parentId) >= 0) continue;\r\n \t\t\t\t\tif(parent.hot._acceptedDependencies[moduleId]) {\r\n \t\t\t\t\t\tif(!outdatedDependencies[parentId])\r\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\r\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\r\n \t\t\t\t\t\tcontinue;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tdelete outdatedDependencies[parentId];\r\n \t\t\t\t\toutdatedModules.push(parentId);\r\n \t\t\t\t\tqueue.push({\r\n \t\t\t\t\t\tchain: chain.concat([parentId]),\r\n \t\t\t\t\t\tid: parentId\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\r\n \t\t\treturn {\r\n \t\t\t\ttype: \"accepted\",\r\n \t\t\t\tmoduleId: updateModuleId,\r\n \t\t\t\toutdatedModules: outdatedModules,\r\n \t\t\t\toutdatedDependencies: outdatedDependencies\r\n \t\t\t};\r\n \t\t}\r\n \t\r\n \t\tfunction addAllToSet(a, b) {\r\n \t\t\tfor(var i = 0; i < b.length; i++) {\r\n \t\t\t\tvar item = b[i];\r\n \t\t\t\tif(a.indexOf(item) < 0)\r\n \t\t\t\t\ta.push(item);\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// at begin all updates modules are outdated\r\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\r\n \t\tvar outdatedDependencies = {};\r\n \t\tvar outdatedModules = [];\r\n \t\tvar appliedUpdate = {};\r\n \t\r\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\r\n \t\t\tconsole.warn(\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\");\r\n \t\t};\r\n \t\r\n \t\tfor(var id in hotUpdate) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\r\n \t\t\t\tmoduleId = toModuleId(id);\r\n \t\t\t\tvar result;\r\n \t\t\t\tif(hotUpdate[id]) {\r\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tresult = {\r\n \t\t\t\t\t\ttype: \"disposed\",\r\n \t\t\t\t\t\tmoduleId: id\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tvar abortError = false;\r\n \t\t\t\tvar doApply = false;\r\n \t\t\t\tvar doDispose = false;\r\n \t\t\t\tvar chainInfo = \"\";\r\n \t\t\t\tif(result.chain) {\r\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\r\n \t\t\t\t}\r\n \t\t\t\tswitch(result.type) {\r\n \t\t\t\t\tcase \"self-declined\":\r\n \t\t\t\t\t\tif(options.onDeclined)\r\n \t\t\t\t\t\t\toptions.onDeclined(result);\r\n \t\t\t\t\t\tif(!options.ignoreDeclined)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because of self decline: \" + result.moduleId + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"declined\":\r\n \t\t\t\t\t\tif(options.onDeclined)\r\n \t\t\t\t\t\t\toptions.onDeclined(result);\r\n \t\t\t\t\t\tif(!options.ignoreDeclined)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because of declined dependency: \" + result.moduleId + \" in \" + result.parentId + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"unaccepted\":\r\n \t\t\t\t\t\tif(options.onUnaccepted)\r\n \t\t\t\t\t\t\toptions.onUnaccepted(result);\r\n \t\t\t\t\t\tif(!options.ignoreUnaccepted)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"accepted\":\r\n \t\t\t\t\t\tif(options.onAccepted)\r\n \t\t\t\t\t\t\toptions.onAccepted(result);\r\n \t\t\t\t\t\tdoApply = true;\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"disposed\":\r\n \t\t\t\t\t\tif(options.onDisposed)\r\n \t\t\t\t\t\t\toptions.onDisposed(result);\r\n \t\t\t\t\t\tdoDispose = true;\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tdefault:\r\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\r\n \t\t\t\t}\r\n \t\t\t\tif(abortError) {\r\n \t\t\t\t\thotSetStatus(\"abort\");\r\n \t\t\t\t\treturn Promise.reject(abortError);\r\n \t\t\t\t}\r\n \t\t\t\tif(doApply) {\r\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\r\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\r\n \t\t\t\t\tfor(moduleId in result.outdatedDependencies) {\r\n \t\t\t\t\t\tif(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) {\r\n \t\t\t\t\t\t\tif(!outdatedDependencies[moduleId])\r\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\r\n \t\t\t\t\t\t\taddAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]);\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t\tif(doDispose) {\r\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\r\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Store self accepted outdated modules to require them later by the module system\r\n \t\tvar outdatedSelfAcceptedModules = [];\r\n \t\tfor(i = 0; i < outdatedModules.length; i++) {\r\n \t\t\tmoduleId = outdatedModules[i];\r\n \t\t\tif(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)\r\n \t\t\t\toutdatedSelfAcceptedModules.push({\r\n \t\t\t\t\tmodule: moduleId,\r\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\r\n \t\t\t\t});\r\n \t\t}\r\n \t\r\n \t\t// Now in \"dispose\" phase\r\n \t\thotSetStatus(\"dispose\");\r\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\r\n \t\t\tif(hotAvailableFilesMap[chunkId] === false) {\r\n \t\t\t\thotDisposeChunk(chunkId);\r\n \t\t\t}\r\n \t\t});\r\n \t\r\n \t\tvar idx;\r\n \t\tvar queue = outdatedModules.slice();\r\n \t\twhile(queue.length > 0) {\r\n \t\t\tmoduleId = queue.pop();\r\n \t\t\tmodule = installedModules[moduleId];\r\n \t\t\tif(!module) continue;\r\n \t\r\n \t\t\tvar data = {};\r\n \t\r\n \t\t\t// Call dispose handlers\r\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\r\n \t\t\tfor(j = 0; j < disposeHandlers.length; j++) {\r\n \t\t\t\tcb = disposeHandlers[j];\r\n \t\t\t\tcb(data);\r\n \t\t\t}\r\n \t\t\thotCurrentModuleData[moduleId] = data;\r\n \t\r\n \t\t\t// disable module (this disables requires from this module)\r\n \t\t\tmodule.hot.active = false;\r\n \t\r\n \t\t\t// remove module from cache\r\n \t\t\tdelete installedModules[moduleId];\r\n \t\r\n \t\t\t// remove \"parents\" references from all children\r\n \t\t\tfor(j = 0; j < module.children.length; j++) {\r\n \t\t\t\tvar child = installedModules[module.children[j]];\r\n \t\t\t\tif(!child) continue;\r\n \t\t\t\tidx = child.parents.indexOf(moduleId);\r\n \t\t\t\tif(idx >= 0) {\r\n \t\t\t\t\tchild.parents.splice(idx, 1);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// remove outdated dependency from module children\r\n \t\tvar dependency;\r\n \t\tvar moduleOutdatedDependencies;\r\n \t\tfor(moduleId in outdatedDependencies) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tif(module) {\r\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\r\n \t\t\t\t\tfor(j = 0; j < moduleOutdatedDependencies.length; j++) {\r\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\r\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\r\n \t\t\t\t\t\tif(idx >= 0) module.children.splice(idx, 1);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Not in \"apply\" phase\r\n \t\thotSetStatus(\"apply\");\r\n \t\r\n \t\thotCurrentHash = hotUpdateNewHash;\r\n \t\r\n \t\t// insert new code\r\n \t\tfor(moduleId in appliedUpdate) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\r\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// call accept handlers\r\n \t\tvar error = null;\r\n \t\tfor(moduleId in outdatedDependencies) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\r\n \t\t\t\tvar callbacks = [];\r\n \t\t\t\tfor(i = 0; i < moduleOutdatedDependencies.length; i++) {\r\n \t\t\t\t\tdependency = moduleOutdatedDependencies[i];\r\n \t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\r\n \t\t\t\t\tif(callbacks.indexOf(cb) >= 0) continue;\r\n \t\t\t\t\tcallbacks.push(cb);\r\n \t\t\t\t}\r\n \t\t\t\tfor(i = 0; i < callbacks.length; i++) {\r\n \t\t\t\t\tcb = callbacks[i];\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tcb(moduleOutdatedDependencies);\r\n \t\t\t\t\t} catch(err) {\r\n \t\t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\t\ttype: \"accept-errored\",\r\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\r\n \t\t\t\t\t\t\t\terror: err\r\n \t\t\t\t\t\t\t});\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Load self accepted modules\r\n \t\tfor(i = 0; i < outdatedSelfAcceptedModules.length; i++) {\r\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\r\n \t\t\tmoduleId = item.module;\r\n \t\t\thotCurrentParents = [moduleId];\r\n \t\t\ttry {\r\n \t\t\t\t__webpack_require__(moduleId);\r\n \t\t\t} catch(err) {\r\n \t\t\t\tif(typeof item.errorHandler === \"function\") {\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\titem.errorHandler(err);\r\n \t\t\t\t\t} catch(err2) {\r\n \t\t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\r\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\t\terror: err2,\r\n \t\t\t\t\t\t\t\torginalError: err\r\n \t\t\t\t\t\t\t});\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\t\terror = err2;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t}\r\n \t\t\t\t} else {\r\n \t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\r\n \t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\terror: err\r\n \t\t\t\t\t\t});\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// handle errors in accept handlers and self accepted module load\r\n \t\tif(error) {\r\n \t\t\thotSetStatus(\"fail\");\r\n \t\t\treturn Promise.reject(error);\r\n \t\t}\r\n \t\r\n \t\thotSetStatus(\"idle\");\r\n \t\treturn new Promise(function(resolve) {\r\n \t\t\tresolve(outdatedModules);\r\n \t\t});\r\n \t}\r\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n \t// Load entry module and return exports\n \treturn hotCreateRequire(1)(__webpack_require__.s = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 18a575df30f389e25f39","// Copyright 2017 Todd Fleming\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n// \n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n// \n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\n'use strict';\n\nclass GcodeGenerator {\n constructor({ decimal, toolFeedUnits }) {\n Object.assign(this, { decimal, toolFeedUnits });\n if (toolFeedUnits === 'mm/s')\n this.feedScale = 60;\n else\n this.feedScale = 1;\n this.gcode = '';\n }\n\n getMotion(mode) {\n if (this.motionMode === mode)\n return '';\n this.motionMode = mode;\n return mode + ' ';\n }\n\n getFeed(f) {\n let strF = (f * this.feedScale).toFixed(this.decimal);\n let roundedF = Number(strF);\n if (this.f === roundedF)\n return '';\n this.f = roundedF;\n return 'F' + strF + ' ';\n }\n\n rapidZ(z) {\n let strZ = z.toFixed(this.decimal);\n let roundedZ = Number(strZ);\n if (this.z === roundedZ)\n return;\n this.z = roundedZ;\n this.gcode += this.getMotion('G0') + 'Z' + strZ + '\\n';\n }\n\n rapidXDia(xDia, backSide) {\n if (!backSide)\n xDia = -xDia;\n let strX = (xDia / 2).toFixed(this.decimal);\n let roundedX = Number(strX);\n if (this.x === roundedX)\n return;\n this.x = roundedX;\n this.gcode += this.getMotion('G0') + 'X' + strX + '\\n';\n }\n\n moveZ(z, f) {\n let strZ = z.toFixed(this.decimal);\n let roundedZ = Number(strZ);\n if (this.z === roundedZ)\n return;\n this.z = roundedZ;\n this.gcode += this.getMotion('G1') + this.getFeed(f) + 'Z' + strZ + '\\n';\n\n }\n\n moveXDia(xDia, backSide, f) {\n if (!backSide)\n xDia = -xDia;\n let strX = (xDia / 2).toFixed(this.decimal);\n let roundedX = Number(strX);\n if (this.x === roundedX)\n return;\n this.x = roundedX;\n this.gcode += this.getMotion('G1') + this.getFeed(f) + 'X' + strX + '\\n';\n }\n}; // GcodeGenerator\n\nfunction latheConvFaceTurn(gen, showAlert, props) {\n let {\n latheToolBackSide, latheRapidToDiameter, latheRapidToZ, latheStartZ, latheRoughingFeed,\n latheRoughingDepth, latheFinishFeed, latheFinishDepth, latheFinishExtraPasses, latheFace,\n latheFaceEndDiameter, latheTurns } = props;\n\n if (latheRapidToDiameter <= 0) return showAlert('latheRapidToDiameter <= 0', 'danger');\n if (latheStartZ > latheRapidToZ) return showAlert('latheStartZ > latheRapidToZ', 'danger');\n if (latheRoughingFeed <= 0) return showAlert('latheRoughingFeed <= 0', 'danger');\n if (latheRoughingDepth <= 0) return showAlert('latheRoughingDepth <= 0', 'danger');\n if (latheFinishFeed <= 0) return showAlert('latheFinishFeed <= 0', 'danger');\n if (latheFinishDepth < 0) return showAlert('latheFinishDepth < 0', 'danger');\n if (latheStartZ + latheFinishDepth > latheRapidToZ) return showAlert('latheStartZ + latheFinishDepth > latheRapidToZ', 'danger');\n if (latheFinishExtraPasses < 0) return showAlert('latheFinishExtraPasses < 0', 'danger');\n if (latheFace && latheFaceEndDiameter >= latheRapidToDiameter) return showAlert('latheFace && latheFaceEndDiameter >= latheRapidToDiameter', 'danger');\n if (!latheFace && !latheTurns.length) return showAlert('!latheFace && !latheTurns.length', 'danger');\n\n for (let i = 0; i < latheTurns.length; ++i) {\n if (latheTurns[i].startDiameter < 0) return showAlert('i=' + i + ': latheTurns[i].startDiameter < 0');\n if (i > 0 && latheTurns[i].startDiameter < latheTurns[i - 1].endDiameter) return showAlert('i=' + i + ': i > 0 && latheTurns[i].startDiameter < latheTurns[i - 1].endDiameter');\n if (latheTurns[i].startDiameter >= latheRapidToDiameter) return showAlert('i=' + i + ': latheTurns[i].startDiameter >= latheRapidToDiameter');\n if (latheTurns[i].endDiameter <= 0) return showAlert('i=' + i + ': latheTurns[i].endDiameter <= 0');\n if (latheTurns[i].endDiameter < latheTurns[i].startDiameter) return showAlert('i=' + i + ': latheTurns[i].endDiameter < latheTurns[i].startDiameter');\n if (latheTurns[i].endDiameter + latheFinishDepth >= latheRapidToDiameter) return showAlert('i=' + i + ': latheTurns[i].endDiameter + latheFinishDepth >= latheRapidToDiameter');\n if (latheTurns[i].endDiameter != latheTurns[i].startDiameter) return showAlert('i=' + i + ': latheTurns[i].endDiameter != latheTurns[i].startDiameter');\n if (latheTurns[i].length <= 0) return showAlert('i=' + i + ': latheTurns[i].length <= 0');\n }\n\n gen.gcode +=\n '\\r\\n; latheToolBackSide: ' + latheToolBackSide +\n '\\r\\n; latheRapidToDiameter: ' + latheRapidToDiameter + ' mm' +\n '\\r\\n; latheRapidToZ: ' + latheRapidToZ + ' mm' +\n '\\r\\n; latheStartZ: ' + latheStartZ + ' mm' +\n '\\r\\n; latheRoughingFeed: ' + latheRoughingFeed + gen.toolFeedUnits +\n '\\r\\n; latheRoughingDepth: ' + latheRoughingDepth + ' mm' +\n '\\r\\n; latheFinishFeed: ' + latheFinishFeed + gen.toolFeedUnits +\n '\\r\\n; latheFinishDepth: ' + latheFinishDepth + ' mm' +\n '\\r\\n; latheFinishExtraPasses: ' + latheFinishExtraPasses +\n '\\r\\n; latheFace: ' + latheFace +\n '\\r\\n; latheFaceEndDiameter: ' + latheFaceEndDiameter + ' mm' +\n '';\n\n if (latheTurns.length) {\n gen.gcode += '\\r\\n; turns:';\n for (let turn of latheTurns)\n gen.gcode +=\n '\\r\\n; startDiameter: ' + turn.startDiameter + ' mm' +\n '\\r\\n; endDiameter: ' + turn.endDiameter + ' mm' +\n '\\r\\n; length: ' + turn.length + ' mm' +\n '';\n }\n\n gen.gcode += '\\n\\n; Rapid\\n';\n gen.rapidXDia(latheRapidToDiameter, latheToolBackSide);\n gen.rapidZ(latheRapidToZ);\n\n if (latheFace) {\n gen.gcode += '\\n; Face roughing\\n';\n let z = latheRapidToZ;\n while (true) {\n let nextZ = Math.max(z - latheRoughingDepth, latheStartZ + latheFinishDepth);\n if (nextZ === z)\n break;\n z = nextZ;\n gen.moveZ(z, latheRoughingFeed);\n gen.moveXDia(latheFaceEndDiameter, latheToolBackSide, latheRoughingFeed);\n gen.moveZ(Math.min(z + latheRoughingDepth, latheRapidToZ), latheRoughingFeed);\n gen.rapidXDia(latheRapidToDiameter, latheToolBackSide);\n }\n gen.gcode += '\\n; Face finishing\\n';\n let n = latheFinishExtraPasses;\n if (z > latheStartZ) {\n ++n;\n z = latheStartZ;\n }\n for (let i = 0; i < n; ++i) {\n gen.moveZ(z, latheFinishFeed);\n gen.moveXDia(latheFaceEndDiameter, latheToolBackSide, latheFinishFeed);\n gen.moveZ(Math.min(z + latheRoughingDepth, latheRapidToZ), latheFinishFeed);\n gen.rapidXDia(latheRapidToDiameter, latheToolBackSide);\n }\n latheRapidToZ = Math.min(z + latheRoughingDepth, latheRapidToZ);\n gen.rapidZ(latheRapidToZ);\n }\n\n if (latheTurns.length) {\n gen.gcode += '\\n; Turn roughing\\n';\n let turnRapidToDiameter = latheRapidToDiameter;\n let startX = turnRapidToDiameter - latheRoughingDepth;\n while (true) {\n let x = startX;\n let z = latheRapidToZ;\n let turnStartZ = latheStartZ + latheFinishDepth;\n let done = false;\n for (let turn of latheTurns) {\n if (x < turn.startDiameter + latheFinishDepth && turn.startDiameter + latheFinishDepth < startX + latheRoughingDepth)\n x = turn.startDiameter + latheFinishDepth;\n if (x < turn.startDiameter + latheFinishDepth) {\n if (turn === latheTurns[0]) {\n done = true;\n break;\n }\n gen.moveXDia(x, latheToolBackSide, latheRoughingFeed);\n z = turnStartZ;\n gen.moveZ(z, latheRoughingFeed);\n gen.moveXDia(Math.min(x + latheRoughingDepth, turnRapidToDiameter), latheToolBackSide, latheRoughingFeed);\n break;\n } else {\n gen.moveXDia(x, latheToolBackSide, latheRoughingFeed);\n z = turnStartZ - turn.length;\n gen.moveZ(z, latheRoughingFeed);\n }\n turnStartZ -= turn.length;\n }\n if (done)\n break;\n turnRapidToDiameter = Math.min(turnRapidToDiameter, x + latheRoughingDepth);\n startX -= latheRoughingDepth;\n gen.moveXDia(turnRapidToDiameter, latheToolBackSide, latheRoughingFeed);\n gen.rapidZ(latheRapidToZ);\n }\n\n gen.gcode += '\\n; Turn finishing\\n';\n gen.rapidXDia(latheTurns[0].startDiameter, latheToolBackSide);\n let z = latheStartZ;\n for (let turn of latheTurns) {\n gen.moveXDia(turn.startDiameter, latheToolBackSide, latheFinishFeed);\n z -= turn.length;\n gen.moveZ(z, latheFinishFeed);\n }\n gen.moveXDia(latheRapidToDiameter, latheToolBackSide, latheFinishFeed);\n gen.rapidZ(latheRapidToZ);\n } // if(latheTurns.length)\n\n gen.gcode += '\\n';\n} // latheConvFaceTurn\n\nexport function getLatheGcodeFromOp(settings, opIndex, op, geometry, openGeometry, tabGeometry, showAlert, done, progress) {\n let gen = new GcodeGenerator({ ...settings, decimal: 2 });\n gen.gcode =\n '\\r\\n;' +\n '\\r\\n; Operation: ' + opIndex +\n '\\r\\n; Type: ' + op.type +\n '';\n if (op.hookOperationStart.length)\n gen.gcode += op.hookOperationStart;\n if (op.type === 'Lathe Conv Face/Turn')\n latheConvFaceTurn(gen, showAlert, op);\n if (op.hookOperationEnd.length)\n gen.gcode += op.hookOperationEnd;\n done(gen.gcode)\n} // getLatheGcodeFromOp\n\n\n\n// WEBPACK FOOTER //\n// ./lib/cam-gcode-lathe.js","import { getLatheGcodeFromOp } from '../cam-gcode-lathe'\n\nonmessage = (event) => {\n const { settings, opIndex, op, geometry = [], openGeometry = [], tabGeometry = [] } = event.data\n const errors = [];\n\n const showAlert = (message, level) => {\n errors.push({ message, level })\n };\n const progress = () => {\n postMessage(JSON.stringify({ event: \"onProgress\", gcode, errors }))\n };\n const done = (gcode) => {\n if (gcode === false && errors.length) {\n postMessage(JSON.stringify({ event: \"onError\", errors }))\n } else {\n postMessage(JSON.stringify({ event: \"onDone\", gcode }))\n }\n };\n\n getLatheGcodeFromOp.apply(this, [settings, opIndex, op, geometry, openGeometry, tabGeometry, showAlert, done, progress])\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/workers/cam-lathe.js"],"sourceRoot":""}