@@ -241,6 +241,8 @@ <h1>Part 2.1: The “Hello Clock” Web Component</h1>
241241< div id ="part-2.1-hello-clock.js-defines-the-web-component "
242242class ="slide section level1 ">
243243< h1 > Part 2.1: “hello-clock.js” defines the web component</ h1 >
244+ < p > Create < a
245+ href ="https://github.com/caltechlibrary/t2t3_dataset_web_apps/blob/main/htdocs/modules/hello-clock.js "> htdocs/modules/hello-clock.js</ a > </ p >
244246< div class ="sourceCode " id ="cb2 "> < pre
245247class ="sourceCode javascript "> < code class ="sourceCode javascript "> < span id ="cb2-1 "> < a href ="#cb2-1 " tabindex ="-1 "> </ a > < span class ="co "> // Define our new element as a class</ span > </ span >
246248< span id ="cb2-2 "> < a href ="#cb2-2 " tabindex ="-1 "> </ a > < span class ="kw "> class</ span > HelloClock < span class ="kw "> extends</ span > < span class ="bu "> HTMLElement</ span > {</ span >
@@ -255,9 +257,38 @@ <h1>Part 2.1: “hello-clock.js” defines the web component</h1>
255257< span id ="cb2-11 "> < a href ="#cb2-11 " tabindex ="-1 "> </ a > < span class ="co "> // This is how the browsers learns to use the new HTML element.</ span > </ span >
256258< span id ="cb2-12 "> < a href ="#cb2-12 " tabindex ="-1 "> </ a > customElements< span class ="op "> .</ span > < span class ="fu "> define</ span > ( < span class ="st "> 'hello-clock'</ span > < span class ="op "> ,</ span > HelloClock )< span class ="op "> ;</ span > </ span > </ code > </ pre > </ div >
257259</ div >
260+ < div id ="part-2.1-now-lets-create-an-html-page-using-hello-clock "
261+ class ="slide section level1 ">
262+ < h1 > Part 2.1: Now lets create an HTML Page using “Hello Clock”</ h1 >
263+ < ul >
264+ < li > < a
265+ href ="https://github.com/caltechlibrary/t2t3_dataset_web_apps/blob/main/htdocs/clock.html "> htdocs/clock.html</ a > </ li >
266+ </ ul >
267+ < div class ="sourceCode " id ="cb3 "> < pre
268+ class ="sourceCode html "> < code class ="sourceCode html "> < span id ="cb3-1 "> < a href ="#cb3-1 " tabindex ="-1 "> </ a > < span class ="dt "> <!DOCTYPE</ span > html< span class ="dt "> ></ span > </ span >
269+ < span id ="cb3-2 "> < a href ="#cb3-2 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> html</ span > < span class ="ot "> lang</ span > < span class ="op "> =</ span > < span class ="st "> "en-US"</ span > < span class ="dt "> ></ span > </ span >
270+ < span id ="cb3-3 "> < a href ="#cb3-3 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> head</ span > < span class ="dt "> ></ span > </ span >
271+ < span id ="cb3-4 "> < a href ="#cb3-4 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> title</ span > < span class ="dt "> ></ span > Hello Clock Example< span class ="dt "> </</ span > < span class ="kw "> title</ span > < span class ="dt "> ></ span > </ span >
272+ < span id ="cb3-5 "> < a href ="#cb3-5 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> link</ span > < span class ="ot "> rel</ span > < span class ="op "> =</ span > < span class ="st "> "style"</ span > < span class ="ot "> href</ span > < span class ="op "> =</ span > < span class ="st "> "css/style.css"</ span > < span class ="dt "> ></ span > </ span >
273+ < span id ="cb3-6 "> < a href ="#cb3-6 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> script</ span > < span class ="ot "> type=</ span > < span class ="st "> "module"</ span > < span class ="ot "> src</ span > < span class ="op "> =</ span > < span class ="st "> "modules/hello-clock.js"</ span > < span class ="dt "> ></</ span > < span class ="kw "> script</ span > < span class ="dt "> ></ span > </ span >
274+ < span id ="cb3-7 "> < a href ="#cb3-7 " tabindex ="-1 "> </ a > < span class ="dt "> </</ span > < span class ="kw "> head</ span > < span class ="dt "> ></ span > </ span >
275+ < span id ="cb3-8 "> < a href ="#cb3-8 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> body</ span > < span class ="dt "> ></ span > </ span >
276+ < span id ="cb3-9 "> < a href ="#cb3-9 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> h1</ span > < span class ="dt "> ></ span > Hello Clock Example< span class ="dt "> </</ span > < span class ="kw "> h1</ span > < span class ="dt "> ></ span > </ span >
277+ < span id ="cb3-10 "> < a href ="#cb3-10 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> hello-clock</ span > < span class ="dt "> ></ span > Hi there!< span class ="dt "> </</ span > < span class ="kw "> hello-clock</ span > < span class ="dt "> ></ span > </ span >
278+ < span id ="cb3-11 "> < a href ="#cb3-11 " tabindex ="-1 "> </ a > < span class ="dt "> </</ span > < span class ="kw "> body</ span > < span class ="dt "> ></ span > </ span >
279+ < span id ="cb3-12 "> < a href ="#cb3-12 " tabindex ="-1 "> </ a > < span class ="dt "> </</ span > < span class ="kw "> html</ span > < span class ="dt "> ></ span > </ span > </ code > </ pre > </ div >
280+ </ div >
258281< div id ="part-2.1-fire-up-our-web-service-and-test-hello-clock "
259282class ="slide section level1 ">
260283< h1 > Part 2.1: Fire up our web service and test “Hello Clock”</ h1 >
284+ < pre class ="shell "> < code > dataset -debug recipes_api.yaml</ code > </ pre >
285+ < p > Point your web browser at < a href ="http://localhost:8001/clock.html "
286+ class ="uri "> http://localhost:8001/clock.html</ a > </ p >
287+ </ div >
288+ < div id ="part-2.1-congradulations " class ="slide section level1 ">
289+ < h1 > Part 2.1: Congradulations</ h1 >
290+ < h2 id ="youve-built-your-first-web-component "> You’ve built your first
291+ Web Component!!!!</ h2 >
261292</ div >
262293< div id ="part-2.2-recipes-version-2 " class ="slide section level1 ">
263294< h1 > Part 2.2: Recipes version 2</ h1 >
@@ -339,13 +370,13 @@ <h1>Part 2.2: Fixing web form submission</h1>
339370< h1 > Part 2.2: Update the HTML for edit_recipe.html</ h1 >
340371< p > Add the following at the bottom of the page before the
341372< code > </body></ code > .</ p >
342- < div class ="sourceCode " id ="cb6 "> < pre
343- class ="sourceCode html "> < code class ="sourceCode html "> < span id ="cb6 -1 "> < a href ="#cb6 -1 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> script</ span > < span class ="ot "> type=</ span > < span class ="st "> "module"</ span > < span class ="dt "> ></ span > </ span >
344- < span id ="cb6 -2 "> < a href ="#cb6 -2 " tabindex ="-1 "> </ a > < span class ="im "> import</ span > { saveRecipe } < span class ="im "> from</ span > < span class ="st "> './modules/utils.js'</ span > < span class ="op "> ;</ span > </ span >
345- < span id ="cb6 -3 "> < a href ="#cb6 -3 " tabindex ="-1 "> </ a > < span class ="bu "> document</ span > < span class ="op "> .</ span > < span class ="fu "> addEventListener</ span > (< span class ="st "> 'DOMContentLoaded'</ span > < span class ="op "> ,</ span > () < span class ="kw "> =></ span > {</ span >
346- < span id ="cb6 -4 "> < a href ="#cb6 -4 " tabindex ="-1 "> </ a > < span class ="kw "> const</ span > form < span class ="op "> =</ span > < span class ="bu "> document</ span > < span class ="op "> .</ span > < span class ="fu "> addEventListener</ span > (< span class ="st "> 'submit'</ span > < span class ="op "> ,</ span > saveRecipe)< span class ="op "> ;</ span > </ span >
347- < span id ="cb6 -5 "> < a href ="#cb6 -5 " tabindex ="-1 "> </ a > })< span class ="op "> ;</ span > </ span >
348- < span id ="cb6 -6 "> < a href ="#cb6 -6 " tabindex ="-1 "> </ a > < span class ="dt "> </</ span > < span class ="kw "> script</ span > < span class ="dt "> ></ span > </ span > </ code > </ pre > </ div >
373+ < div class ="sourceCode " id ="cb8 "> < pre
374+ class ="sourceCode html "> < code class ="sourceCode html "> < span id ="cb8 -1 "> < a href ="#cb8 -1 " tabindex ="-1 "> </ a > < span class ="dt "> <</ span > < span class ="kw "> script</ span > < span class ="ot "> type=</ span > < span class ="st "> "module"</ span > < span class ="dt "> ></ span > </ span >
375+ < span id ="cb8 -2 "> < a href ="#cb8 -2 " tabindex ="-1 "> </ a > < span class ="im "> import</ span > { saveRecipe } < span class ="im "> from</ span > < span class ="st "> './modules/utils.js'</ span > < span class ="op "> ;</ span > </ span >
376+ < span id ="cb8 -3 "> < a href ="#cb8 -3 " tabindex ="-1 "> </ a > < span class ="bu "> document</ span > < span class ="op "> .</ span > < span class ="fu "> addEventListener</ span > (< span class ="st "> 'DOMContentLoaded'</ span > < span class ="op "> ,</ span > () < span class ="kw "> =></ span > {</ span >
377+ < span id ="cb8 -4 "> < a href ="#cb8 -4 " tabindex ="-1 "> </ a > < span class ="kw "> const</ span > form < span class ="op "> =</ span > < span class ="bu "> document</ span > < span class ="op "> .</ span > < span class ="fu "> addEventListener</ span > (< span class ="st "> 'submit'</ span > < span class ="op "> ,</ span > saveRecipe)< span class ="op "> ;</ span > </ span >
378+ < span id ="cb8 -5 "> < a href ="#cb8 -5 " tabindex ="-1 "> </ a > })< span class ="op "> ;</ span > </ span >
379+ < span id ="cb8 -6 "> < a href ="#cb8 -6 " tabindex ="-1 "> </ a > < span class ="dt "> </</ span > < span class ="kw "> script</ span > < span class ="dt "> ></ span > </ span > </ code > </ pre > </ div >
349380</ div >
350381< div id ="part-2.2-restart-datasetd-and-test "
351382class ="slide section level1 ">
@@ -432,15 +463,15 @@ <h1>Part 2.2: Getting the table populated, update
432463< p > CSVTextarea has the ability to be updated from CSV text. Let’s do
433464that.</ p >
434465< p > In < code > edit_recipe.js</ code > you need to find this.</ p >
435- < div class ="sourceCode " id ="cb10 "> < pre
436- class ="sourceCode javascript "> < code class ="sourceCode javascript "> < span id ="cb10 -1 "> < a href ="#cb10 -1 " tabindex ="-1 "> </ a > < span class ="cf "> if</ span > (data[< span class ="st "> "ingredients"</ span > ] < span class ="op "> !==</ span > < span class ="kw "> undefined</ span > ) {</ span >
437- < span id ="cb10 -2 "> < a href ="#cb10 -2 " tabindex ="-1 "> </ a > ingredientsTextarea< span class ="op "> .</ span > < span class ="at "> innerHTML</ span > < span class ="op "> =</ span > data[< span class ="st "> "ingredients"</ span > ]< span class ="op "> ;</ span > </ span >
438- < span id ="cb10 -3 "> < a href ="#cb10 -3 " tabindex ="-1 "> </ a > }</ span > </ code > </ pre > </ div >
466+ < div class ="sourceCode " id ="cb12 "> < pre
467+ class ="sourceCode javascript "> < code class ="sourceCode javascript "> < span id ="cb12 -1 "> < a href ="#cb12 -1 " tabindex ="-1 "> </ a > < span class ="cf "> if</ span > (data[< span class ="st "> "ingredients"</ span > ] < span class ="op "> !==</ span > < span class ="kw "> undefined</ span > ) {</ span >
468+ < span id ="cb12 -2 "> < a href ="#cb12 -2 " tabindex ="-1 "> </ a > ingredientsTextarea< span class ="op "> .</ span > < span class ="at "> innerHTML</ span > < span class ="op "> =</ span > data[< span class ="st "> "ingredients"</ span > ]< span class ="op "> ;</ span > </ span >
469+ < span id ="cb12 -3 "> < a href ="#cb12 -3 " tabindex ="-1 "> </ a > }</ span > </ code > </ pre > </ div >
439470< p > And replace it with something like this.</ p >
440- < div class ="sourceCode " id ="cb11 "> < pre
441- class ="sourceCode javascript "> < code class ="sourceCode javascript "> < span id ="cb11 -1 "> < a href ="#cb11 -1 " tabindex ="-1 "> </ a > < span class ="cf "> if</ span > (data[< span class ="st "> "ingredients"</ span > ] < span class ="op "> !==</ span > < span class ="kw "> undefined</ span > ) {</ span >
442- < span id ="cb11 -2 "> < a href ="#cb11 -2 " tabindex ="-1 "> </ a > ingredientsTextarea< span class ="op "> .</ span > < span class ="fu "> fromCSV</ span > (data[< span class ="st "> 'ingredients'</ span > ])< span class ="op "> ;</ span > </ span >
443- < span id ="cb11 -3 "> < a href ="#cb11 -3 " tabindex ="-1 "> </ a > }</ span > </ code > </ pre > </ div >
471+ < div class ="sourceCode " id ="cb13 "> < pre
472+ class ="sourceCode javascript "> < code class ="sourceCode javascript "> < span id ="cb13 -1 "> < a href ="#cb13 -1 " tabindex ="-1 "> </ a > < span class ="cf "> if</ span > (data[< span class ="st "> "ingredients"</ span > ] < span class ="op "> !==</ span > < span class ="kw "> undefined</ span > ) {</ span >
473+ < span id ="cb13 -2 "> < a href ="#cb13 -2 " tabindex ="-1 "> </ a > ingredientsTextarea< span class ="op "> .</ span > < span class ="fu "> fromCSV</ span > (data[< span class ="st "> 'ingredients'</ span > ])< span class ="op "> ;</ span > </ span >
474+ < span id ="cb13 -3 "> < a href ="#cb13 -3 " tabindex ="-1 "> </ a > }</ span > </ code > </ pre > </ div >
444475</ div >
445476< div id ="part-2.2-test-and-debug " class ="slide section level1 ">
446477< h1 > Part 2.2: Test and debug</ h1 >
@@ -572,6 +603,20 @@ <h1>Reference: CL-web-components</h1>
572603class ="uri "> https://github.com/caltechlibrary/CL-web-components/issues</ a > .</ li >
573604</ ul >
574605</ div >
606+ < div id ="reference-web-components " class ="slide section level1 ">
607+ < h1 > Reference: Web Components</ h1 >
608+ < ul >
609+ < li > < a href ="https://github.com/mdn/web-components-examples "> MDN
610+ Examples on GitHub</ a > </ li >
611+ < li > < a
612+ href ="https://github.com/scottaohara/accessible_components "> Examples of
613+ Accessible Components</ a > </ li >
614+ < li > < a
615+ href ="https://github.com/davatron5000/awesome-standalones "> Awesome
616+ Standalones</ a > </ li >
617+ < li > < a href ="https://design-system.w3.org/ "> W3C Design System</ a > </ li >
618+ </ ul >
619+ </ div >
575620< div id ="reference-programming-languages " class ="slide section level1 ">
576621< h1 > Reference: Programming Languages</ h1 >
577622< ul >
0 commit comments