diff --git a/docs/index.html b/docs/index.html index d19e6c7..d57460e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -CuttingBoard
\ No newline at end of file +CuttingBoard
\ No newline at end of file diff --git a/docs/js/app.25927fa2.js b/docs/js/app.25927fa2.js new file mode 100644 index 0000000..6d68a6e --- /dev/null +++ b/docs/js/app.25927fa2.js @@ -0,0 +1,2 @@ +(function(t){function e(e){for(var n,a,s=e[0],c=e[1],l=e[2],u=0,f=[];uDesigner',4),j=Object(n["f"])("h2",null,"Material",-1),g=Object(n["f"])("label",{for:"boardThickness"},"Board thickness",-1),v=Object(n["f"])("label",{for:"boardLength"},"Board length",-1),w=Object(n["f"])("label",{for:"bladeKerf"},"Blade kerf",-1),m=Object(n["f"])("h2",null,"End grain",-1),y=Object(n["f"])("label",{for:"crosscutWidth"},"Crosscut width",-1),k=Object(n["f"])("label",{for:"alternateDirection"},"Alternate direction",-1);Object(n["i"])();var x=b((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",p,[O,Object(n["f"])("input",{id:"borders",type:"checkbox",checked:a.settings.borders,onChange:e[1]||(e[1]=function(e){return t.$store.commit("updateSettings",{borders:e.target.checked})})},null,40,["checked"]),j,g,Object(n["f"])("input",{id:"boardThickness",type:"number",value:a.settings.boardThickness,onChange:e[2]||(e[2]=function(e){return t.$store.commit("updateSettings",{boardThickness:a.parseFloatDef(e.target.value)})})},null,40,["value"]),v,Object(n["f"])("input",{id:"boardLength",type:"number",value:a.settings.boardLength,onChange:e[3]||(e[3]=function(e){return t.$store.commit("updateSettings",{boardLength:a.parseFloatDef(e.target.value)})})},null,40,["value"]),w,Object(n["f"])("input",{id:"bladeKerf",type:"number",value:a.settings.bladeKerf,onChange:e[4]||(e[4]=function(e){return t.$store.commit("updateSettings",{bladeKerf:a.parseFloatDef(e.target.value)})})},null,40,["value"]),m,y,Object(n["f"])("input",{id:"crosscutWidth",type:"number",value:a.settings.crosscutWidth,onChange:e[5]||(e[5]=function(e){return t.$store.commit("updateSettings",{crosscutWidth:a.parseFloatDef(e.target.value)})})},null,40,["value"]),k,Object(n["f"])("input",{id:"alternateDirection",type:"checkbox",checked:a.settings.alternateDirection,onChange:e[6]||(e[6]=function(e){return t.$store.commit("updateSettings",{alternateDirection:e.target.checked})})},null,40,["checked"])])})),W=(r("2b19"),25.4),L=10,P=1,$={toPixels:function(t,e){return this.toMillimeters(t,e)*P},toMillimeters:function(t,e){switch(e){case"mm":return t;case"cm":return t*L;case"inch":return t*W}return console.error("Invalid units type: "+e),0},fromMillimeters:function(t,e){switch(e){case"mm":return t;case"cm":return t/L;case"inch":return t/W}return console.error("Invalid units type: "+e),0}},C={computed:{settings:function(){return this.$store.state.settings}},methods:{parseFloatDef:function(t){var e=parseFloat(t);return Object.is(e,NaN)?0:e}}};r("e334");C.render=x,C.__scopeId="data-v-660f17f9";var S=C,M=(r("b0c0"),Object(n["s"])("data-v-535527d4"));Object(n["j"])("data-v-535527d4");var B={class:"layers"},D={class:"add"},_=Object(n["f"])("span",{class:"header"}," ",-1),H=Object(n["f"])("span",{class:"header"},"Wood type",-1),T=Object(n["f"])("span",{class:"header"},"Width",-1),E=Object(n["f"])("span",{class:"header"}," ",-1),F={class:"index"},I={class:"remove"};Object(n["i"])();var U=M((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",B,[Object(n["f"])("div",D,[Object(n["f"])("button",{onClick:e[1]||(e[1]=function(t){return a.addLayer()})},"Add layer")]),_,H,T,E,(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])(n["a"],null,[Object(n["f"])("div",F,Object(n["n"])(e+1),1),Object(n["r"])(Object(n["f"])("select",{"onUpdate:modelValue":function(e){return t.wood=e},class:"wood"},[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.wood,(function(t,e){return Object(n["h"])(),Object(n["c"])("option",{value:e},Object(n["n"])(t.name),9,["value"])})),256))],8,["onUpdate:modelValue"]),[[n["o"],t.wood]]),Object(n["f"])("input",{type:"number",class:"width",value:t.width,onInput:function(e){return t.width=a.parseFloatDef(e.target.value)}},null,40,["value","onInput"]),Object(n["f"])("div",I,[Object(n["f"])("button",{onClick:function(t){return a.removeLayer(e)}},"X",8,["onClick"])])],64)})),256))])})),K={computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers}},methods:{parseFloatDef:function(t){var e=parseFloat(t);return Object.is(e,NaN)?0:e},addLayer:function(){this.$store.commit("addLayer",0)},removeLayer:function(t){this.$store.commit("removeLayer",{board:0,layer:t})}}};r("23b6");K.render=U,K.__scopeId="data-v-535527d4";var N=K,V=Object(n["s"])("data-v-55181d8c");Object(n["j"])("data-v-55181d8c");var A={class:"wood"},G={class:"add"},J=Object(n["f"])("span",{class:"header"}," ",-1),R=Object(n["f"])("span",{class:"header"},"Name",-1),X=Object(n["f"])("span",{class:"header"},"Colour",-1),Y=Object(n["f"])("span",{class:"header"}," ",-1),q=Object(n["f"])("span",null," ",-1),z={class:"remove"};Object(n["i"])();var Q=V((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",A,[Object(n["f"])("div",G,[Object(n["f"])("button",{onClick:e[1]||(e[1]=function(t){return a.addWood()})},"Add wood type")]),J,R,X,Y,(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.wood,(function(t,e){return Object(n["h"])(),Object(n["c"])(n["a"],null,[q,Object(n["r"])(Object(n["f"])("input",{type:"text",class:"name","onUpdate:modelValue":function(e){return t.name=e}},null,8,["onUpdate:modelValue"]),[[n["p"],t.name]]),Object(n["r"])(Object(n["f"])("input",{type:"color",class:"color","onUpdate:modelValue":function(e){return t.color=e}},null,8,["onUpdate:modelValue"]),[[n["p"],t.color]]),Object(n["f"])("div",z,[Object(n["f"])("button",{onClick:function(t){return a.removeWood(e)}},"X",8,["onClick"])])],64)})),256))])})),Z={computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood}},methods:{addWood:function(){this.$store.commit("addWood")},removeWood:function(t){this.$store.commit("removeWood",t)}}};r("667a");Z.render=Q,Z.__scopeId="data-v-55181d8c";var tt=Z,et={class:"preview"};function rt(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",et,[(Object(n["h"])(),Object(n["c"])("svg",{width:a.viewportWidth,height:a.viewportHeight,viewBox:a.viewBox},[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])("rect",{width:a.toPixels(a.settings.boardLength),height:a.toPixels(t.width),x:"0",y:a.getLayerOffset(e),style:a.getLayerStyle(e)},null,12,["width","height","y"])})),256))],8,["width","height","viewBox"]))])}r("d81d"),r("13d5"),r("a9e3");var nt={props:{scale:Number},computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers},boardWidth:function(){return this.toPixels(this.settings.boardLength)},boardHeight:function(){return this.layers.map((function(t){return t.width})).reduce((function(t,e){return t+e}))},viewportWidth:function(){return Math.floor(this.boardWidth*this.scale)},viewportHeight:function(){return Math.floor(this.boardHeight*this.scale)},viewBox:function(){return"0 0 "+this.boardWidth+" "+this.boardHeight}},methods:{toPixels:function(t){return $.toPixels(t,this.settings.units)},getLayerOffset:function(t){if(t<0||t>=this.layers.length)return 0;for(var e=0,r=0;r=this.layers.length)return"fill: fuchsia";var e=this.layers[t].wood;if(null===e)return"";var r=this.settings.borders?"; stroke-width: 1; stroke: black":"";return"fill: "+this.wood[e].color+r}}};nt.render=rt;var ot=nt,it={class:"preview"},at={id:"strip"};function st(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",it,[(Object(n["h"])(),Object(n["c"])("svg",{width:a.viewportWidth,height:a.viewportHeight,viewBox:a.viewBox},[Object(n["f"])("defs",null,[Object(n["f"])("g",at,[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])("rect",{width:a.toPixels(a.settings.boardThickness),height:a.toPixels(t.width),x:"0",y:a.getLayerOffset(e),style:a.getLayerStyle(e)},null,12,["width","height","y"])})),256))])]),(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.stripsPerBoard,(function(t,e){return Object(n["h"])(),Object(n["c"])("use",{"xlink:href":"#strip",x:e*a.settings.boardThickness,y:"0",transform:a.getLayerTransform(e)},null,8,["x","transform"])})),256))],8,["width","height","viewBox"]))])}var ct={props:{scale:Number},computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers},stripsPerBoard:function(){var t=this.settings.crosscutWidth+this.settings.bladeKerf;return 0===t?0:Math.floor((this.settings.boardLength+this.settings.bladeKerf)/t)},boardWidth:function(){var t=this.stripsPerBoard*this.settings.boardThickness;return this.toPixels(t)},boardHeight:function(){return this.layers.map((function(t){return t.width})).reduce((function(t,e){return t+e}))},viewportWidth:function(){return Math.floor(this.boardWidth*this.scale)},viewportHeight:function(){return Math.floor(this.boardHeight*this.scale)},viewBox:function(){return"0 0 "+this.boardWidth+" "+this.boardHeight}},methods:{toPixels:function(t){return $.toPixels(t,this.settings.units)},getLayerOffset:function(t){if(t<0||t>=this.layers.length)return 0;for(var e=0,r=0;r=this.layers.length)return"fill: fuchsia";var e=this.layers[t].wood;if(null===e)return"";var r=this.settings.borders?"; stroke-width: 1; stroke: black":"";return"fill: "+this.wood[e].color+r},getLayerTransform:function(t){return this.settings.alternateDirection&&t%2!=0?"scale(1, -1) translate(0, -"+this.boardHeight+")":""}}};ct.render=st;var lt=ct,dt={name:"App",components:{EndGrainPreview:ot,EdgeGrainPreview:lt,Settings:S,Layers:N,Wood:tt}};r("848a");dt.render=h;var ut=dt,ft=(r("4160"),r("a434"),r("159b"),r("5502")),ht=Object(ft["a"])({state:{settings:{units:"mm",borders:!1,boardThickness:20,boardLength:700,bladeKerf:3.5,crosscutWidth:30,alternateDirection:!0},wood:[{name:"Walnut",color:"#58443f"},{name:"Maple",color:"#f2e0aa"},{name:"Cherry",color:"#bb8359"},{name:"Mahogany",color:"#98473f"},{name:"Yellowheart",color:"#ffff84"},{name:"White oak",color:"#fdf4b9"},{name:"Bubinga",color:"#7e3c34"},{name:"Jatoba",color:"#9b281c"},{name:"Padouk",color:"#933350"}],boards:[{layers:[{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20}]}]},mutations:{addLayer:function(t,e){e<0||e>=t.boards.length||t.boards[e].layers.push({wood:0,width:$.fromMillimeters(20,t.settings.units)})},removeLayer:function(t,e){e.board<0||e.board>=t.boards.length||e.layer<0||e.layer>=t.boards[e.board].length||t.boards[e.board].layers.splice(e.layer,1)},addWood:function(t){t.wood.push({name:"Wood #"+(t.wood.length+1),color:"#f2e0aa"})},removeWood:function(t,e){e<0||e>=t.wood.length||(t.boards.forEach((function(t){t.layers.forEach((function(t){t.wood===e?t.wood=null:t.wood>e&&t.wood--}))})),t.wood.splice(e,1))},updateSettings:function(t,e){for(var r in e)e.hasOwnProperty(r)&&t.settings.hasOwnProperty(r)&&(t.settings[r]=e[r])}},actions:{}});Object(n["b"])(ut).use(ht).mount("#app")},"667a":function(t,e,r){"use strict";r("6ac4")},"6ac4":function(t,e,r){},"848a":function(t,e,r){"use strict";r("db52")},"9e5f":function(t,e,r){},d747:function(t,e,r){},db52:function(t,e,r){},e334:function(t,e,r){"use strict";r("9e5f")}}); +//# sourceMappingURL=app.25927fa2.js.map \ No newline at end of file diff --git a/docs/js/app.25927fa2.js.map b/docs/js/app.25927fa2.js.map new file mode 100644 index 0000000..fb378a9 --- /dev/null +++ b/docs/js/app.25927fa2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Layers.vue?483f","webpack:///./src/App.vue","webpack:///./src/components/Settings.vue","webpack:///./src/lib/units.js","webpack:///./src/components/Settings.vue?b32f","webpack:///./src/components/Layers.vue","webpack:///./src/components/Layers.vue?f1ba","webpack:///./src/components/Wood.vue","webpack:///./src/components/Wood.vue?85c2","webpack:///./src/components/EndGrainPreview.vue","webpack:///./src/components/EndGrainPreview.vue?ab3d","webpack:///./src/components/EdgeGrainPreview.vue","webpack:///./src/components/EdgeGrainPreview.vue?0ca3","webpack:///./src/App.vue?eabf","webpack:///./src/store.js","webpack:///./src/main.js","webpack:///./src/components/Wood.vue?ca33","webpack:///./src/App.vue?62ea","webpack:///./src/components/Settings.vue?800c"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","href","target","scale","for","id","type","checked","settings","borders","$store","commit","$event","boardThickness","parseFloatDef","boardLength","bladeKerf","crosscutWidth","alternateDirection","millimetersPerInch","millimetersPerCentimeter","pixelsPerMillimeter","units","toPixels","this","toMillimeters","console","error","fromMillimeters","computed","state","methods","parsedValue","parseFloat","is","NaN","render","__scopeId","addLayer","layers","layer","index","wood","item","width","removeLayer","boards","board","addWood","color","removeWood","viewportWidth","height","viewportHeight","viewBox","x","y","getLayerOffset","style","getLayerStyle","props","Number","boardWidth","boardHeight","map","currentValue","reduce","accumulator","Math","floor","offset","woodIndex","borderStyle","stripsPerBoard","strip","xlink:href","transform","getLayerTransform","stripAndKerf","components","EndGrainPreview","EdgeGrainPreview","Settings","Layers","Wood","createStore","mutations","payload","forEach","updateSettings","actions","createApp","App","use","store","mount"],"mappings":"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","file":"js/app.25927fa2.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\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};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\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// 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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 = \"/CuttingBoard/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layers.vue?vue&type=style&index=0&id=535527d4&lang=scss&scoped=true\"","\n\n\n\n\n","\r\n\r\n\r\n\r\n","const millimetersPerInch = 25.4;\r\nconst millimetersPerCentimeter = 10;\r\nconst pixelsPerMillimeter = 1;\r\n\r\n\r\n\r\nconst units = {\r\n toPixels(value, units)\r\n {\r\n return this.toMillimeters(value, units) * pixelsPerMillimeter;\r\n },\r\n\r\n\r\n toMillimeters(value, units)\r\n {\r\n switch (units)\r\n {\r\n case 'mm': return value;\r\n case 'cm': return value * millimetersPerCentimeter;\r\n case 'inch': return value * millimetersPerInch;\r\n }\r\n\r\n console.error('Invalid units type: ' + units);\r\n return 0;\r\n },\r\n\r\n\r\n fromMillimeters(value, units)\r\n {\r\n switch (units)\r\n {\r\n case 'mm': return value;\r\n case 'cm': return value / millimetersPerCentimeter;\r\n case 'inch': return value / millimetersPerInch;\r\n }\r\n\r\n console.error('Invalid units type: ' + units);\r\n return 0;\r\n }\r\n};\r\n\r\n\r\nexport { units }","import { render } from \"./Settings.vue?vue&type=template&id=660f17f9&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\n\nimport \"./Settings.vue?vue&type=style&index=0&id=660f17f9&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-660f17f9\"\n\nexport default script","\r\n\r\n\r\n\r\n","import { render } from \"./Layers.vue?vue&type=template&id=535527d4&scoped=true\"\nimport script from \"./Layers.vue?vue&type=script&lang=js\"\nexport * from \"./Layers.vue?vue&type=script&lang=js\"\n\nimport \"./Layers.vue?vue&type=style&index=0&id=535527d4&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-535527d4\"\n\nexport default script","\r\n\r\n\r\n\r\n","import { render } from \"./Wood.vue?vue&type=template&id=55181d8c&scoped=true\"\nimport script from \"./Wood.vue?vue&type=script&lang=js\"\nexport * from \"./Wood.vue?vue&type=script&lang=js\"\n\nimport \"./Wood.vue?vue&type=style&index=0&id=55181d8c&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-55181d8c\"\n\nexport default script","\n\n","import { render } from \"./EndGrainPreview.vue?vue&type=template&id=f0162250\"\nimport script from \"./EndGrainPreview.vue?vue&type=script&lang=js\"\nexport * from \"./EndGrainPreview.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","\n\n","import { render } from \"./EdgeGrainPreview.vue?vue&type=template&id=e3d956ee\"\nimport script from \"./EdgeGrainPreview.vue?vue&type=script&lang=js\"\nexport * from \"./EdgeGrainPreview.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=9a85d6fa\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=9a85d6fa&lang=scss\"\nscript.render = render\n\nexport default script","import { createStore } from 'vuex';\nimport { units } from './lib/units';\n\nexport default createStore({\n state: {\n settings: {\n units: 'mm',\n borders: false,\n boardThickness: 20,\n boardLength: 700,\n bladeKerf: 3.5,\n crosscutWidth: 30,\n\n alternateDirection: true\n },\n\n wood: [\n { name: 'Walnut', color: '#58443f' },\n { name: 'Maple', color: '#f2e0aa' },\n { name: 'Cherry', color: '#bb8359' },\n { name: 'Mahogany', color: '#98473f' },\n { name: 'Yellowheart', color: '#ffff84' },\n { name: 'White oak', color: '#fdf4b9' },\n { name: 'Bubinga', color: '#7e3c34' },\n { name: 'Jatoba', color: '#9b281c' },\n { name: 'Padouk', color: '#933350' }\n ],\n\n boards: [\n {\n layers: [\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 }\n ]\n }\n ]\n },\n\n mutations: {\n addLayer(state, board)\n {\n if (board < 0 || board >= state.boards.length)\n return;\n\n state.boards[board].layers.push({\n wood: 0,\n width: units.fromMillimeters(20, state.settings.units)\n });\n },\n\n removeLayer(state, payload)\n {\n if (payload.board < 0 || payload.board >= state.boards.length)\n return;\n\n if (payload.layer < 0 || payload.layer >= state.boards[payload.board].length)\n return;\n\n state.boards[payload.board].layers.splice(payload.layer, 1);\n },\n\n\n addWood(state)\n {\n state.wood.push({\n name: 'Wood #' + (state.wood.length + 1),\n color: '#f2e0aa'\n });\n },\n\n removeWood(state, index)\n {\n if (index < 0 || index >= state.wood.length)\n return;\n\n // Update all layers\n state.boards.forEach(board =>\n {\n board.layers.forEach(layer =>\n {\n if (layer.wood === index)\n layer.wood = null\n else if (layer.wood > index)\n layer.wood--;\n });\n });\n\n state.wood.splice(index, 1);\n },\n\n\n updateSettings(state, payload)\n {\n for (const property in payload)\n {\n if (!payload.hasOwnProperty(property) || !state.settings.hasOwnProperty(property))\n continue;\n\n state.settings[property] = payload[property];\n }\n }\n },\n\n actions: {\n }\n})\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport store from './store'\n\ncreateApp(App).use(store).mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Wood.vue?vue&type=style&index=0&id=55181d8c&lang=scss&scoped=true\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=9a85d6fa&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Settings.vue?vue&type=style&index=0&id=660f17f9&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/docs/js/app.f2508f9a.js b/docs/js/app.f2508f9a.js deleted file mode 100644 index ef358e8..0000000 --- a/docs/js/app.f2508f9a.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var n,a,s=e[0],c=e[1],l=e[2],u=0,f=[];uDesigner',4),j=Object(n["f"])("h2",null,"Material",-1),g=Object(n["f"])("label",{for:"boardThickness"},"Board thickness",-1),v=Object(n["f"])("label",{for:"boardLength"},"Board length",-1),w=Object(n["f"])("label",{for:"bladeKerf"},"Blade kerf",-1),m=Object(n["f"])("h2",null,"End grain",-1),y=Object(n["f"])("label",{for:"crosscutWidth"},"Crosscut width",-1),k=Object(n["f"])("label",{for:"alternateDirection"},"Alternate direction",-1);Object(n["i"])();var x=b((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",p,[O,Object(n["f"])("input",{id:"borders",type:"checkbox",checked:a.settings.borders,onChange:e[1]||(e[1]=function(e){return t.$store.commit("updateSettings",{borders:e.target.checked})})},null,40,["checked"]),j,g,Object(n["f"])("input",{id:"boardThickness",type:"number",value:a.settings.boardThickness,onChange:e[2]||(e[2]=function(e){return t.$store.commit("updateSettings",{boardThickness:a.parseFloatDef(e.target.value)})})},null,40,["value"]),v,Object(n["f"])("input",{id:"boardLength",type:"number",value:a.settings.boardLength,onChange:e[3]||(e[3]=function(e){return t.$store.commit("updateSettings",{boardLength:a.parseFloatDef(e.target.value)})})},null,40,["value"]),w,Object(n["f"])("input",{id:"bladeKerf",type:"number",value:a.settings.bladeKerf,onChange:e[4]||(e[4]=function(e){return t.$store.commit("updateSettings",{bladeKerf:a.parseFloatDef(e.target.value)})})},null,40,["value"]),m,y,Object(n["f"])("input",{id:"crosscutWidth",type:"number",value:a.settings.crosscutWidth,onChange:e[5]||(e[5]=function(e){return t.$store.commit("updateSettings",{crosscutWidth:a.parseFloatDef(e.target.value)})})},null,40,["value"]),k,Object(n["f"])("input",{id:"alternateDirection",type:"checkbox",checked:a.settings.alternateDirection,onChange:e[6]||(e[6]=function(e){return t.$store.commit("updateSettings",{alternateDirection:e.target.checked})})},null,40,["checked"])])})),W=(r("2b19"),25.4),L=10,P=1,$={toPixels:function(t,e){return this.toMillimeters(t,e)*P},toMillimeters:function(t,e){switch(e){case"mm":return t;case"cm":return t*L;case"inch":return t*W}return console.error("Invalid units type: "+e),0},fromMillimeters:function(t,e){switch(e){case"mm":return t;case"cm":return t/L;case"inch":return t/W}return console.error("Invalid units type: "+e),0}},S={computed:{settings:function(){return this.$store.state.settings}},methods:{parseFloatDef:function(t){var e=parseFloat(t);return Object.is(e,NaN)?0:e}}};r("e334");S.render=x,S.__scopeId="data-v-660f17f9";var C=S,M=(r("b0c0"),Object(n["s"])("data-v-535527d4"));Object(n["j"])("data-v-535527d4");var B={class:"layers"},D={class:"add"},_=Object(n["f"])("span",{class:"header"}," ",-1),H=Object(n["f"])("span",{class:"header"},"Wood type",-1),T=Object(n["f"])("span",{class:"header"},"Width",-1),E=Object(n["f"])("span",{class:"header"}," ",-1),F={class:"index"},I={class:"remove"};Object(n["i"])();var U=M((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",B,[Object(n["f"])("div",D,[Object(n["f"])("button",{onClick:e[1]||(e[1]=function(t){return a.addLayer()})},"Add layer")]),_,H,T,E,(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])(n["a"],null,[Object(n["f"])("div",F,Object(n["n"])(e+1),1),Object(n["r"])(Object(n["f"])("select",{"onUpdate:modelValue":function(e){return t.wood=e},class:"wood"},[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.wood,(function(t,e){return Object(n["h"])(),Object(n["c"])("option",{value:e},Object(n["n"])(t.name),9,["value"])})),256))],8,["onUpdate:modelValue"]),[[n["o"],t.wood]]),Object(n["f"])("input",{type:"number",class:"width",value:t.width,onInput:function(e){return t.width=a.parseFloatDef(e.target.value)}},null,40,["value","onInput"]),Object(n["f"])("div",I,[Object(n["f"])("button",{onClick:function(t){return a.removeLayer(e)}},"X",8,["onClick"])])],64)})),256))])})),K={computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers}},methods:{parseFloatDef:function(t){var e=parseFloat(t);return Object.is(e,NaN)?0:e},addLayer:function(){this.$store.commit("addLayer",0)},removeLayer:function(t){this.$store.commit("removeLayer",{board:0,layer:t})}}};r("23b6");K.render=U,K.__scopeId="data-v-535527d4";var N=K,V=Object(n["s"])("data-v-55181d8c");Object(n["j"])("data-v-55181d8c");var A={class:"wood"},G={class:"add"},J=Object(n["f"])("span",{class:"header"}," ",-1),R=Object(n["f"])("span",{class:"header"},"Name",-1),X=Object(n["f"])("span",{class:"header"},"Colour",-1),Y=Object(n["f"])("span",{class:"header"}," ",-1),q=Object(n["f"])("span",null," ",-1),z={class:"remove"};Object(n["i"])();var Q=V((function(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",A,[Object(n["f"])("div",G,[Object(n["f"])("button",{onClick:e[1]||(e[1]=function(t){return a.addWood()})},"Add wood type")]),J,R,X,Y,(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.wood,(function(t,e){return Object(n["h"])(),Object(n["c"])(n["a"],null,[q,Object(n["r"])(Object(n["f"])("input",{type:"text",class:"name","onUpdate:modelValue":function(e){return t.name=e}},null,8,["onUpdate:modelValue"]),[[n["p"],t.name]]),Object(n["r"])(Object(n["f"])("input",{type:"color",class:"color","onUpdate:modelValue":function(e){return t.color=e}},null,8,["onUpdate:modelValue"]),[[n["p"],t.color]]),Object(n["f"])("div",z,[Object(n["f"])("button",{onClick:function(t){return a.removeWood(e)}},"X",8,["onClick"])])],64)})),256))])})),Z={computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood}},methods:{addWood:function(){this.$store.commit("addWood")},removeWood:function(t){this.$store.commit("removeWood",t)}}};r("667a");Z.render=Q,Z.__scopeId="data-v-55181d8c";var tt=Z,et={class:"preview"};function rt(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",et,[(Object(n["h"])(),Object(n["c"])("svg",{width:a.viewportWidth,height:a.viewportHeight,viewBox:a.viewBox},[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])("rect",{width:a.toPixels(a.settings.boardLength),height:a.toPixels(t.width),x:"0",y:a.getLayerOffset(e),style:a.getLayerStyle(e)},null,12,["width","height","y"])})),256))],8,["width","height","viewBox"]))])}r("d81d"),r("13d5"),r("a9e3");var nt={props:{scale:Number},computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers},boardWidth:function(){return this.toPixels(this.settings.boardLength)},boardHeight:function(){return this.layers.map((function(t){return t.width})).reduce((function(t,e){return t+e}))},viewportWidth:function(){return Math.floor(this.boardWidth*this.scale)},viewportHeight:function(){return Math.floor(this.boardHeight*this.scale)},viewBox:function(){return"0 0 "+this.boardWidth+" "+this.boardHeight}},methods:{toPixels:function(t){return $.toPixels(t,this.settings.units)},getLayerOffset:function(t){if(t<0||t>=this.layers.length)return 0;for(var e=0,r=0;r=this.layers.length)return"fill: fuchsia";var e=this.layers[t].wood;if(null===e)return"";var r=this.settings.borders?"; stroke-width: 1; stroke: black":"";return"fill: "+this.wood[e].color+r}}};nt.render=rt;var ot=nt,it={class:"preview"},at={id:"strip"};function st(t,e,r,o,i,a){return Object(n["h"])(),Object(n["c"])("div",it,[(Object(n["h"])(),Object(n["c"])("svg",{width:a.viewportWidth,height:a.viewportHeight,viewBox:a.viewBox},[Object(n["f"])("defs",null,[Object(n["f"])("g",at,[(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.layers,(function(t,e){return Object(n["h"])(),Object(n["c"])("rect",{width:a.toPixels(a.settings.boardThickness),height:a.toPixels(t.width),x:"0",y:a.getLayerOffset(e),style:a.getLayerStyle(e)},null,12,["width","height","y"])})),256))])]),(Object(n["h"])(!0),Object(n["c"])(n["a"],null,Object(n["l"])(a.stripsPerBoard,(function(t,e){return Object(n["h"])(),Object(n["c"])("use",{"xlink:href":"#strip",x:e*a.settings.boardThickness,y:"0",transform:a.getLayerTransform(e)},null,8,["x","transform"])})),256))],8,["width","height","viewBox"]))])}var ct={props:{scale:Number},computed:{settings:function(){return this.$store.state.settings},wood:function(){return this.$store.state.wood},layers:function(){return this.$store.state.boards[0].layers},stripsPerBoard:function(){var t=this.settings.crosscutWidth+this.settings.bladeKerf;return 0===t?0:Math.floor((this.settings.boardLength+this.settings.bladeKerf)/t)},boardWidth:function(){var t=this.stripsPerBoard*this.settings.boardThickness;return this.toPixels(t)},boardHeight:function(){return this.layers.map((function(t){return t.width})).reduce((function(t,e){return t+e}))},viewportWidth:function(){return Math.floor(this.boardWidth*this.scale)},viewportHeight:function(){return Math.floor(this.boardHeight*this.scale)},viewBox:function(){return"0 0 "+this.boardWidth+" "+this.boardHeight}},methods:{toPixels:function(t){return $.toPixels(t,this.settings.units)},getLayerOffset:function(t){if(t<0||t>=this.layers.length)return 0;for(var e=0,r=0;r=this.layers.length)return"fill: fuchsia";var e=this.layers[t].wood;if(null===e)return"";var r=this.settings.borders?"; stroke-width: 1; stroke: black":"";return"fill: "+this.wood[e].color+r},getLayerTransform:function(t){return this.settings.alternateDirection&&t%2!=0?"scale(1, -1) translate(0, -"+this.boardHeight+")":""}}};ct.render=st;var lt=ct,dt={name:"App",components:{EndGrainPreview:ot,EdgeGrainPreview:lt,Settings:C,Layers:N,Wood:tt}};r("848a");dt.render=h;var ut=dt,ft=(r("4160"),r("a434"),r("159b"),r("5502")),ht=Object(ft["a"])({state:{settings:{units:"mm",borders:!1,boardThickness:20,boardLength:700,bladeKerf:3.5,crosscutWidth:30,alternateDirection:!0},wood:[{name:"Walnut",color:"#58443f"},{name:"Maple",color:"#f2e0aa"},{name:"Cherry",color:"#bb8359"},{name:"Mahogany",color:"#98473f"},{name:"Yellowheart",color:"#ffff84"},{name:"White oak",color:"#fdf4b9"},{name:"Bubinga",color:"#7e3c34"},{name:"Jatoba",color:"#9b281c"},{name:"Padouk",color:"#933350"}],boards:[{layers:[{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20},{wood:0,width:20},{wood:1,width:20}]}]},mutations:{addLayer:function(t,e){e<0||e>=t.boards.length||t.boards[e].layers.push({wood:0,width:$.fromMillimeters(20,t.settings.units)})},removeLayer:function(t,e){e.board<0||e.board>=t.boards.length||e.layer<0||e.layer>=t.boards[e.board].length||t.boards[e.board].layers.splice(e.layer,1)},addWood:function(t){t.wood.push({name:"Wood #"+(t.wood.length+1),color:"#f2e0aa"})},removeWood:function(t,e){e<0||e>=t.wood.length||(t.boards.forEach((function(t){t.layers.forEach((function(t){t.wood===e?t.wood=null:t.wood>e&&t.wood--}))})),t.wood.splice(e,1))},updateSettings:function(t,e){for(var r in e)e.hasOwnProperty(r)&&t.settings.hasOwnProperty(r)&&(t.settings[r]=e[r])}},actions:{}});Object(n["b"])(ut).use(ht).mount("#app")},"667a":function(t,e,r){"use strict";r("6ac4")},"6ac4":function(t,e,r){},"848a":function(t,e,r){"use strict";r("db52")},"9e5f":function(t,e,r){},d747:function(t,e,r){},db52:function(t,e,r){},e334:function(t,e,r){"use strict";r("9e5f")}}); -//# sourceMappingURL=app.f2508f9a.js.map \ No newline at end of file diff --git a/docs/js/app.f2508f9a.js.map b/docs/js/app.f2508f9a.js.map deleted file mode 100644 index 9f92e14..0000000 --- a/docs/js/app.f2508f9a.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Layers.vue?483f","webpack:///./src/App.vue","webpack:///./src/components/Settings.vue","webpack:///./src/lib/units.js","webpack:///./src/components/Settings.vue?b32f","webpack:///./src/components/Layers.vue","webpack:///./src/components/Layers.vue?f1ba","webpack:///./src/components/Wood.vue","webpack:///./src/components/Wood.vue?85c2","webpack:///./src/components/EndGrainPreview.vue","webpack:///./src/components/EndGrainPreview.vue?ab3d","webpack:///./src/components/EdgeGrainPreview.vue","webpack:///./src/components/EdgeGrainPreview.vue?0ca3","webpack:///./src/App.vue?eabf","webpack:///./src/store.js","webpack:///./src/main.js","webpack:///./src/components/Wood.vue?ca33","webpack:///./src/App.vue?62ea","webpack:///./src/components/Settings.vue?800c"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","href","target","scale","for","id","type","checked","settings","borders","$store","commit","$event","boardThickness","parseFloatDef","boardLength","bladeKerf","crosscutWidth","alternateDirection","millimetersPerInch","millimetersPerCentimeter","pixelsPerMillimeter","units","toPixels","this","toMillimeters","console","error","fromMillimeters","computed","state","methods","parsedValue","parseFloat","is","NaN","render","__scopeId","addLayer","layers","layer","index","wood","item","width","removeLayer","boards","board","addWood","color","removeWood","viewportWidth","height","viewportHeight","viewBox","x","y","getLayerOffset","style","getLayerStyle","props","Number","boardWidth","boardHeight","map","currentValue","reduce","accumulator","Math","floor","offset","woodIndex","borderStyle","stripsPerBoard","strip","xlink:href","transform","getLayerTransform","stripAndKerf","components","EndGrainPreview","EdgeGrainPreview","Settings","Layers","Wood","createStore","mutations","payload","forEach","updateSettings","actions","createApp","App","use","store","mount"],"mappings":"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","file":"js/app.f2508f9a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\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};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\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// 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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Layers.vue?vue&type=style&index=0&id=535527d4&lang=scss&scoped=true\"","\n\n\n\n\n","\r\n\r\n\r\n\r\n","const millimetersPerInch = 25.4;\r\nconst millimetersPerCentimeter = 10;\r\nconst pixelsPerMillimeter = 1;\r\n\r\n\r\n\r\nconst units = {\r\n toPixels(value, units)\r\n {\r\n return this.toMillimeters(value, units) * pixelsPerMillimeter;\r\n },\r\n\r\n\r\n toMillimeters(value, units)\r\n {\r\n switch (units)\r\n {\r\n case 'mm': return value;\r\n case 'cm': return value * millimetersPerCentimeter;\r\n case 'inch': return value * millimetersPerInch;\r\n }\r\n\r\n console.error('Invalid units type: ' + units);\r\n return 0;\r\n },\r\n\r\n\r\n fromMillimeters(value, units)\r\n {\r\n switch (units)\r\n {\r\n case 'mm': return value;\r\n case 'cm': return value / millimetersPerCentimeter;\r\n case 'inch': return value / millimetersPerInch;\r\n }\r\n\r\n console.error('Invalid units type: ' + units);\r\n return 0;\r\n }\r\n};\r\n\r\n\r\nexport { units }","import { render } from \"./Settings.vue?vue&type=template&id=660f17f9&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\n\nimport \"./Settings.vue?vue&type=style&index=0&id=660f17f9&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-660f17f9\"\n\nexport default script","\r\n\r\n\r\n\r\n","import { render } from \"./Layers.vue?vue&type=template&id=535527d4&scoped=true\"\nimport script from \"./Layers.vue?vue&type=script&lang=js\"\nexport * from \"./Layers.vue?vue&type=script&lang=js\"\n\nimport \"./Layers.vue?vue&type=style&index=0&id=535527d4&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-535527d4\"\n\nexport default script","\r\n\r\n\r\n\r\n","import { render } from \"./Wood.vue?vue&type=template&id=55181d8c&scoped=true\"\nimport script from \"./Wood.vue?vue&type=script&lang=js\"\nexport * from \"./Wood.vue?vue&type=script&lang=js\"\n\nimport \"./Wood.vue?vue&type=style&index=0&id=55181d8c&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-55181d8c\"\n\nexport default script","\n\n","import { render } from \"./EndGrainPreview.vue?vue&type=template&id=f0162250\"\nimport script from \"./EndGrainPreview.vue?vue&type=script&lang=js\"\nexport * from \"./EndGrainPreview.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","\n\n","import { render } from \"./EdgeGrainPreview.vue?vue&type=template&id=e3d956ee\"\nimport script from \"./EdgeGrainPreview.vue?vue&type=script&lang=js\"\nexport * from \"./EdgeGrainPreview.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=9a85d6fa\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=9a85d6fa&lang=scss\"\nscript.render = render\n\nexport default script","import { createStore } from 'vuex';\nimport { units } from './lib/units';\n\nexport default createStore({\n state: {\n settings: {\n units: 'mm',\n borders: false,\n boardThickness: 20,\n boardLength: 700,\n bladeKerf: 3.5,\n crosscutWidth: 30,\n\n alternateDirection: true\n },\n\n wood: [\n { name: 'Walnut', color: '#58443f' },\n { name: 'Maple', color: '#f2e0aa' },\n { name: 'Cherry', color: '#bb8359' },\n { name: 'Mahogany', color: '#98473f' },\n { name: 'Yellowheart', color: '#ffff84' },\n { name: 'White oak', color: '#fdf4b9' },\n { name: 'Bubinga', color: '#7e3c34' },\n { name: 'Jatoba', color: '#9b281c' },\n { name: 'Padouk', color: '#933350' }\n ],\n\n boards: [\n {\n layers: [\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 },\n { wood: 0, width: 20 },\n { wood: 1, width: 20 }\n ]\n }\n ]\n },\n\n mutations: {\n addLayer(state, board)\n {\n if (board < 0 || board >= state.boards.length)\n return;\n\n state.boards[board].layers.push({\n wood: 0,\n width: units.fromMillimeters(20, state.settings.units)\n });\n },\n\n removeLayer(state, payload)\n {\n if (payload.board < 0 || payload.board >= state.boards.length)\n return;\n\n if (payload.layer < 0 || payload.layer >= state.boards[payload.board].length)\n return;\n\n state.boards[payload.board].layers.splice(payload.layer, 1);\n },\n\n\n addWood(state)\n {\n state.wood.push({\n name: 'Wood #' + (state.wood.length + 1),\n color: '#f2e0aa'\n });\n },\n\n removeWood(state, index)\n {\n if (index < 0 || index >= state.wood.length)\n return;\n\n // Update all layers\n state.boards.forEach(board =>\n {\n board.layers.forEach(layer =>\n {\n if (layer.wood === index)\n layer.wood = null\n else if (layer.wood > index)\n layer.wood--;\n });\n });\n\n state.wood.splice(index, 1);\n },\n\n\n updateSettings(state, payload)\n {\n for (const property in payload)\n {\n if (!payload.hasOwnProperty(property) || !state.settings.hasOwnProperty(property))\n continue;\n\n state.settings[property] = payload[property];\n }\n }\n },\n\n actions: {\n }\n})\n","import { createApp } from 'vue'\nimport App from './App.vue'\nimport store from './store'\n\ncreateApp(App).use(store).mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Wood.vue?vue&type=style&index=0&id=55181d8c&lang=scss&scoped=true\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=9a85d6fa&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Settings.vue?vue&type=style&index=0&id=660f17f9&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index d8f3b12..5faa295 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,5 +1,7 @@ module.exports = { outputDir: 'docs', + publicPath: '/CuttingBoard/', + chainWebpack: config => { config .plugin('html')