Browse Source

Scriptear y otras cosas

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Cat /dev/Nulo 2 months ago
parent
commit
3efb0e82f7
  1. 1
      .gitignore
  2. 15
      README.md
  3. 40
      extraer.sh
  4. 4
      links
  5. 0
      maps/0.0c5b2e6a.chunk.js.map
  6. 0
      maps/6.776c1e8b.chunk.js.map
  7. 0
      maps/7.c65299ef.chunk.css.map
  8. 0
      maps/7.f024fa6c.chunk.js.map
  9. 0
      maps/8.16508763.chunk.js.map
  10. 0
      maps/main.6c5fc115.chunk.js.map
  11. 0
      maps/main.f50335e4.chunk.css.map
  12. 0
      maps/player-custom.19eb3d6e.chunk.js.map
  13. 0
      maps/playerPlugins-audio.4aa8d1ef.chunk.js.map
  14. 0
      maps/playerPlugins-audio.dcc31119.chunk.css.map
  15. 0
      maps/playerPlugins-video.4cb21404.chunk.css.map
  16. 0
      maps/playerPlugins-video.5f4c24a0.chunk.js.map
  17. 3
      package.json
  18. 14
      patches/0001-fake-process.env-config.jsx.diff
  19. 50
      patches/0002-use-details-in-accordion.diff
  20. 28
      patches/0003-fix-broken-exercises.diff
  21. 11
      patches/0004-react-render-instead-of-hydrate.diff
  22. 11
      patches/0005-no-ssr.diff
  23. 86
      source-from-sourcemaps.js
  24. 14
      sources-gen/.pnpm-debug.log
  25. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W5Plain-web/dwtheantiquab-w5plain.woff
  26. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W5Plain-web/dwtheantiquab-w5plain.woff2
  27. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W5PlainItalic-web/DWTheAntiquaB-W5PlainItalic.woff
  28. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W5PlainItalic-web/DWTheAntiquaB-W5PlainItalic.woff2
  29. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W7Bold-web/DWTheAntiquaB-W7Bold.woff
  30. 1
      sources-gen/assets/fonts/dw-theAntiquaB-W7Bold-web/DWTheAntiquaB-W7Bold.woff2
  31. 4
      sources-gen/assets/icons/DwClaim.jsx
  32. 4
      sources-gen/assets/icons/DwLogo.jsx
  33. 6
      sources-gen/assets/icons/Smiley.jsx
  34. 4
      sources-gen/assets/icons/ToggleableArrowIcon.jsx
  35. 1
      sources-gen/assets/images/bg-dw-desktop.jpg
  36. 1
      sources-gen/assets/images/landing/course_landing-1200x675.jpg
  37. 1
      sources-gen/assets/images/landing/course_landing-480x270.jpg
  38. 1
      sources-gen/assets/images/landing/course_landing-768x432.jpg
  39. 1
      sources-gen/assets/images/landing/course_landing-992x558.jpg
  40. 36
      sources-gen/assets/svg/dw-claim.svg.js
  41. 2
      sources-gen/assets/svg/dw-logo-mobile.svg.js
  42. 2
      sources-gen/assets/svg/dw-logo-tablet.svg.js
  43. 37
      sources-gen/assets/svg/dw-logo.svg.js
  44. 2
      sources-gen/assets/svg/icon-course-cert-gray.svg.js
  45. 42
      sources-gen/assets/svg/icon-hint-circle-orange.svg.js
  46. 39
      sources-gen/assets/svg/icon-hint.svg.js
  47. 43
      sources-gen/assets/svg/icon-language-world-w.svg.js
  48. 53
      sources-gen/assets/svg/icon-user-navi.svg.js
  49. 104
      sources-gen/assets/svg/keyboard.svg.js
  50. 2
      sources-gen/assets/svg/nav-cross-black-lg.svg.js
  51. 2
      sources-gen/assets/svg/nav-cross-black-md.svg.js
  52. 2
      sources-gen/assets/svg/nav-cross-lg.svg.js
  53. 2
      sources-gen/assets/svg/nav-cross-xs.svg.js
  54. 66
      sources-gen/assets/svg/smiley-negative.svg.js
  55. 57
      sources-gen/assets/svg/smiley-positive.svg.js
  56. 2
      sources-gen/assets/svg/star-gray.svg.js
  57. 2
      sources-gen/assets/svg/star-white.svg.js
  58. 41
      sources-gen/assets/svg/tick.svg.js
  59. 37
      sources-gen/assets/svg/toggleableArrow.svg.js
  60. 23
      sources-gen/components/Accordion/Accordion.jsx
  61. 111
      sources-gen/components/Accordion/AccordionItem/AccordionItem.jsx
  62. 214
      sources-gen/components/App.jsx
  63. 177
      sources-gen/components/BurgerButton/BurgerButton.jsx
  64. 44
      sources-gen/components/Checkbox/Checkbox.jsx
  65. 53
      sources-gen/components/ContentContainer/AccordionContainer.jsx
  66. 70
      sources-gen/components/ContentContainer/AccordionContainer.jsx.orig
  67. 5
      sources-gen/components/ContentContainer/ContentBottomLine/ContentBottomLine.jsx
  68. 9
      sources-gen/components/ContentContainer/ContentContainer.jsx
  69. 13
      sources-gen/components/ContentContainer/ContentHeadline/ContentHeadline.jsx
  70. 22
      sources-gen/components/ContentContainer/ContentNavTitle/ContentNavTitle.jsx
  71. 16
      sources-gen/components/ContentContainer/ContentSection/ContentSection.jsx
  72. 69
      sources-gen/components/Course/CourseHeroImage/CourseHeroImage.jsx
  73. 30
      sources-gen/components/Course/CourseList/CourseAccordion/CourseAccordion.jsx
  74. 78
      sources-gen/components/Course/CourseList/CourseHeader/CourseHeader.jsx
  75. 48
      sources-gen/components/Course/CourseList/CourseList.jsx
  76. 120
      sources-gen/components/Course/CourseList/LessionItem/LessonItem.jsx
  77. 41
      sources-gen/components/Course/CourseList/LessionItem/LessonScore.jsx
  78. 47
      sources-gen/components/Course/CourseList/LessonList/LessonList.jsx
  79. 140
      sources-gen/components/Course/CourseOverview.jsx
  80. 27
      sources-gen/components/Course/Progress/CourseProgress.jsx
  81. 25
      sources-gen/components/Course/Progress/ProgressResetButton.jsx
  82. 29
      sources-gen/components/Dashboard/Dashboard.jsx
  83. 28
      sources-gen/components/Dashboard/Tiles/Tile/BlankTile.jsx
  84. 23
      sources-gen/components/Dashboard/Tiles/Tile/MoreCoursesTile.jsx
  85. 186
      sources-gen/components/Dashboard/Tiles/Tile/Tile.jsx
  86. 56
      sources-gen/components/Dashboard/Tiles/Tiles.jsx
  87. 36
      sources-gen/components/DwPicture/DwPicture.jsx
  88. 168
      sources-gen/components/Footer/Footer.jsx
  89. 5
      sources-gen/components/GdprLayer/BrowserOnly.jsx
  90. 44
      sources-gen/components/GdprLayer/GdprLayer.jsx
  91. 40
      sources-gen/components/GoogleTagManager/GtmDataLayer.jsx
  92. 13
      sources-gen/components/GoogleTagManager/GtmLoadScript.jsx
  93. 23
      sources-gen/components/GoogleTagManager/GtmNoScriptFallback.jsx
  94. 21
      sources-gen/components/GoogleTagManager/GtmScriptWithDataLayer.jsx
  95. 139
      sources-gen/components/GoogleTagManager/TrackingUtils.jsx
  96. 18
      sources-gen/components/GoogleTagManager/hooks/useAddEmbeddingsToGtm.jsx
  97. 17
      sources-gen/components/GoogleTagManager/hooks/useMediaTracking.jsx
  98. 17
      sources-gen/components/GoogleTagManager/hooks/useMediaTracking.jsx.orig
  99. 11
      sources-gen/components/GoogleTagManager/hooks/useStaticInfoForGtm.jsx
  100. 6
      sources-gen/components/GoogleTagManager/index.jsx

