diff --git a/04_browser-api/uebungen/o02_website-with-plugins/README.md b/04_browser-api/uebungen/o02_website-with-plugins/README.md index 6b78232..9caf630 100644 --- a/04_browser-api/uebungen/o02_website-with-plugins/README.md +++ b/04_browser-api/uebungen/o02_website-with-plugins/README.md @@ -2,8 +2,8 @@ ## 1. Optimierung vom ProduktManager -- 1. Positionen sollen an die API gesendet werden und gespeichert werden. -- 2. Refactoring vom Modul +1. Positionen sollen an die API gesendet werden und gespeichert werden. +2. Refactoring vom Modul: - Optimierung der Übergabeparameter: Element oder Selector (CSS Selektion als String) kann übergeben werden. Tipp: `module instanceof HTMLElement` - Die Wiederholungen der Fetch Anfragen in eine `api.request` Methode zusammenfassen diff --git a/04_browser-api/uebungen/o02_website-with-plugins/README.pdf b/04_browser-api/uebungen/o02_website-with-plugins/README.pdf index fdc8bf8..15e9d7d 100644 Binary files a/04_browser-api/uebungen/o02_website-with-plugins/README.pdf and b/04_browser-api/uebungen/o02_website-with-plugins/README.pdf differ diff --git a/05_typescript/.vscode/extensions.json b/05_typescript/.vscode/extensions.json new file mode 100644 index 0000000..bb659e6 --- /dev/null +++ b/05_typescript/.vscode/extensions.json @@ -0,0 +1,15 @@ +{ + "recommendations": [ + "kamikillerto.vscode-colorize", + "sleistner.vscode-fileutils", + "bierner.github-markdown-preview", + "bradgashler.htmltagwrap", + "zhuangtongfa.material-theme", + "techer.open-in-browser", + "esbenp.prettier-vscode", + "pdconsec.vscode-print", + "vscode-icons-team.vscode-icons", + "formulahendry.auto-rename-tag", + "tomoki1207.pdf" + ] +} diff --git a/05_typescript/.vscode/marp-theme.css b/05_typescript/.vscode/marp-theme.css new file mode 100644 index 0000000..90ea8da --- /dev/null +++ b/05_typescript/.vscode/marp-theme.css @@ -0,0 +1,332 @@ +/* @theme marp-theme */ + +@charset "UTF-8"; +/*! + * Marp Dracula theme. + * @theme marp-theme + * @author Daniel Nicolas Gisolfi & modified by Philippe Botzek + * + * @auto-scaling true + * @size 4:3 960px 720px + * @size 16:9 1280px 720px + */ + +@import url('https://fonts.googleapis.com/css?family=Lato:400,900|IBM+Plex+Sans:400,700'); + +:root { + --dracula-background: #282a36; + --dracula-current-line: #44475a; + --dracula-foreground: #f8f8f2; + --dracula-comment: #6272a4; + --dracula-cyan: #8be9fd; + --dracula-green: #50fa7b; + --dracula-orange: #ffb86c; + --dracula-pink: #ff79c6; + --dracula-purple: #bd93f9; + --dracula-red: #ff5555; + --dracula-yellow: #f1fa8c; +} + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: var(--dracula-background); +} + +/* Dracula Foreground */ +.hljs, +.hljs-subst, +.hljs-typing, +.hljs-variable, +.hljs-template-variable { + color: var(--dracula-foreground); +} + +/* Dracula Comment */ +.hljs-comment, +.hljs-quote, +.hljs-deletion { + color: var(--dracula-comment); +} + +/* Dracula Cyan */ +.hljs-meta .hljs-doctag, +.hljs-built_in, +.hljs-selector-tag, +.hljs-section, +.hljs-link, +.hljs-class { + color: var(--dracula-cyan); +} + +/* Dracula Green */ +.hljs-title { + color: var(--dracula-green); +} + +/* Dracula Orange */ +.hljs-params { + color: var(--dracula-orange); +} + +/* Dracula Pink */ +.hljs-keyword { + color: var(--dracula-pink); +} + +/* Dracula Purple */ +.hljs-literal, +.hljs-number { + color: var(--dracula-purple); +} + +/* Dracula Red */ +.hljs-regexp { + color: var(--dracula-red); +} + +/* Dracula Yellow */ +.hljs-string, +.hljs-name, +.hljs-type, +.hljs-attr, +.hljs-symbol, +.hljs-bullet, +.hljs-addition, +.hljs-template-tag { + color: var(--dracula-yellow); +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-title, +.hljs-section, +.hljs-doctag, +.hljs-type, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-params, +.hljs-emphasis { + font-style: italic; +} + +svg[data-marp-fitting='svg'] { + max-height: 580px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0.5em 0 0 0; + color: var(--dracula-pink); +} +h1 strong, +h2 strong, +h3 strong, +h4 strong, +h5 strong, +h6 strong { + font-weight: inherit; +} + +h1 { + font-size: 1.8em; +} + +h2 { + font-size: 1.5em; +} + +h3 { + font-size: 1.3em; +} + +h4 { + font-size: 1.1em; +} + +h5 { + font-size: 1em; +} + +h6 { + font-size: 0.9em; +} + +p, +blockquote { + margin: 1em 0 0 0; +} + +ul > li, +ol > li { + margin: 0.3em 0 0 0; + color: var(--dracula-cyan); +} +ul > li > p, +ol > li > p { + margin: 0.6em 0 0 0; +} + +code { + display: inline-block; + font-family: 'IBM Plex Mono', monospace; + font-size: 0.8em; + letter-spacing: 0; + margin: -0.1em 0.15em; + padding: 0.1em 0.2em; + vertical-align: baseline; + color: var(--dracula-green); +} + +pre { + display: block; + margin: 1em 0 0 0; + min-height: 1em; + overflow: visible; +} +pre code { + box-sizing: border-box; + margin: 0; + min-width: 100%; + padding: 0.5em; + font-size: 0.7em; +} +pre code svg[data-marp-fitting='svg'] { + max-height: calc(580px - 1em); +} + +blockquote { + margin: 1em 0 0 0; + padding: 0 1em; + position: relative; + color: var(--dracula-orange); +} +blockquote::after, +blockquote::before { + content: '“'; + display: block; + font-family: 'Times New Roman', serif; + font-weight: bold; + position: absolute; + color: var(--dracula-green); +} +blockquote::before { + top: 0; + left: 0; +} +blockquote::after { + right: 0; + bottom: 0; + transform: rotate(180deg); +} +blockquote > *:first-child { + margin-top: 0; +} + +mark { + background: transparent; +} + +table { + border-spacing: 0; + border-collapse: collapse; + margin: 1em 0 0 0; +} +table th, +table td { + padding: 0.2em 0.4em; + border-width: 1px; + border-style: solid; +} + +section { + font-size: 35px; + font-family: 'IBM Plex Sans'; + line-height: 1.35; + letter-spacing: 1.25px; + padding: 70px; + color: var(--dracula-foreground); + background-color: var(--dracula-background); +} +section > *:first-child, +section > header:first-child + * { + margin-top: 0; +} +section a, +section mark { + color: var(--dracula-red); +} +section code { + background: var(--dracula-current-line); + color: var(--dracula-current-green); +} +section h1 strong, +section h2 strong, +section h3 strong, +section h4 strong, +section h5 strong, +section h6 strong { + color: var(--dracula-current-line); +} +section pre > code { + background: var(--dracula-current-line); +} +section header, +section footer, +section section::after, +section blockquote::before, +section blockquote::after { + color: var(--dracula-comment); +} +section table th, +section table td { + border-color: var(--dracula-current-line); +} +section table thead th { + background: var(--dracula-current-line); + color: var(--dracula-yellow); +} +section table tbody > tr:nth-child(even) td, +section table tbody > tr:nth-child(even) th { + background: var(--dracula-current-line); +} + +header, +footer, +section::after { + box-sizing: border-box; + font-size: 66%; + height: 70px; + line-height: 50px; + overflow: hidden; + padding: 10px 25px; + position: absolute; + color: var(--dracula-comment); +} + +header { + left: 0; + right: 0; + top: 0; +} + +footer { + left: 0; + right: 0; + bottom: 0; +} + +section::after { + right: 0; + bottom: 0; + font-size: 80%; +} diff --git a/05_typescript/.vscode/settings.json b/05_typescript/.vscode/settings.json new file mode 100644 index 0000000..5035cdb --- /dev/null +++ b/05_typescript/.vscode/settings.json @@ -0,0 +1,33 @@ +{ + "terminal.explorerKind": "external", + "terminal.external.osxExec": "iTerm.app", + "terminal.external.windowsExec": "wt.exe", + "workbench.iconTheme": "vscode-icons", + "workbench.colorTheme": "One Dark Pro", + "prettier.printWidth": 120, + "prettier.singleQuote": true, + "editor.hover.enabled": "on", + "editor.wordWrap": "on", + "explorer.confirmDelete": false, + "explorer.confirmDragAndDrop": false, + "editor.quickSuggestionsDelay": 600, + "editor.tabSize": 2, + "editor.formatOnSave": true, + "emmet.includeLanguages": { + "javascript": "javascriptreact", + "ejs": "html" + }, + "html.format.unformatted": "wbr,%", + "files.associations": { + "*.ejs": "html" + }, + "editor.fontFamily": "'MesloLGS NF', Hack, Consolas, 'Courier New', monospace", + "oneDarkPro.markdownStyle": false, + "explorer.compactFolders": false, + "workbench.editor.labelFormat": "short", + "editor.hover.delay": 800, + "editor.bracketPairColorization.enabled": true, + "editor.guides.bracketPairs": "active", + "markdown.marp.themes": ["./.vscode/marp-theme.css"], + "markdown-preview-github-styles.colorTheme": "light" +} diff --git a/05_typescript/.vscode/snippets.code-snippets b/05_typescript/.vscode/snippets.code-snippets new file mode 100644 index 0000000..259f93d --- /dev/null +++ b/05_typescript/.vscode/snippets.code-snippets @@ -0,0 +1,73 @@ +{ + "Output HTML Element": { + "scope": "html", + "prefix": "output", + "body": ["
"], + "description": "generate a div Element with output alert and alert secondary class" + }, + "Bootstrap html": { + "scope": "html", + "prefix": "!bs", + "body": [ + "", + "", + "\t", + "\t\t", + "\t\t", + "\t\t