11<!DOCTYPE html>
2+
23< head >
34 < script src ="https://cdn.lrkt-in.com/LogRocket.min.js " crossorigin ="anonymous "> </ script >
45 < script > document . location . hostname . includes ( 'gcode-preview.web.app' ) && window . LogRocket && window . LogRocket . init ( 'x64tmd/gcode-preview-demo' ) ; </ script >
1516 loadAnalytics ( ) ;
1617
1718 window . dataLayer = window . dataLayer || [ ] ;
18- function gtag ( ) { dataLayer . push ( arguments ) ; }
19+ function gtag ( ) { dataLayer . push ( arguments ) ; }
1920 gtag ( 'js' , new Date ( ) ) ;
2021 gtag ( 'config' , 'UA-165890546-1' ) ;
2122 }
2425 < link rel ="stylesheet " href ="style.css " />
2526</ head >
2627
27- < body >
28+ < body >
2829 < div id ="app ">
2930 < div class ="widget right bottom border slide-in-right glass is-clipped " v-cloak v-if ="thumbnail || model ">
30- < img v-if ="thumbnail "
31- draggable ="false "
32- id =thumbnail
33- class ="is-block is-fullwidth "
34- alt ="thumbnail generated by slicer "
35- :src ="thumbnail " />
31+ < img v-if ="thumbnail " draggable ="false " id =thumbnail class ="is-block is-fullwidth "
32+ alt ="thumbnail generated by slicer " :src ="thumbnail " />
3633 < div class ="file-info ">
37-
34+
3835 < div class ="p-1 " v-if ="model ">
3936 < div > < a :href ="model?.original "> {{model?.name}}</ a > < br >
40- < span v-if ="model?.designer " class ="is-size-8 "> by {{model?.designer}}</ span > </ div >
37+ < span v-if ="model?.designer " class ="is-size-8 "> by {{model?.designer}}</ span >
38+ </ div >
4139
4240 < div class ="license is-size-8 "> {{model?.license}}</ div >
4341 </ div >
4442
4543 </ div >
4644 </ div >
47- < div class ="sidebar p-4 widget left top glass slide-in-left border " >
48-
49- < h1 class ="text-center m-3 mb-5 "> GCode Preview
45+ < div class ="sidebar p-4 widget left top glass slide-in-left border ">
46+
47+ < h1 class ="text-center m-3 mb-5 "> GCode Preview
5048 </ h1 >
5149 < div class ="scroll-container ">
5250 < div >
53- < section class ="flex is-justify-content-center ">
51+ < section class ="flex is-justify-content-center ">
5452 < div class ="bulma-select ">
55- < select id ="settings-presets "
56- v-cloak
57- v-model ="selectedPreset ">
53+ < select id ="settings-presets " v-cloak v-model ="selectedPreset ">
5854 < option v-for ="(preset, name) in presets " :value ="name "> {{preset.title}}</ option >
5955 </ select >
6056 </ div >
6157 </ section >
62-
58+
6359 < div class ="bulma-tabs bulma-is-small ">
6460 < ul >
6561 < li :class ="{ 'bulma-is-active': activeTab == 'layers' } "> < a @click ="selectTab('layers') "> Layers</ a > </ li >
6662 < li :class ="{ 'bulma-is-active': activeTab == 'travel' } "> < a @click ="selectTab('travel') "> Travel</ a > </ li >
67- < li :class ="{ 'bulma-is-active': activeTab == 'extrusion' } "> < a @click ="selectTab('extrusion') "> Extrusion</ a > </ li >
68- < li :class ="{ 'bulma-is-active': activeTab == 'build-volume' } "> < a @click ="selectTab('build-volume') "> Build volume</ a > </ li >
63+ < li :class ="{ 'bulma-is-active': activeTab == 'extrusion' } "> < a
64+ @click ="selectTab('extrusion') "> Extrusion</ a > </ li >
65+ < li :class ="{ 'bulma-is-active': activeTab == 'build-volume' } "> < a
66+ @click ="selectTab('build-volume') "> Build volume</ a > </ li >
6967 </ ul >
70- </ div >
68+ </ div >
7169 < div class ="is-size-7 ">
7270 < div class ="panel " v-cloak v-show ="activeTab == 'layers' ">
73- < section v-if ="layerCount > 1 ">
71+ < section v-if ="layerCount > 1 ">
7472 < div class ="controls ">
7573 < label >
7674 Start Layer
77- < input type ="checkbox " v-model ="settings.enableStartLayer " />
75+ < input type ="checkbox " v-model ="settings.enableStartLayer " />
7876 </ label >
79- < label :class ="{'has-text-grey' : !settings.enableStartLayer} " > < output id ="start-layer-value " > {{settings.startLayer}}</ output > </ label >
80- < input
81- type ="range "
82- min ="1 "
83- :max ="settings.maxLayer "
84- id ="start-layer "
85- v-model ="settings.startLayer "
86- :disabled ="!settings.enableStartLayer "
87- />
77+ < label :class ="{'has-text-grey' : !settings.enableStartLayer} "> < output
78+ id ="start-layer-value "> {{settings.startLayer}}</ output > </ label >
79+ < input type ="range " min ="1 " :max ="settings.maxLayer " id ="start-layer " v-model ="settings.startLayer "
80+ :disabled ="!settings.enableStartLayer " />
8881 </ div >
8982 < div class ="controls ">
9083 < label >
9184 End Layer
92- < input type ="checkbox " v-model ="settings.enableEndLayer " />
85+ < input type ="checkbox " v-model ="settings.enableEndLayer " />
9386 </ label >
94- < label :class ="{'has-text-grey' : !settings.enableEndLayer} "> < output id ="end-layer-value " > {{settings.endLayer}}</ output > </ label >
87+ < label :class ="{'has-text-grey' : !settings.enableEndLayer} "> < output
88+ id ="end-layer-value "> {{settings.endLayer}}</ output > </ label >
9589 <!-- HACK: extra :value binding to ensure the value is set after the max is updated -->
96- < input
97- v-model ="settings.endLayer "
98- type ="range "
99- min ="1 "
100- :max ="settings.maxLayer "
101- id ="end-layer "
102- :value ="settings.endLayer "
103- :disabled ="!settings.enableEndLayer "
104- />
90+ < input v-model ="settings.endLayer " type ="range " min ="1 " :max ="settings.maxLayer " id ="end-layer "
91+ :value ="settings.endLayer " :disabled ="!settings.enableEndLayer " />
10592 </ div >
10693 < div class ="controls ">
10794 < label for ="single-layer-mode "> Single layer mode</ label >
@@ -120,66 +107,57 @@ <h1 class="text-center m-3 mb-5">GCode Preview
120107 < section >
121108 < div class ="controls ">
122109 < label for ="travel "> Render travel</ label >
123- < input type ="checkbox " id ="travel " v-model ="settings.renderTravel " />
110+ < input type ="checkbox " id ="travel " v-model ="settings.renderTravel " />
124111 </ div >
125112 < div class ="controls ">
126113 < label :class ="{'has-text-grey' : !settings.renderTravel} " for ="travel-color "> Travel color</ label >
127- < input type ="color " id ="travel-color " v-model ="settings.travelColor " :disabled ="!settings.renderTravel " />
114+ < input type ="color " id ="travel-color " v-model ="settings.travelColor "
115+ :disabled ="!settings.renderTravel " />
128116 </ div >
129117 </ section >
130118 </ div >
131-
119+
132120 < div class ="panel " v-cloak v-show ="activeTab == 'extrusion' ">
133121 < section class ="mb-0 ">
134122 < div class ="controls ">
135- < label for ="extrusion "> Render extrusion</ label
136- > < input type =" checkbox " v-model ="settings.renderExtrusion " />
123+ < label for ="extrusion "> Render extrusion</ label > < input type =" checkbox "
124+ v-model ="settings.renderExtrusion " />
137125 </ div >
138126 </ section >
139127
140128 < div :class ="{'has-text-grey': !settings.renderExtrusion} ">
141-
129+
142130 < section >
143131 < div class ="controls ">
144- < label for ="render-tubes "> Render as tubes</ label
145- > < input type =" checkbox " v-model ="settings.renderTubes " :disabled ="!settings.renderExtrusion "/>
132+ < label for ="render-tubes "> Render as tubes</ label > < input type =" checkbox "
133+ v-model ="settings.renderTubes " :disabled ="!settings.renderExtrusion " />
146134 </ div >
147135 < div class ="controls " v-show ="!settings.renderTubes ">
148136 < label > Line width < output > {{settings.lineWidth}}</ output > </ label >
149- < input
150- type ="range "
151- min ="1 "
152- step ="0.5 "
153- max ="10 "
154- v-model ="settings.lineWidth "
155- :disabled ="!settings.renderExtrusion "
156- />
157- </ div >
158-
159- < div class ="controls " v-show ="settings.renderTubes ">
160- < label > Extrusion width < output > {{settings.extrusionWidth}}</ output > </ label >
161- < input
162- type ="number "
163- min ="0.05 "
164- max ="3.0 "
165- step ="0.05 "
166- v-model ="settings.extrusionWidth "
167- :disabled ="!settings.renderExtrusion "
168- />
169- </ div >
137+ < input type ="range " min ="1 " step ="0.5 " max ="10 " v-model ="settings.lineWidth "
138+ :disabled ="!settings.renderExtrusion " />
139+ </ div >
140+
141+ < div class ="controls " v-show ="settings.renderTubes ">
142+ < label > Extrusion width < output > {{settings.extrusionWidth}}</ output > </ label >
143+ < input type ="number " min ="0.05 " max ="3.0 " step ="0.05 " v-model ="settings.extrusionWidth "
144+ :disabled ="!settings.renderExtrusion " />
145+ </ div >
170146 </ section >
171147
172148 < section class ="extrusion-colors ">
173- < div class ="flex just-between "> # of extrusion colors < div class ="controls ">
174- < button @click ="addColor "> +</ button >
175- < button @click ="removeColor "> -</ button >
176- </ div > </ div >
149+ < div class ="flex just-between "> # of extrusion colors < div class ="controls ">
150+ < button @click ="addColor "> +</ button >
151+ < button @click ="removeColor "> -</ button >
152+ </ div >
153+ </ div >
177154
178155 < div class ="controls " v-for ="color,index in settings.colors ">
179156 < label for ="extrusion-color-t0 "> Extrusion color (T{{index}})</ label >
180- < input type ="color " v-model ="settings.colors[index] " :key ="index " :disabled ="!settings.renderExtrusion " />
157+ < input type ="color " v-model ="settings.colors[index] " :key ="index "
158+ :disabled ="!settings.renderExtrusion " />
181159 </ div >
182-
160+
183161 </ section >
184162
185163 <!-- <section>
@@ -197,7 +175,7 @@ <h1 class="text-center m-3 mb-5">GCode Preview
197175 </div>
198176 <div class="controls">
199177 <label :class="{'has-text-grey' : !settings.highlightLastSegment}" for="last-segment-color">Last segment color</label>
200- <input type="color" id="last-segment-color" v-model="settings.lastSegmentColor"
178+ <input type="color" id="last-segment-color" v-model="settings.lastSegmentColor"
201179 :disabled="!settings.highlightLastSegment || !settings.renderExtrusion" />
202180 </div>
203181 </section> -->
@@ -206,26 +184,30 @@ <h1 class="text-center m-3 mb-5">GCode Preview
206184 </ div >
207185 < div class ="panel " v-cloak v-show ="activeTab == 'build-volume' ">
208186 < section >
209- < div class ="controls ">
187+ < div class ="controls ">
210188 < label for ="drawBuildVolume "> Render build volume</ label >
211189 < input type ="checkbox " v-model ="settings.drawBuildVolume " />
212190 </ div >
213191 < div :class ="{'has-text-grey' : !settings.drawBuildVolume} ">
214192 < div class ="controls ">
215193 < label for ="buildVolumeX "> Build volume (x) </ label >
216- < input type ="number " v-model ="settings.buildVolume.x " step =10 :disabled ="!settings.drawBuildVolume " />
194+ < input type ="number " v-model ="settings.buildVolume.x " step =10
195+ :disabled ="!settings.drawBuildVolume " />
217196 </ div >
218- < div class ="controls ">
197+ < div class ="controls ">
219198 < label for ="buildVolumeY "> Build volume (y) </ label >
220- < input type ="number " v-model ="settings.buildVolume.y " step =10 :disabled ="!settings.drawBuildVolume " />
199+ < input type ="number " v-model ="settings.buildVolume.y " step =10
200+ :disabled ="!settings.drawBuildVolume " />
221201 </ div >
222- < div class ="controls ">
202+ < div class ="controls ">
223203 < label for ="buildVolumeZ "> Build volume (z) </ label >
224- < input type ="number " v-model ="settings.buildVolume.z " step =10 :disabled ="!settings.drawBuildVolume " />
204+ < input type ="number " v-model ="settings.buildVolume.z " step =10
205+ :disabled ="!settings.drawBuildVolume " />
225206 </ div >
226207 < div class ="controls ">
227208 < label for ="smallGrid "> Small grid</ label >
228- < input type ="checkbox " v-model ="settings.buildVolume.smallGrid " :disabled ="!settings.drawBuildVolume " />
209+ < input type ="checkbox " v-model ="settings.buildVolume.smallGrid "
210+ :disabled ="!settings.drawBuildVolume " />
229211 </ div >
230212 </ div >
231213 < div class ="controls ">
@@ -234,10 +216,10 @@ <h1 class="text-center m-3 mb-5">GCode Preview
234216 </ div >
235217 < div class ="controls ">
236218 < label for ="bounding-color "> Bounding box</ label >
237- < input type ="checkbox " v-model ="drawBoundingBox " />
219+ < input type ="checkbox " v-model ="settings. drawBoundingBox " />
238220 </ div >
239221 < div class ="controls ">
240- < label for ="background-color "> Background color</ label >
222+ < label for ="background-color "> Bounding box color</ label >
241223 < input type ="color " v-model ="settings.boundingBoxColor " />
242224 </ div >
243225 </ section >
@@ -247,23 +229,22 @@ <h1 class="text-center m-3 mb-5">GCode Preview
247229 </ div >
248230 < div >
249231 < footer class ="is-size-7 p-0 has-text-grey-light ">
250-
251-
232+
233+
252234 < div >
253235 < a class ="has-text-grey-light " href ="https://github.com/remcoder/gcode-preview "> GitHub</ a >
254236 - < a class ="has-text-grey-light " href ="/docs "> API docs</ a >
255-
237+
256238 </ div >
257239 < div > MIT license </ div >
258240 </ footer >
259241 </ div >
260242 </ div >
261- < div class ="widget top right glass p-3 is-size-7 slide-in-down border "> < label class ="mr-2 "> dev mode</ label > < input v-model ="enableDevMode " type ="checkbox " /> </ div >
243+ < div class ="widget top right glass p-3 is-size-7 slide-in-down border "> < label class ="mr-2 "> dev mode</ label > < input
244+ v-model ="enableDevMode " type ="checkbox " /> </ div >
262245 < div class ="absolute left bottom m-3 has-text-grey slide-in-up "> Drop a gcode file to preview it</ div >
263246 < div class ="wrapper ">
264- < canvas class ="preview " :class ="{ 'dragging': settings.dragging } "
265- @update.prevent ="update "
266- > </ canvas >
247+ < canvas class ="preview " :class ="{ 'dragging': settings.dragging } " @update.prevent ="update "> </ canvas >
267248 </ div >
268249 </ div >
269250 < script type ="importmap ">
0 commit comments