1
.gitignore

@ -1 +1,2 @@
node_modules/
orig/

15
README.md

@ -1,3 +1,16 @@
# [Arreglando bugs ajenos](https://nulo.in/Arreglando%20bugs%20ajenos.html)
Pista: el código está en `sources-gen/`. Añadí la config de nginx de learngerman.nulo.in en `learngerman.nulo.in.conf`.
Este repositorio contiene los mapas descargados y assets junto a los scripts y parches para extraer y levantar con Vite. Añadí la config de nginx de learngerman.nulo.in en `learngerman.nulo.in.conf`.
## Levantar
```sh
pnpm install
./extraer.sh
pnpm run dev
# El servidor local tiene un proxy a learngerman.dw.com para la API y el login.
```
## Actualizar código
Descargar nuevos mapas a `maps/`. Extraer con `./extraer.sh`. Ver si se necesitan assets nuevos con `grep -r assets orig/`.

40
extraer.sh

@ -0,0 +1,40 @@
#!/bin/sh
big () {
echo '==================================='
echo "$1"
echo '==================================='
}
rm -rf orig
mkdir -p orig
cd orig || exit
big 'Extrayendo código de los source maps'
for f in ../maps/*.map; do
node ../source-from-sourcemaps.js "$f"
done
mv sources-gen/* .
rm -r sources-gen
# Por alguna razón un CSS se extrae ahí
cp -r src/components/* ./components/
big '.js -> .jsx'
find . -iname '*.js' -exec mv {} {}x \;
big 'Parcheando .svg'
find . -iname '*.svg' -exec sh -c '
echo "const __webpack_public_path__ = \"https://learngerman.dw.com/\";" > "${1}.js"
cat "$1" >> "${1}.js"
rm "$1"
' sh {} \;
big 'Copiando archivos de static/'
cp -r ../static/* ./
big 'Parcheando...'
for f in ../patches/*; do
echo "--> Parche $f"
patch -p1 < "$f"
done
big 'DONE. Código extraido en "orig".'

4
links

@ -1,4 +0,0 @@
https://learngerman.dw.com/static/css/main.f50335e4.chunk.css.map
https://learngerman.dw.com/static/css/7.c65299ef.chunk.css.map
https://learngerman.dw.com/static/css/playerPlugins-video.4cb21404.chunk.css.map
https://learngerman.dw.com/static/css/playerPlugins-audio.dcc31119.chunk.css.map

0
0.0c5b2e6a.chunk.js.map → maps/0.0c5b2e6a.chunk.js.map

0
6.776c1e8b.chunk.js.map → maps/6.776c1e8b.chunk.js.map

0
7.c65299ef.chunk.css.map → maps/7.c65299ef.chunk.css.map

0
7.f024fa6c.chunk.js.map → maps/7.f024fa6c.chunk.js.map

0
8.16508763.chunk.js.map → maps/8.16508763.chunk.js.map

0
main.6c5fc115.chunk.js.map → maps/main.6c5fc115.chunk.js.map

0
main.f50335e4.chunk.css.map → maps/main.f50335e4.chunk.css.map

0
player-custom.19eb3d6e.chunk.js.map → maps/player-custom.19eb3d6e.chunk.js.map

0
playerPlugins-audio.4aa8d1ef.chunk.js.map → maps/playerPlugins-audio.4aa8d1ef.chunk.js.map

0
playerPlugins-audio.dcc31119.chunk.css.map → maps/playerPlugins-audio.dcc31119.chunk.css.map

0
playerPlugins-video.4cb21404.chunk.css.map → maps/playerPlugins-video.4cb21404.chunk.css.map

0
playerPlugins-video.5f4c24a0.chunk.js.map → maps/playerPlugins-video.5f4c24a0.chunk.js.map

3
package.json

@ -1,4 +1,7 @@
{
"scripts": {
"dev": "cd orig/ && vite"
},
"dependencies": {
"@apollo/client": "^3.4.16",
"classnames": "^2.3.1",

14
patches/0001-fake-process.env-config.jsx.diff

@ -0,0 +1,14 @@
--- orig/config.jsx 2021-10-11 20:14:31.701314123 -0300
+++ sources-gen/config.jsx 2021-10-11 20:12:23.251741729 -0300
@@ -1,3 +1,11 @@
+const process = {
+ env: {
+ //REACT_APP_GRAPHQL_BASE_URL: "https://learngerman.dw.com/graphql",
+ REACT_APP_GRAPHQL_BASE_URL: import.meta.env.VITE_GRAPHQL_BASE_URL,
+ REACT_APP_RECAPTCHA_SITEKEY: null,
+ }
+}
+
const config = {
graphQL: {
baseUrl: process.env.REACT_APP_GRAPHQL_BASE_URL || '/graphql',

50
patches/0002-use-details-in-accordion.diff

@ -0,0 +1,50 @@
--- orig/components/ContentContainer/AccordionContainer.jsx 2021-10-11 20:30:09.799665485 -0300
+++ sources-gen/components/ContentContainer/AccordionContainer.jsx 2021-10-11 15:49:17.793082410 -0300
@@ -6,43 +6,26 @@
import { useTranslation } from '../../hooks/useTranslation';
export const AccordionContainer = ({ title, children, className }) => {
- const element = useRef(null);
- const [isOpen, { toggleOnClick }] = useToggle();
- const height = element.current ? element.current.scrollHeight : '0';
const titleTranslation = useTranslation(title);
return (
- <div className={className}>
- <div className="row noVMargins">
+ <details className={className}>
+ <summary className="row noVMargins">
<div className="col-sm-offset-1 col-sm-10 col-lg-offset-2 col-lg-8">
- <button tabIndex={0} onClick={toggleOnClick}>
<h4>
{titleTranslation}
- <ToggleableArrow
- className="toggleable-arrow"
- fill={colors.LG_BLACK}
- {...{
- isUp: isOpen,
- }}
- />
</h4>
- </button>
</div>
- </div>
+ </summary>
<AccordionContainerContent
- height={height}
- isOpen={isOpen}
- ref={element}
- aria-expanded={isOpen}
>
{children}
</AccordionContainerContent>
- </div>
+ </details>
);
};
export const AccordionContainerContent = styled.div`
- max-height: ${({ isOpen, height }) => (isOpen ? height : '1')}px;
overflow: hidden;
background-color: ${colors.LG_WHITE};
transition: max-height 0.7s;

28
patches/0003-fix-broken-exercises.diff

@ -0,0 +1,28 @@
--- orig/components/Lesson/LessonExercise/LessonExerciseItem/LessonExerciseItem.jsx 2021-10-11 20:29:07.983390638 -0300
+++ sources-gen/components/Lesson/LessonExercise/LessonExerciseItem/LessonExerciseItem.jsx 2021-10-11 14:15:46.480142077 -0300
@@ -91,12 +91,20 @@
<MediaInputAudio data={data} />
</div>
);
+ // XXX: Here is the problem. These exercises return inputType == 'VIDEO'
+ // even though they don't have any videos (videos == []) causing some
+ // code that assumes that there is a video inside videos to fail
+ // (the MediaInputVideo component.)
case 'VIDEO':
- return (
- <div className="input-header-video">
- <MediaInputVideo data={data} />
- </div>
- );
+ // This "if" is our patch. If it isn't true, it fallsthrough to the default
+ // behaviour (returning null.)
+ if (data.content.videos.length > 0) {
+ return (
+ <div className="input-header-video">
+ <MediaInputVideo data={data} />
+ </div>
+ );
+ }
default:
return null;
}

11
patches/0004-react-render-instead-of-hydrate.diff

@ -0,0 +1,11 @@
--- orig/index.jsx 2021-10-11 21:08:09.858345720 -0300
+++ sources-gen/index.jsx 2021-10-11 21:09:05.158218059 -0300
@@ -30,7 +30,7 @@
cache: cache.restore(window.__APOLLO_STATE__), // eslint-disable-line no-underscore-dangle
});
-ReactDOM.hydrate(
+ReactDOM.render(
<ApolloProvider client={client}>
<Provider store={store}>
<Router>

11
patches/0005-no-ssr.diff

@ -0,0 +1,11 @@
--- orig/utils/ssr.jsx 2021-10-11 21:17:02.041396123 -0300
+++ sources-gen/utils/ssr.jsx 2021-10-11 21:22:17.825984088 -0300
@@ -1,7 +1,3 @@
-function isServer() {
+export function isServer() {
return !(typeof window !== 'undefined' && window.document);
}
-// CommonJS export to be able to use it on server and client
-module.exports = {
- isServer,
-};

86
source-from-sourcemaps.js

@ -1,47 +1,61 @@
#!/usr/bin/env node
// Gracias a:
// - Código original: https://github.com/akx/source-from-sourcemaps
// - Aguante: https://gist.github.com/banyudu/b17a9cb3f05296b76a9f3051f66c3dcd
// - Algoritmo: https://github.com/rarecoil/unwebpack-sourcemap
const fs = require("fs");
const util = require("util");
const writeFileP = util.promisify(fs.writeFile);
const readFileP = util.promisify(fs.readFile);
const mkdirp = require("mkdirp");
const path = require("path");
const { SourceMapConsumer } = require("source-map");
const minimist = require("minimist");
async function processSource(consumer, src) {
const fsSrc =
"sources-gen/" +
src
.replace(/webpack:\/\/\//, "")
.replace(/~\//, "node_modules/")
.replace(/\?.+$/, "");
const source = consumer.sourceContentFor(src, true);
if (!source) {
console.warn("Unable to source:", src);
return;
}
await mkdirp(path.dirname(fsSrc));
await writeFileP(fsSrc, source, "UTF-8");
console.log(`Wrote ${fsSrc}`);
const fs = require("fs")
const util = require("util")
const writeFileP = util.promisify(fs.writeFile)
const readFileP = util.promisify(fs.readFile)
const mkdirP = util.promisify(fs.mkdir)
const path = require("path")
const { SourceMapConsumer } = require("source-map")
const outputDir = 'sources-gen'
function sanitizePath (path) {
let newPath = path
.replace(/^webpack:\/\/\/?/, "")
.replace(/~\//, "node_modules/")
.replace(/\?.+$/, "")
.replace(/\.\.\//g, 'parent_dir/')
.replace(/\.\//g, '')
return newPath
}
async function processFile(pth) {
const data = await readFileP(pth, "UTF-8");
return await SourceMapConsumer.with(data, null, async (consumer) => {
const processors = consumer.sources.map((src) =>
processSource(consumer, src)
);
return await Promise.all(processors);
});
const data = await readFileP(pth, "UTF-8");
const consumer = await new SourceMapConsumer(data);
const processors = consumer.sources.map(async (src) => {
const fsSrc = path.join(
outputDir,
sanitizePath(src)
)
if (fsSrc.includes('node_modules')) {
console.warn(`Not saving ${fsSrc} because it is node_modules`)
return
}
const source = consumer.sourceContentFor(src, true)
if (!source) {
console.warn("Unable to source", src)
return
}
await mkdirP(path.dirname(fsSrc), { recursive: true })
await writeFileP(fsSrc, source, "UTF-8")
console.log(`Wrote ${fsSrc}`)
})
await Promise.all(processors)
consumer.destroy();
}
async function main() {
const args = minimist(process.argv.slice(2));
const processors = args._.map((pth) => processFile(pth));
return await Promise.all(processors);
function main() {
return processFile(process.argv[2])
}
if (!module.parent) {
main().then(() => process.exit(0));
main().then(() => process.exit(0));
}

14
sources-gen/.pnpm-debug.log

@ -1,14 +0,0 @@
{
"0 debug pnpm:scope": {
"selected": 1
},
"1 error pnpm": {
"code": "ERR_PNPM_NO_SCRIPT",
"err": {
"name": "pnpm",
"message": "Missing script: vite",
"code": "ERR_PNPM_NO_SCRIPT",
"stack": "pnpm: Missing script: vite\n at Object.handler (/home/nulo/.npm/prefix/lib/node_modules/pnpm/dist/pnpm.cjs:129183:15)\n at async /home/nulo/.npm/prefix/lib/node_modules/pnpm/dist/pnpm.cjs:133329:20\n at async run (/home/nulo/.npm/prefix/lib/node_modules/pnpm/dist/pnpm.cjs:133304:34)\n at async runPnpm (/home/nulo/.npm/prefix/lib/node_modules/pnpm/dist/pnpm.cjs:133514:5)\n at async /home/nulo/.npm/prefix/lib/node_modules/pnpm/dist/pnpm.cjs:133506:7"
}
}
}

1
sources-gen/assets/fonts/dw-theAntiquaB-W5Plain-web/dwtheantiquab-w5plain.woff

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/dwtheantiquab-w5plain.94c5b804.woff";

1
sources-gen/assets/fonts/dw-theAntiquaB-W5Plain-web/dwtheantiquab-w5plain.woff2

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/dwtheantiquab-w5plain.524a5eac.woff2";

1
sources-gen/assets/fonts/dw-theAntiquaB-W5PlainItalic-web/DWTheAntiquaB-W5PlainItalic.woff

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/DWTheAntiquaB-W5PlainItalic.0c806fe1.woff";

1
sources-gen/assets/fonts/dw-theAntiquaB-W5PlainItalic-web/DWTheAntiquaB-W5PlainItalic.woff2

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/DWTheAntiquaB-W5PlainItalic.390937af.woff2";

1
sources-gen/assets/fonts/dw-theAntiquaB-W7Bold-web/DWTheAntiquaB-W7Bold.woff

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/DWTheAntiquaB-W7Bold.73a35783.woff";

1
sources-gen/assets/fonts/dw-theAntiquaB-W7Bold-web/DWTheAntiquaB-W7Bold.woff2

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/DWTheAntiquaB-W7Bold.c739cf0d.woff2";

4
sources-gen/assets/icons/DwClaim.jsx

@ -1,4 +0,0 @@
import styled from 'styled-components';
import { ReactComponent as ClaimLogo } from '../svg/dw-claim.svg';
export const StyledClaimLogo = styled(props => <ClaimLogo {...props} />)``;

4
sources-gen/assets/icons/DwLogo.jsx

@ -1,4 +0,0 @@
import styled from 'styled-components';
import { ReactComponent as Logo } from '../svg/dw-logo.svg';
export const StyledLogo = styled(props => <Logo {...props} />)``;

6
sources-gen/assets/icons/Smiley.jsx

@ -1,6 +0,0 @@
import styled from 'styled-components';
import { ReactComponent as SmileyPositive } from '../svg/smiley-positive.svg';
import { ReactComponent as SmileyNegative } from '../svg/smiley-negative.svg';
export const StyledSmileyPositive = styled(SmileyPositive)``;
export const StyledSmileyNegative = styled(SmileyNegative)``;

4
sources-gen/assets/icons/ToggleableArrowIcon.jsx

@ -1,4 +0,0 @@
import styled from 'styled-components';
import { ReactComponent as ToggleableArrowIcon } from '../svg/toggleableArrow.svg';
export const StyledToggleableArrowIcon = styled(props => <ToggleableArrowIcon {...props} />)``;

1
sources-gen/assets/images/bg-dw-desktop.jpg

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/bg-dw-desktop.4aec073f.jpg";

1
sources-gen/assets/images/landing/course_landing-1200x675.jpg

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/course_landing-1200x675.f68dc5b5.jpg";

1
sources-gen/assets/images/landing/course_landing-480x270.jpg

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/course_landing-480x270.5a82869e.jpg";

1
sources-gen/assets/images/landing/course_landing-768x432.jpg

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/course_landing-768x432.d54bc099.jpg";

1
sources-gen/assets/images/landing/course_landing-992x558.jpg

@ -1 +0,0 @@
export default __webpack_public_path__ + "static/media/course_landing-992x558.4309e861.jpg";

36
sources-gen/assets/svg/dw-claim.svg.js

File diff suppressed because one or more lines are too long

2
sources-gen/assets/svg/dw-logo-mobile.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/dw-logo-mobile.7e6e58ec.svg";

2
sources-gen/assets/svg/dw-logo-tablet.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/dw-logo-tablet.ac032dbb.svg";

37
sources-gen/assets/svg/dw-logo.svg.js

@ -1,37 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
var _ref2 = /*#__PURE__*/React.createElement("g", {
className: "logoBox",
fillRule: "evenodd"
}, /*#__PURE__*/React.createElement("g", {
className: "logoLogo"
}, /*#__PURE__*/React.createElement("path", {
d: "M15.5929091,3.39736364 C22.287,3.39736364 27.714,8.82381818 27.714,15.5184545 C27.714,22.2125455 22.287,27.6392727 15.5929091,27.6392727 C8.89881818,27.6392727 3.47181818,22.2125455 3.47181818,15.5184545 C3.47181818,8.82381818 8.89881818,3.39736364 15.5929091,3.39736364 L15.5929091,3.39736364 Z M26.9959091,5.16463636 C29.8276364,1.99527273 33.9458182,0 38.5303636,0 C47.0694545,0 53.9920909,6.92236364 53.9920909,15.4617273 C53.9920909,24.0010909 47.0694545,30.9234545 38.5303636,30.9234545 C33.9458182,30.9234545 29.8276364,28.9281818 26.9959091,25.7585455 C24.1644545,28.9281818 20.046,30.9234545 15.4614545,30.9234545 C6.92209091,30.9234545 0,24.0010909 0,15.4617273 C0,6.92236364 6.92209091,1.93784382e-15 15.4614545,1.93784382e-15 C20.046,1.93784382e-15 24.1644545,1.99527273 26.9959091,5.16463636 L26.9959091,5.16463636 Z M15.9913636,13.0819091 L12.6553636,13.0819091 L12.6553636,18.0845455 L15.9913636,18.0845455 C18.4150909,18.0845455 19.2714545,17.0787273 19.2714545,15.5833636 C19.2714545,14.088 18.4085455,13.0819091 15.9913636,13.0819091 L15.9913636,13.0819091 Z M16.4511818,9.59536364 C19.8250909,9.59536364 23.2835455,11.292 23.2835455,15.5828182 C23.2835455,19.8739091 19.8250909,21.5705455 16.4511818,21.5705455 L8.886,21.5705455 L8.886,9.59536364 L16.4511818,9.59536364 L16.4511818,9.59536364 Z M35.4119983,15.9318147 L37.5403715,10.1204985 L40.4334297,10.1204985 L42.5618029,15.9318147 L44.2678615,10.1204985 L48.0692727,10.1204985 L44.4908946,21.3263197 L41.2676315,21.3263197 L38.9674938,15.9016908 L36.7070387,21.3263197 L33.483486,21.3263197 L29.9048182,10.1204985 L33.7062294,10.1204985 L35.4119983,15.9318147 L35.4119983,15.9318147 Z",
id: "Shape"
})));
function SvgDwLogo(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
viewBox: "0 0 54 31",
xmlns: "http://www.w3.org/2000/svg",
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, _ref2);
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgDwLogo);
export default __webpack_public_path__ + "static/media/dw-logo.ff9012af.svg";
export { ForwardRef as ReactComponent };

2
sources-gen/assets/svg/icon-course-cert-gray.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/icon-course-cert-gray.0fdcab0c.svg";

42
sources-gen/assets/svg/icon-hint-circle-orange.svg.js

@ -1,42 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
function SvgIconHintCircleOrange(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "18px",
height: "18px",
viewBox: "0 0 18 18",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
xmlSpace: "preserve",
style: {
fillRule: "evenodd",
clipRule: "evenodd",
strokeLinejoin: "round",
strokeMiterlimit: 1.41421
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("path", {
d: "M9,0C13.967,0 18,4.033 18,9C18,13.967 13.967,18 9,18C4.033,18 0,13.967 0,9C0,4.033 4.033,0 9,0ZM12.189,14.994L12.189,14.343L10.027,13.623L10.027,6.966C8.269,6.966 7.525,7.069 6.206,7.289L6.206,7.903C7.113,8.041 7.538,8.144 7.977,8.337L7.977,13.657C7.181,13.849 6.502,14.013 5.87,14.343L5.87,14.994L12.189,14.994ZM8.984,5.417C8.544,5.417 8.31,5.322 8.007,5.02C7.705,4.718 7.61,4.484 7.61,4.044C7.61,3.605 7.705,3.37 8.007,3.068C8.31,2.765 8.544,2.67 8.984,2.67C9.424,2.67 9.657,2.765 9.96,3.068C10.262,3.37 10.357,3.605 10.357,4.044C10.357,4.484 10.262,4.718 9.96,5.02C9.657,5.322 9.424,5.417 8.984,5.417Z",
style: {
fill: "#f08c00"
}
}));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconHintCircleOrange);
export default __webpack_public_path__ + "static/media/icon-hint-circle-orange.764164ab.svg";
export { ForwardRef as ReactComponent };

39
sources-gen/assets/svg/icon-hint.svg.js

@ -1,39 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
function SvgIconHint(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "10px",
height: "18px",
viewBox: "0 0 10 18",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
style: {
fillRule: "evenodd"
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("path", {
d: "M369.101562,1457.80899 L369.101562,1456.85041 C369.918135,1456.42437 370.841202,1456.08709 371.870793,1455.83857 L371.870793,1448.22319 C371.302743,1447.97467 370.432929,1447.76165 369.261326,1447.58413 L369.261326,1446.67881 C370.965476,1446.39478 372.953622,1446.25277 375.225823,1446.25277 L375.225823,1455.83857 L378.101562,1456.85041 L378.101562,1457.80899 L369.101562,1457.80899 Z M373.308663,1444.17585 C372.740613,1444.17585 372.261328,1443.98059 371.870793,1443.59005 C371.480259,1443.19952 371.284994,1442.72023 371.284994,1442.15218 C371.284994,1441.58413 371.480259,1441.10485 371.870793,1440.71431 C372.261328,1440.32378 372.740613,1440.12851 373.308663,1440.12851 C373.876713,1440.12851 374.355998,1440.32378 374.746533,1440.71431 C375.137067,1441.10485 375.332332,1441.58413 375.332332,1442.15218 C375.332332,1442.72023 375.137067,1443.19952 374.746533,1443.59005 C374.355998,1443.98059 373.876713,1444.17585 373.308663,1444.17585 L373.308663,1444.17585 Z",
style: {
fill: "#f08c00"
},
transform: "translate(-369.000000, -1440.000000)"
}));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconHint);
export default __webpack_public_path__ + "static/media/icon-hint.484f8f25.svg";
export { ForwardRef as ReactComponent };

43
sources-gen/assets/svg/icon-language-world-w.svg.js

@ -1,43 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
function SvgIconLanguageWorldW(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "16px",
height: "16px",
viewBox: "0 0 16 16",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
xmlSpace: "preserve",
style: {
fillRule: "evenodd",
clipRule: "evenodd",
strokeLinejoin: "round",
strokeMiterlimit: 1.41421
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("path", {
d: "M7.976,0.026c-1.443,0 -2.784,0.36 -4.021,1.082c-1.208,0.707 -2.165,1.665 -2.872,2.873c-0.722,1.252 -1.083,2.599 -1.083,4.043c0,1.443 0.361,2.784 1.083,4.021c0.707,1.208 1.664,2.165 2.872,2.872c1.237,0.722 2.578,1.083 4.021,1.083c1.444,0 2.784,-0.361 4.021,-1.083c1.208,-0.707 2.166,-1.664 2.873,-2.872c0.736,-1.237 1.104,-2.578 1.104,-4.021c0,-1.444 -0.36,-2.784 -1.082,-4.021c-0.707,-1.208 -1.665,-2.166 -2.873,-2.873c-1.252,-0.736 -2.599,-1.104 -4.043,-1.104Zm3.005,6.451c1.208,-0.25 2.268,-0.641 3.182,-1.171c0.383,0.855 0.574,1.76 0.574,2.718c0,1.149 -0.272,2.209 -0.817,3.181c-0.973,-0.486 -1.974,-0.832 -3.005,-1.038c0.088,-0.692 0.132,-1.407 0.132,-2.143c0,-0.53 -0.022,-1.046 -0.066,-1.547Zm2.629,-2.165c-0.942,0.398 -1.878,0.677 -2.806,0.84c-0.25,-1.429 -0.648,-2.659 -1.193,-3.69c0.825,0.206 1.584,0.556 2.276,1.049c0.692,0.494 1.267,1.094 1.723,1.801Zm-3.734,3.712c0,0.781 -0.037,1.429 -0.11,1.944c-0.634,-0.073 -1.23,-0.11 -1.79,-0.11c-0.56,0 -1.156,0.037 -1.789,0.11c-0.074,-0.692 -0.111,-1.34 -0.111,-1.944c0,-0.309 0.015,-0.759 0.044,-1.348c0.516,0.074 1.138,0.111 1.867,0.111c0.729,0 1.344,-0.037 1.845,-0.111c0.03,0.589 0.044,1.039 0.044,1.348Zm-1.414,-6.739c0.589,1.178 0.995,2.526 1.215,4.043c-0.736,0.059 -1.303,0.089 -1.701,0.089c-0.398,0 -0.965,-0.03 -1.701,-0.089c0.236,-1.517 0.641,-2.865 1.215,-4.043c0.103,-0.015 0.265,-0.022 0.486,-0.022c0.221,0 0.383,0.007 0.486,0.022Zm-2.121,0.177c-0.56,1.09 -0.957,2.32 -1.193,3.69c-0.972,-0.192 -1.907,-0.472 -2.806,-0.84c0.471,-0.707 1.05,-1.307 1.734,-1.801c0.685,-0.493 1.44,-0.843 2.265,-1.049Zm-4.551,3.844c0.942,0.53 2.003,0.921 3.181,1.171c-0.044,0.501 -0.066,1.017 -0.066,1.547c0,0.736 0.044,1.451 0.133,2.143c-1.032,0.206 -2.033,0.552 -3.005,1.038c-0.531,-0.986 -0.796,-2.047 -0.796,-3.181c0,-0.943 0.184,-1.849 0.553,-2.718Zm0.906,6.894c0.824,-0.324 1.679,-0.56 2.563,-0.707c0.235,1.119 0.596,2.143 1.082,3.071c-0.722,-0.192 -1.395,-0.49 -2.021,-0.895c-0.627,-0.405 -1.168,-0.895 -1.624,-1.469Zm4.794,2.541c-0.486,-0.973 -0.854,-2.114 -1.105,-3.425c0.531,-0.044 1.068,-0.066 1.613,-0.066c0.545,0 1.068,0.022 1.569,0.066c-0.25,1.311 -0.619,2.452 -1.105,3.425c-0.103,0.014 -0.265,0.022 -0.486,0.022c-0.221,0 -0.383,-0.008 -0.486,-0.022Zm2.121,-0.177c0.486,-0.928 0.847,-1.952 1.083,-3.071c0.898,0.147 1.76,0.383 2.585,0.707c-0.471,0.589 -1.02,1.086 -1.646,1.491c-0.626,0.405 -1.3,0.696 -2.022,0.873Z",
style: {
fill: "#fff",
fillRule: "nonzero"
}
}));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconLanguageWorldW);
export default __webpack_public_path__ + "static/media/icon-language-world-w.bb8502bb.svg";
export { ForwardRef as ReactComponent };

53
sources-gen/assets/svg/icon-user-navi.svg.js

@ -1,53 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
var _ref2 = /*#__PURE__*/React.createElement("desc", null, "Person Icon");
var _ref3 = /*#__PURE__*/React.createElement("g", {
id: "Seiten",
stroke: "none",
strokeWidth: 1,
fill: "none",
fillRule: "evenodd",
opacity: 1
}, /*#__PURE__*/React.createElement("g", {
id: "06-desk-lektionsinfo+burger",
transform: "translate(-1146.000000, -501.000000)",
fill: "#FFFFFF"
}, /*#__PURE__*/React.createElement("g", {
id: "burgernavi-d",
transform: "translate(920.000000, 170.000000)"
}, /*#__PURE__*/React.createElement("path", {
d: "M241.86087,345.655072 C239.603853,344.603859 238.150728,344.078261 237.501449,344.078261 L233.976812,345.284058 L230.35942,344.078261 C230.081158,344.078261 229.578748,344.209661 228.852174,344.472464 C228.1256,344.735267 227.468602,344.990337 226.881159,345.237681 L226,345.655072 L226,347 L241.86087,347 L241.86087,345.655072 Z M229.988406,340.507246 C231.008701,342.64059 232.338156,343.707246 233.976812,343.707246 C235.584549,343.707246 236.898546,342.64059 237.918841,340.507246 C238.289857,340.383574 238.591303,339.997105 238.823188,339.347826 C239.055074,338.698547 239.155556,338.072467 239.124638,337.469565 C239.09372,336.866664 238.954591,336.565217 238.707246,336.565217 C239.047345,335.606758 239.047345,334.802902 238.707246,334.153623 C238.676328,334.060869 238.629952,333.944928 238.568116,333.805797 C238.50628,333.666666 238.343963,333.419325 238.081159,333.063768 C237.818356,332.708211 237.524639,332.391306 237.2,332.113043 C236.875361,331.834781 236.427056,331.579711 235.855072,331.347826 C235.283089,331.115941 234.657008,331 233.976812,331 C232.925599,331 231.998072,331.262799 231.194203,331.788406 C230.390334,332.314012 229.849277,332.839611 229.571014,333.365217 L229.2,334.153623 L229.153623,334.292754 C229.122705,334.35459 229.099517,334.455072 229.084058,334.594203 C229.068599,334.733334 229.05314,334.887922 229.037681,335.057971 C229.022222,335.22802 229.029952,335.444443 229.06087,335.707246 C229.091788,335.97005 229.138164,336.256037 229.2,336.565217 C228.952656,336.565217 228.813527,336.866664 228.782609,337.469565 C228.751691,338.072467 228.852173,338.698547 229.084058,339.347826 C229.315943,339.997105 229.617389,340.383574 229.988406,340.507246 L229.988406,340.507246 Z M230.127536,335.776812 C230.127536,335.684058 230.166183,335.591305 230.243478,335.498551 C230.320773,335.405797 230.552655,335.282126 230.93913,335.127536 C231.325606,334.972946 231.889851,335.05024 232.631884,335.35942 C233.373917,335.637683 234.085021,335.714976 234.765217,335.591304 C235.445414,335.467632 235.971013,335.313044 236.342029,335.127536 C236.713045,334.942028 236.991303,334.756523 237.176812,334.571014 C237.331402,334.571014 237.462801,334.764249 237.571014,335.150725 C237.679228,335.5372 237.733333,335.869564 237.733333,336.147826 L237.733333,337.353623 C237.918842,337.353623 238.042512,337.369082 238.104348,337.4 C238.166184,337.430918 238.197101,337.570047 238.197101,337.817391 C238.197101,338.064736 238.135266,338.435746 238.011594,338.930435 C237.733332,339.456041 237.455074,339.718841 237.176812,339.718841 C237.084058,339.966185 236.952658,340.259902 236.782609,340.6 C236.61256,340.940098 236.257008,341.403862 235.715942,341.991304 C235.174877,342.578747 234.595172,342.872464 233.976812,342.872464 C233.358451,342.872464 232.786476,342.609664 232.26087,342.084058 C231.735263,341.558451 231.364252,341.032853 231.147826,340.507246 L230.823188,339.718841 C230.699516,339.718841 230.560387,339.649276 230.405797,339.510145 C230.251207,339.371014 230.127537,339.239614 230.034783,339.115942 L229.895652,338.930435 C229.61739,337.879222 229.694684,337.353623 230.127536,337.353623 L230.127536,335.776812 Z",
id: "Shape"
}))));
function SvgIconUserNavi(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "16px",
height: "16px",
viewBox: "0 0 16 16",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
ref: svgRef,
"aria-labelledby": titleId
}, props), title === undefined ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, "Avatar") : title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, _ref2, _ref3);
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconUserNavi);
export default __webpack_public_path__ + "static/media/icon-user-navi.68643217.svg";
export { ForwardRef as ReactComponent };

104
sources-gen/assets/svg/keyboard.svg.js

@ -1,104 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
var _ref2 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 2,
y: 6
});
var _ref3 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 5,
y: 6
});
var _ref4 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 8,
y: 6
});
var _ref5 = /*#__PURE__*/React.createElement("path", {
d: "m 11,6 3,0 0,5 -2,0 0,-3 -1,0 z"
});
var _ref6 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 12,
y: 12
});
var _ref7 = /*#__PURE__*/React.createElement("rect", {
width: 6,
height: 2,
x: 5,
y: 12
});
var _ref8 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 9,
y: 9
});
var _ref9 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 6,
y: 9
});
var _ref10 = /*#__PURE__*/React.createElement("rect", {
width: 2,
height: 2,
x: 2,
y: 12
});
var _ref11 = /*#__PURE__*/React.createElement("rect", {
width: 3,
height: 2,
x: 2,
y: 9
});
function SvgKeyboard(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
xmlns: "http://www.w3.org/2000/svg",
width: 16,
height: 16,
style: {
fill: "#888"
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
style: {
fill: "none",
stroke: "#888"
},
d: "M 0.5,4.5 15.5,4.5 15.5,15.5 0.5,15.5 Z"
}), _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeyboard);
export default __webpack_public_path__ + "static/media/keyboard.3a060932.svg";
export { ForwardRef as ReactComponent };

2
sources-gen/assets/svg/nav-cross-black-lg.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/nav-cross-black-lg.4c2e3c0d.svg";

2
sources-gen/assets/svg/nav-cross-black-md.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/nav-cross-black-md.f5825c8f.svg";

2
sources-gen/assets/svg/nav-cross-lg.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/nav-cross-lg.a759f43e.svg";

2
sources-gen/assets/svg/nav-cross-xs.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/nav-cross-xs.fec778ad.svg";

66
sources-gen/assets/svg/smiley-negative.svg.js

@ -1,66 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
function SvgSmileyNegative(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "100%",
height: "100%",
viewBox: "0 0 55 54",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
xmlSpace: "preserve",
style: {
fillRule: "evenodd",
clipRule: "evenodd",
strokeLinejoin: "round",
strokeMiterlimit: 1.41421
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("circle", {
className: "dot",
cx: 27.5,
cy: 27,
r: 27,
style: {
fill: "#A9A094"
}
}), /*#__PURE__*/React.createElement("g", {
id: "face"
}, /*#__PURE__*/React.createElement("circle", {
cx: 18.5,
cy: 18.5,
r: 3.5,
style: {
fill: "#fff"
}
}), /*#__PURE__*/React.createElement("circle", {
cx: 36.5,
cy: 18.5,
r: 3.5,
style: {
fill: "#fff"
}
}), /*#__PURE__*/React.createElement("path", {
d: "M40.902,32.312l-26.41,5.613l0.624,2.935l26.41,-5.614l-0.624,-2.934Z",
style: {
fill: "#fff"
}
})));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmileyNegative);
export default __webpack_public_path__ + "static/media/smiley-negative.6c289ab6.svg";
export { ForwardRef as ReactComponent };

57
sources-gen/assets/svg/smiley-positive.svg.js

@ -1,57 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
function SvgSmileyPositive(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
width: "100%",
height: "100%",
viewBox: "0 0 55 54",
xmlns: "http://www.w3.org/2000/svg",
xmlnsXlink: "http://www.w3.org/1999/xlink",
xmlSpace: "preserve",
style: {
fillRule: "evenodd",
clipRule: "evenodd",
strokeLinejoin: "round",
strokeMiterlimit: 1.41421
},
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, /*#__PURE__*/React.createElement("circle", {
className: "dot",
cx: 27.5,
cy: 27,
r: 27,
style: {
fill: "#A9A094"
}
}), /*#__PURE__*/React.createElement("g", {
id: "face"
}, /*#__PURE__*/React.createElement("path", {
d: "M26.439,37.092l-11.313,-11.314l-2.829,2.829l11.314,11.313l2.828,-2.828Z",
style: {
fill: "#fff"
}
}), /*#__PURE__*/React.createElement("path", {
d: "M39.874,18l-19.092,19.092l2.829,2.828l19.092,-19.092l-2.829,-2.828Z",
style: {
fill: "#fff"
}
})));
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmileyPositive);
export default __webpack_public_path__ + "static/media/smiley-positive.3d91069e.svg";
export { ForwardRef as ReactComponent };

2
sources-gen/assets/svg/star-gray.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/star-gray.84ad33dd.svg";

2
sources-gen/assets/svg/star-white.svg.js

@ -1,2 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
export default __webpack_public_path__ + "static/media/star-white.d32dc96a.svg";

41
sources-gen/assets/svg/tick.svg.js

@ -1,41 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
var _ref2 = /*#__PURE__*/React.createElement("g", {
fill: "none",
fillRule: "evenodd"
}, /*#__PURE__*/React.createElement("path", {
d: "M-2.5-2.5h17v17h-17z"
}), /*#__PURE__*/React.createElement("path", {
fill: "#FFF",
d: "M12.906 1.219C7.434 4.9 5.47 10.25 5.47 10.25H4.406S2.581 7.472.688 6.531l.53-1.062c2.089.469 3.72 1.593 3.72 1.593s1.78-3.61 7.437-6.906l.531 1.063z"
}), /*#__PURE__*/React.createElement("path", {
d: "M-4 16h20V-4H-4z"
}));
function SvgTick(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
xmlns: "http://www.w3.org/2000/svg",
width: 13,
height: 11,
viewBox: "0 0 13 11",
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, _ref2);
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgTick);
export default __webpack_public_path__ + "static/media/tick.adf0c598.svg";
export { ForwardRef as ReactComponent };

37
sources-gen/assets/svg/toggleableArrow.svg.js

@ -1,37 +0,0 @@
const __webpack_public_path__ = "https://learngerman.dw.com/";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import * as React from "react";
var _ref2 = /*#__PURE__*/React.createElement("g", {
className: "arrowBox",
fillRule: "evenodd"
}, /*#__PURE__*/React.createElement("g", {
className: "arrowArrow",
transform: "translate(12, 12), rotate(0 0 0) scale(1.0)"
}, /*#__PURE__*/React.createElement("polygon", {
points: "12 -4.7125 0 4.9375 -12 -4.6875 -10.375 -5.5 0 0.125 10.375 -5.5"
})));
function SvgToggleableArrow(_ref, svgRef) {
var title = _ref.title,
titleId = _ref.titleId,
props = _objectWithoutProperties(_ref, ["title", "titleId"]);
return /*#__PURE__*/React.createElement("svg", _extends({
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg",
ref: svgRef,
"aria-labelledby": titleId
}, props), title ? /*#__PURE__*/React.createElement("title", {
id: titleId
}, title) : null, _ref2);
}
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgToggleableArrow);
export default __webpack_public_path__ + "static/media/toggleableArrow.a17a06a6.svg";
export { ForwardRef as ReactComponent };

23
sources-gen/components/Accordion/Accordion.jsx

@ -1,23 +0,0 @@
import styled from 'styled-components';
import { StyledAccordionItem as AccordionItem } from './AccordionItem/AccordionItem';
import { grammarOverviewColors } from '../../constants/grammarOverviewColors';
export const Accordion = ({ className, data }) => {
return (
<div className={className}>
{data.map((accordionData, index) => (
<AccordionItem
key={accordionData.id}
backgroundColor={grammarOverviewColors[index % grammarOverviewColors.length]}
title={accordionData.headline}
contents={accordionData.grammars}
className={className}
/>
))}
</div>
);
};
export const StyledAccordion = styled(Accordion)`
display: block;
`;

111
sources-gen/components/Accordion/AccordionItem/AccordionItem.jsx

@ -1,111 +0,0 @@
import { useRef } from 'react';
import styled from 'styled-components';
import { Link } from 'react-router-dom';
import { useToggle } from '../../../hooks/useToggle';
import { colors, resolutions } from '../../../utils/css';
import { StyledToggleableArrow as ToggleableArrow } from '../../ToggleableArrow/ToggleableArrow';
import { I18nText } from '../../I18n/I18nText';
import { getContentUrl } from '../../../utils/url/urlFactory';
export const AccordionItem = ({ title, contents, className }) => {
const element = useRef(null);
const [isOpen, { toggleOnClick }] = useToggle();
const height = element.current ? element.current.scrollHeight : '0';
return (
<div className={className}>
<button tabIndex={0} className="accordionItem-btn" onClick={toggleOnClick}>
<I18nText translation={title} isA="p" className={className} />
<ToggleableArrow
className="toggleable-arrow"
fill={colors.LG_WHITE}
{...{
isUp: isOpen,
}}
/>
</button>
<AccordionItemContent height={height} isOpen={isOpen} ref={element} aria-expanded={isOpen}>
{contents.map(content => (
<div key={content.id} className="accordionItem-text">
<Link
tabIndex={isOpen ? 0 : -1}
to={getContentUrl({
id: content.id,
name: content.shortTitle,
language: content.language,
__typename: content.knowledgeType,
})}
>
{content.shortTitle}
</Link>
</div>
))}
</AccordionItemContent>
</div>
);
};
export const StyledAccordionItem = styled(AccordionItem)`
font-family: DWTheAntiquaB, Georgia, serif;
font-weight: 400;
font-size: 18px;
line-height: 25px;
text-align: left;
display: flex;
flex-direction: column;
margin: 0px;
.accordionItem-btn {
display: flex;
position: relative;
width: 100%;
padding: 20px;
background-color: ${({ backgroundColor }) => backgroundColor};
color: ${colors.LG_WHITE};
cursor: pointer;
align-items: center;
border: none;
:hover {
background-color: ${colors.LG_GRAY_9};
}
:focus {
color: ${colors.LG_BAHAMA_BLUE};
text-decoration: underline;
}
}
.toggleable-arrow {
right: 18px;
}
`;
export const AccordionItemContent = styled.div`
max-height: ${({ isOpen, height }) => (isOpen ? height : '1')}px;
overflow: hidden;
background-color: ${colors.LG_WHITE};
transition: max-height 0.7s;
.accordionItem-text {
font-size: 18px;
line-height: 25px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: ${colors.LG_GRAY_12};
a {
color: ${colors.LG_GRAY_9};
text-decoration: none;
padding: 20px;
display: block;
&:hover {
color: ${colors.LG_WHITE};
background-color: ${colors.LG_GRAY_9};
}
}
@media (max-width: ${resolutions.max.mobile}px) {
font-size: 15px;
line-height: 20px;
}
}
`;

214
sources-gen/components/App.jsx

@ -1,214 +0,0 @@
import { Redirect, Route, Switch } from 'react-router-dom';
import { useParams } from 'react-router';
import { Default404Page } from '../pages/Default404Page';
import { urlPrefixToType } from '../utils/url/url';
import { CoursePage } from '../pages/CoursePage';
import { GrammarPage } from '../pages/GrammarPage';
import { DashboardPage } from '../pages/DashboardPage';
import { GrammarOverviewPage } from '../pages/GrammarOverviewPage';
import { pathPartials } from '../utils/url/pathAnalyser';
import { LessonPage } from '../pages/LessonPage';
import {
PAGE_GRAMMAR,
PAGE_LEGAL,
PAGE_OVERVIEW,
PAGE_PASSWORD_CHANGE,
PAGE_PASSWORD_RESET,
PAGE_PLACEMENT_TEST,
PAGE_PROFILE,
PAGE_REGISTRATION,
PAGE_VOCABULARY,
PAGE_VOCABULARY_TRAINER,
PAGE_VOCABULARY_TRAINER_START,
STATUS_FEEDBACK,
} from '../utils/url/urlFactory';
import { FEEDBACK_TYPES } from '../constants/feedback';
import { RestrictedRoute } from './RestrictedRoute/RestrictedRoute';
import { ConfirmUserRegistrationContainer } from './user/ConfirmUserRegistrationContainer';
import { Registration } from './user/Registration';
import { PasswordChange } from './user/PasswordChange';
import { PasswordReset } from './user/PasswordReset';
import { StatusFeedback } from './StatusFeedback/StatusFeedback';
import { PageContainer, withPageContainerAndMetadata } from './Page/PageContainer';
import { UserProfile } from './user/UserProfile';
import { SetNewPassword } from './user/SetNewPassword';
import { PlacementTestPage } from '../pages/PlacementTestPage';
import { VocabularyTrainer } from './VocabularyTrainer/VocabularyTrainer';
import { PlacementAndFinalTestResultPage } from '../pages/PlacementAndFinalTestResultPage';
import { HelpPage } from '../pages/HelpPage';
import { GTM_NO_CONTENT_PAGE_IDS, PAGE_TYPES } from '../constants/pageTypes';
import { PageMetaData } from './Page/PageMetaData';
import { LegalPage } from '../pages/LegalPage';
import { VocabularyPage } from '../pages/VocabularyPage';
import { GtmScriptWithDataLayer } from './GoogleTagManager';
const typeToPage = {
COURSE: {
type: 'Course',
component: CoursePage,
},
GRAMMAR: {
type: 'Grammar',
component: GrammarPage,
},
LESSON: {
type: 'Lesson',
component: LessonPage,
},
PLACEMENT: {
type: 'Placement',
component: PlacementAndFinalTestResultPage,
},
FINAL: {
type: 'Final',
component: PlacementAndFinalTestResultPage,
},
};
export const ContentPage = () => {
const params = useParams();
const pageDef = typeToPage[urlPrefixToType(params.typeId)];
const Tag = pageDef.component;
return <Tag {...params} type={pageDef.type} />;
};
export const App = () => (
<Switch>
<Route
exact
path="/"
render={() => (
<Redirect
to={{
pathname: '/en/overview',
}}
/>
)}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_OVERVIEW}`}
component={DashboardPage}
/>
<Route
path={`/:langCode(${pathPartials.langCodeRegex})/:title(${pathPartials.titlePathRegex})?/l-:lessonId(${pathPartials.contentIdRegex})`}
component={LessonPage}
/>
<Route
path={`/:langCode(${pathPartials.langCodeRegex})/:title(${pathPartials.titlePathRegex})?/:typeId(${pathPartials.contentTypeRegex})-:contentId(${pathPartials.contentIdRegex})`}
component={ContentPage}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_GRAMMAR}`}
component={GrammarOverviewPage}
/>
<Route exact path={`/:langCode(${pathPartials.langCodeRegex})/help`} component={HelpPage} />
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_LEGAL}`}
component={LegalPage}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_VOCABULARY}`}
component={VocabularyPage}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_REGISTRATION}`}
render={() =>
withPageContainerAndMetadata({
component: Registration,
pageType: PAGE_TYPES.REGISTER_USER,
useDescriptionTranslation: true,
})
}
/>
<Route
path={`/:langCode(${pathPartials.langCodeRegex})/user/password/set`}
render={({ location }) => (
<PageContainer>
<PageMetaData pageType={PAGE_TYPES.PASSWORD_SET} addKeywordsAndDescription={false} />
<GtmScriptWithDataLayer noContentPageId={GTM_NO_CONTENT_PAGE_IDS.PASSWORD_SET} />
<SetNewPassword
confirmationId={new URLSearchParams(location.search).get('confirmationId')}
/>
</PageContainer>
)}
/>
<Route
path={`/:langCode(${pathPartials.langCodeRegex})/user/register/confirm`}
render={({ location }) => (
<ConfirmUserRegistrationContainer
confirmationId={new URLSearchParams(location.search).get('confirmationId')}
/>
)}
/>
<RestrictedRoute
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_PROFILE}`}
render={() =>
withPageContainerAndMetadata({
component: UserProfile,
pageType: PAGE_TYPES.USER_PROFILE,
addDescriptionAndKeywordsMeta: false,
})
}
feedbackType={FEEDBACK_TYPES.MISSING_USER_PROFILE}
/>
<RestrictedRoute
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_PASSWORD_CHANGE}`}
render={() =>
withPageContainerAndMetadata({
component: PasswordChange,
pageType: PAGE_TYPES.PASSWORD_CHANGE,
addDescriptionAndKeywordsMeta: false,
})
}
/>
<RestrictedRoute
exact
path={[
`/:langCode(${pathPartials.langCodeRegex})${PAGE_VOCABULARY_TRAINER}`,
`/:langCode(${pathPartials.langCodeRegex})${PAGE_VOCABULARY_TRAINER_START}`,
]}
render={() =>
withPageContainerAndMetadata({
component: VocabularyTrainer,
pageType: PAGE_TYPES.VOCABULARY_TRAINER,
addDescriptionAndKeywordsMeta: false,
})
}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_PASSWORD_RESET}`}
render={() =>
withPageContainerAndMetadata({
component: PasswordReset,
pageType: PAGE_TYPES.PASSWORD_RESET,
addDescriptionAndKeywordsMeta: false,
})
}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${STATUS_FEEDBACK}/:feedbackType(${pathPartials.feedbackTypes})`}
render={() =>
withPageContainerAndMetadata({
component: StatusFeedback,
pageType: PAGE_TYPES.FEEDBACK_STATUS,
addDescriptionAndKeywordsMeta: false,
})
}
/>
<Route
exact
path={`/:langCode(${pathPartials.langCodeRegex})${PAGE_PLACEMENT_TEST}`}
component={PlacementTestPage}
/>
<Route exact path={`/:langCode(${pathPartials.langCodeRegex})`} component={Default404Page} />
<Route component={Default404Page} />
</Switch>
);

177
sources-gen/components/BurgerButton/BurgerButton.jsx

@ -1,177 +0,0 @@
import styled from 'styled-components';
import { colors, resolutions } from '../../utils/css';
import navCrossBlackMd from '../../assets/svg/nav-cross-black-md.svg';
import navCrossBlackLg from '../../assets/svg/nav-cross-black-lg.svg';
import navCrossXs from '../../assets/svg/nav-cross-xs.svg';
import navCrossLg from '../../assets/svg/nav-cross-lg.svg';
import { StyledIconBar as IconBar } from '../IconBar/IconBar';
export const BurgerButton = ({
isNavMenuOpen,
toggleIsNavMenuOpen,
setIsLanguageSubMenuOpen,
className,
}) => (