Compare commits

...

94 Commits

Author SHA1 Message Date
8ec196af15 Merge pull request 'lazy img' (#14) from lazy-img into master
Reviewed-on: #14
2024-03-31 12:59:06 +02:00
69c47e3cf0 Merge branch 'master' into lazy-img 2024-03-31 12:58:59 +02:00
564a1f96e0 Merge pull request 'prevent script error' (#13) from 12_scripterror into master
Reviewed-on: #13
2024-03-31 12:58:45 +02:00
electronicfreak
dd82088551 lazy img 2024-03-31 12:55:43 +02:00
st
50f7a4c1ff prevent script error 2024-03-15 11:40:31 +01:00
electronicfreak
0798e94040 anpassung feedback 2024-02-21 21:53:25 +01:00
electronicfreak
33ec55e6f1 comment feedback minify 2024-02-21 21:15:02 +01:00
electronicfreak
deda3600c2 log css angepasst 2023-11-01 20:32:44 +01:00
electronicfreak
588347e71d copy auch für divs 2023-10-29 22:14:25 +01:00
troy
6f4c30fc7a jqury aus tablefilter ausgebaut 2023-09-03 11:27:12 +02:00
0ad2da71b2 Merge pull request 'mache flag btn größer für tablets' (#11) from feature/39_touch-flaag into master
Reviewed-on: #11
2023-06-10 22:38:35 +02:00
titz lapi
79dc248825 mache flag btn größer für tablets 2023-06-10 22:34:00 +02:00
troy
180b7ee04b admin textcolor in css heller 2022-12-19 13:19:19 +01:00
troy
ef31ee2cba admin in darkmode 2022-11-27 11:38:12 +01:00
troy
f62b83cb1a switch hoch schieben 2022-11-14 17:48:27 +01:00
0d3289a900 Merge pull request 'feature/frontlog' (#10) from feature/frontlog into master
Reviewed-on: #10
2022-11-08 18:39:06 +01:00
troy
5f60054c1f out animation 2022-11-08 18:36:15 +01:00
troy
1764bbaa24 in animation 2022-11-08 18:24:16 +01:00
Sebastian Titz
8e56887b7a push statt append 2022-11-08 15:45:36 +01:00
Sebastian Titz
2001ed947c frontlog css 2022-11-08 15:22:55 +01:00
troy
67e4e01708 frontlog, müsste so klappen, mit pipe usw 2022-11-04 21:55:15 +01:00
titz lapi
862d65c894 WIP: grundstruktur 2022-11-04 20:36:33 +01:00
troy
df5a05dfc5 flag css angepasst mehr platz für andere schriftarten 2022-10-29 12:23:38 +02:00
f9fa9974af Merge pull request 'closes #4 und etwas readme für flag.js' (#8) from feature/collect-infos into master
Reviewed-on: #8
2022-10-20 17:44:47 +02:00
troy
8575f417da closes #4 und etwas readme für flag.js 2022-10-20 17:45:31 +02:00
troy
8f8cfa4283 css uüdate für allwasy in foreground 2022-09-18 13:54:47 +02:00
troy
79cfaf0a95 no tabs 2022-07-22 23:17:46 +02:00
troy
43f2422b88 css 2022-07-21 15:15:20 +02:00
troy
bb501daeb1 flag center und abbruch wenn man auf overlay klick 2022-07-21 14:51:04 +02:00
titz lapi
bbee4c0057 dataset wird mit übertragen 2022-07-21 00:15:30 +02:00
troy
663456cbcd Merge remote-tracking branch 'origin/feature/logit' into master 2022-07-15 12:41:07 +02:00
Sebastian Titz
0fa38cc1ba Merge branch 'master' into feature/logit 2022-07-14 09:42:25 +02:00
Sebastian Titz
785286f25e Merge branch 'feature/selected-text' 2022-07-14 09:40:48 +02:00
Sebastian Titz
84535957c8 textselection 2022-07-14 09:40:04 +02:00
Sebastian Titz
240a1f999a WIP: selText 2022-07-14 09:01:28 +02:00
Sebastian Titz
7834004380 flag scrollen nur im fenster 2022-06-30 13:25:04 +02:00
titz lapi
c3c892310a feedback console logs entfernt 2022-04-08 20:07:43 +02:00
titz lapi
0691f75abf Merge branch 'master' into feature/logit 2022-04-03 16:21:54 +02:00
troy
7d9429d303 itooltip wordwrap 2022-04-03 15:32:16 +02:00
troy
e48e4c3aa6 flag links hotfix 2022-03-27 14:47:54 +02:00
troy
2999ab9408 consolen output entf 2022-03-19 12:51:40 +01:00
troy
c9597af998 logit idee, mal wieder 2022-03-18 14:10:21 +01:00
troy
cb5aba50b4 Merge branch 'master' of https://git.seemsleg.it/pub/cssjs-func-lib into master 2022-03-17 17:41:58 +01:00
troy
0110d04bd6 design optionen 2022-03-17 17:41:55 +01:00
troy
ed3bd14fc7 Merge branch 'feature/itooltip' into master 2022-03-12 23:40:38 +01:00
troy
1f76d6a942 readme 2022-03-12 23:39:58 +01:00
troy
a7c3f4dd02 fade in out css 2022-03-12 22:48:51 +01:00
troy
768e1bb464 bosschen style 2022-03-12 13:27:08 +01:00
troy
6a7a13a09c grundfunktion tooltip 2022-03-12 13:12:47 +01:00
troy
81c619228b boah ka 2022-03-11 21:33:53 +01:00
titz lapi
d4577caff3 . 2022-03-11 18:06:45 +01:00
Sebastian Titz
b07f92f492 . 2022-03-10 14:40:09 +01:00
Sebastian Titz
e890a581a4 TODOs 2022-03-10 14:21:02 +01:00
troy
15dbeee834 auflösung in flag 2022-03-06 11:50:24 +01:00
troy
90ade370d7 user agent 2022-03-06 11:42:44 +01:00
troy
c1a64450d2 Merge branch 'master' of https://git.seemsleg.it/pub/cssjs-func-lib into master 2022-03-05 23:05:29 +01:00
troy
475c959420 unTODO 2022-03-05 23:05:27 +01:00
titz lapi
d8a9ba6619 TODOs 2022-02-28 20:03:59 +01:00
titz lapi
dbe3aee539 #29 mir fehlt noch die option zu erkennen
ob hell oder dunkel
2022-02-28 19:42:34 +01:00
troy
142ba0bd8a js error readme 2022-02-27 00:12:02 +01:00
troy
ca6fb42493 Merge branch 'feature/flag-btn' into master 2022-02-26 12:53:21 +01:00
troy
3a80f86358 loift 2022-02-26 12:50:35 +01:00
troy
6535b205a3 cloasing flag 2022-02-26 12:24:52 +01:00
troy
f6f2b7ce97 open close enxportiert var sammeln 2022-02-25 22:32:32 +01:00
troy
9c14d4d9b2 screen raus, doku 2022-02-25 18:10:28 +01:00
Sebastian Titz
527c2ab882 css und für post load 2022-02-25 13:46:08 +01:00
troy
481ac50569 WIP iframe, und form angefangen 2022-02-24 22:09:30 +01:00
troy
13b1e2926f flag 2022-02-24 20:33:46 +01:00
troy
ddf8d44471 mailto in vanilla 2022-02-20 00:57:00 +01:00
troy
d318faca2c backtotop 2022-02-14 12:23:22 +01:00
troy
8170b81554 minify 2022-02-07 18:34:03 +01:00
troy
28e68b094c js error handler 2022-01-08 01:01:09 +01:00
troy
0b888cd234 feedbackresponce marker with shadow for readablility 2021-12-11 12:41:00 +01:00
Sebastian Titz
ab01311d89 ln 2021-11-24 15:08:48 +01:00
Sebastian Titz
79d82d7550 Merge branch 'master' of https://git.seemsleg.it/pub/cssjs-func-lib 2021-11-24 09:55:50 +01:00
Sebastian Titz
1ac3b335b3 lrln 2021-11-24 09:50:22 +01:00
troy
645b32d0e5 sitemap css aufhübschen 2021-11-21 11:32:14 +01:00
troy
af19c3dce2 feedback per post req 2021-11-13 10:25:06 +01:00
Sebastian Titz
2ba7e91c9c TODOs 2021-11-12 13:05:36 +01:00
troy
6204caa5ae bootstrap update 2021-10-31 13:49:51 +01:00
troy
e3e2156dc1 autosize minify 2021-10-29 20:22:06 +02:00
troy
9297e8d6bc tablefilter 2021-10-16 13:32:50 +02:00
troy
d0576188e0 add autoheight for textarea (again) 2021-09-11 09:40:55 +02:00
troy
66ce42e6e4 scopen 2021-08-08 11:38:52 +02:00
troy
2b27dd037b add gid.css und doku 2021-08-07 22:13:50 +02:00
admin
74b8e3186e bugfix 2021-07-18 20:56:41 +02:00
admin
261bf47926 cookiebanner 2021-07-18 16:19:12 +02:00
Sebastian Titz
4e5796a5d0 heading extension doku 2021-05-10 12:56:30 +02:00
94c60eacb9 pub 2021-05-10 09:59:25 +02:00
troy grunt
8326b30eca warn ungetestet 2021-01-02 16:39:55 +01:00
troy grunt
4e88d81874 feedback mit hübschen bildern
warn fehlt noch
2021-01-02 16:35:58 +01:00
troy grunt
5ec7cb3122 feedback readme und more feedbackopt 2020-12-29 18:28:09 +01:00
troy grunt
b16987ab1c Merge branch 'master' of https://git.seemsleg.it/ef/cssjs-func-lib into HEAD 2020-12-29 13:17:55 +01:00
troy grunt
34fd9baf3a initial feedback.js 2020-12-29 13:17:27 +01:00
100 changed files with 35888 additions and 1396 deletions

515
README.md
View File

@ -1,194 +1,321 @@
# cssjs\_func\_lib
## install
```
git submodule add https://git.seemsleg.it/ef/cssjs-func-lib cssjs
<link rel="stylesheet" type="text/css" href="/cssjs/admin.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/cssjs/jquery-ui.min.css" media="screen" />
<script src="/cssjs/jquery.min.js"></script>
<script src="/cssjs/jquery-ui.min.js"></script>
<script src="/cssjs/form.js"></script>
```
## Dropzone
```
<form action="/upload" class="dropzone needsclick dz-clickable" id="demo-upload">
<div class="dz-message needsclick">
<button type="button" class="dz-button">Drop files here or click to upload.</button><br>
<span class="note needsclick">(This is just a demo dropzone. Selected files are <strong>not</strong> actually uploaded.)</span>
</div>
</form>
```
## Parallax
```
<link rel="stylesheet" href="/css/parallax.css">
...
<div class="parallax" style="background-image: url(img);">&nbsp;</div>
```
## Divs anordnen
```
<script src="/cssjs/masonry.pkgd.min.js"></script>
<div class="grid">
<div class="grid-item">...</div>
<div class="grid-item grid-item--width2">...</div>
<div class="grid-item">...</div>
...
</div>
.grid-item { width: 200px; }
.grid-item--width2 { width: 400px; }
```
## Checkbox Switch
```
<link rel="stylesheet" href="/cssjs/switch.css">
<input type="checkbox" class="switch" name="publish" id="checkPub" value="1" ' . ($data ['publish'] ? 'checked="true"' : '') . ' /><label for="checkPub"></label>
```
## DateTimePicker
```
<link rel="stylesheet" type="text/css" href="/cssjs/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="/cssjs/jquery.datetimepicker.min.css">
<script src="/cssjs/jquery-ui.min.js"></script>
<script src="/cssjs/jquery.datetimepicker.full.min.js"></script>
<script>
jQuery(\'.datetime\').datetimepicker({
format:\'d.m.Y H:i\',
step:30,
onShow:function( ct ){
},
timepicker:true
});
</script>
```
## textarea autoheight
```
<textarea style="max-height: 300px;" class="autoheight"></textarea>
<script src='/cssjs/autosize.js'></script>
<script>
autosize(document.querySelectorAll('textarea.autoheight'));
</script>
```
## Copy to Clipboard
```
<script src='/cssjs/copy-to-clipboard.js'></script>
<link rel="stylesheet" type="text/css" href="/cssjs/copy-to-clipboard.css">
<div class="copy-to-clipboard">
<input type="text" readonly="true" value="blablabla" id="copy-to-clipboard" onclick=" copyToClipboard('copy-to-clipboard');copiedToClipboard('copy-to-clipboard-tooltip');return false;" onmouseout="resetClipboard('copy-to-clipboard-tooltip')">
<span class="tooltiptext" id="copy-to-clipboard-tooltip">Kopieren</span>
</div>
```
## WYSIWYG (old)
```
<link rel="stylesheet" type="text/css" href="/cssjs/wysiwyg.css">
...
<div class="wysiwyg"></div>
...
<script src='/cssjs/wysiwyg.js'></script>
```
## ckEditor5
```
<script src="/cssjs/ckeditor.js"></script>
<script>ClassicEditor
.create( document.querySelector( '.editor' ), {
toolbar: {
items: [
'heading',
'|',
'bold',
'italic',
'underline',
'link',
'removeFormat',
'fontSize',
'fontFamily',
'|',
'bulletedList',
'numberedList',
'todoList',
'|',
'indent',
'outdent',
'alignment',
'horizontalLine',
'|',
'imageUpload',
'imageInsert',
'blockQuote',
'insertTable',
'mediaEmbed',
'undo',
'redo',
'|',
'codeBlock',
'exportPdf',
'htmlEmbed',
'exportWord',
'highlight'
]
},
language: 'de',
image: {
toolbar: [
'imageTextAlternative',
'|',
'imageStyle:full',
'imageStyle:side',
'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
'|',
'imageResize',
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells'
]
},
licenseKey: '',
} )
.then( editor => {
window.editor = editor;
} )
.catch( error => {
console.error( 'Oops, something went wrong!' );
console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' );
console.warn( 'Build id: p276tlu14l98-tj7z79o4qxsd' );
console.error( error );
} );
</script>
```
## mailto
```
<span class="mailto">mail@<span style="display:none;">no-thx-</span>server.de</span
<script src="/cssjs/mailto.js"></script>
```
# cssjs\_func\_lib
git submodule add https://git.seemsleg.it/pub/cssjs-func-lib cssjs
## install
```
<link rel="stylesheet" type="text/css" href="/cssjs/admin.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/cssjs/jquery-ui.min.css" media="screen" />
<script src="/cssjs/jquery.min.js"></script>
<script src="/cssjs/jquery-ui.min.js"></script>
<script src="/cssjs/form.js"></script>
```
## Dropzone
```
<form action="/upload" class="dropzone needsclick dz-clickable" id="demo-upload">
<div class="dz-message needsclick">
<button type="button" class="dz-button">Drop files here or click to upload.</button><br>
<span class="note needsclick">(This is just a demo dropzone. Selected files are <strong>not</strong> actually uploaded.)</span>
</div>
</form>
```
## Parallax
```
<link rel="stylesheet" href="/css/parallax.css">
...
<div class="parallax" style="background-image: url(img);">&nbsp;</div>
```
## Divs anordnen
```
<script src="/cssjs/masonry.pkgd.min.js"></script>
<div class="grid">
<div class="grid-item">...</div>
<div class="grid-item grid-item--width2">...</div>
<div class="grid-item">...</div>
...
</div>
.grid-item { width: 200px; }
.grid-item--width2 { width: 400px; }
```
## Checkbox Switch
```
<link rel="stylesheet" href="/cssjs/switch.css">
<input type="checkbox" class="switch" name="publish" id="checkPub" value="1" ' . ($data ['publish'] ? 'checked="true"' : '') . ' /><label for="checkPub"></label>
```
## DateTimePicker
```
<link rel="stylesheet" type="text/css" href="/cssjs/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="/cssjs/jquery.datetimepicker.min.css">
<script src="/cssjs/jquery-ui.min.js"></script>
<script src="/cssjs/jquery.datetimepicker.full.min.js"></script>
<script>
jQuery(\'.datetime\').datetimepicker({
format:\'d.m.Y H:i\',
step:30,
onShow:function( ct ){
},
timepicker:true
});
</script>
```
## textarea autoheight
```
<textarea style="max-height: 300px;" class="autoheight"></textarea>
<script src='/cssjs/autosize.js'></script>
<script>
autosize(document.querySelectorAll('textarea.autoheight'));
</script>
```
## Copy to Clipboard
```
<script src='/cssjs/copy-to-clipboard.js'></script>
<link rel="stylesheet" type="text/css" href="/cssjs/copy-to-clipboard.css">
<div class="copy-to-clipboard">
<input type="text" readonly="true" value="blablabla" id="copy-to-clipboard" onclick=" copyToClipboard('copy-to-clipboard');copiedToClipboard('copy-to-clipboard-tooltip');return false;" onmouseout="resetClipboard('copy-to-clipboard-tooltip')">
<span class="tooltiptext" id="copy-to-clipboard-tooltip">Kopieren</span>
</div>
```
## WYSIWYG (old)
```
<link rel="stylesheet" type="text/css" href="/cssjs/wysiwyg.css">
...
<div class="wysiwyg"></div>
...
<script src='/cssjs/wysiwyg.js'></script>
```
## Cookiebanner
```
<link href="/cssjs/cookiebanner.css" rel="stylesheet">
<script>
var cookiebanner_cookie = 'cookieallowed';
var cookiebanner_text = 'Dies ist ein Fanprojekt, wir haben keinerlei offizielle Beziehung zu CIG oder deren Produkten. '+
'Notwendige Cookies helfen dabei, eine Webseite nutzbar zu machen, indem sie Grundfunktionen wie Seitennavigation und Zugriff auf sichere Bereiche der Webseite ermöglichen. Die Webseite kann ohne diese Cookies nicht richtig funktionieren. '+
' Statistik-Cookies helfen Webseiten-Besitzern zu verstehen, wie Besucher mit Webseiten interagieren, indem Informationen anonym gesammelt und gemeldet werden. '+
'Dürfen Cookies gesetzt werden, um weitere Informationen zu erfassen?';
</script>
<script src="/cssjs/cookiebanner.js"></script>
```
## ckEditor5
```
<script src="/cssjs/ckeditor.js"></script>
<script>ClassicEditor
.create( document.querySelector( '.editor' ), {
toolbar: {
items: [
'heading',
'|',
'bold',
'italic',
'underline',
'link',
'removeFormat',
'fontSize',
'fontFamily',
'|',
'bulletedList',
'numberedList',
'todoList',
'|',
'indent',
'outdent',
'alignment',
'horizontalLine',
'|',
'imageUpload',
'imageInsert',
'blockQuote',
'insertTable',
'mediaEmbed',
'undo',
'redo',
'|',
'codeBlock',
'exportPdf',
'htmlEmbed',
'exportWord',
'highlight'
]
},
language: 'de',
image: {
toolbar: [
'imageTextAlternative',
'|',
'imageStyle:full',
'imageStyle:side',
'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
'|',
'imageResize',
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells'
]
},
licenseKey: '',
} )
.then( editor => {
window.editor = editor;
} )
.catch( error => {
console.error( 'Oops, something went wrong!' );
console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' );
console.warn( 'Build id: p276tlu14l98-tj7z79o4qxsd' );
console.error( error );
} );
</script>
```
Heading
```
...
heading: {
options: [
{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
{ model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
{ model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' }
]
}
...
```
## mailto
```
<span class="mailto">mail@<span style="display:none;">no-thx-</span>server.de</span
<script src="/cssjs/mailto.js"></script>
```
## ajax-Feedback
```
<script src="/cssjs/feedback.js">
... onclick="return ajaxFeedback(this,'ajax.php','margin-top:300px;');" ...
```
## grid divs in mehreren reihen
```
<link href="/cssjs/grid.css" rel="stylesheet">
<div class="grid-container">
<section>...</section>
<section>...</section>
<section>...</section>
</div>
```
## tablefilter
```
<script src="/cssjs/tablefilter.min.js">
Suche: <input type="text" onkeyup="myFilter()" id="suchstr" />
<div class="list" id="suchlist">
<div class="row">a</row>
<div class="row">b</row>
<div class="row">c</row>
</div>
```
## back to Top Button
```
<link href="/cssjs/backtotop.min.css" rel="stylesheet">
...
<script src="/cssjs/backtotop.min.js"></script>
```
## problem melden
einfach ans ende der seite, rest macht das script
```
<body data-feedbackstyle="default|dark">
...
<script src="/cssjs/flag.js"></script>
<link rel="stylesheet" href="/cssjs/flag.css">
</body>
```
## js error sammler
in den header, am besten vor allen anderen js
```
<script src="/cssjs/js-error-logger.min.js"></script>
```
## Fader
```
<link rel="stylesheet" href="/cssjs/fade.min.css" />
<div class="fadeable">...</div>
```
zum ein und ausfaden einfach die class "visible" hinzufügen oder entfernen
## Ajax ToolTip
benötigt "Fader"
```
<link rel="stylesheet" href="/cssjs/itooltip.min.css" />
...
<a href="bla" class="itooltip" data-url="tooltip-url">blub</a>
...
<script src="/cssjs/itooltip.min.js"></script>
```
## Logit alternative zu matomo
```
<!-- logit -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
var u="https://log.seemsleg.it/";
_paq.push(['setTrackerUrl', u+'logit']);
_paq.push(['setSiteId', '10']);
</script>
<script src="/cssjs/logit.min.js"></script>
<noscript><p><img src="https://log.seemsleg.it/logit?idsite=10&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End logit -->
```
nicht vergessen bei setSiteId die richtige id anzugeben
## Flag
einfach folgende zeilen in den footer
```
<script src="/cssjs/flag.min.js"></script>
<link rel="stylesheet" href="/cssjs/flag.min.css">
```
um zusätzliche infos zu liefern muss ein
```
data-flaginfo="<key>:<val>"
```
in irgend ein html tag gepackt werden, ,das wird dann vom script abgeholt wenn es gebraucht wird.

View File

@ -1,31 +1,35 @@
textarea {
display: block;
width: 100%;
}
form .label {
float: left;
width: 200px;
}
.admin_navi {
display: block;
width: 100%;
border-bottom: 1px solid #000;
overflow: overlay;
}
.admin_navi li {
display: block;
float: left;
margin: 0 10px;
}
.hover {
border: 1px solid white;
}
.hover:hover {
border: 1px solid black;
body {
background-color: #000 !important;
color: #fff;
}
textarea {
display: block;
width: 100%;
}
form .label {
float: left;
width: 200px;
}
.admin_navi {
display: block;
width: 100%;
border-bottom: 1px solid #000;
overflow: overlay;
}
.admin_navi li {
display: block;
float: left;
margin: 0 10px;
}
.hover {
border: 1px solid white;
}
.hover:hover {
border: 1px solid black;
}

1
admin.min.css vendored Normal file
View File

@ -0,0 +1 @@
body{background-color:#000!important;color:#fff}textarea{display:block;width:100%}form .label{float:left;width:200px}.admin_navi{display:block;width:100%;border-bottom:1px solid #000;overflow:overlay}.admin_navi li{display:block;float:left;margin:0 10px}.hover{border:1px solid #fff}.hover:hover{border:1px solid #000}

10
autosize.js Normal file
View File

@ -0,0 +1,10 @@
function autosize(tx) {
for (let i = 0; i < tx.length; i++) {
tx[i].setAttribute("style", "height:" + (tx[i].scrollHeight) + "px;overflow-y:hidden;");
tx[i].addEventListener("input", OnInputAutoSize, false);
}
}
function OnInputAutoSize() {
this.style.height = "auto";
this.style.height = (this.scrollHeight) + "px";
}

2
autosize.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
function autosize(tx){for(let i=0;i<tx.length;i++)tx[i].setAttribute("style","height:"+tx[i].scrollHeight+"px;overflow-y:hidden;"),tx[i].addEventListener("input",OnInputAutoSize,!1)}function OnInputAutoSize(){this.style.height="auto",this.style.height=this.scrollHeight+"px"}
//# sourceMappingURL=autosize.min.js.map

20
autosize.min.js.map Normal file
View File

@ -0,0 +1,20 @@
{
"version": 3,
"sources": [
"autosize.js"
],
"names": [
"autosize",
"tx",
"i",
"length",
"setAttribute",
"addEventListener",
"OnInputAutoSize",
"this",
"style",
"height"
],
"mappings": "AAAA,SAASA,SAASC,IAChB,IAAK,IAAIC,EAAI,EAAGA,EAAID,GAAGE,OAAQD,IAC7BD,GAAGC,GAAGE,aAAa,QAAS,UAAaH,GAAGC,GAAe,aAAI,yBAC/DD,GAAGC,GAAGG,iBAAiB,QAASC,iBAAiB,GAGrD,SAASA,kBACPC,KAAKC,MAAMC,OAAS,OACpBF,KAAKC,MAAMC,OAAUF,KAAiB,aAAI",
"file": "autosize.js"
}

24
backtotop.css Normal file
View File

@ -0,0 +1,24 @@
#back_to_top {
position: fixed;
bottom: 40px;
right: 40px;
z-index: 9999;
width: 30px;
height: 30px;
text-align: center;
line-height: 30px;
background: #f5f5f5;
color: #444;
cursor: pointer;
border-radius: 15px;
padding-top: 4px;
display: none;
}
#back_to_top:hover {
background: #e9ebec;
}
#back_to_top.back_to_top-show {
display: block;
}

30
backtotop.js Normal file
View File

@ -0,0 +1,30 @@
(function() {
'use strict';
function trackScroll() {
var scrolled = window.pageYOffset;
var coords = document.documentElement.clientHeight;
if (scrolled > coords) {
goTopBtn.classList.add('back_to_top-show');
}
if (scrolled < coords) {
goTopBtn.classList.remove('back_to_top-show');
}
}
function backToTop() {
if (window.pageYOffset > 0) {
window.scrollBy(0, -30);
setTimeout(backToTop, 0);
}
}
var goTopBtn = document.createElement("div");
goTopBtn.id = 'back_to_top';
goTopBtn.innerHTML = 'UP';
document.body.appendChild(goTopBtn);
window.addEventListener('scroll', trackScroll);
goTopBtn.addEventListener('click', backToTop);
})();

1
backtotop.min.css vendored Normal file
View File

@ -0,0 +1 @@
#back_to_top{position:fixed;bottom:40px;right:40px;z-index:9999;width:30px;height:30px;text-align:center;line-height:30px;background:#f5f5f5;color:#444;cursor:pointer;border-radius:15px;padding-top:4px;display:none}#back_to_top:hover{background:#e9ebec}#back_to_top.back_to_top-show{display:block}

2
backtotop.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
!function(){"use strict";function trackScroll(){var scrolled=window.pageYOffset,coords=document.documentElement.clientHeight;scrolled>coords&&goTopBtn.classList.add("back_to_top-show"),scrolled<coords&&goTopBtn.classList.remove("back_to_top-show")}function backToTop(){window.pageYOffset>0&&(window.scrollBy(0,-30),setTimeout(backToTop,0))}var goTopBtn=document.createElement("div");goTopBtn.id="back_to_top",goTopBtn.innerHTML="UP",document.body.appendChild(goTopBtn),window.addEventListener("scroll",trackScroll),goTopBtn.addEventListener("click",backToTop)}();
//# sourceMappingURL=backtotop.min.js.map

31
backtotop.min.js.map Normal file
View File

@ -0,0 +1,31 @@
{
"version": 3,
"sources": [
"backtotop.js"
],
"names": [
"trackScroll",
"scrolled",
"window",
"pageYOffset",
"coords",
"document",
"documentElement",
"clientHeight",
"goTopBtn",
"classList",
"add",
"remove",
"backToTop",
"scrollBy",
"setTimeout",
"createElement",
"id",
"innerHTML",
"body",
"appendChild",
"addEventListener"
],
"mappings": "CAAA,WACE,aAEA,SAASA,cACP,IAAIC,SAAWC,OAAOC,YAClBC,OAASC,SAASC,gBAAgBC,aAElCN,SAAWG,QACbI,SAASC,UAAUC,IAAI,oBAErBT,SAAWG,QACbI,SAASC,UAAUE,OAAO,oBAI9B,SAASC,YACHV,OAAOC,YAAc,IACvBD,OAAOW,SAAS,GAAI,IACpBC,WAAWF,UAAW,IAI1B,IAAIJ,SAAWH,SAASU,cAAc,OACtCP,SAASQ,GAAK,cACdR,SAASS,UAAY,KACrBZ,SAASa,KAAKC,YAAYX,UAE1BN,OAAOkB,iBAAiB,SAAUpB,aAClCQ,SAASY,iBAAiB,QAASR,WA5BrC",
"file": "backtotop.js"
}

11266
bootstrap.css vendored Normal file

File diff suppressed because it is too large Load Diff

5046
bootstrap.js vendored Normal file

File diff suppressed because it is too large Load Diff

13
bootstrap.min.css vendored

File diff suppressed because one or more lines are too long

1
bootstrap.min.css.map Normal file

File diff suppressed because one or more lines are too long

8
bootstrap.min.js vendored

File diff suppressed because one or more lines are too long

1008
bootstrap.min.js.map Normal file

File diff suppressed because one or more lines are too long

6
ckeditor.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4639
ckeditor.min.js.map Normal file

File diff suppressed because one or more lines are too long

15
cookiebanner.css Normal file
View File

@ -0,0 +1,15 @@
#cookiebanner {
margin: 0px;
padding: 6px;
position: fixed;
bottom: 0;
left: 0;
background-color: #000;
color: #fff;
text-align: center;
width: 100%;
z-index: 9;
}
#cookiebanner button {
margin-left: 6px;
}

35
cookiebanner.js Normal file
View File

@ -0,0 +1,35 @@
function setCookiebannerCookie(val) {
document.cookie = cookiebanner_cookie +"="+val+"; expires=Fry, 01 Jan 2038 00:00:00 UTC; path=/;";
document.getElementById('cookiebanner').remove();
}
(function() {
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2)
return parts.pop().split(';').shift();
return false;
}
//
if(!getCookie(cookiebanner_cookie)) {
var cookiebanner = document.createElement('div');
cookiebanner.setAttribute('id','cookiebanner');
cookiebanner.append(document.createTextNode(cookiebanner_text));
cookiebanner.append(document.createElement('br'));
var ack = document.createElement('button');
ack.setAttribute('onclick','setCookiebannerCookie("ok");');
ack.append(document.createTextNode('Ja'));
cookiebanner.append(ack);
var nak = document.createElement('button');
nak.setAttribute('onclick','setCookiebannerCookie("nope");');
nak.append(document.createTextNode('Nein'));
cookiebanner.append(nak);
document.body.appendChild(cookiebanner);
}
})();

1
cookiebanner.min.css vendored Normal file
View File

@ -0,0 +1 @@
#cookiebanner{margin:0;padding:6px;position:fixed;bottom:0;left:0;background-color:#000;color:#fff;text-align:center;width:100%;z-index:9}#cookiebanner button{margin-left:6px}

2
cookiebanner.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
function setCookiebannerCookie(val){document.cookie=cookiebanner_cookie+"="+val+"; expires=Fry, 01 Jan 2038 00:00:00 UTC; path=/;",document.getElementById("cookiebanner").remove()}!function(){function getCookie(name){const value=`; ${document.cookie}`,parts=value.split(`; ${name}=`);return 2===parts.length&&parts.pop().split(";").shift()}if(!getCookie(cookiebanner_cookie)){var cookiebanner=document.createElement("div");cookiebanner.setAttribute("id","cookiebanner"),cookiebanner.append(document.createTextNode(cookiebanner_text)),cookiebanner.append(document.createElement("br"));var ack=document.createElement("button");ack.setAttribute("onclick",'setCookiebannerCookie("ok");'),ack.append(document.createTextNode("Ja")),cookiebanner.append(ack);var nak=document.createElement("button");nak.setAttribute("onclick",'setCookiebannerCookie("nope");'),nak.append(document.createTextNode("Nein")),cookiebanner.append(nak),document.body.appendChild(cookiebanner)}}();
//# sourceMappingURL=cookiebanner.min.js.map

35
cookiebanner.min.js.map Normal file
View File

@ -0,0 +1,35 @@
{
"version": 3,
"sources": [
"cookiebanner.js"
],
"names": [
"setCookiebannerCookie",
"val",
"document",
"cookie",
"cookiebanner_cookie",
"getElementById",
"remove",
"getCookie",
"name",
"value",
"parts",
"split",
"length",
"pop",
"shift",
"cookiebanner",
"createElement",
"setAttribute",
"append",
"createTextNode",
"cookiebanner_text",
"ack",
"nak",
"body",
"appendChild"
],
"mappings": "AAAA,SAASA,sBAAsBC,KAC7BC,SAASC,OAASC,oBAAqB,IAAIH,IAAI,mDAC/CC,SAASG,eAAe,gBAAgBC,UAG1C,WACE,SAASC,UAAUC,MACjB,MAAMC,MAAQ,KAAKP,SAASC,SACtBO,MAAQD,MAAME,MAAM,KAAKH,SAC/B,OAAqB,IAAjBE,MAAME,QACDF,MAAMG,MAAMF,MAAM,KAAKG,QAMlC,IAAIP,UAAUH,qBAAsB,CAClC,IAAIW,aAAeb,SAASc,cAAc,OAC1CD,aAAaE,aAAa,KAAK,gBAC/BF,aAAaG,OAAOhB,SAASiB,eAAeC,oBAC5CL,aAAaG,OAAOhB,SAASc,cAAc,OAE3C,IAAIK,IAAMnB,SAASc,cAAc,UACjCK,IAAIJ,aAAa,UAAU,gCAC3BI,IAAIH,OAAOhB,SAASiB,eAAe,OACnCJ,aAAaG,OAAOG,KAEpB,IAAIC,IAAMpB,SAASc,cAAc,UACjCM,IAAIL,aAAa,UAAU,kCAC3BK,IAAIJ,OAAOhB,SAASiB,eAAe,SACnCJ,aAAaG,OAAOI,KAEpBpB,SAASqB,KAAKC,YAAYT,eA3B9B",
"file": "cookiebanner.js"
}

View File

@ -1,35 +1,35 @@
.copy-to-clipboard {
position: relative;
display: inline-block;
}
.copy-to-clipboard .tooltiptext {
visibility: hidden;
width: 140px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 150%;
left: 50%;
margin-left: -75px;
}
.copy-to-clipboard .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent transparent;
}
.copy-to-clipboard:hover .tooltiptext {
visibility: visible;
opacity: 1;
.copy-to-clipboard {
position: relative;
display: inline-block;
}
.copy-to-clipboard .tooltiptext {
visibility: hidden;
width: 140px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 150%;
left: 50%;
margin-left: -75px;
}
.copy-to-clipboard .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent transparent;
}
.copy-to-clipboard:hover .tooltiptext {
visibility: visible;
opacity: 1;
}

View File

@ -9,6 +9,15 @@ function copyToClipboard(id) {
document.execCommand("copy");
}
function copyDivToClipboard(id) {
let range = document.createRange();
range.selectNode(document.getElementById(id));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
function copiedToClipboard(id) {
var tooltip = document.getElementById(id);
tooltip.innerHTML = "Kopiert";

1
copy-to-clipboard.min.css vendored Normal file
View File

@ -0,0 +1 @@
.copy-to-clipboard{position:relative;display:inline-block}.copy-to-clipboard .tooltiptext{visibility:hidden;width:140px;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:150%;left:50%;margin-left:-75px}.copy-to-clipboard .tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent}.copy-to-clipboard:hover .tooltiptext{visibility:visible;opacity:1}

1
copy-to-clipboard.min.js vendored Normal file
View File

@ -0,0 +1 @@
function copyToClipboard(e){var n=document.getElementById(e);n.select(),n.setSelectionRange(0,99999),document.execCommand("copy")}function copyDivToClipboard(e){let n=document.createRange();n.selectNode(document.getElementById(e)),window.getSelection().removeAllRanges(),window.getSelection().addRange(n),document.execCommand("copy"),window.getSelection().removeAllRanges()}function copiedToClipboard(e){document.getElementById(e).innerHTML="Kopiert"}function resetClipboard(e){document.getElementById(e).innerHTML="Kopieren"}

View File

@ -0,0 +1,22 @@
{
"version": 3,
"sources": [
"copy-to-clipboard.js"
],
"names": [
"copyToClipboard",
"id",
"copyText",
"document",
"getElementById",
"select",
"setSelectionRange",
"execCommand",
"copiedToClipboard",
"tooltip",
"innerHTML",
"resetClipboard"
],
"mappings": "AAAA,SAASA,gBAAgBC,IACvB,IAAIC,SAAWC,SAASC,eAAeH,IAGvCC,SAASG,SACTH,SAASI,kBAAkB,EAAG,OAG9BH,SAASI,YAAY,QAGvB,SAASC,kBAAkBP,IACzB,IAAIQ,QAAUN,SAASC,eAAeH,IAC9BS,UAAY,UAGtB,SAASC,eAAeV,IACtB,IAAIQ,QAAUN,SAASC,eAAeH,IAC9BS,UAAY",
"file": "copy-to-clipboard.js"
}

1
dropzone.min.css vendored Normal file

File diff suppressed because one or more lines are too long

2
dropzone.min.js vendored Normal file

File diff suppressed because one or more lines are too long

467
dropzone.min.js.map Normal file

File diff suppressed because one or more lines are too long

10
fade.css Normal file
View File

@ -0,0 +1,10 @@
.fadeable {
opacity: 0;
margin-top: -30px;
transition: margin-top 0.2s,opacity 0.2s;
}
.fadeable.visible {
opacity: 1;
margin-top: 0;
}

1
fade.min.css vendored Normal file
View File

@ -0,0 +1 @@
.fadeable{opacity:0;margin-top:-30px;transition:margin-top .2s,opacity .2s}.fadeable.visible{opacity:1;margin-top:0}

172
feedback.js Normal file
View File

@ -0,0 +1,172 @@
function ajaxFeedback(e,url,css) {
$.ajax({
url: url,
success: function(res) {
if(res =='success') {
successMarker(e,css);
return;
}else{
if(res =='warn') {
warnMarker(e,css);
return;
}else{
errorMarker(e,css);
return;
}
}
},
error: function (res,err) {
errorMarker(e,css);
}
});
return false;
}
function ajaxCommentFeedback(e,url,css) {
let comment = prompt("Was funktioniert nicht?");
if(comment) {
url = url + "&comment="+encodeURIComponent(comment);
}
$.ajax({
url: url,
success: function(res) {
if(res =='success') {
successMarker(e,css);
return;
}else{
if(res =='warn') {
warnMarker(e,css);
return;
}else{
errorMarker(e,css);
return;
}
}
},
error: function (res,err) {
errorMarker(e,css);
}
});
return false;
}
function formFeedback(e,f,url,css) {
var formData = {}
$(f).each(function(i, obj) {
formData[obj.name] = obj.value
obj.disabled = true;
});
e.disabled = true;
$.ajax({
url: url,
data: formData,
method: "POST",
success: function(res) {
if(res =='success') {
successMarker(e,css);
setTimeout(function() {
$(f).each(function(i, obj) {
obj.disabled = false;
if($(obj).attr('type') != 'hidden') {
obj.value = '';
}
});
e.disabled = false;
},5000)
return;
}else{
if(res =='warn') {
warnMarker(e,css);
setTimeout(function() {
$(f).each(function(i, obj) {
obj.disabled = false;
if($(obj).attr('type') != 'hidden') {
obj.value = '';
}
});
e.disabled = false;
},5000)
return;
}else{
errorMarker(e,css);
setTimeout(function() {
$(f).each(function(i, obj) {
obj.disabled = false;
if($(obj).attr('type') != 'hidden') {
obj.value = '';
}
});
e.disabled = false;
},5000)
return;
}
}
},
error: function (res,err) {
errorMarker(e,css);
setTimeout(function() {
$(f).each(function(i, obj) {
obj.disabled = false;
if($(obj).attr('type') != 'hidden') {
obj.value = '';
}
});
e.disabled = false;
},5000)
}
});
return false;
}
function getCoords(e) {
var p = {};
p.x = e.offsetLeft;
p.y = e.offsetTop;
while (e.offsetParent) {
p.x = p.x + e.offsetParent.offsetLeft;
p.y = p.y + e.offsetParent.offsetTop;
if (e == document.getElementsByTagName("body")[0]) {
break;
}
else {
e = e.offsetParent;
}
}
return p;
}
function successMarker(e,css) {
var p = getCoords(e);
var cursorX = p.x
var cursorY = p.y
//console.log('OK',cursorX,cursorY);
o = $('<div style="position: absolute; top:'+cursorY+'px; left: '+ cursorX +'px; width: 40px; height: 40px; z-index: 999; fill: green; pointer-events: none;'+css+'"><svg version="1.1" style="-webkit-filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9)); filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9));" x="0px" y="0px" viewBox="0 0 1000 1000" xml:space="preserve"><g><path d="M959.4,469.4c-16.9,0-30.6,13.7-30.6,30.6c0,236.4-192.3,428.7-428.7,428.7S71.3,736.4,71.3,500C71.3,263.6,263.6,71.3,500,71.3c93.7,0,182.7,29.7,257.4,85.8c13.5,10.2,32.7,7.4,42.9-6.1c10.2-13.5,7.4-32.7-6.1-42.8C708.8,43.9,607.1,10,500,10C229.8,10,10,229.8,10,500c0,270.2,219.8,490,490,490s490-219.8,490-490C990,483.1,976.3,469.4,959.4,469.4z"/><path d="M215.4,447.7c-12-12-31.3-12-43.3,0c-12,12-12,31.3,0,43.3l245,245c6,6,13.8,9,21.7,9c7.8,0,15.7-3,21.7-9L981,215.4c12-12,12-31.3,0-43.3c-12-12-31.3-12-43.3,0l-499,499L215.4,447.7z"/></g></svg></div>');
$( "body" ).append( o );
$(o).fadeOut(5000);
}
function warnMarker(e,css) {
var p = getCoords(e);
var cursorX = p.x
var cursorY = p.y
//console.log('WARN',cursorX,cursorY);
o = $('<div style="position: absolute; top:'+cursorY+'px; left: '+ cursorX +'px; width: 40px; height: 40px; fill: #ff0; z-index: 999; pointer-events: none;'+css+'"><svg version="1.1" style="-webkit-filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9)); filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9));" x="0px" y="0px" viewBox="0 0 100 125"><g transform="translate(0,-952.36218)"><path style="text-indent:0;text-transform:none;direction:ltr;block-progression:tb;baseline-shift:baseline;color:#000000;enable-background:accumulate;" d="m 49.999548,962.36215 c -2.77446,0 -5.29918,1.3853 -6.71875,3.7812 L 5.0307975,1030.7997 c -1.41991,2.4028 -1.39108,5.3495 0.0312,7.75 1.27219,2.1453 3.65785,3.8194 6.4374995,3.8125 l 77.000001,0 c 2.77928,0.01 5.16552,-1.6676 6.4375,-3.8125 1.42362,-2.4007 1.45245,-5.347 0.0312,-7.75 l -38.25,-64.65635 c -1.41947,-2.3959 -3.94419,-3.7812 -6.71865,-3.7812 z m 0,6 c 0.56422,0 1.30991,0.4174 1.5625,0.8438 l 38.21875,64.65625 c 0.25251,0.427 0.25314,1.1981 0,1.625 -0.40478,0.6826 -0.71493,0.8764 -1.28125,0.875 l -77.000001,0 c -0.56593,10e-4 -0.8767,-0.1928 -1.28125,-0.875 -0.2530395,-0.427 -0.2524095,-1.1979 0,-1.625 l 38.218751,-64.65625 c 0.25257,-0.4263 0.99828,-0.8438 1.5625,-0.8438 z m 0,16 c -3.31371,0 -6,2.6863 -6,6 l 1,22.00005 c 0,2.7614 2.23857,5 5,5 2.76143,0 5,-2.2386 5,-5 l 1,-22.00005 c 0,-3.3137 -2.68629,-6 -6,-6 z m 0,35.00005 c -3.86598,0 -7,3.134 -7,7 0,3.8659 3.13402,7 7,7 3.86598,0 7,-3.1341 7,-7 0,-3.866 -3.13402,-7 -7,-7 z" /></g></svg></div>');
$( "body" ).append( o );
$(o).fadeOut(5000);
}
function errorMarker(e,css) {
var p = getCoords(e);
var cursorX = p.x
var cursorY = p.y
//console.log('ERR',cursorX,cursorY);
o = $('<div style="position: absolute; top:'+cursorY+'px; left: '+ cursorX +'px; width: 40px; height: 40px; fill: red; z-index: 999; pointer-events: none;'+css+'"><svg version="1.0" style="-webkit-filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9)); filter: drop-shadow( 0 0 4px rgba(0, 0, 0, .9));" x="0px" y="0px" viewBox="0 0 100 125" xml:space="preserve"><g><path fill="#000000" d="M50,14.996c-19.333,0-35.004,15.671-35.004,35.004c0,19.332,15.671,35.004,35.004,35.004 c19.332,0,35.004-15.672,35.004-35.004C85.004,30.667,69.332,14.996,50,14.996z M50,79.004c-15.993,0-29.004-13.012-29.004-29.004 c0-15.993,13.011-29.004,29.004-29.004c15.992,0,29.004,13.011,29.004,29.004C79.004,65.992,65.992,79.004,50,79.004z"/><polygon fill="#000000" points="70.578,36.423 63.578,29.419 50,42.998 36.421,29.419 29.421,36.423 43,50.002 29.421,63.576 36.421,70.58 50,57.002 63.578,70.58 70.578,63.576 57.004,50.002 "/></g></svg></div>');
$( "body" ).append( o );
$(o).fadeOut(5000);
}

1
feedback.min.js vendored Normal file

File diff suppressed because one or more lines are too long

50
feedback.min.js.map Normal file
View File

@ -0,0 +1,50 @@
{
"version": 3,
"sources": [
"feedback.js"
],
"names": [
"ajaxFeedback",
"e",
"url",
"css",
"$",
"ajax",
"success",
"res",
"successMarker",
"warnMarker",
"errorMarker",
"error",
"err",
"formFeedback",
"f",
"formData",
"each",
"i",
"obj",
"name",
"value",
"disabled",
"data",
"method",
"setTimeout",
"attr",
"getCoords",
"p",
"x",
"offsetLeft",
"y",
"offsetTop",
"offsetParent",
"document",
"getElementsByTagName",
"cursorX",
"cursorY",
"o",
"append",
"fadeOut"
],
"mappings": "AAAA,SAASA,aAAaC,EAAEC,IAAIC,KAqB1B,OApBAC,EAAEC,KAAK,CACLH,IAAKA,IACLI,QAAS,SAASC,KAChB,MAAS,WAANA,SACDC,cAAcP,EAAEE,KAGP,QAANI,SACDE,WAAWR,EAAEE,UAGbO,YAAYT,EAAEE,MAKpBQ,MAAO,SAAUJ,IAAIK,KACnBF,YAAYT,EAAEE,SAGX,EAGT,SAASU,aAAaZ,EAAEa,EAAEZ,IAAIC,KAC5B,IAAIY,SAAW,GAgEf,OA/DAX,EAAEU,GAAGE,MAAK,SAASC,EAAGC,KACpBH,SAASG,IAAIC,MAAQD,IAAIE,MACzBF,IAAIG,UAAW,KAEjBpB,EAAEoB,UAAW,EACbjB,EAAEC,KAAK,CACLH,IAAKA,IACLoB,KAAMP,SACNQ,OAAQ,OACRjB,QAAS,SAASC,KAChB,MAAS,WAANA,KACDC,cAAcP,EAAEE,UAChBqB,YAAW,WACTpB,EAAEU,GAAGE,MAAK,SAASC,EAAGC,KACpBA,IAAIG,UAAW,EACW,UAAvBjB,EAAEc,KAAKO,KAAK,UACbP,IAAIE,MAAQ,OAGhBnB,EAAEoB,UAAW,IACb,MAGO,QAANd,KACDE,WAAWR,EAAEE,UACbqB,YAAW,WACXpB,EAAEU,GAAGE,MAAK,SAASC,EAAGC,KACpBA,IAAIG,UAAW,EACW,UAAvBjB,EAAEc,KAAKO,KAAK,UACbP,IAAIE,MAAQ,OAGhBnB,EAAEoB,UAAW,IACb,OAGAX,YAAYT,EAAEE,UACdqB,YAAW,WACXpB,EAAEU,GAAGE,MAAK,SAASC,EAAGC,KACpBA,IAAIG,UAAW,EACW,UAAvBjB,EAAEc,KAAKO,KAAK,UACbP,IAAIE,MAAQ,OAGhBnB,EAAEoB,UAAW,IACb,OAKNV,MAAO,SAAUJ,IAAIK,KACnBF,YAAYT,EAAEE,KACdqB,YAAW,WACTpB,EAAEU,GAAGE,MAAK,SAASC,EAAGC,KACpBA,IAAIG,UAAW,EACW,UAAvBjB,EAAEc,KAAKO,KAAK,UACbP,IAAIE,MAAQ,OAGhBnB,EAAEoB,UAAW,IACb,SAGC,EAGT,SAASK,UAAUzB,GACjB,IAAI0B,EAAI,GAGR,IAFAA,EAAEC,EAAI3B,EAAE4B,WACRF,EAAEG,EAAI7B,EAAE8B,UACD9B,EAAE+B,eACPL,EAAEC,EAAID,EAAEC,EAAI3B,EAAE+B,aAAaH,WAC3BF,EAAEG,EAAIH,EAAEG,EAAI7B,EAAE+B,aAAaD,UACvB9B,GAAKgC,SAASC,qBAAqB,QAAQ,KAI3CjC,EAAIA,EAAE+B,aAGZ,OAAOL,EAGT,SAASnB,cAAcP,EAAEE,KACvB,IAAIwB,EAAID,UAAUzB,GAEdkC,QAAUR,EAAEC,EACZQ,QAAUT,EAAEG,EAGhBO,EAAIjC,EAAE,uCAAuCgC,QAAQ,aAAcD,QAAS,kFAAkFhC,IAAI,uvBAClKC,EAAG,QAASkC,OAAQD,GACpBjC,EAAEiC,GAAGE,QAAQ,KAGf,SAAS9B,WAAWR,EAAEE,KACpB,IAAIwB,EAAID,UAAUzB,GAEdkC,QAAUR,EAAEC,EACZQ,QAAUT,EAAEG,EAGhBO,EAAIjC,EAAE,uCAAuCgC,QAAQ,aAAcD,QAAS,iFAAiFhC,IAAI,k0CACjKC,EAAG,QAASkC,OAAQD,GACpBjC,EAAEiC,GAAGE,QAAQ,KAGf,SAAS7B,YAAYT,EAAEE,KACrB,IAAIwB,EAAID,UAAUzB,GAEdkC,QAAUR,EAAEC,EACZQ,QAAUT,EAAEG,EAGhBO,EAAIjC,EAAE,uCAAuCgC,QAAQ,aAAcD,QAAS,gFAAgFhC,IAAI,8vBAChKC,EAAG,QAASkC,OAAQD,GACpBjC,EAAEiC,GAAGE,QAAQ",
"file": "feedback.js"
}

73
flag.css Normal file
View File

@ -0,0 +1,73 @@
#flag-panel {
position: fixed;
bottom: 0px;
right: 0px;
width: 170px;
border: 1px solid #fff;
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
margin-right: -145px;
z-index: 99999;
}
@media (max-width:1081px) {
#flag-panel {
border: 10px solid #fff;
border-top-left-radius: 23px;
border-bottom-left-radius: 23px;
margin-right: -135px;
}
}
#flag-panel.open {
margin-right: 0px !important;
}
#flag-panel.opened {
transition: margin-right 1s;
}
#flag-panel span {
margin-right: 10px;
margin-left: 5px;
}
#flag-overlay {
position: fixed;
width: 100%;
height: 100vh;
top: 0;
left: 0;
background-color: rgba(0,0,0,0.5);
z-index: 9999;
}
#flag-iframe {
position: fixed;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 10000;
background-color: #000;
border: 3px solid #fff;
border-radius: 1em;
overflow-y: scroll;
height: 97vh;
min-width: 350px;
width: 80%;
display: block;
margin: 0 auto;
margin-top: 1vh;
}
#flag-overlay.closing {
transition: opacity 0.5s;
}
#flag-iframe.closing {
transition: margin 1s ease, width 1s ease, height 1s ease;
width: 350px;
height: 170px;
margin-top: calc(50vh - 50px);
overflow: hidden;
}

133
flag.js Normal file
View File

@ -0,0 +1,133 @@
(function(connector) {
'use strict';
var style = 'default';
if(document.body.dataset.feedbackstyle) {
style = document.body.dataset.feedbackstyle;
}
var iframe;
var flag;
var col = 'light';
//TODO color css
//TODO abbrechen close anders
var closeFlag = function(ev) {
flag.classList.add('closing');
iframe.classList.add('closing');
setTimeout(function() {
flag.style.opacity = 0;
iframe.style.opacity = 0;
setTimeout(function() {
flag.remove();
iframe.remove();
document.body.style.overflowY = 'auto';
},500);
},1000);
}
var openFlag = function(ev, infos=false) {
flag = document.createElement('div');
document.body.style.overflowY = 'hidden';
flag.id = 'flag-overlay';
iframe = document.createElement('iframe');
iframe.src= '';
iframe.name = 'flag-iframe';
iframe.id = 'flag-iframe';
document.body.appendChild(flag);
setTimeout(function() {
flag.addEventListener('click',function(){
closeFlag();
//console.log('close2');
});
},3000);
document.body.appendChild(iframe);
var form = document.createElement('form');
form.action = connector+"?style="+style;
form.target = 'flag-iframe';
form.method = 'POST';
const screenshotTarget = document.body;
/*html2canvas(screenshotTarget).then((canvas) => {
const base64image = canvas.toDataURL("image/png");
window.location.href = base64image;
});*/
var fields = {};
fields['s'] = window.location.hostname;
var datas = document.querySelectorAll('[data-flaginfo]');
if(datas) {
for(var i=0; i<datas.length;i++) {
console.log(datas[i].dataset['flaginfo']);
var tmp = datas[i].dataset['flaginfo'];
tmp = tmp.split(':',2);
fields[tmp[0]] = tmp[1];
}
}
if(document.referrer) {fields['r'] = document.referrer;}
if(window.location.href) {fields['u'] = window.location.href;}
if(navigator.userAgent) {fields['a'] = navigator.userAgent;}
fields['d'] = ''+window.screen.width+'x'+window.screen.height+' ('+window.screen.colorDepth+'bit)';
if(infos && typeof(infos) == typeof({})) {
for(var i in infos) {
fields[i] = infos[i];
}
}
console.log('Fields',fields);
for(var f in fields) {
var inp = document.createElement('input');
inp.type = 'hidden';
inp.name = f;
inp.value = fields[f]
form.appendChild(inp);
}
form.style = 'display:none';
document.body.appendChild(form);
form.submit();
form.remove();
}
var panel = document.createElement('div');
panel.id = 'flag-panel';
var tab = document.createElement('span');
tab.innerHTML = '&#9873;';
tab.addEventListener('mouseenter',function(ev) {
if(!panel.classList.contains('opened')) {
panel.classList.add('opened');
}
panel.classList.toggle('open');
});
var button = document.createElement('button');
button.innerHTML = 'Problem melden';
button.addEventListener('click',openFlag);
window.addEventListener("message", (event) => {
//console.log(event);
if(event.data == 'close') {
//console.log('close1');
closeFlag();
}
});
var links = document.getElementsByClassName('flag-link');
if(links.length > 0) {
for(var l=0;l<links.length;l++) {
//console.log(l,links[l]);
links[l].addEventListener('click',function(ev) {
openFlag(ev,ev.target.dataset);
ev.preventDefault();
return false;
});
}
}
panel.appendChild(tab);
panel.appendChild(button);
document.body.appendChild(panel);
})('https://troy-grunt.de/feedback');

1
flag.min.css vendored Normal file
View File

@ -0,0 +1 @@
#flag-panel{position:fixed;bottom:0;right:0;width:170px;border:1px solid #fff;border-top-left-radius:15px;border-bottom-left-radius:15px;margin-right:-145px;z-index:99999}@media (max-width:1081px){#flag-panel{border:10px solid #fff;border-top-left-radius:23px;border-bottom-left-radius:23px;margin-right:-135px}}#flag-panel.open{margin-right:0!important}#flag-panel.opened{transition:margin-right 1s}#flag-panel span{margin-right:10px;margin-left:5px}#flag-overlay{position:fixed;width:100%;height:100vh;top:0;left:0;background-color:rgba(0,0,0,.5);z-index:9999}#flag-iframe{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:10000;background-color:#000;border:3px solid #fff;border-radius:1em;overflow-y:scroll;height:97vh;min-width:350px;width:80%;display:block;margin:1vh auto 0}#flag-overlay.closing{transition:opacity .5s}#flag-iframe.closing{transition:margin 1s,width 1s,height 1s;width:350px;height:170px;margin-top:calc(50vh - 50px);overflow:hidden}

2
flag.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
!function(connector){"use strict";var style="default",iframe,flag;document.body.dataset.feedbackstyle&&(style=document.body.dataset.feedbackstyle);var col="light",closeFlag=function(ev){flag.classList.add("closing"),iframe.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,iframe.style.opacity=0,setTimeout((function(){flag.remove(),iframe.remove(),document.body.style.overflowY="auto"}),500)}),1e3)},openFlag=function(ev,infos=!1){flag=document.createElement("div"),document.body.style.overflowY="hidden",flag.id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",iframe.id="flag-iframe",document.body.appendChild(flag),setTimeout((function(){flag.addEventListener("click",(function(){closeFlag()}))}),3e3),document.body.appendChild(iframe);var form=document.createElement("form");form.action=connector+"?style="+style,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};fields.s=window.location.hostname;var datas=document.querySelectorAll("[data-flaginfo]");if(datas)for(var i=0;i<datas.length;i++){console.log(datas[i].dataset.flaginfo);var tmp=datas[i].dataset.flaginfo;fields[(tmp=tmp.split(":",2))[0]]=tmp[1]}if(document.referrer&&(fields.r=document.referrer),window.location.href&&(fields.u=window.location.href),navigator.userAgent&&(fields.a=navigator.userAgent),fields.d=window.screen.width+"x"+window.screen.height+" ("+window.screen.colorDepth+"bit)",infos&&typeof infos==typeof{})for(var i in infos)fields[i]=infos[i];for(var f in console.log("Fields",fields),fields){var inp=document.createElement("input");inp.type="hidden",inp.name=f,inp.value=fields[f],form.appendChild(inp)}form.style="display:none",document.body.appendChild(form),form.submit(),form.remove()},panel=document.createElement("div");panel.id="flag-panel";var tab=document.createElement("span");tab.innerHTML="&#9873;",tab.addEventListener("mouseenter",(function(ev){panel.classList.contains("opened")||panel.classList.add("opened"),panel.classList.toggle("open")}));var button=document.createElement("button");button.innerHTML="Problem melden",button.addEventListener("click",openFlag),window.addEventListener("message",event=>{"close"==event.data&&closeFlag()});var links=document.getElementsByClassName("flag-link");if(links.length>0)for(var l=0;l<links.length;l++)links[l].addEventListener("click",(function(ev){return openFlag(ev,ev.target.dataset),ev.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback");
//# sourceMappingURL=flag.min.js.map

77
flag.min.js.map Normal file
View File

@ -0,0 +1,77 @@
{
"version": 3,
"sources": [
"flag.js"
],
"names": [
"connector",
"style",
"iframe",
"flag",
"document",
"body",
"dataset",
"feedbackstyle",
"col",
"closeFlag",
"ev",
"classList",
"add",
"setTimeout",
"opacity",
"remove",
"overflowY",
"openFlag",
"infos",
"createElement",
"id",
"src",
"name",
"appendChild",
"addEventListener",
"form",
"action",
"target",
"method",
"screenshotTarget",
"fields",
"window",
"location",
"hostname",
"datas",
"querySelectorAll",
"i",
"length",
"console",
"log",
"tmp",
"split",
"referrer",
"href",
"navigator",
"userAgent",
"screen",
"width",
"height",
"colorDepth",
"f",
"inp",
"type",
"value",
"submit",
"panel",
"tab",
"innerHTML",
"contains",
"toggle",
"button",
"event",
"data",
"links",
"getElementsByClassName",
"l",
"preventDefault"
],
"mappings": "CAAA,SAAUA,WACR,aAEA,IAAIC,MAAQ,UAKRC,OACAC,KALDC,SAASC,KAAKC,QAAQC,gBACvBN,MAAQG,SAASC,KAAKC,QAAQC,eAKhC,IAAIC,IAAM,QAINC,UAAY,SAASC,IACvBP,KAAKQ,UAAUC,IAAI,WACnBV,OAAOS,UAAUC,IAAI,WACrBC,YAAW,WACTV,KAAKF,MAAMa,QAAU,EACrBZ,OAAOD,MAAMa,QAAU,EACvBD,YAAW,WACTV,KAAKY,SACLb,OAAOa,SACPX,SAASC,KAAKJ,MAAMe,UAAY,SAChC,OACF,MAGAC,SAAW,SAASP,GAAIQ,OAAM,GAChCf,KAAOC,SAASe,cAAc,OAC9Bf,SAASC,KAAKJ,MAAMe,UAAY,SAChCb,KAAKiB,GAAK,gBACVlB,OAASE,SAASe,cAAc,WACzBE,IAAK,GACZnB,OAAOoB,KAAO,cACdpB,OAAOkB,GAAK,cACZhB,SAASC,KAAKkB,YAAYpB,MAC1BU,YAAW,WACTV,KAAKqB,iBAAiB,SAAQ,WAC5Bf,iBAGF,KACFL,SAASC,KAAKkB,YAAYrB,QAE1B,IAAIuB,KAAOrB,SAASe,cAAc,QAClCM,KAAKC,OAAS1B,UAAU,UAAUC,MAClCwB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBzB,SAASC,KAMlC,IAAIyB,OAAS,GACbA,OAAU,EAAIC,OAAOC,SAASC,SAC9B,IAAIC,MAAQ9B,SAAS+B,iBAAiB,mBACtC,GAAGD,MACD,IAAI,IAAIE,EAAE,EAAGA,EAAEF,MAAMG,OAAOD,IAAK,CAC/BE,QAAQC,IAAIL,MAAME,GAAG9B,QAAkB,UACvC,IAAIkC,IAAMN,MAAME,GAAG9B,QAAkB,SAErCwB,QADAU,IAAMA,IAAIC,MAAM,IAAI,IACT,IAAMD,IAAI,GAOzB,GAJGpC,SAASsC,WAAWZ,OAAU,EAAI1B,SAASsC,UAC3CX,OAAOC,SAASW,OAAOb,OAAU,EAAIC,OAAOC,SAASW,MACrDC,UAAUC,YAAYf,OAAU,EAAIc,UAAUC,WACjDf,OAAU,EAAOC,OAAOe,OAAOC,MAAM,IAAIhB,OAAOe,OAAOE,OAAO,KAAKjB,OAAOe,OAAOG,WAAW,OACzF/B,cAAe,aAAiB,GACjC,IAAI,IAAIkB,KAAKlB,MACXY,OAAOM,GAAKlB,MAAMkB,GAKtB,IAAI,IAAIc,KAFRZ,QAAQC,IAAI,SAAST,QAERA,OAAQ,CACnB,IAAIqB,IAAM/C,SAASe,cAAc,SACjCgC,IAAIC,KAAO,SACXD,IAAI7B,KAAO4B,EACXC,IAAIE,MAAQvB,OAAOoB,GACnBzB,KAAKF,YAAY4B,KAGnB1B,KAAKxB,MAAQ,eACbG,SAASC,KAAKkB,YAAYE,MAC1BA,KAAK6B,SACL7B,KAAKV,UAGHwC,MAAQnD,SAASe,cAAc,OACnCoC,MAAMnC,GAAK,aAEX,IAAIoC,IAAMpD,SAASe,cAAc,QACjCqC,IAAIC,UAAY,UAChBD,IAAIhC,iBAAiB,cAAa,SAASd,IACrC6C,MAAM5C,UAAU+C,SAAS,WAC3BH,MAAM5C,UAAUC,IAAI,UAEtB2C,MAAM5C,UAAUgD,OAAO,WAGzB,IAAIC,OAASxD,SAASe,cAAc,UAEpCyC,OAAOH,UAAY,iBACnBG,OAAOpC,iBAAiB,QAAQP,UAEhCc,OAAOP,iBAAiB,UAAYqC,QAEjB,SAAdA,MAAMC,MAEPrD,cAIJ,IAAIsD,MAAQ3D,SAAS4D,uBAAuB,aAC5C,GAAGD,MAAM1B,OAAS,EAChB,IAAI,IAAI4B,EAAE,EAAEA,EAAEF,MAAM1B,OAAO4B,IAEzBF,MAAME,GAAGzC,iBAAiB,SAAQ,SAASd,IAGzC,OAFAO,SAASP,GAAGA,GAAGiB,OAAOrB,SACtBI,GAAGwD,kBACI,KAKbX,MAAMhC,YAAYiC,KAClBD,MAAMhC,YAAYqC,QAElBxD,SAASC,KAAKkB,YAAYgC,OAnI5B,CAoIG",
"file": "flag.js"
}

38
form.js
View File

@ -1,20 +1,20 @@
addAutoresize = function() {
document.querySelectorAll('[data-autoresize]').forEach(function(element) {
element.style.boxSizing = 'border-box';
var offset = element.offsetHeight - element.clientHeight;
document.addEventListener('input', function(event) {
event.target.style.height = 'auto';
event.target.style.height = event.target.scrollHeight + offset + 'px';
});
element.removeAttribute('data-autoresize');
});
}
addAutoresize();
isset = function(id) {
if($('#'+id).val() == ''){
alert('Es wurden nicht alle Felder ausgefüllt.');
return false;
}
return true;
addAutoresize = function() {
document.querySelectorAll('[data-autoresize]').forEach(function(element) {
element.style.boxSizing = 'border-box';
var offset = element.offsetHeight - element.clientHeight;
document.addEventListener('input', function(event) {
event.target.style.height = 'auto';
event.target.style.height = event.target.scrollHeight + offset + 'px';
});
element.removeAttribute('data-autoresize');
});
}
addAutoresize();
isset = function(id) {
if($('#'+id).val() == ''){
alert('Es wurden nicht alle Felder ausgefüllt.');
return false;
}
return true;
}

2
form.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
addAutoresize=function(){document.querySelectorAll("[data-autoresize]").forEach((function(element){element.style.boxSizing="border-box";var offset=element.offsetHeight-element.clientHeight;document.addEventListener("input",(function(event){event.target.style.height="auto",event.target.style.height=event.target.scrollHeight+offset+"px"})),element.removeAttribute("data-autoresize")}))},addAutoresize(),isset=function(id){return""!=$("#"+id).val()||(alert("Es wurden nicht alle Felder ausgefüllt."),!1)};
//# sourceMappingURL=form.min.js.map

31
form.min.js.map Normal file
View File

@ -0,0 +1,31 @@
{
"version": 3,
"sources": [
"form.js"
],
"names": [
"addAutoresize",
"document",
"querySelectorAll",
"forEach",
"element",
"style",
"boxSizing",
"offset",
"offsetHeight",
"clientHeight",
"addEventListener",
"event",
"target",
"height",
"scrollHeight",
"removeAttribute",
"isset",
"id",
"$",
"val",
"alert"
],
"mappings": "AAAAA,cAAgB,WACdC,SAASC,iBAAiB,qBAAqBC,SAAQ,SAASC,SAC9DA,QAAQC,MAAMC,UAAY,aAC1B,IAAIC,OAASH,QAAQI,aAAeJ,QAAQK,aAC5CR,SAASS,iBAAiB,SAAS,SAASC,OAC1CA,MAAMC,OAAOP,MAAMQ,OAAS,OAC5BF,MAAMC,OAAOP,MAAMQ,OAASF,MAAMC,OAAOE,aAAeP,OAAS,QAEnEH,QAAQW,gBAAgB,uBAG5Bf,gBAEAgB,MAAQ,SAASC,IACf,MAAsB,IAAnBC,EAAE,IAAID,IAAIE,QACXC,MAAM,4CACC",
"file": "form.js"
}

47
frontlog.css Normal file
View File

@ -0,0 +1,47 @@
frontlog {
position: fixed;
min-width: 200px;
max-width: 300px;
bottom: 0;
right: 0.5em;
}
flogelem {
display:block;
border-width: 1px;
border-style: solid;
border-radius: 8px;
overflow: hidden;
max-height: 0;
margin-bottom: 0;
padding: 0;
opacity: 0;
position: relative;
bottom: 0;
-webkit-transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
-moz-transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
}
.flshow {
max-height: 200px!important;
margin-bottom: 1em;
padding: 4px;
opacity: 1;
}
.flvanish {
position: relative;
bottom: 3em;
max-height: 0 !important;
opacity: 0 !important;
}
fltitle {
display: block;
font-size: 120%;
}
flogelem img {
float: left;
width: 25px;
}

68
frontlog.js Normal file
View File

@ -0,0 +1,68 @@
let frontlogList = [];
let frontlogMaxEl = document.body.dataset['frontlog']||3;
let frontlog = document.createElement('frontlog');
document.body.appendChild(frontlog);
let frontlogVanish = function(elem) {
elem.classList.add('flvanish');
setTimeout(function() {
elem.remove();
let elems = document.getElementsByTagName('flogelem');
if(elems.length < frontlogMaxEl && frontlogList.length) {
let p = frontlogList.shift();
frontlogPipe(p.title,p.icon,p.msg,p.col,p.time);
}
},3100);
}
let frontlogAdd = function(title,icon,msg,col,time) {
let elems = document.getElementsByTagName('flogelem');
if(elems.length < frontlogMaxEl) {
frontlogPipe(title,icon,msg,col,time);
}else{
let pElem = {"title":title,"icon":icon,"msg":msg,"col":col,"time":time};
frontlogList.push(pElem);
}
}
let frontlogPipe = function(title,icon,msg,col, time) {
let elem = document.createElement('flogelem');
{
let elemid = 'fl_';
{
let ch = 'abcdefghijklmnopqrstuvwxyz0123456789';
let chl = ch.length;
for ( let i = 0; i < 16; i++ ) {
elemid += ch.charAt(Math.floor(Math.random() * chl));
}
}
elem.id = elemid;
let flicon = document.createElement('img');
flicon.src = icon;
elem.appendChild(flicon);
let fltitle = document.createElement('fltitle');
fltitle.innerText = title;
elem.appendChild(fltitle);
let flmsg = document.createElement('flmsg');
flmsg.innerText = msg;
elem.appendChild(flmsg);
}
elem.style = 'border-color: '+col+';';
elem.addEventListener('click',function(ev){
let tg = ev.target;
if(tg.tagName.toLowerCase() != 'flogelem') {
tg = ev.target.parentNode;
}
frontlogVanish(tg);
});
setTimeout(function(){
frontlogVanish(elem);
},time*1000)
frontlog.appendChild(elem);
setTimeout(function(){
elem.classList.add('flshow');
},10);
}

2
get_params.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
var getUrlParameter=function getUrlParameter(sParam){var sPageURL,sURLVariables=window.location.search.substring(1).split("&"),sParameterName,i;for(i=0;i<sURLVariables.length;i++)if((sParameterName=sURLVariables[i].split("="))[0]===sParam)return void 0===sParameterName[1]||decodeURIComponent(sParameterName[1]);return!1};
//# sourceMappingURL=get_params.min.js.map

24
get_params.min.js.map Normal file
View File

@ -0,0 +1,24 @@
{
"version": 3,
"sources": [
"get_params.js"
],
"names": [
"getUrlParameter",
"sParam",
"sPageURL",
"sURLVariables",
"window",
"location",
"search",
"substring",
"split",
"sParameterName",
"i",
"length",
"undefined",
"decodeURIComponent"
],
"mappings": "AAAA,IAAIA,gBAAkB,SAASA,gBAAgBC,QAC3C,IAAIC,SACAC,cADWC,OAAOC,SAASC,OAAOC,UAAU,GACnBC,MAAM,KAC/BC,eACAC,EAEJ,IAAKA,EAAI,EAAGA,EAAIP,cAAcQ,OAAQD,IAGlC,IAFAD,eAAiBN,cAAcO,GAAGF,MAAM,MAErB,KAAOP,OACtB,YAA6BW,IAAtBH,eAAe,IAA0BI,mBAAmBJ,eAAe,IAG1F,OAAO",
"file": "get_params.js"
}

17
grid.css Normal file
View File

@ -0,0 +1,17 @@
.grid-container {
columns: 2 500px;
column-gap: 30px;
margin: 0 auto;
}
.grid-container>section {
width: 150px;
margin: 0 1.5rem 1.5rem 0;
display: inline-block;
width: 100%;
border: solid 2px black;
padding: 5px;
box-shadow: 5px 5px 5px rgb(0 0 0 / 50%);
border-radius: 5px;
transition: all 0.25s ease-in-out;
}

1
grid.min.css vendored Normal file
View File

@ -0,0 +1 @@
.grid-container{columns:2 500px;column-gap:30px;margin:0 auto}.grid-container>section{width:150px;margin:0 1.5rem 1.5rem 0;display:inline-block;width:100%;border:solid 2px #000;padding:5px;box-shadow:5px 5px 5px rgb(0 0 0 / 50%);border-radius:5px;transition:all .25s ease-in-out}

7830
html2canvas.js Normal file

File diff suppressed because one or more lines are too long

21
html2canvas.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1717
html2canvas.min.js.map Normal file

File diff suppressed because one or more lines are too long

19
itooltip.css Normal file
View File

@ -0,0 +1,19 @@
tooltip {
display:block;
width: 300px;
background-color: rgba(0,0,0,0.8);
color: #fff;
border: 3px solid #fff;
border-radius: 0.5em;
padding: 0.5em;
}
tooltip a {
word-break: break-all;
}
tooltip h3 {
margin: 0;
color: #fff;
}

52
itooltip.js Normal file
View File

@ -0,0 +1,52 @@
( function() {
'use strict';
var loadToolTip = function(ev) {
//destroyToolTip(ev);
if(!ev.target.dataset.url) return;
var tt = document.createElement('tooltip');
tt.classList.add('fadeable');
tt.style.cssText= "position:absolute; top: "+(ev.pageY+10)+"px; left: "+ (ev.pageX+10) +"px;";
document.body.appendChild(tt);
var url = ev.target.dataset.url;
//console.log('URL:',url);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4) {
if(this.status == 200) {
tt.innerHTML = this.responseText;
tt.classList.add('visible');
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
var destroyToolTip = function(ev) {
var tts = document.getElementsByTagName('tooltip');
if(tts[0]) {
tts[0].classList.remove('visible');
setTimeout(function() {
if(tts[0]) tts[0].remove();
},500);
}
}
//class itooltip
var elems = document.getElementsByClassName('itooltip');
for (var i =0;i<elems.length;i++) {
elems[i].addEventListener('mouseenter',function(ev){
loadToolTip(ev);
});
elems[i].addEventListener('mouseleave',function(ev){
destroyToolTip(ev);
});
}
})();
//TODO lade daten von url in data-url
//TODO in der obenhälfte tooltip down untehälte up
//TODO linke hälte tooltip richts sondt links

1
itooltip.min.css vendored Normal file
View File

@ -0,0 +1 @@
tooltip{display:block;width:300px;background-color:rgba(0,0,0,.8);color:#fff;border:3px solid #fff;border-radius:.5em;padding:.5em}tooltip a{word-break:break-all}tooltip h3{margin:0;color:#fff}

2
itooltip.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
!function(){"use strict";for(var loadToolTip=function(ev){if(ev.target.dataset.url){var tt=document.createElement("tooltip");tt.classList.add("fadeable"),tt.style.cssText="position:absolute; top: "+(ev.pageY+10)+"px; left: "+(ev.pageX+10)+"px;",document.body.appendChild(tt);var url=ev.target.dataset.url,xmlhttp=new XMLHttpRequest;xmlhttp.onreadystatechange=function(){4==this.readyState&&200==this.status&&(tt.innerHTML=this.responseText,tt.classList.add("visible"))},xmlhttp.open("GET",url,!0),xmlhttp.send()}},destroyToolTip=function(ev){var tts=document.getElementsByTagName("tooltip");tts[0]&&(tts[0].classList.remove("visible"),setTimeout((function(){tts[0]&&tts[0].remove()}),500))},elems=document.getElementsByClassName("itooltip"),i=0;i<elems.length;i++)elems[i].addEventListener("mouseenter",(function(ev){loadToolTip(ev)})),elems[i].addEventListener("mouseleave",(function(ev){destroyToolTip(ev)}))}();
//# sourceMappingURL=itooltip.min.js.map

46
itooltip.min.js.map Normal file
View File

@ -0,0 +1,46 @@
{
"version": 3,
"sources": [
"itooltip.js"
],
"names": [
"loadToolTip",
"ev",
"target",
"dataset",
"url",
"tt",
"document",
"createElement",
"classList",
"add",
"style",
"cssText",
"pageY",
"pageX",
"body",
"appendChild",
"xmlhttp",
"XMLHttpRequest",
"onreadystatechange",
"this",
"readyState",
"status",
"innerHTML",
"responseText",
"open",
"send",
"destroyToolTip",
"tts",
"getElementsByTagName",
"remove",
"setTimeout",
"elems",
"getElementsByClassName",
"i",
"length",
"addEventListener"
],
"mappings": "CAAA,WACE,aAsCA,IApCA,IAAIA,YAAc,SAASC,IAEzB,GAAIA,GAAGC,OAAOC,QAAQC,IAAtB,CAEA,IAAIC,GAAKC,SAASC,cAAc,WAChCF,GAAGG,UAAUC,IAAI,YACjBJ,GAAGK,MAAMC,QAAS,4BAA4BV,GAAGW,MAAM,IAAI,cAAeX,GAAGY,MAAM,IAAK,MACxFP,SAASQ,KAAKC,YAAYV,IAE1B,IAAID,IAAMH,GAAGC,OAAOC,QAAQC,IAExBY,QAAU,IAAIC,eAClBD,QAAQE,mBAAqB,WACJ,GAAnBC,KAAKC,YACW,KAAfD,KAAKE,SACNhB,GAAGiB,UAAYH,KAAKI,aACpBlB,GAAGG,UAAUC,IAAI,aAIvBO,QAAQQ,KAAK,MAAOpB,KAAK,GACzBY,QAAQS,SAGNC,eAAiB,SAASzB,IAC5B,IAAI0B,IAAMrB,SAASsB,qBAAqB,WACrCD,IAAI,KACLA,IAAI,GAAGnB,UAAUqB,OAAO,WACxBC,YAAW,WACNH,IAAI,IAAIA,IAAI,GAAGE,WAClB,OAKFE,MAAQzB,SAAS0B,uBAAuB,YACnCC,EAAG,EAAEA,EAAEF,MAAMG,OAAOD,IAC3BF,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CD,YAAYC,OAEd8B,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CyB,eAAezB,OA5CrB",
"file": "itooltip.js"
}

178
jquery-autoresize.js vendored
View File

@ -1,90 +1,90 @@
(function($){
$.fn.autoResize = function(options) {
// Just some abstracted details,
// to make plugin users happy:
var settings = $.extend({
onResize : function(){},
animate : true,
animateDuration : 150,
animateCallback : function(){},
extraSpace : 20,
limit: 1000
}, options);
// Only textarea's auto-resize:
this.filter('textarea').each(function(){
// Get rid of scrollbars and disable WebKit resizing:
var textarea = $(this).css({resize:'none','overflow-y':'hidden'}),
// Cache original height, for use later:
origHeight = textarea.height(),
// Need clone of textarea, hidden off screen:
clone = (function(){
// Properties which may effect space taken up by chracters:
var props = ['height','width','lineHeight','textDecoration','letterSpacing'],
propOb = {};
// Create object of styles to apply:
$.each(props, function(i, prop){
propOb[prop] = textarea.css(prop);
});
// Clone the actual textarea removing unique properties
// and insert before original textarea:
return textarea.clone().removeAttr('id').removeAttr('name').css({
position: 'absolute',
top: 0,
left: -9999
}).css(propOb).attr('tabIndex','-1').insertBefore(textarea);
})(),
lastScrollTop = null,
updateSize = function() {
// Prepare the clone:
clone.height(0).val($(this).val()).scrollTop(10000);
// Find the height of text:
var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace,
toChange = $(this).add(clone);
// Don't do anything if scrollTip hasen't changed:
if (lastScrollTop === scrollTop) { return; }
lastScrollTop = scrollTop;
// Check for limit:
if ( scrollTop >= settings.limit ) {
$(this).css('overflow-y','');
return;
}
// Fire off callback:
settings.onResize.call(this);
// Either animate or directly apply height:
settings.animate && textarea.css('display') === 'block' ?
toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback)
: toChange.height(scrollTop);
};
// Bind namespaced handlers to appropriate events:
textarea
.unbind('.dynSiz')
.bind('keyup.dynSiz', updateSize)
.bind('keydown.dynSiz', updateSize)
.bind('change.dynSiz', updateSize);
});
// Chain:
return this;
};
(function($){
$.fn.autoResize = function(options) {
// Just some abstracted details,
// to make plugin users happy:
var settings = $.extend({
onResize : function(){},
animate : true,
animateDuration : 150,
animateCallback : function(){},
extraSpace : 20,
limit: 1000
}, options);
// Only textarea's auto-resize:
this.filter('textarea').each(function(){
// Get rid of scrollbars and disable WebKit resizing:
var textarea = $(this).css({resize:'none','overflow-y':'hidden'}),
// Cache original height, for use later:
origHeight = textarea.height(),
// Need clone of textarea, hidden off screen:
clone = (function(){
// Properties which may effect space taken up by chracters:
var props = ['height','width','lineHeight','textDecoration','letterSpacing'],
propOb = {};
// Create object of styles to apply:
$.each(props, function(i, prop){
propOb[prop] = textarea.css(prop);
});
// Clone the actual textarea removing unique properties
// and insert before original textarea:
return textarea.clone().removeAttr('id').removeAttr('name').css({
position: 'absolute',
top: 0,
left: -9999
}).css(propOb).attr('tabIndex','-1').insertBefore(textarea);
})(),
lastScrollTop = null,
updateSize = function() {
// Prepare the clone:
clone.height(0).val($(this).val()).scrollTop(10000);
// Find the height of text:
var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace,
toChange = $(this).add(clone);
// Don't do anything if scrollTip hasen't changed:
if (lastScrollTop === scrollTop) { return; }
lastScrollTop = scrollTop;
// Check for limit:
if ( scrollTop >= settings.limit ) {
$(this).css('overflow-y','');
return;
}
// Fire off callback:
settings.onResize.call(this);
// Either animate or directly apply height:
settings.animate && textarea.css('display') === 'block' ?
toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback)
: toChange.height(scrollTop);
};
// Bind namespaced handlers to appropriate events:
textarea
.unbind('.dynSiz')
.bind('keyup.dynSiz', updateSize)
.bind('keydown.dynSiz', updateSize)
.bind('change.dynSiz', updateSize);
});
// Chain:
return this;
};
})(jQuery);

2
jquery-autoresize.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
!function($){$.fn.autoResize=function(options){var settings=$.extend({onResize:function(){},animate:!0,animateDuration:150,animateCallback:function(){},extraSpace:20,limit:1e3},options);return this.filter("textarea").each((function(){var textarea=$(this).css({resize:"none","overflow-y":"hidden"}),origHeight=textarea.height(),clone=(props=["height","width","lineHeight","textDecoration","letterSpacing"],propOb={},$.each(props,(function(i,prop){propOb[prop]=textarea.css(prop)})),textarea.clone().removeAttr("id").removeAttr("name").css({position:"absolute",top:0,left:-9999}).css(propOb).attr("tabIndex","-1").insertBefore(textarea)),lastScrollTop=null,updateSize=function(){clone.height(0).val($(this).val()).scrollTop(1e4);var scrollTop=Math.max(clone.scrollTop(),origHeight)+settings.extraSpace,toChange=$(this).add(clone);lastScrollTop!==scrollTop&&(lastScrollTop=scrollTop,scrollTop>=settings.limit?$(this).css("overflow-y",""):(settings.onResize.call(this),settings.animate&&"block"===textarea.css("display")?toChange.stop().animate({height:scrollTop},settings.animateDuration,settings.animateCallback):toChange.height(scrollTop)))},props,propOb;textarea.unbind(".dynSiz").bind("keyup.dynSiz",updateSize).bind("keydown.dynSiz",updateSize).bind("change.dynSiz",updateSize)})),this}}(jQuery);
//# sourceMappingURL=jquery-autoresize.min.js.map

View File

@ -0,0 +1,55 @@
{
"version": 3,
"sources": [
"jquery-autoresize.js"
],
"names": [
"$",
"fn",
"autoResize",
"options",
"settings",
"extend",
"onResize",
"animate",
"animateDuration",
"animateCallback",
"extraSpace",
"limit",
"this",
"filter",
"each",
"textarea",
"css",
"resize",
"overflow-y",
"origHeight",
"height",
"clone",
"props",
"propOb",
"i",
"prop",
"removeAttr",
"position",
"top",
"left",
"attr",
"insertBefore",
"lastScrollTop",
"updateSize",
"val",
"scrollTop",
"Math",
"max",
"toChange",
"add",
"call",
"stop",
"unbind",
"bind",
"jQuery"
],
"mappings": "CAAA,SAAUA,GAENA,EAAEC,GAAGC,WAAa,SAASC,SAIvB,IAAIC,SAAWJ,EAAEK,OAAO,CACpBC,SAAW,aACXC,SAAU,EACVC,gBAAkB,IAClBC,gBAAkB,aAClBC,WAAa,GACbC,MAAO,KACRR,SAsEH,OAnEAS,KAAKC,OAAO,YAAYC,MAAK,WAGzB,IAAIC,SAAWf,EAAEY,MAAMI,IAAI,CAACC,OAAO,OAAOC,aAAa,WAGnDC,WAAaJ,SAASK,SAGtBC,OAGQC,MAAQ,CAAC,SAAS,QAAQ,aAAa,iBAAiB,iBACxDC,OAAS,GAGbvB,EAAEc,KAAKQ,OAAO,SAASE,EAAGC,MACtBF,OAAOE,MAAQV,SAASC,IAAIS,SAKzBV,SAASM,QAAQK,WAAW,MAAMA,WAAW,QAAQV,IAAI,CAC5DW,SAAU,WACVC,IAAK,EACLC,MAAO,OACRb,IAAIO,QAAQO,KAAK,WAAW,MAAMC,aAAahB,WAGtDiB,cAAgB,KAChBC,WAAa,WAGTZ,MAAMD,OAAO,GAAGc,IAAIlC,EAAEY,MAAMsB,OAAOC,UAAU,KAG7C,IAAIA,UAAYC,KAAKC,IAAIhB,MAAMc,YAAahB,YAAcf,SAASM,WAC/D4B,SAAWtC,EAAEY,MAAM2B,IAAIlB,OAGvBW,gBAAkBG,YACtBH,cAAgBG,UAGXA,WAAa/B,SAASO,MACvBX,EAAEY,MAAMI,IAAI,aAAa,KAI7BZ,SAASE,SAASkC,KAAK5B,MAGvBR,SAASG,SAAuC,UAA5BQ,SAASC,IAAI,WAC7BsB,SAASG,OAAOlC,QAAQ,CAACa,OAAOe,WAAY/B,SAASI,gBAAiBJ,SAASK,iBAC7E6B,SAASlB,OAAOe,cA1ClBb,MACAC,OA6CZR,SACK2B,OAAO,WACPC,KAAK,eAAgBV,YACrBU,KAAK,iBAAkBV,YACvBU,KAAK,gBAAiBV,eAKxBrB,MAnFf,CAyFGgC",
"file": "jquery-autoresize.js"
}

8
js-error-logger.js Normal file
View File

@ -0,0 +1,8 @@
window.onerror = function(message, source, lineno, colno, error) {
if(message == 'Script Error' && lineno == 0) return;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "https://troy-grunt.de/api.php", true);
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var params = JSON.stringify({'type':'error_collector','message':message,'source':source,'line':lineno,'col':colno,'err': error});
xmlhttp.send(params);
};

1
js-error-logger.min.js vendored Normal file
View File

@ -0,0 +1 @@
window.onerror=function(e,r,o,t,n){if("Script Error"!=e||0!=o){var p=new XMLHttpRequest;p.open("POST","https://troy-grunt.de/api.php",!0),p.setRequestHeader("Content-type","application/x-www-form-urlencoded");var i=JSON.stringify({type:"error_collector",message:e,source:r,line:o,col:t,err:n});p.send(i)}};

View File

@ -0,0 +1,29 @@
{
"version": 3,
"sources": [
"js-error-logger.js"
],
"names": [
"window",
"onerror",
"message",
"source",
"lineno",
"colno",
"error",
"xmlhttp",
"XMLHttpRequest",
"open",
"setRequestHeader",
"params",
"JSON",
"stringify",
"type",
"line",
"col",
"err",
"send"
],
"mappings": "AAAAA,OAAOC,QAAU,SAASC,QAASC,OAAQC,OAAQC,MAAOC,OACtD,IAAIC,QAAU,IAAIC,eAClBD,QAAQE,KAAK,OAAQ,iCAAiC,GACtDF,QAAQG,iBAAiB,eAAgB,qCACzC,IAAIC,OAASC,KAAKC,UAAU,CAACC,KAAO,kBAAkBZ,QAAUA,QAAQC,OAASA,OAAOY,KAAOX,OAAOY,IAAMX,MAAMY,IAAOX,QACzHC,QAAQW,KAAKP",
"file": "js-error-logger.js"
}

8
lazy-img.css Normal file
View File

@ -0,0 +1,8 @@
img[loading='lazy'] {
opacity: 0;
transition: opacity 0.5s ease !important;
}
img.loaded {
opacity: 1;
}

14
lazy-img.js Normal file
View File

@ -0,0 +1,14 @@
document.addEventListener("DOMContentLoaded", function() {
/*var cssLink = document.createElement("link");
cssLink.rel = "stylesheet";
cssLink.href = "/cssjs/lazy-img.css";
document.head.appendChild(cssLink);*/
var images = document.querySelectorAll('img[loading="lazy"]');
images.forEach(function(image) {
image.onload = function() {
image.classList.add('loaded');
};
});
});

1
lazy-img.min.js vendored Normal file
View File

@ -0,0 +1 @@
document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll('img[loading="lazy"]').forEach(function(n){n.onload=function(){n.classList.add("loaded")}})});

View File

@ -1,204 +1,204 @@
body.lb-disable-scrolling {
overflow: hidden;
}
.lightboxOverlay {
position: absolute;
top: 0;
left: 0;
z-index: 9999;
background-color: black;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
opacity: 0.8;
display: none;
}
.lightbox {
position: absolute;
left: 0;
width: 100%;
z-index: 10000;
text-align: center;
line-height: 0;
font-weight: normal;
outline: none;
}
.lightbox .lb-image {
display: block;
height: auto;
max-width: inherit;
max-height: none;
border-radius: 3px;
/* Image border */
border: 4px solid white;
}
.lightbox a img {
border: none;
}
.lb-outerContainer {
position: relative;
*zoom: 1;
width: 250px;
height: 250px;
margin: 0 auto;
border-radius: 4px;
/* Background color behind image.
This is visible during transitions. */
background-color: white;
}
.lb-outerContainer:after {
content: "";
display: table;
clear: both;
}
.lb-loader {
position: absolute;
top: 43%;
left: 0;
height: 25%;
width: 100%;
text-align: center;
line-height: 0;
}
.lb-cancel {
display: block;
width: 32px;
height: 32px;
margin: 0 auto;
background: url(../images/loading.gif) no-repeat;
}
.lb-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
}
.lb-container > .nav {
left: 0;
}
.lb-nav a {
outline: none;
background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}
.lb-prev, .lb-next {
height: 100%;
cursor: pointer;
display: block;
}
.lb-nav a.lb-prev {
width: 34%;
left: 0;
float: left;
background: url(../images/prev.png) left 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-prev:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-nav a.lb-next {
width: 64%;
right: 0;
float: right;
background: url(../images/next.png) right 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-next:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-dataContainer {
margin: 0 auto;
padding-top: 5px;
*zoom: 1;
width: 100%;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.lb-dataContainer:after {
content: "";
display: table;
clear: both;
}
.lb-data {
padding: 0 4px;
color: #ccc;
}
.lb-data .lb-details {
width: 85%;
float: left;
text-align: left;
line-height: 1.1em;
}
.lb-data .lb-caption {
font-size: 13px;
font-weight: bold;
line-height: 1em;
}
.lb-data .lb-caption a {
color: #4ae;
}
.lb-data .lb-number {
display: block;
clear: left;
padding-bottom: 1em;
font-size: 12px;
color: #999999;
}
.lb-data .lb-close {
display: block;
float: right;
width: 30px;
height: 30px;
background: url(../images/close.png) top right no-repeat;
text-align: right;
outline: none;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
opacity: 0.7;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.lb-data .lb-close:hover {
cursor: pointer;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
body.lb-disable-scrolling {
overflow: hidden;
}
.lightboxOverlay {
position: absolute;
top: 0;
left: 0;
z-index: 9999;
background-color: black;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
opacity: 0.8;
display: none;
}
.lightbox {
position: absolute;
left: 0;
width: 100%;
z-index: 10000;
text-align: center;
line-height: 0;
font-weight: normal;
outline: none;
}
.lightbox .lb-image {
display: block;
height: auto;
max-width: inherit;
max-height: none;
border-radius: 3px;
/* Image border */
border: 4px solid white;
}
.lightbox a img {
border: none;
}
.lb-outerContainer {
position: relative;
*zoom: 1;
width: 250px;
height: 250px;
margin: 0 auto;
border-radius: 4px;
/* Background color behind image.
This is visible during transitions. */
background-color: white;
}
.lb-outerContainer:after {
content: "";
display: table;
clear: both;
}
.lb-loader {
position: absolute;
top: 43%;
left: 0;
height: 25%;
width: 100%;
text-align: center;
line-height: 0;
}
.lb-cancel {
display: block;
width: 32px;
height: 32px;
margin: 0 auto;
background: url(../images/loading.gif) no-repeat;
}
.lb-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
}
.lb-container > .nav {
left: 0;
}
.lb-nav a {
outline: none;
background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}
.lb-prev, .lb-next {
height: 100%;
cursor: pointer;
display: block;
}
.lb-nav a.lb-prev {
width: 34%;
left: 0;
float: left;
background: url(../images/prev.png) left 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-prev:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-nav a.lb-next {
width: 64%;
right: 0;
float: right;
background: url(../images/next.png) right 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-next:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-dataContainer {
margin: 0 auto;
padding-top: 5px;
*zoom: 1;
width: 100%;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.lb-dataContainer:after {
content: "";
display: table;
clear: both;
}
.lb-data {
padding: 0 4px;
color: #ccc;
}
.lb-data .lb-details {
width: 85%;
float: left;
text-align: left;
line-height: 1.1em;
}
.lb-data .lb-caption {
font-size: 13px;
font-weight: bold;
line-height: 1em;
}
.lb-data .lb-caption a {
color: #4ae;
}
.lb-data .lb-number {
display: block;
clear: left;
padding-bottom: 1em;
font-size: 12px;
color: #999999;
}
.lb-data .lb-close {
display: block;
float: right;
width: 30px;
height: 30px;
background: url(../images/close.png) top right no-repeat;
text-align: right;
outline: none;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
opacity: 0.7;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.lb-data .lb-close:hover {
cursor: pointer;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}

File diff suppressed because it is too large Load Diff

1
lightbox.min.css vendored Normal file
View File

@ -0,0 +1 @@
body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;opacity:.8;display:none}.lightbox{position:absolute;left:0;width:100%;z-index:10000;text-align:center;line-height:0;font-weight:400;outline:0}.lightbox .lb-image{display:block;height:auto;max-width:inherit;max-height:none;border-radius:3px;border:4px solid #fff}.lightbox a img{border:none}.lb-outerContainer{position:relative;width:250px;height:250px;margin:0 auto;border-radius:4px;background-color:#fff}.lb-outerContainer:after{content:"";display:table;clear:both}.lb-loader{position:absolute;top:43%;left:0;height:25%;width:100%;text-align:center;line-height:0}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}.lb-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{content:"";display:table;clear:both}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-caption a{color:#4ae}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;opacity:1}

15
lightbox.min.js vendored Normal file

File diff suppressed because one or more lines are too long

157
lightbox.min.js.map Normal file

File diff suppressed because one or more lines are too long

63
logit.js Normal file
View File

@ -0,0 +1,63 @@
if(typeof _paq!=="object"){_paq=[]}if(typeof window.Matomo!=="object"){window.Matomo=window.Piwik=(function(){var r,b={},z={},J=document,g=navigator,ab=screen,W=window,h=W.performance||W.mozPerformance||W.msPerformance||W.webkitPerformance,t=W.encodeURIComponent,V=W.decodeURIComponent,k=unescape,L=[],H,u,al=[],y=0,af=0,X=0,m=false;function p(at){try{return V(at)}catch(au){return unescape(at)}}function M(au){var at=typeof au;return at!=="undefined"}function C(at){return typeof at==="function"}function Z(at){return typeof at==="object"}function x(at){return typeof at==="string"||at instanceof String}function ak(at){return typeof at==="number"||at instanceof Number
}function ac(at){return M(at)&&(ak(at)||(x(at)&&at.length))}function D(au){if(!au){return true}var at;var av=true;for(at in au){if(Object.prototype.hasOwnProperty.call(au,at)){av=false}}return av}function ao(at){var au=typeof console;if(au!=="undefined"&&console&&console.error){console.error(at)}}function aj(){var ay,ax,aA,au,at;for(ay=0;ay<arguments.length;ay+=1){at=null;if(arguments[ay]&&arguments[ay].slice){at=arguments[ay].slice()}au=arguments[ay];aA=au.shift();var az,av;var aw=x(aA)&&aA.indexOf("::")>0;if(aw){az=aA.split("::");av=az[0];aA=az[1];if("object"===typeof u[av]&&"function"===typeof u[av][aA]){u[av][aA].apply(u[av],au)}else{if(at){al.push(at)}}}else{for(ax=0;ax<L.length;ax++){if(x(aA)){av=L[ax];var aB=aA.indexOf(".")>0;if(aB){az=aA.split(".");if(av&&"object"===typeof av[az[0]]){av=av[az[0]];aA=az[1]}else{if(at){al.push(at);break}}}if(av[aA]){av[aA].apply(av,au)}else{var aC="The method '"+aA+'\' was not found in "_paq" variable. Please have a look at the Matomo tracker documentation: https://developer.matomo.org/api-reference/tracking-javascript';
ao(aC);if(!aB){throw new TypeError(aC)}}if(aA==="addTracker"){break}if(aA==="setTrackerUrl"||aA==="setSiteId"){break}}else{aA.apply(L[ax],au)}}}}}function ar(aw,av,au,at){if(aw.addEventListener){aw.addEventListener(av,au,at);return true}if(aw.attachEvent){return aw.attachEvent("on"+av,au)}aw["on"+av]=au}function n(at){if(J.readyState==="complete"){at()}else{if(W.addEventListener){W.addEventListener("load",at,false)}else{if(W.attachEvent){W.attachEvent("onload",at)}}}}function q(aw){var at=false;if(J.attachEvent){at=J.readyState==="complete"}else{at=J.readyState!=="loading"}if(at){aw();return}var av;if(J.addEventListener){ar(J,"DOMContentLoaded",function au(){J.removeEventListener("DOMContentLoaded",au,false);if(!at){at=true;aw()}})}else{if(J.attachEvent){J.attachEvent("onreadystatechange",function au(){if(J.readyState==="complete"){J.detachEvent("onreadystatechange",au);if(!at){at=true;aw()}}});if(J.documentElement.doScroll&&W===W.top){(function au(){if(!at){try{J.documentElement.doScroll("left")
}catch(ax){setTimeout(au,0);return}at=true;aw()}}())}}}ar(W,"load",function(){if(!at){at=true;aw()}},false)}function ag(au,az,aA){if(!au){return""}var at="",aw,av,ax,ay;for(aw in b){if(Object.prototype.hasOwnProperty.call(b,aw)){ay=b[aw]&&"function"===typeof b[aw][au];if(ay){av=b[aw][au];ax=av(az||{},aA);if(ax){at+=ax}}}}return at}function am(){var at;m=true;ag("unload");at=new Date();var au=at.getTimeAlias();if((r-au)>3000){r=au+3000}if(r){do{at=new Date()}while(at.getTimeAlias()<r)}}function o(av,au){var at=J.createElement("script");at.type="text/javascript";at.src=av;if(at.readyState){at.onreadystatechange=function(){var aw=this.readyState;if(aw==="loaded"||aw==="complete"){at.onreadystatechange=null;au()}}}else{at.onload=au}J.getElementsByTagName("head")[0].appendChild(at)}function N(){var at="";try{at=W.top.document.referrer}catch(av){if(W.parent){try{at=W.parent.document.referrer}catch(au){at=""}}}if(at===""){at=J.referrer}return at}function s(at){var av=new RegExp("^([a-z]+):"),au=av.exec(at);
return au?au[1]:null}function d(at){var av=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),au=av.exec(at);return au?au[1]:at}function G(at){return(/^[0-9][0-9]*(\.[0-9]+)?$/).test(at)}function Q(av,aw){var at={},au;for(au in av){if(av.hasOwnProperty(au)&&aw(av[au])){at[au]=av[au]}}return at}function B(av){var at={},au;for(au in av){if(av.hasOwnProperty(au)){if(G(av[au])){at[au]=Math.round(av[au])}else{throw new Error('Parameter "'+au+'" provided value "'+av[au]+'" is not valid. Please provide a numeric value.')}}}return at}function l(au){var av="",at;for(at in au){if(au.hasOwnProperty(at)){av+="&"+t(at)+"="+t(au[at])}}return av}function an(au,at){au=String(au);return au.lastIndexOf(at,0)===0}function U(au,at){au=String(au);return au.indexOf(at,au.length-at.length)!==-1}function A(au,at){au=String(au);return au.indexOf(at)!==-1}function f(au,at){au=String(au);return au.substr(0,au.length-at)}function I(aw,av,ay){aw=String(aw);if(!ay){ay=""}var at=aw.indexOf("#");var az=aw.length;
if(at===-1){at=az}var ax=aw.substr(0,at);var au=aw.substr(at,az-at);if(ax.indexOf("?")===-1){ax+="?"}else{if(!U(ax,"?")){ax+="&"}}return ax+t(av)+"="+t(ay)+au}function j(au,av){au=String(au);if(au.indexOf("?"+av+"=")===-1&&au.indexOf("&"+av+"=")===-1){return au}var aw=au.indexOf("?");if(aw===-1){return au}var at=au.substr(aw+1);var aA=au.substr(0,aw);if(at){var aB="";var aD=at.indexOf("#");if(aD!==-1){aB=at.substr(aD+1);at=at.substr(0,aD)}var ax;var az=at.split("&");var ay=az.length-1;for(ay;ay>=0;ay--){ax=az[ay].split("=")[0];if(ax===av){az.splice(ay,1)}}var aC=az.join("&");if(aC){aA=aA+"?"+aC}if(aB){aA+="#"+aB}}return aA}function e(av,au){var at="[\\?&#]"+au+"=([^&#]*)";var ax=new RegExp(at);var aw=ax.exec(av);return aw?p(aw[1]):""}function a(at){if(at&&String(at)===at){return at.replace(/^\s+|\s+$/g,"")}return at}function F(at){return unescape(t(at))}function aq(aI){var av=function(aO,aN){return(aO<<aN)|(aO>>>(32-aN))},aJ=function(aQ){var aO="",aP,aN;for(aP=7;aP>=0;aP--){aN=(aQ>>>(aP*4))&15;
aO+=aN.toString(16)}return aO},ay,aL,aK,au=[],aC=1732584193,aA=4023233417,az=2562383102,ax=271733878,aw=3285377520,aH,aG,aF,aE,aD,aM,at,aB=[];aI=F(aI);at=aI.length;for(aL=0;aL<at-3;aL+=4){aK=aI.charCodeAt(aL)<<24|aI.charCodeAt(aL+1)<<16|aI.charCodeAt(aL+2)<<8|aI.charCodeAt(aL+3);aB.push(aK)}switch(at&3){case 0:aL=2147483648;break;case 1:aL=aI.charCodeAt(at-1)<<24|8388608;break;case 2:aL=aI.charCodeAt(at-2)<<24|aI.charCodeAt(at-1)<<16|32768;break;case 3:aL=aI.charCodeAt(at-3)<<24|aI.charCodeAt(at-2)<<16|aI.charCodeAt(at-1)<<8|128;break}aB.push(aL);while((aB.length&15)!==14){aB.push(0)}aB.push(at>>>29);aB.push((at<<3)&4294967295);for(ay=0;ay<aB.length;ay+=16){for(aL=0;aL<16;aL++){au[aL]=aB[ay+aL]}for(aL=16;aL<=79;aL++){au[aL]=av(au[aL-3]^au[aL-8]^au[aL-14]^au[aL-16],1)}aH=aC;aG=aA;aF=az;aE=ax;aD=aw;for(aL=0;aL<=19;aL++){aM=(av(aH,5)+((aG&aF)|(~aG&aE))+aD+au[aL]+1518500249)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=20;aL<=39;aL++){aM=(av(aH,5)+(aG^aF^aE)+aD+au[aL]+1859775393)&4294967295;
aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=40;aL<=59;aL++){aM=(av(aH,5)+((aG&aF)|(aG&aE)|(aF&aE))+aD+au[aL]+2400959708)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}for(aL=60;aL<=79;aL++){aM=(av(aH,5)+(aG^aF^aE)+aD+au[aL]+3395469782)&4294967295;aD=aE;aE=aF;aF=av(aG,30);aG=aH;aH=aM}aC=(aC+aH)&4294967295;aA=(aA+aG)&4294967295;az=(az+aF)&4294967295;ax=(ax+aE)&4294967295;aw=(aw+aD)&4294967295}aM=aJ(aC)+aJ(aA)+aJ(az)+aJ(ax)+aJ(aw);return aM.toLowerCase()}function ae(av,at,au){if(!av){av=""}if(!at){at=""}if(av==="translate.googleusercontent.com"){if(au===""){au=at}at=e(at,"u");av=d(at)}else{if(av==="cc.bingj.com"||av==="webcache.googleusercontent.com"||av.slice(0,5)==="74.6."){at=J.links[0].href;av=d(at)}}return[av,at,au]}function O(au){var at=au.length;if(au.charAt(--at)==="."){au=au.slice(0,at)}if(au.slice(0,2)==="*."){au=au.slice(1)}if(au.indexOf("/")!==-1){au=au.substr(0,au.indexOf("/"))}return au}function ap(au){au=au&&au.text?au.text:au;if(!x(au)){var at=J.getElementsByTagName("title");
if(at&&M(at[0])){au=at[0].text}}return au}function S(at){if(!at){return[]}if(!M(at.children)&&M(at.childNodes)){return at.children}if(M(at.children)){return at.children}return[]}function Y(au,at){if(!au||!at){return false}if(au.contains){return au.contains(at)}if(au===at){return true}if(au.compareDocumentPosition){return !!(au.compareDocumentPosition(at)&16)}return false}function P(av,aw){if(av&&av.indexOf){return av.indexOf(aw)}if(!M(av)||av===null){return -1}if(!av.length){return -1}var at=av.length;if(at===0){return -1}var au=0;while(au<at){if(av[au]===aw){return au}au++}return -1}function i(av){if(!av){return false}function at(ax,ay){if(W.getComputedStyle){return J.defaultView.getComputedStyle(ax,null)[ay]}if(ax.currentStyle){return ax.currentStyle[ay]}}function aw(ax){ax=ax.parentNode;while(ax){if(ax===J){return true}ax=ax.parentNode}return false}function au(az,aF,ax,aC,aA,aD,aB){var ay=az.parentNode,aE=1;if(!aw(az)){return false}if(9===ay.nodeType){return true}if("0"===at(az,"opacity")||"none"===at(az,"display")||"hidden"===at(az,"visibility")){return false
}if(!M(aF)||!M(ax)||!M(aC)||!M(aA)||!M(aD)||!M(aB)){aF=az.offsetTop;aA=az.offsetLeft;aC=aF+az.offsetHeight;ax=aA+az.offsetWidth;aD=az.offsetWidth;aB=az.offsetHeight}if(av===az&&(0===aB||0===aD)&&"hidden"===at(az,"overflow")){return false}if(ay){if(("hidden"===at(ay,"overflow")||"scroll"===at(ay,"overflow"))){if(aA+aE>ay.offsetWidth+ay.scrollLeft||aA+aD-aE<ay.scrollLeft||aF+aE>ay.offsetHeight+ay.scrollTop||aF+aB-aE<ay.scrollTop){return false}}if(az.offsetParent===ay){aA+=ay.offsetLeft;aF+=ay.offsetTop}return au(ay,aF,ax,aC,aA,aD,aB)}return true}return au(av)}var ai={htmlCollectionToArray:function(av){var at=[],au;if(!av||!av.length){return at}for(au=0;au<av.length;au++){at.push(av[au])}return at},find:function(at){if(!document.querySelectorAll||!at){return[]}var au=document.querySelectorAll(at);return this.htmlCollectionToArray(au)},findMultiple:function(av){if(!av||!av.length){return[]}var au,aw;var at=[];for(au=0;au<av.length;au++){aw=this.find(av[au]);at=at.concat(aw)}at=this.makeNodesUnique(at);
return at},findNodesByTagName:function(au,at){if(!au||!at||!au.getElementsByTagName){return[]}var av=au.getElementsByTagName(at);return this.htmlCollectionToArray(av)},makeNodesUnique:function(at){var ay=[].concat(at);at.sort(function(aA,az){if(aA===az){return 0}var aC=P(ay,aA);var aB=P(ay,az);if(aC===aB){return 0}return aC>aB?-1:1});if(at.length<=1){return at}var au=0;var aw=0;var ax=[];var av;av=at[au++];while(av){if(av===at[au]){aw=ax.push(au)}av=at[au++]||null}while(aw--){at.splice(ax[aw],1)}return at},getAttributeValueFromNode:function(ax,av){if(!this.hasNodeAttribute(ax,av)){return}if(ax&&ax.getAttribute){return ax.getAttribute(av)}if(!ax||!ax.attributes){return}var aw=(typeof ax.attributes[av]);if("undefined"===aw){return}if(ax.attributes[av].value){return ax.attributes[av].value}if(ax.attributes[av].nodeValue){return ax.attributes[av].nodeValue}var au;var at=ax.attributes;if(!at){return}for(au=0;au<at.length;au++){if(at[au].nodeName===av){return at[au].nodeValue}}return null},hasNodeAttributeWithValue:function(au,at){var av=this.getAttributeValueFromNode(au,at);
return !!av},hasNodeAttribute:function(av,at){if(av&&av.hasAttribute){return av.hasAttribute(at)}if(av&&av.attributes){var au=(typeof av.attributes[at]);return"undefined"!==au}return false},hasNodeCssClass:function(av,at){if(av&&at&&av.className){var au=typeof av.className==="string"?av.className.split(" "):[];if(-1!==P(au,at)){return true}}return false},findNodesHavingAttribute:function(ax,av,at){if(!at){at=[]}if(!ax||!av){return at}var aw=S(ax);if(!aw||!aw.length){return at}var au,ay;for(au=0;au<aw.length;au++){ay=aw[au];if(this.hasNodeAttribute(ay,av)){at.push(ay)}at=this.findNodesHavingAttribute(ay,av,at)}return at},findFirstNodeHavingAttribute:function(av,au){if(!av||!au){return}if(this.hasNodeAttribute(av,au)){return av}var at=this.findNodesHavingAttribute(av,au);if(at&&at.length){return at[0]}},findFirstNodeHavingAttributeWithValue:function(aw,av){if(!aw||!av){return}if(this.hasNodeAttributeWithValue(aw,av)){return aw}var at=this.findNodesHavingAttribute(aw,av);if(!at||!at.length){return
}var au;for(au=0;au<at.length;au++){if(this.getAttributeValueFromNode(at[au],av)){return at[au]}}},findNodesHavingCssClass:function(ax,aw,at){if(!at){at=[]}if(!ax||!aw){return at}if(ax.getElementsByClassName){var ay=ax.getElementsByClassName(aw);return this.htmlCollectionToArray(ay)}var av=S(ax);if(!av||!av.length){return[]}var au,az;for(au=0;au<av.length;au++){az=av[au];if(this.hasNodeCssClass(az,aw)){at.push(az)}at=this.findNodesHavingCssClass(az,aw,at)}return at},findFirstNodeHavingClass:function(av,au){if(!av||!au){return}if(this.hasNodeCssClass(av,au)){return av}var at=this.findNodesHavingCssClass(av,au);if(at&&at.length){return at[0]}},isLinkElement:function(au){if(!au){return false}var at=String(au.nodeName).toLowerCase();var aw=["a","area"];var av=P(aw,at);return av!==-1},setAnyAttribute:function(au,at,av){if(!au||!at){return}if(au.setAttribute){au.setAttribute(at,av)}else{au[at]=av}}};var w={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"matomoTrackContent",LEGACY_CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"matomoContentPiece",LEGACY_CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"matomoContentTarget",LEGACY_CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"matomoContentIgnoreInteraction",LEGACY_CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var au="."+this.CONTENT_CLASS;
var av="."+this.LEGACY_CONTENT_CLASS;var at="["+this.CONTENT_ATTR+"]";var aw=ai.findMultiple([au,av,at]);return aw},findContentNodesWithinNode:function(aw){if(!aw){return[]}var au=ai.findNodesHavingCssClass(aw,this.CONTENT_CLASS);au=ai.findNodesHavingCssClass(aw,this.LEGACY_CONTENT_CLASS,au);var at=ai.findNodesHavingAttribute(aw,this.CONTENT_ATTR);if(at&&at.length){var av;for(av=0;av<at.length;av++){au.push(at[av])}}if(ai.hasNodeAttribute(aw,this.CONTENT_ATTR)){au.push(aw)}else{if(ai.hasNodeCssClass(aw,this.CONTENT_CLASS)){au.push(aw)}else{if(ai.hasNodeCssClass(aw,this.LEGACY_CONTENT_CLASS)){au.push(aw)}}}au=ai.makeNodesUnique(au);return au},findParentContentNode:function(au){if(!au){return}var av=au;var at=0;while(av&&av!==J&&av.parentNode){if(ai.hasNodeAttribute(av,this.CONTENT_ATTR)){return av}if(ai.hasNodeCssClass(av,this.CONTENT_CLASS)){return av}if(ai.hasNodeCssClass(av,this.LEGACY_CONTENT_CLASS)){return av}av=av.parentNode;if(at>1000){break}at++}},findPieceNode:function(au){var at;
at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.findFirstNodeHavingClass(au,this.CONTENT_PIECE_CLASS)}if(!at){at=ai.findFirstNodeHavingClass(au,this.LEGACY_CONTENT_PIECE_CLASS)}if(at){return at}return au},findTargetNodeNoDefault:function(at){if(!at){return}var au=ai.findFirstNodeHavingAttributeWithValue(at,this.CONTENT_TARGET_ATTR);if(au){return au}au=ai.findFirstNodeHavingAttribute(at,this.CONTENT_TARGET_ATTR);if(au){return au}au=ai.findFirstNodeHavingClass(at,this.CONTENT_TARGET_CLASS);if(au){return au}au=ai.findFirstNodeHavingClass(at,this.LEGACY_CONTENT_TARGET_CLASS);if(au){return au}},findTargetNode:function(at){var au=this.findTargetNodeNoDefault(at);if(au){return au}return at},findContentName:function(au){if(!au){return}var ax=ai.findFirstNodeHavingAttributeWithValue(au,this.CONTENT_NAME_ATTR);if(ax){return ai.getAttributeValueFromNode(ax,this.CONTENT_NAME_ATTR)}var at=this.findContentPiece(au);if(at){return this.removeDomainIfIsInLink(at)}if(ai.hasNodeAttributeWithValue(au,"title")){return ai.getAttributeValueFromNode(au,"title")
}var av=this.findPieceNode(au);if(ai.hasNodeAttributeWithValue(av,"title")){return ai.getAttributeValueFromNode(av,"title")}var aw=this.findTargetNode(au);if(ai.hasNodeAttributeWithValue(aw,"title")){return ai.getAttributeValueFromNode(aw,"title")}},findContentPiece:function(au){if(!au){return}var aw=ai.findFirstNodeHavingAttributeWithValue(au,this.CONTENT_PIECE_ATTR);if(aw){return ai.getAttributeValueFromNode(aw,this.CONTENT_PIECE_ATTR)}var at=this.findPieceNode(au);var av=this.findMediaUrlInNode(at);if(av){return this.toAbsoluteUrl(av)}},findContentTarget:function(av){if(!av){return}var aw=this.findTargetNode(av);if(ai.hasNodeAttributeWithValue(aw,this.CONTENT_TARGET_ATTR)){return ai.getAttributeValueFromNode(aw,this.CONTENT_TARGET_ATTR)}var au;if(ai.hasNodeAttributeWithValue(aw,"href")){au=ai.getAttributeValueFromNode(aw,"href");return this.toAbsoluteUrl(au)}var at=this.findPieceNode(av);if(ai.hasNodeAttributeWithValue(at,"href")){au=ai.getAttributeValueFromNode(at,"href");return this.toAbsoluteUrl(au)
}},isSameDomain:function(at){if(!at||!at.indexOf){return false}if(0===at.indexOf(this.getLocation().origin)){return true}var au=at.indexOf(this.getLocation().host);if(8>=au&&0<=au){return true}return false},removeDomainIfIsInLink:function(av){var au="^https?://[^/]+";var at="^.*//[^/]+";if(av&&av.search&&-1!==av.search(new RegExp(au))&&this.isSameDomain(av)){av=av.replace(new RegExp(at),"");if(!av){av="/"}}return av},findMediaUrlInNode:function(ax){if(!ax){return}var av=["img","embed","video","audio"];var at=ax.nodeName.toLowerCase();if(-1!==P(av,at)&&ai.findFirstNodeHavingAttributeWithValue(ax,"src")){var aw=ai.findFirstNodeHavingAttributeWithValue(ax,"src");return ai.getAttributeValueFromNode(aw,"src")}if(at==="object"&&ai.hasNodeAttributeWithValue(ax,"data")){return ai.getAttributeValueFromNode(ax,"data")}if(at==="object"){var ay=ai.findNodesByTagName(ax,"param");if(ay&&ay.length){var au;for(au=0;au<ay.length;au++){if("movie"===ai.getAttributeValueFromNode(ay[au],"name")&&ai.hasNodeAttributeWithValue(ay[au],"value")){return ai.getAttributeValueFromNode(ay[au],"value")
}}}var az=ai.findNodesByTagName(ax,"embed");if(az&&az.length){return this.findMediaUrlInNode(az[0])}}},trim:function(at){return a(at)},isOrWasNodeInViewport:function(ay){if(!ay||!ay.getBoundingClientRect||ay.nodeType!==1){return true}var ax=ay.getBoundingClientRect();var aw=J.documentElement||{};var av=ax.top<0;if(av&&ay.offsetTop){av=(ay.offsetTop+ax.height)>0}var au=aw.clientWidth;if(W.innerWidth&&au>W.innerWidth){au=W.innerWidth}var at=aw.clientHeight;if(W.innerHeight&&at>W.innerHeight){at=W.innerHeight}return((ax.bottom>0||av)&&ax.right>0&&ax.left<au&&((ax.top<at)||av))},isNodeVisible:function(au){var at=i(au);var av=this.isOrWasNodeInViewport(au);return at&&av},buildInteractionRequestParams:function(at,au,av,aw){var ax="";if(at){ax+="c_i="+t(at)}if(au){if(ax){ax+="&"}ax+="c_n="+t(au)}if(av){if(ax){ax+="&"}ax+="c_p="+t(av)}if(aw){if(ax){ax+="&"}ax+="c_t="+t(aw)}if(ax){ax+="&ca=1"}return ax},buildImpressionRequestParams:function(at,au,av){var aw="c_n="+t(at)+"&c_p="+t(au);if(av){aw+="&c_t="+t(av)
}if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at<aw.length;at++){au=this.buildContentBlock(aw[at]);if(M(au)){av.push(au)}}return av},setLocation:function(at){this.location=at},getLocation:function(){var at=this.location||W.location;if(!at.origin){at.origin=at.protocol+"//"+at.hostname+(at.port?":"+at.port:"")}return at},toAbsoluteUrl:function(au){if((!au||String(au)!==au)&&au!==""){return au}if(""===au){return this.getLocation().href}if(au.search(/^\/\//)!==-1){return this.getLocation().protocol+au}if(au.search(/:\/\//)!==-1){return au}if(0===au.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+au}if(0===au.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+au
}if(0===au.search("^[a-zA-Z]{2,11}:")){return au}if(au.search(/^\//)!==-1){return this.getLocation().origin+au}var at="(.*/)";var av=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(at))[0];return av+au},isUrlToCurrentDomain:function(au){var av=this.toAbsoluteUrl(au);if(!av){return false}var at=this.getLocation().origin;if(at===av){return true}if(0===String(av).indexOf(at)){if(":"===String(av).substr(at.length,1)){return false}return true}return false},setHrefAttribute:function(au,at){if(!au||!at){return}ai.setAnyAttribute(au,"href",at)},shouldIgnoreInteraction:function(at){if(ai.hasNodeAttribute(at,this.CONTENT_IGNOREINTERACTION_ATTR)){return true}if(ai.hasNodeCssClass(at,this.CONTENT_IGNOREINTERACTION_CLASS)){return true}if(ai.hasNodeCssClass(at,this.LEGACY_CONTENT_IGNOREINTERACTION_CLASS)){return true}return false}};function aa(au,ax){if(ax){return ax}au=w.toAbsoluteUrl(au);if(A(au,"?")){var aw=au.indexOf("?");au=au.slice(0,aw)}if(U(au,"matomo.php")){au=f(au,"matomo.php".length)
}else{if(U(au,"piwik.php")){au=f(au,"piwik.php".length)}else{if(U(au,".php")){var at=au.lastIndexOf("/");var av=1;au=au.slice(0,at+av)}}}if(U(au,"/js/")){au=f(au,"js/".length)}return au}function R(az){var aB="Matomo_Overlay";var au=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=[^&]*)?");var av=au.exec(J.referrer);if(av){var ax=av[1];if(ax!==String(az)){return false}var ay=av[2],at=av[3],aw=av[4];if(!aw){aw=""}else{if(aw.indexOf("&segment=")===0){aw=aw.substr("&segment=".length)}}W.name=aB+"###"+ay+"###"+at+"###"+aw}var aA=W.name.split("###");return aA.length===4&&aA[0]===aB}function ad(au,az,av){var ay=W.name.split("###"),ax=ay[1],at=ay[2],aw=ay[3],aA=aa(au,az);o(aA+"plugins/Overlay/client/client.js?v=1",function(){Matomo_Overlay_Client.initialize(aA,av,ax,at,aw)})}function v(){var av;try{av=W.frameElement}catch(au){return true}if(M(av)){return(av&&String(av.nodeName).toLowerCase()==="iframe")?true:false}try{return W.self!==W.top
}catch(at){return true}}function T(cj,cf){var bP=this,bj="mtm_consent",cL="mtm_cookie_consent",cU="mtm_consent_removed",ca=ae(J.domain,W.location.href,N()),c2=O(ca[0]),bT=p(ca[1]),bu=p(ca[2]),c0=false,cn="GET",dj=cn,aM="application/x-www-form-urlencoded; charset=UTF-8",cE=aM,aI=cj||"",bO="",c9="",ct="",cc=cf||"",bF="",bU="",ba,bp="",dg=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],aC=[c2],bG=[],co=[],bR=[],be=[],bQ=500,c5=true,cR,bb,bX,bV,at,cw=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bN=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bq="_pk_",az="pk_vid",a5=180,c7,bw,bY=false,aN="Lax",bs=false,cY,bk,bC,cS=33955200000,cu=1800000,df=15768000000,a8=true,bL=false,bn=false,bW=false,aV=false,ch,b2={},cs={},bt={},bA=200,cA={},da={},dh={},cg=[],ck=false,cJ=false,au=false,di=false,cV=false,aS=false,bi=v(),cF=null,c8=null,aW,bI,cd=aq,bv,aQ,bH=false,cx=0,bB=["id","ses","cvar","ref"],cI=false,bJ=null,cT=[],cz=[],aB=X++,aA=false,c6=true;
try{bp=J.title}catch(cG){bp=""}function aH(dv){if(bs){return 0}var dt=new RegExp("(^|;)[ ]*"+dv+"=([^;]*)"),du=dt.exec(J.cookie);return du?V(du[2]):0}bJ=!aH(cU);function dn(dx,dy,dB,dA,dv,dw,dz){if(bs&&dx!==cU){return}var du;if(dB){du=new Date();du.setTime(du.getTime()+dB)}if(!dz){dz="Lax"}J.cookie=dx+"="+t(dy)+(dB?";expires="+du.toGMTString():"")+";path="+(dA||"/")+(dv?";domain="+dv:"")+(dw?";secure":"")+";SameSite="+dz;if((!dB||dB>=0)&&aH(dx)!==String(dy)){var dt="There was an error setting cookie `"+dx+"`. Please check domain and path.";ao(dt)}}function b8(dt){var dv,du;dt=j(dt,az);for(du=0;du<co.length;du++){dt=j(dt,co[du])}if(bV){dv=new RegExp("#.*");return dt.replace(dv,"")}return dt}function b1(dv,dt){var dw=s(dt),du;if(dw){return dt}if(dt.slice(0,1)==="/"){return s(dv)+"://"+d(dv)+dt}dv=b8(dv);du=dv.indexOf("?");if(du>=0){dv=dv.slice(0,du)}du=dv.lastIndexOf("/");if(du!==dv.length-1){dv=dv.slice(0,du+1)}return dv+dt}function cP(dv,dt){var du;dv=String(dv).toLowerCase();dt=String(dt).toLowerCase();
if(dv===dt){return true}if(dt.slice(0,1)==="."){if(dv===dt.slice(1)){return true}du=dv.length-dt.length;if((du>0)&&(dv.slice(du)===dt)){return true}}return false}function cr(dt){var du=document.createElement("a");if(dt.indexOf("//")!==0&&dt.indexOf("http")!==0){if(dt.indexOf("*")===0){dt=dt.substr(1)}if(dt.indexOf(".")===0){dt=dt.substr(1)}dt="http://"+dt}du.href=w.toAbsoluteUrl(dt);if(du.pathname){return du.pathname}return""}function a9(du,dt){if(!an(dt,"/")){dt="/"+dt}if(!an(du,"/")){du="/"+du}var dv=(dt==="/"||dt==="/*");if(dv){return true}if(du===dt){return true}dt=String(dt).toLowerCase();du=String(du).toLowerCase();if(U(dt,"*")){dt=dt.slice(0,-1);dv=(!dt||dt==="/");if(dv){return true}if(du===dt){return true}return du.indexOf(dt)===0}if(!U(du,"/")){du+="/"}if(!U(dt,"/")){dt+="/"}return du.indexOf(dt)===0}function aw(dx,dz){var du,dt,dv,dw,dy;for(du=0;du<aC.length;du++){dw=O(aC[du]);dy=cr(aC[du]);if(cP(dx,dw)&&a9(dz,dy)){return true}}return false}function a1(dw){var du,dt,dv;for(du=0;
du<aC.length;du++){dt=O(aC[du].toLowerCase());if(dw===dt){return true}if(dt.slice(0,1)==="."){if(dw===dt.slice(1)){return true}dv=dw.length-dt.length;if((dv>0)&&(dw.slice(dv)===dt)){return true}}}return false}function cv(dt,dv){dt=dt.replace("send_image=0","send_image=1");var du=new Image(1,1);du.onload=function(){H=0;if(typeof dv==="function"){dv({request:dt,trackerUrl:aI,success:true})}};du.onerror=function(){if(typeof dv==="function"){dv({request:dt,trackerUrl:aI,success:false})}};du.src=aI+(aI.indexOf("?")<0?"?":"&")+dt}function cM(dt){if(dj==="POST"){return true}return dt&&(dt.length>2000||dt.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dx,dA,dz){var dv=aP();if(!dv){return false}var dw={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dB=false;var du=aI;try{var dt=new Blob([dx],dw);if(dz&&!cM(dx)){dt=new Blob([],dw);du=du+(du.indexOf("?")<0?"?":"&")+dx}dB=g.sendBeacon(du,dt)}catch(dy){return false
}if(dB&&typeof dA==="function"){dA({request:dx,trackerUrl:aI,success:true,isSendBeacon:true})}return dB}function de(du,dv,dt){if(!M(dt)||null===dt){dt=true}if(m&&bc(du,dv,dt)){return}setTimeout(function(){if(m&&bc(du,dv,dt)){return}var dy;try{var dx=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dx.open("POST",aI,true);dx.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dz=m&&bc(du,dv,dt);if(!dz&&dt){cv(du,dv)}else{if(typeof dv==="function"){dv({request:du,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dv==="function")){dv({request:du,trackerUrl:aI,success:true,xhr:this})}}};dx.setRequestHeader("Content-Type",cE);dx.withCredentials=true;dx.send(du)}catch(dw){dy=m&&bc(du,dv,dt);if(!dy&&dt){cv(du,dv)}else{if(typeof dv==="function"){dv({request:du,trackerUrl:aI,success:false})}}}},50)}function cl(du){var dt=new Date();var dv=dt.getTime()+du;if(!r||dv>r){r=dv}}function bg(){bi=true;
cF=new Date().getTime()}function dm(){var dt=new Date().getTime();return !cF||(dt-cF)>bb}function aD(){if(dm()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dm()){bX()}else{if(J.visibilityState==="visible"){cF=new Date().getTime()}}}function dq(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dm()){bX()}}})}function cK(dx){var du=new Date();var dt=du.getTime();c8=dt;if(cJ&&dt<cJ){var dv=cJ-dt;setTimeout(dx,dv);cl(dv+50);cJ+=50;return}if(cJ===false){var dw=800;cJ=dt+dw}dx()}function aT(){if(aH(cU)){bJ=false}else{if(aH(bj)){bJ=true}}}function bM(du,dt,dv){aT();if(!bJ){cT.push(du);return}aA=true;if(!cY&&du){if(cI&&bJ){du+="&consent=1"}cK(function(){if(c5&&bc(du,dv,true)){cl(100);return}if(cM(du)){de(du,dv)}else{cv(du,dv)}cl(dt)})}if(!aS){dq()}}function cq(dt){if(cY){return false}return(dt&&dt.length)}function dd(dt,dx){if(!dx||dx>=dt.length){return[dt]}var du=0;var dv=dt.length;var dw=[];
for(du;du<dv;du+=dx){dw.push(dt.slice(du,du+dx))}return dw}function dp(du,dt){if(!cq(du)){return}if(!bJ){cT.push(du);return}aA=true;cK(function(){var dx=dd(du,50);var dv=0,dw;for(dv;dv<dx.length;dv++){dw='{"requests":["?'+dx[dv].join('","?')+'"],"send_image":0}';if(c5&&bc(dw,null,false)){cl(100)}else{de(dw,null,false)}}cl(dt)})}function aY(dt){return bq+dt+"."+cc+"."+bv}function b5(dv,du,dt){dn(dv,"",-86400,du,dt)}function cb(){if(bs){return"0"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){return g.cookieEnabled?"1":"0"}var dt=bq+"testcookie";dn(dt,"1",undefined,bw,c7,bY,aN);var du=aH(dt)==="1"?"1":"0";b5(dt);return du}function bo(){bv=cd((c7||c2)+(bw||"/")).slice(0,4)}function cQ(){if(!c6){return{}}if(M(dh.res)){return dh}var du,dw,dx={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(du in dx){if(Object.prototype.hasOwnProperty.call(dx,du)){dw=g.mimeTypes[dx[du]];
dh[du]=(dw&&dw.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(g.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&M(g.javaEnabled)&&g.javaEnabled()){dh.java="1"}if(!M(W.showModalDialog)&&M(g.cookieEnabled)){dh.cookie=g.cookieEnabled?"1":"0"}else{dh.cookie=cb()}}var dv=parseInt(ab.width,10);var dt=parseInt(ab.height,10);dh.res=parseInt(dv,10)+"x"+parseInt(dt,10);return dh}function b3(){var du=aY("cvar"),dt=aH(du);if(dt&&dt.length){dt=W.JSON.parse(dt);if(Z(dt)){return dt}}return{}}function cN(){if(aV===false){aV=b3()}}function cZ(){var dt=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dt)+(new Date()).getTime()+Math.random()).slice(0,16)}function aF(){var dt=cQ();return cd((g.userAgent||"")+(g.platform||"")+W.JSON.stringify(dt)).slice(0,6)}function bl(){return Math.floor((new Date()).getTime()/1000)}function aO(){var du=bl();var dv=aF();var dt=String(du)+dv;return dt}function dc(dv){dv=String(dv);var dy=aF();var dw=dy.length;var dx=dv.substr(-1*dw,dw);
var du=parseInt(dv.substr(0,dv.length-dw),10);if(du&&dx&&dx===dy){var dt=bl();if(a5<=0){return true}if(dt>=du&&dt<=(du+a5)){return true}}return false}function dr(dt){if(!cV){return""}var dx=e(dt,az);if(!dx){return""}dx=String(dx);var dv=new RegExp("^[a-zA-Z0-9]+$");if(dx.length===32&&dv.test(dx)){var du=dx.substr(16,32);if(dc(du)){var dw=dx.substr(0,16);return dw}}return""}function cW(){if(!bU){bU=dr(bT)}var dv=new Date(),dt=Math.round(dv.getTime()/1000),du=aY("id"),dy=aH(du),dx,dw;if(dy){dx=dy.split(".");dx.unshift("0");if(bU.length){dx[1]=bU}return dx}if(bU.length){dw=bU}else{if("0"===cb()){dw=""}else{dw=cZ()}}dx=["1",dw,dt];return dx}function a4(){var dw=cW(),du=dw[0],dv=dw[1],dt=dw[2];return{newVisitor:du,uuid:dv,createTs:dt}}function aL(){var dw=new Date(),du=dw.getTime(),dx=a4().createTs;var dt=parseInt(dx,10);var dv=(dt*1000)+cS-du;return dv}function aR(dt){if(!cc){return}var dv=new Date(),du=Math.round(dv.getTime()/1000);if(!M(dt)){dt=a4()}var dw=dt.uuid+"."+dt.createTs+".";dn(aY("id"),dw,aL(),bw,c7,bY,aN)
}function bS(){var dt=aH(aY("ref"));if(dt.length){try{dt=W.JSON.parse(dt);if(Z(dt)){return dt}}catch(du){}}return["","",0,""]}function bD(dv){var du=bq+"testcookie_domain";var dt="testvalue";dn(du,dt,10000,null,dv,bY,aN);if(aH(du)===dt){b5(du,null,dv);return true}return false}function aJ(){var du=bs;bs=false;var dt,dv;for(dt=0;dt<bB.length;dt++){dv=aY(bB[dt]);if(dv!==cU&&dv!==bj&&0!==aH(dv)){b5(dv,bw,c7)}}bs=du}function b9(dt){cc=dt}function ds(dx){if(!dx||!Z(dx)){return}var dw=[];var dv;for(dv in dx){if(Object.prototype.hasOwnProperty.call(dx,dv)){dw.push(dv)}}var dy={};dw.sort();var dt=dw.length;var du;for(du=0;du<dt;du++){dy[dw[du]]=dx[dw[du]]}return dy}function ci(){dn(aY("ses"),"1",cu,bw,c7,bY,aN)}function bm(){var dw="";var du="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dv=du.length;var dt;for(dt=0;dt<6;dt++){dw+=du.charAt(Math.floor(Math.random()*dv))}return dw}function aE(du){if(ct!==""){du+=ct;bn=true;return du}if(!h){return du}var dv=(typeof h.timing==="object")&&h.timing?h.timing:undefined;
if(!dv){dv=(typeof h.getEntriesByType==="function")&&h.getEntriesByType("navigation")?h.getEntriesByType("navigation")[0]:undefined}if(!dv){return du}var dt="";if(dv.connectEnd&&dv.fetchStart){if(dv.connectEnd<dv.fetchStart){return}dt+="&pf_net="+Math.round(dv.connectEnd-dv.fetchStart)}if(dv.responseStart&&dv.requestStart){if(dv.responseStart<dv.requestStart){return}dt+="&pf_srv="+Math.round(dv.responseStart-dv.requestStart)}if(dv.responseStart&&dv.responseEnd){if(dv.responseEnd<dv.responseStart){return}dt+="&pf_tfr="+Math.round(dv.responseEnd-dv.responseStart)}if(M(dv.domLoading)){if(dv.domInteractive&&dv.domLoading){if(dv.domInteractive<dv.domLoading){return}dt+="&pf_dm1="+Math.round(dv.domInteractive-dv.domLoading)}}else{if(dv.domInteractive&&dv.responseEnd){if(dv.domInteractive<dv.responseEnd){return}dt+="&pf_dm1="+Math.round(dv.domInteractive-dv.responseEnd)}}if(dv.domComplete&&dv.domInteractive){if(dv.domComplete<dv.domInteractive){return}dt+="&pf_dm2="+Math.round(dv.domComplete-dv.domInteractive)
}if(dv.loadEventEnd&&dv.loadEventStart){if(dv.loadEventEnd<dv.loadEventStart){return}dt+="&pf_onl="+Math.round(dv.loadEventEnd-dv.loadEventStart)}return du+dt}function cy(dv,dP,dQ){var dO,du=new Date(),dC=Math.round(du.getTime()/1000),dz,dM,dw=1024,dV,dD,dL=aV,dx=aY("ses"),dJ=aY("ref"),dG=aY("cvar"),dH=aH(dx),dN=bS(),dR=ba||bT,dA,dt;if(bs){aJ()}if(cY){return""}var dI=a4();var dF=J.characterSet||J.charset;if(!dF||dF.toLowerCase()==="utf-8"){dF=null}dA=dN[0];dt=dN[1];dz=dN[2];dM=dN[3];if(!dH){if(!bC||!dA.length){for(dO in cw){if(Object.prototype.hasOwnProperty.call(cw,dO)){dA=e(dR,cw[dO]);if(dA.length){break}}}for(dO in bN){if(Object.prototype.hasOwnProperty.call(bN,dO)){dt=e(dR,bN[dO]);if(dt.length){break}}}}dV=d(bu);dD=dM.length?d(dM):"";if(dV.length&&!a1(dV)&&(!bC||!dD.length||a1(dD))){dM=bu}if(dM.length||dA.length){dz=dC;dN=[dA,dt,dz,b8(dM.slice(0,dw))];dn(dJ,W.JSON.stringify(dN),df,bw,c7,bY,aN)}}dv+="&idsite="+cc+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+du.getHours()+"&m="+du.getMinutes()+"&s="+du.getSeconds()+"&url="+t(b8(dR))+(bu.length?"&urlref="+t(b8(bu)):"")+(ac(bF)?"&uid="+t(bF):"")+"&_id="+dI.uuid+"&_idn="+dI.newVisitor+(dA.length?"&_rcn="+t(dA):"")+(dt.length?"&_rck="+t(dt):"")+"&_refts="+dz+(String(dM).length?"&_ref="+t(b8(dM.slice(0,dw))):"")+(dF?"&cs="+t(dF):"")+"&send_image=0";
var dU=cQ();for(dO in dU){if(Object.prototype.hasOwnProperty.call(dU,dO)){dv+="&"+dO+"="+dU[dO]}}var dT=[];if(dP){for(dO in dP){if(Object.prototype.hasOwnProperty.call(dP,dO)&&/^dimension\d+$/.test(dO)){var dy=dO.replace("dimension","");dT.push(parseInt(dy,10));dT.push(String(dy));dv+="&"+dO+"="+t(dP[dO]);delete dP[dO]}}}if(dP&&D(dP)){dP=null}for(dO in cA){if(Object.prototype.hasOwnProperty.call(cA,dO)){dv+="&"+dO+"="+t(cA[dO])}}for(dO in bt){if(Object.prototype.hasOwnProperty.call(bt,dO)){var dE=(-1===P(dT,dO));if(dE){dv+="&dimension"+dO+"="+t(bt[dO])}}}if(dP){dv+="&data="+t(W.JSON.stringify(dP))}else{if(at){dv+="&data="+t(W.JSON.stringify(at))}}function dB(dW,dX){var dY=W.JSON.stringify(dW);if(dY.length>2){return"&"+dX+"="+t(dY)}return""}var dS=ds(b2);var dK=ds(cs);dv+=dB(dS,"cvar");dv+=dB(dK,"e_cvar");if(aV){dv+=dB(aV,"_cvar");for(dO in dL){if(Object.prototype.hasOwnProperty.call(dL,dO)){if(aV[dO][0]===""||aV[dO][1]===""){delete aV[dO]}}}if(bW){dn(dG,W.JSON.stringify(aV),cu,bw,c7,bY,aN)
}}if(a8&&bL&&!bn){dv=aE(dv);bn=true}if(aQ){dv+="&pv_id="+aQ}aR(dI);ci();dv+=ag(dQ,{tracker:bP,request:dv});if(c9.length){dv+="&"+c9}if(C(ch)){dv=ch(dv)}return dv}bX=function bd(){var dt=new Date();dt=dt.getTime();if(!c8){return false}if(c8+bb<=dt){bP.ping();return true}return false};function bx(dw,dv,dA,dx,dt,dD){var dz="idgoal=0",du=new Date(),dB=[],dC,dy=String(dw).length;if(dy){dz+="&ec_id="+t(dw)}dz+="&revenue="+dv;if(String(dA).length){dz+="&ec_st="+dA}if(String(dx).length){dz+="&ec_tx="+dx}if(String(dt).length){dz+="&ec_sh="+dt}if(String(dD).length){dz+="&ec_dt="+dD}if(da){for(dC in da){if(Object.prototype.hasOwnProperty.call(da,dC)){if(!M(da[dC][1])){da[dC][1]=""}if(!M(da[dC][2])){da[dC][2]=""}if(!M(da[dC][3])||String(da[dC][3]).length===0){da[dC][3]=0}if(!M(da[dC][4])||String(da[dC][4]).length===0){da[dC][4]=1}dB.push(da[dC])}}dz+="&ec_items="+t(W.JSON.stringify(dB))}dz=cy(dz,at,"ecommerce");bM(dz,bQ);if(dy){da={}}}function b4(dt,dx,dw,dv,du,dy){if(String(dt).length&&M(dx)){bx(dt,dx,dw,dv,du,dy)
}}function bz(dt){if(M(dt)){bx("",dt,"","","","")}}function b6(du,dw,dv){if(!bH){aQ=bm()}var dt=cy("action_name="+t(ap(du||bp)),dw,"log");if(a8&&!bn){dt=aE(dt)}bM(dt,bQ,dv)}function a6(dv,du){var dw,dt="(^| )(piwik[_-]"+du+"|matomo[_-]"+du;if(dv){for(dw=0;dw<dv.length;dw++){dt+="|"+dv[dw]}}dt+=")( |$)";return new RegExp(dt)}function aZ(dt){return(aI&&dt&&0===String(dt).indexOf(aI))}function cC(dx,dt,dy,du){if(aZ(dt)){return 0}var dw=a6(bR,"download"),dv=a6(be,"link"),dz=new RegExp("\\.("+dg.join("|")+")([?&#]|$)","i");if(dv.test(dx)){return"link"}if(du||dw.test(dx)||dz.test(dt)){return"download"}if(dy){return 0}return"link"}function ay(du){var dt;dt=du.parentNode;while(dt!==null&&M(dt)){if(ai.isLinkElement(du)){break}du=dt;dt=du.parentNode}return du}function dl(dy){dy=ay(dy);if(!ai.hasNodeAttribute(dy,"href")){return}if(!M(dy.href)){return}var dx=ai.getAttributeValueFromNode(dy,"href");var du=dy.pathname||cr(dy.href);var dz=dy.hostname||d(dy.href);var dA=dz.toLowerCase();var dv=dy.href.replace(dz,dA);
var dw=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dw.test(dv)){var dt=cC(dy.className,dv,aw(dA,du),ai.hasNodeAttribute(dy,"download"));if(dt){return{type:dt,href:dv}}}}function aU(dt,du,dv,dw){var dx=w.buildInteractionRequestParams(dt,du,dv,dw);if(!dx){return}return cy(dx,null,"contentInteraction")}function bh(dt,du){if(!dt||!du){return false}var dv=w.findTargetNode(dt);if(w.shouldIgnoreInteraction(dv)){return false}dv=w.findTargetNodeNoDefault(dt);if(dv&&!Y(dv,du)){return false}return true}function cB(dv,du,dx){if(!dv){return}var dt=w.findParentContentNode(dv);if(!dt){return}if(!bh(dt,dv)){return}var dw=w.buildContentBlock(dt);if(!dw){return}if(!dw.target&&dx){dw.target=dx}return w.buildInteractionRequestParams(du,dw.name,dw.piece,dw.target)}function a2(du){if(!cg||!cg.length){return false}var dt,dv;for(dt=0;dt<cg.length;dt++){dv=cg[dt];if(dv&&dv.name===du.name&&dv.piece===du.piece&&dv.target===du.target){return true}}return false}function a3(dt){return function(dx){if(!dt){return
}var dv=w.findParentContentNode(dt);var du;if(dx){du=dx.target||dx.srcElement}if(!du){du=dt}if(!bh(dv,du)){return}if(!dv){return false}var dy=w.findTargetNode(dv);if(!dy||w.shouldIgnoreInteraction(dy)){return false}var dw=dl(dy);if(di&&dw&&dw.type){return dw.type}return bP.trackContentInteractionNode(du,"click")}}function b7(dv){if(!dv||!dv.length){return}var dt,du;for(dt=0;dt<dv.length;dt++){du=w.findTargetNode(dv[dt]);if(du&&!du.contentInteractionTrackingSetupDone){du.contentInteractionTrackingSetupDone=true;ar(du,"click",a3(du))}}}function bE(dv,dw){if(!dv||!dv.length){return[]}var dt,du;for(dt=0;dt<dv.length;dt++){if(a2(dv[dt])){dv.splice(dt,1);dt--}else{cg.push(dv[dt])}}if(!dv||!dv.length){return[]}b7(dw);var dx=[];for(dt=0;dt<dv.length;dt++){du=cy(w.buildImpressionRequestParams(dv[dt].name,dv[dt].piece,dv[dt].target),undefined,"contentImpressions");if(du){dx.push(du)}}return dx}function cH(du){var dt=w.collectContent(du);return bE(dt,du)}function bf(du){if(!du||!du.length){return[]
}var dt;for(dt=0;dt<du.length;dt++){if(!w.isNodeVisible(du[dt])){du.splice(dt,1);dt--}}if(!du||!du.length){return[]}return cH(du)}function aK(dv,dt,du){var dw=w.buildImpressionRequestParams(dv,dt,du);return cy(dw,null,"contentImpression")}function dk(dw,du){if(!dw){return}var dt=w.findParentContentNode(dw);var dv=w.buildContentBlock(dt);if(!dv){return}if(!du){du="Unknown"}return aU(du,dv.name,dv.piece,dv.target)}function cX(du,dw,dt,dv){return"e_c="+t(du)+"&e_a="+t(dw)+(M(dt)?"&e_n="+t(dt):"")+(M(dv)?"&e_v="+t(dv):"")+"&ca=1"}function ax(dv,dx,dt,dw,dz,dy){if(!ac(dv)||!ac(dx)){ao("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var du=cy(cX(dv,dx,dt,dw),dz,"event");bM(du,bQ,dy)}function ce(dt,dw,du,dx){var dv=cy("search="+t(dt)+(dw?"&search_cat="+t(dw):"")+(M(du)?"&search_count="+du:""),dx,"sitesearch");bM(dv,bQ)}function c1(dt,dx,dw,dv){var du=cy("idgoal="+dt+(dx?"&revenue="+dx:""),dw,"goal");bM(du,bQ,dv)}function db(dw,dt,dA,dz,dv){var dy=dt+"="+t(b8(dw));
var du=cB(dv,"click",dw);if(du){dy+="&"+du}var dx=cy(dy,dA,"link");bM(dx,bQ,dz)}function b0(du,dt){if(du!==""){return du+dt.charAt(0).toUpperCase()+dt.slice(1)}return dt}function cm(dy){var dx,dt,dw=["","webkit","ms","moz"],dv;if(!bk){for(dt=0;dt<dw.length;dt++){dv=dw[dt];if(Object.prototype.hasOwnProperty.call(J,b0(dv,"hidden"))){if(J[b0(dv,"visibilityState")]==="prerender"){dx=true}break}}}if(dx){ar(J,dv+"visibilitychange",function du(){J.removeEventListener(dv+"visibilitychange",du,false);dy()});return}dy()}function by(){var du=bP.getVisitorId();var dt=aO();return du+dt}function cp(dt){if(!dt){return}if(!ai.hasNodeAttribute(dt,"href")){return}var du=ai.getAttributeValueFromNode(dt,"href");if(!du||aZ(du)){return}if(!bP.getVisitorId()){return}du=j(du,az);var dv=by();du=I(du,az,dv);ai.setAnyAttribute(dt,"href",du)}function br(dw){var dx=ai.getAttributeValueFromNode(dw,"href");if(!dx){return false}dx=String(dx);var du=dx.indexOf("//")===0||dx.indexOf("http://")===0||dx.indexOf("https://")===0;
if(!du){return false}var dt=dw.pathname||cr(dw.href);var dv=(dw.hostname||d(dw.href)).toLowerCase();if(aw(dv,dt)){if(!cP(c2,O(dv))){return true}return false}return false}function cO(dt){var du=dl(dt);if(du&&du.type){du.href=p(du.href);db(du.href,du.type,undefined,null,dt);return}if(cV){dt=ay(dt);if(br(dt)){cp(dt)}}}function cD(){return J.all&&!J.addEventListener}function c3(dt){var dv=dt.which;var du=(typeof dt.button);if(!dv&&du!=="undefined"){if(cD()){if(dt.button&1){dv=1}else{if(dt.button&2){dv=3}else{if(dt.button&4){dv=2}}}}else{if(dt.button===0||dt.button==="0"){dv=1}else{if(dt.button&1){dv=2}else{if(dt.button&2){dv=3}}}}}return dv}function bZ(dt){switch(c3(dt)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a7(dt){return dt.target||dt.srcElement}function c4(dt){return dt==="A"||dt==="AREA"}function aG(dt){function du(dw){var dx=a7(dw);var dy=dx.nodeName;var dv=a6(bG,"ignore");while(!c4(dy)&&dx&&dx.parentNode){dx=dx.parentNode;dy=dx.nodeName}if(dx&&c4(dy)&&!dv.test(dx.className)){return dx
}}return function(dx){dx=dx||W.event;var dy=du(dx);if(!dy){return}var dw=bZ(dx);if(dx.type==="click"){var dv=false;if(dt&&dw==="middle"){dv=true}if(dy&&!dv){cO(dy)}}else{if(dx.type==="mousedown"){if(dw==="middle"&&dy){aW=dw;bI=dy}else{aW=bI=null}}else{if(dx.type==="mouseup"){if(dw===aW&&dy===bI){cO(dy)}aW=bI=null}else{if(dx.type==="contextmenu"){cO(dy)}}}}}}function av(dw,dv,dt){var du=typeof dv;if(du==="undefined"){dv=true}ar(dw,"click",aG(dv),dt);if(dv){ar(dw,"mouseup",aG(dv),dt);ar(dw,"mousedown",aG(dv),dt);ar(dw,"contextmenu",aG(dv),dt)}}function aX(du,dx,dy){if(ck){return true}ck=true;var dz=false;var dw,dv;function dt(){dz=true}n(function(){function dA(dC){setTimeout(function(){if(!ck){return}dz=false;dy.trackVisibleContentImpressions();dA(dC)},dC)}function dB(dC){setTimeout(function(){if(!ck){return}if(dz){dz=false;dy.trackVisibleContentImpressions()}dB(dC)},dC)}if(du){dw=["scroll","resize"];for(dv=0;dv<dw.length;dv++){if(J.addEventListener){J.addEventListener(dw[dv],dt,false)}else{W.attachEvent("on"+dw[dv],dt)
}}dB(100)}if(dx&&dx>0){dx=parseInt(dx,10);dA(dx)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dt=this.requests;this.requests=[];if(dt.length===1){bM(dt[0],bQ)}else{dp(dt,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(du){if(!this.canQueue()){dp(du,bQ);return}var dt;for(dt=0;dt<du.length;dt++){this.push(du[dt])}},push:function(dt){if(!dt){return}if(!this.canQueue()){bM(dt,bQ);return}bK.requests.push(dt);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bK.timeout=null;bK.sendRequests()},bK.interval);var du="RequestQueue"+aB;if(!Object.prototype.hasOwnProperty.call(b,du)){b[du]={unload:function(){if(bK.timeout){clearTimeout(bK.timeout)}bK.sendRequests()}}}}};bo();aR();this.hasConsent=function(){return bJ};this.getVisitorId=function(){return a4().uuid};this.getVisitorInfo=function(){return cW()};this.getAttributionInfo=function(){return bS()};this.getAttributionCampaignName=function(){return bS()[0]
};this.getAttributionCampaignKeyword=function(){return bS()[1]};this.getAttributionReferrerTimestamp=function(){return bS()[2]};this.getAttributionReferrerUrl=function(){return bS()[3]};this.setTrackerUrl=function(dt){aI=dt};this.getTrackerUrl=function(){return aI};this.getMatomoUrl=function(){return aa(this.getTrackerUrl(),bO)};this.getPiwikUrl=function(){return this.getMatomoUrl()};this.addTracker=function(dv,du){if(!M(dv)||null===dv){dv=this.getTrackerUrl()}var dt=new T(dv,du);L.push(dt);u.trigger("TrackerAdded",[this]);return dt};this.getSiteId=function(){return cc};this.setSiteId=function(dt){b9(dt)};this.resetUserId=function(){bF=""};this.setUserId=function(dt){if(ac(dt)){bF=dt}};this.setVisitorId=function(du){var dt=/[0-9A-Fa-f]{16}/g;if(x(du)&&dt.test(du)){bU=du}else{ao("Invalid visitorId set"+du)}};this.getUserId=function(){return bF};this.setCustomData=function(dt,du){if(Z(dt)){at=dt}else{if(!at){at={}}at[dt]=du}};this.getCustomData=function(){return at};this.setCustomRequestProcessing=function(dt){ch=dt
};this.appendToTrackingUrl=function(dt){c9=dt};this.getRequest=function(dt){return cy(dt)};this.addPlugin=function(dt,du){b[dt]=du};this.setCustomDimension=function(dt,du){dt=parseInt(dt,10);if(dt>0){if(!M(du)){du=""}if(!x(du)){du=String(du)}bt[dt]=du}};this.getCustomDimension=function(dt){dt=parseInt(dt,10);if(dt>0&&Object.prototype.hasOwnProperty.call(bt,dt)){return bt[dt]}};this.deleteCustomDimension=function(dt){dt=parseInt(dt,10);if(dt>0){delete bt[dt]}};this.setCustomVariable=function(du,dt,dx,dv){var dw;if(!M(dv)){dv="visit"}if(!M(dt)){return}if(!M(dx)){dx=""}if(du>0){dt=!x(dt)?String(dt):dt;dx=!x(dx)?String(dx):dx;dw=[dt.slice(0,bA),dx.slice(0,bA)];if(dv==="visit"||dv===2){cN();aV[du]=dw}else{if(dv==="page"||dv===3){b2[du]=dw}else{if(dv==="event"){cs[du]=dw}}}}};this.getCustomVariable=function(du,dv){var dt;if(!M(dv)){dv="visit"}if(dv==="page"||dv===3){dt=b2[du]}else{if(dv==="event"){dt=cs[du]}else{if(dv==="visit"||dv===2){cN();dt=aV[du]}}}if(!M(dt)||(dt&&dt[0]==="")){return false
}return dt};this.deleteCustomVariable=function(dt,du){if(this.getCustomVariable(dt,du)){this.setCustomVariable(dt,"","",du)}};this.deleteCustomVariables=function(dt){if(dt==="page"||dt===3){b2={}}else{if(dt==="event"){cs={}}else{if(dt==="visit"||dt===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dt){bQ=dt};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dt){if(x(dt)){dt=dt.split("|")}dg=dt};this.addDownloadExtensions=function(du){var dt;if(x(du)){du=du.split("|")}for(dt=0;dt<du.length;dt++){dg.push(du[dt])}};this.removeDownloadExtensions=function(dv){var du,dt=[];if(x(dv)){dv=dv.split("|")}for(du=0;du<dg.length;du++){if(P(dv,dg[du])===-1){dt.push(dg[du])}}dg=dt};this.setDomains=function(dt){aC=x(dt)?[dt]:dt;var dx=false,dv=0,du;for(dv;dv<aC.length;dv++){du=String(aC[dv]);if(cP(c2,O(du))){dx=true;break}var dw=cr(du);if(dw&&dw!=="/"&&dw!=="/*"){dx=true;break}}if(!dx){aC.push(c2)}};this.enableCrossDomainLinking=function(){cV=true
};this.disableCrossDomainLinking=function(){cV=false};this.isCrossDomainLinkingEnabled=function(){return cV};this.setCrossDomainLinkingTimeout=function(dt){a5=dt};this.getCrossDomainLinkingUrlParameter=function(){return t(az)+"="+t(by())};this.setIgnoreClasses=function(dt){bG=x(dt)?[dt]:dt};this.setRequestMethod=function(dt){if(dt){dj=String(dt).toUpperCase()}else{dj=cn}if(dj==="GET"){this.disableAlwaysUseSendBeacon()}};this.setRequestContentType=function(dt){cE=dt||aM};this.setGenerationTimeMs=function(dt){ao("setGenerationTimeMs is no longer supported since Matomo 4. The call will be ignored. The replacement is setPagePerformanceTiming.")};this.setPagePerformanceTiming=function(dx,dz,dy,du,dA,dv){var dw={pf_net:dx,pf_srv:dz,pf_tfr:dy,pf_dm1:du,pf_dm2:dA,pf_onl:dv};try{dw=Q(dw,M);dw=B(dw);ct=l(dw);if(ct===""){ao("setPagePerformanceTiming() called without parameters. This function needs to be called with at least one performance parameter.");return}bn=false;bL=true}catch(dt){ao("setPagePerformanceTiming: "+dt.toString())
}};this.setReferrerUrl=function(dt){bu=dt};this.setCustomUrl=function(dt){ba=b1(bT,dt)};this.getCurrentUrl=function(){return ba||bT};this.setDocumentTitle=function(dt){bp=dt};this.setPageViewId=function(dt){aQ=dt;bH=true};this.setAPIUrl=function(dt){bO=dt};this.setDownloadClasses=function(dt){bR=x(dt)?[dt]:dt};this.setLinkClasses=function(dt){be=x(dt)?[dt]:dt};this.setCampaignNameKey=function(dt){cw=x(dt)?[dt]:dt};this.setCampaignKeywordKey=function(dt){bN=x(dt)?[dt]:dt};this.discardHashTag=function(dt){bV=dt};this.setCookieNamePrefix=function(dt){bq=dt;if(aV){aV=b3()}};this.setCookieDomain=function(dt){var du=O(dt);if(!bs&&!bD(du)){ao("Can't write cookie on domain "+dt)}else{c7=du;bo()}};this.setExcludedQueryParams=function(dt){co=x(dt)?[dt]:dt};this.getCookieDomain=function(){return c7};this.hasCookies=function(){return"1"===cb()};this.setSessionCookie=function(dv,du,dt){if(!dv){throw new Error("Missing cookie name")}if(!M(dt)){dt=cu}bB.push(dv);dn(aY(dv),du,dt,bw,c7,bY,aN)};this.getCookie=function(du){var dt=aH(aY(du));
if(dt===0){return null}return dt};this.setCookiePath=function(dt){bw=dt;bo()};this.getCookiePath=function(dt){return bw};this.setVisitorCookieTimeout=function(dt){cS=dt*1000};this.setSessionCookieTimeout=function(dt){cu=dt*1000};this.getSessionCookieTimeout=function(){return cu};this.setReferralCookieTimeout=function(dt){df=dt*1000};this.setConversionAttributionFirstReferrer=function(dt){bC=dt};this.setSecureCookie=function(dt){if(dt&&location.protocol!=="https:"){ao("Error in setSecureCookie: You cannot use `Secure` on http.");return}bY=dt};this.setCookieSameSite=function(dt){dt=String(dt);dt=dt.charAt(0).toUpperCase()+dt.toLowerCase().slice(1);if(dt!=="None"&&dt!=="Lax"&&dt!=="Strict"){ao("Ignored value for sameSite. Please use either Lax, None, or Strict.");return}if(dt==="None"){if(location.protocol==="https:"){this.setSecureCookie(true)}else{ao("sameSite=None cannot be used on http, reverted to sameSite=Lax.");dt="Lax"}}aN=dt};this.disableCookies=function(){bs=true;if(cc){aJ()}};this.areCookiesEnabled=function(){return !bs
};this.setCookieConsentGiven=function(){if(bs&&!cY){bs=false;c6=true;if(cc&&aA){aR();var dt=cy("ping=1",null,"ping");bM(dt,bQ)}}};this.requireCookieConsent=function(){if(this.getRememberedCookieConsent()){return false}this.disableCookies();return true};this.getRememberedCookieConsent=function(){return aH(cL)};this.forgetCookieConsentGiven=function(){b5(cL,bw,c7);this.disableCookies()};this.rememberCookieConsentGiven=function(du){if(du){du=du*60*60*1000}else{du=30*365*24*60*60*1000}this.setCookieConsentGiven();var dt=new Date().getTime();dn(cL,dt,du,bw,c7,bY,aN)};this.deleteCookies=function(){aJ()};this.setDoNotTrack=function(du){var dt=g.doNotTrack||g.msDoNotTrack;cY=du&&(dt==="yes"||dt==="1");if(cY){this.disableCookies()}};this.alwaysUseSendBeacon=function(){c5=true};this.disableAlwaysUseSendBeacon=function(){c5=false};this.addListener=function(du,dt){av(du,dt,false)};this.enableLinkTracking=function(du){if(di){return}di=true;var dt=this;q(function(){au=true;var dv=J.body;av(dv,du,true)
})};this.enableJSErrorTracking=function(){if(c0){return}c0=true;var dt=W.onerror;W.onerror=function(dy,dw,dv,dx,du){cm(function(){var dz="JavaScript Errors";var dA=dw+":"+dv;if(dx){dA+=":"+dx}if(P(cz,dz+dA+dy)===-1){cz.push(dz+dA+dy);ax(dz,dA,dy)}});if(dt){return dt(dy,dw,dv,dx,du)}return false}};this.disablePerformanceTracking=function(){a8=false};this.enableHeartBeatTimer=function(dt){dt=Math.max(dt||15,5);bb=dt*1000;if(c8!==null){dq()}};this.disableHeartBeatTimer=function(){if(bb||aS){if(W.removeEventListener){W.removeEventListener("focus",bg);W.removeEventListener("blur",aD);W.removeEventListener("visibilitychange",a0)}else{if(W.detachEvent){W.detachEvent("onfocus",bg);W.detachEvent("onblur",aD);W.detachEvent("visibilitychange",a0)}}}bb=null;aS=false};this.killFrame=function(){if(W.location!==W.top.location){W.top.location=W.location}};this.redirectFile=function(dt){if(W.location.protocol==="file:"){W.location=dt}};this.setCountPreRendered=function(dt){bk=dt};this.trackGoal=function(dt,dw,dv,du){cm(function(){c1(dt,dw,dv,du)
})};this.trackLink=function(du,dt,dw,dv){cm(function(){db(du,dt,dw,dv)})};this.getNumTrackedPageViews=function(){return cx};this.trackPageView=function(dt,dv,du){cg=[];cT=[];cz=[];if(R(cc)){cm(function(){ad(aI,bO,cc)})}else{cm(function(){cx++;b6(dt,dv,du)})}};this.disableBrowserFeatureDetection=function(){c6=false};this.enableBrowserFeatureDetection=function(){c6=true};this.trackAllContentImpressions=function(){if(R(cc)){return}cm(function(){q(function(){var dt=w.findContentNodes();var du=cH(dt);bK.pushMultiple(du)})})};this.trackVisibleContentImpressions=function(dt,du){if(R(cc)){return}if(!M(dt)){dt=true}if(!M(du)){du=750}aX(dt,du,this);cm(function(){n(function(){var dv=w.findContentNodes();var dw=bf(dv);bK.pushMultiple(dw)})})};this.trackContentImpression=function(dv,dt,du){if(R(cc)){return}dv=a(dv);dt=a(dt);du=a(du);if(!dv){return}dt=dt||"Unknown";cm(function(){var dw=aK(dv,dt,du);bK.push(dw)})};this.trackContentImpressionsWithinNode=function(dt){if(R(cc)||!dt){return}cm(function(){if(ck){n(function(){var du=w.findContentNodesWithinNode(dt);
var dv=bf(du);bK.pushMultiple(dv)})}else{q(function(){var du=w.findContentNodesWithinNode(dt);var dv=cH(du);bK.pushMultiple(dv)})}})};this.trackContentInteraction=function(dv,dw,dt,du){if(R(cc)){return}dv=a(dv);dw=a(dw);dt=a(dt);du=a(du);if(!dv||!dw){return}dt=dt||"Unknown";cm(function(){var dx=aU(dv,dw,dt,du);if(dx){bK.push(dx)}})};this.trackContentInteractionNode=function(dv,du){if(R(cc)||!dv){return}var dt=null;cm(function(){dt=dk(dv,du);if(dt){bK.push(dt)}});return dt};this.logAllContentBlocksOnPage=function(){var dv=w.findContentNodes();var dt=w.collectContent(dv);var du=typeof console;if(du!=="undefined"&&console&&console.log){console.log(dt)}};this.trackEvent=function(du,dw,dt,dv,dy,dx){cm(function(){ax(du,dw,dt,dv,dy,dx)})};this.trackSiteSearch=function(dt,dv,du,dw){cg=[];cm(function(){ce(dt,dv,du,dw)})};this.setEcommerceView=function(dx,dt,dv,du){cA={};if(ac(dv)){dv=String(dv)}if(!M(dv)||dv===null||dv===false||!dv.length){dv=""}else{if(dv instanceof Array){dv=W.JSON.stringify(dv)
}}var dw="_pkc";cA[dw]=dv;if(M(du)&&du!==null&&du!==false&&String(du).length){dw="_pkp";cA[dw]=du}if(!ac(dx)&&!ac(dt)){return}if(ac(dx)){dw="_pks";cA[dw]=dx}if(!ac(dt)){dt=""}dw="_pkn";cA[dw]=dt};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(da))};this.addEcommerceItem=function(dx,dt,dv,du,dw){if(ac(dx)){da[dx]=[String(dx),dt,dv,du,dw]}};this.removeEcommerceItem=function(dt){if(ac(dt)){dt=String(dt);delete da[dt]}};this.clearEcommerceCart=function(){da={}};this.trackEcommerceOrder=function(dt,dx,dw,dv,du,dy){b4(dt,dx,dw,dv,du,dy)};this.trackEcommerceCartUpdate=function(dt){bz(dt)};this.trackRequest=function(du,dw,dv,dt){cm(function(){var dx=cy(du,dw,dt);bM(dx,bQ,dv)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bK.enabled=false};this.setRequestQueueInterval=function(dt){if(dt<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bK.interval=dt};this.queueRequest=function(dt){cm(function(){var du=cy(dt);
bK.push(du)})};this.isConsentRequired=function(){return cI};this.getRememberedConsent=function(){var dt=aH(bj);if(aH(cU)){if(dt){b5(bj,bw,c7)}return null}if(!dt||dt===0){return null}return dt};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cI=true;bJ=this.hasRememberedConsent();if(!bJ){bs=true}y++;b["CoreConsent"+y]={unload:function(){if(!bJ){aJ()}}}};this.setConsentGiven=function(du){bJ=true;c6=true;b5(cU,bw,c7);var dv,dt;for(dv=0;dv<cT.length;dv++){dt=typeof cT[dv];if(dt==="string"){bM(cT[dv],bQ)}else{if(dt==="object"){dp(cT[dv],bQ)}}}cT=[];if(!M(du)||du){this.setCookieConsentGiven()}};this.rememberConsentGiven=function(dv){if(dv){dv=dv*60*60*1000}else{dv=30*365*24*60*60*1000}var dt=true;this.setConsentGiven(dt);var du=new Date().getTime();dn(bj,du,dv,bw,c7,bY,aN)};this.forgetConsentGiven=function(){var dt=30*365*24*60*60*1000;b5(bj,bw,c7);dn(cU,new Date().getTime(),dt,bw,c7,bY,aN);this.forgetCookieConsentGiven();this.requireConsent()
};this.isUserOptedOut=function(){return !bJ};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=function(){this.setConsentGiven(false)};n(function(){setTimeout(function(){bL=true},0)});u.trigger("TrackerSetup",[this])}function K(){return{push:aj}}function c(ay,ax){var az={};var av,aw;for(av=0;av<ax.length;av++){var at=ax[av];az[at]=1;for(aw=0;aw<ay.length;aw++){if(ay[aw]&&ay[aw][0]){var au=ay[aw][0];if(at===au){aj(ay[aw]);delete ay[aw];if(az[au]>1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableBrowserFeatureDetection","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","disableAlwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming","setExcludedQueryParams"];
function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){au=d(ax[aw].getMatomoUrl());if(au===aB){aA=ax[aw];break}}if(!aA){return}var av=null;try{av=JSON.parse(ay.data)}catch(az){return}if(!av){return}function at(aE){var aG=J.getElementsByTagName("iframe");for(aw=0;aw<aG.length;aw++){var aF=aG[aw];var aC=d(aF.src);if(aF.contentWindow&&M(aF.contentWindow.postMessage)&&aC===aB){var aD=JSON.stringify(aE);aF.contentWindow.postMessage(aD,"*")}}}if(M(av.maq_initial_value)){at({maq_opted_in:av.maq_initial_value&&aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})
}else{if(M(av.maq_opted_in)){ax=u.getAsyncTrackers();for(aw=0;aw<ax.length;aw++){aA=ax[aw];if(av.maq_opted_in){aA.rememberConsentGiven()}else{aA.forgetConsentGiven()}}at({maq_confirm_opted_in:aA.hasConsent(),maq_url:aA.getMatomoUrl(),maq_optout_by_default:aA.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;u={initialized:false,JSON:W.JSON,DOM:{addEventListener:function(aw,av,au,at){var ax=typeof at;if(ax==="undefined"){at=false}ar(aw,av,au,at)},onLoad:n,onReady:q,isNodeVisible:i,isOrWasNodeVisible:w.isNodeVisible},on:function(au,at){if(!z[au]){z[au]=[]}z[au].push(at)},off:function(av,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){if(z[av][at]===au){z[av].splice(at,1)}}},trigger:function(av,aw,au){if(!z[av]){return}var at=0;for(at;at<z[av].length;at++){z[av][at].apply(au||W,aw)}},addPlugin:function(at,au){b[at]=au},getTracker:function(au,at){if(!M(at)){at=this.getAsyncTracker().getSiteId()}if(!M(au)){au=this.getAsyncTracker().getTrackerUrl()
}return new T(au,at)},getAsyncTrackers:function(){return L},addTracker:function(av,au){var at;if(!L.length){at=ah(av,au)}else{at=L[0].addTracker(av,au)}return at},getAsyncTracker:function(ax,aw){var av;if(L&&L.length&&L[0]){av=L[0]}else{return ah(ax,aw)}if(!aw&&!ax){return av}if((!M(aw)||null===aw)&&av){aw=av.getSiteId()}if((!M(ax)||null===ax)&&av){ax=av.getTrackerUrl()}var au,at=0;for(at;at<L.length;at++){au=L[at];if(au&&String(au.getSiteId())===String(aw)&&au.getTrackerUrl()===ax){return au}}},retryMissedPluginCalls:function(){var au=al;al=[];var at=0;for(at;at<au.length;at++){aj(au[at])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return u});define("matomo",[],function(){return u})}return u}())}
/*!!! pluginTrackerHook */
(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.matomoPluginAsyncInit&&window.matomoPluginAsyncInit.length){var a=0;
for(a;a<window.matomoPluginAsyncInit.length;a++){if(typeof window.matomoPluginAsyncInit[a]==="function"){window.matomoPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(window&&window.matomoAsyncInit){window.matomoAsyncInit()}if(!window.Matomo.getAsyncTrackers().length){if(b()){window.Matomo.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Matomo.trigger("MatomoInitialized",[]);window.Matomo.initialized=true}());(function(){var a=(typeof window.AnalyticsTracker);if(a==="undefined"){window.AnalyticsTracker=window.Matomo}}());
if(typeof window.piwik_log!=="function"){window.piwik_log=function(c,e,g,f){function b(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var d,a=window.Matomo.getTracker(g,e);a.setDocumentTitle(c);a.setCustomData(f);d=b("tracker_pause");if(d){a.setLinkTrackingTimer(d)}d=b("download_extensions");if(d){a.setDownloadExtensions(d)}d=b("hosts_alias");if(d){a.setDomains(d)}d=b("ignore_classes");if(d){a.setIgnoreClasses(d)}a.trackPageView();if(b("install_tracker")){piwik_track=function(i,j,k,h){a.setSiteId(j);a.setTrackerUrl(k);a.trackLink(i,h)};a.enableLinkTracking()}}}

3
logit.min.js vendored Normal file

File diff suppressed because one or more lines are too long

735
logit.min.js.map Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,8 @@
mail = $('span.mailto').html();
mail = mail.replace('<span style="display:none;">no-thx-</span>','');
$('span.mailto').html('<a href="mailto:'+mail+'">'+ mail +'</a>');
(function(){
var mdom = document.querySelectorAll('span.mailto');
for(var i = 0;i<mdom.length;i++) {
var txt = mdom[i].innerHTML;
txt = txt.replace('<span style="display:none;">no-thx-</span>','');
mdom[i].innerHTML = '<a href="mailto:'+txt+'">'+ txt +'</a>'
}
})();

2
mailto.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
!function(){for(var mdom=document.querySelectorAll("span.mailto"),i=0;i<mdom.length;i++){var txt=mdom[i].innerHTML;txt=txt.replace('<span style="display:none;">no-thx-</span>',""),mdom[i].innerHTML='<a href="mailto:'+txt+'">'+txt+"</a>"}}();
//# sourceMappingURL=mailto.min.js.map

18
mailto.min.js.map Normal file
View File

@ -0,0 +1,18 @@
{
"version": 3,
"sources": [
"mailto.js"
],
"names": [
"mdom",
"document",
"querySelectorAll",
"i",
"length",
"txt",
"innerHTML",
"replace"
],
"mappings": "CAAA,WAEE,IADA,IAAIA,KAAOC,SAASC,iBAAiB,eAC7BC,EAAI,EAAEA,EAAEH,KAAKI,OAAOD,IAAK,CAC/B,IAAIE,IAAML,KAAKG,GAAGG,UAClBD,IAAMA,IAAIE,QAAQ,6CAA6C,IAC/DP,KAAKG,GAAGG,UAAY,mBAAmBD,IAAI,KAAMA,IAAK,QAL1D",
"file": "mailto.js"
}

View File

@ -1,19 +1,19 @@
.row.make-columns {
-moz-column-width: 19em;
-webkit-column-width: 19em;
-moz-column-gap: 1em;
-webkit-column-gap:1em;
}
.row.make-columns > div {
display: inline-block;
padding: .5rem;
width: 100%;
}
/* demo only* */
.panel {
display: inline-block;
height: 100%;
width: 100%;
.row.make-columns {
-moz-column-width: 19em;
-webkit-column-width: 19em;
-moz-column-gap: 1em;
-webkit-column-gap:1em;
}
.row.make-columns > div {
display: inline-block;
padding: .5rem;
width: 100%;
}
/* demo only* */
.panel {
display: inline-block;
height: 100%;
width: 100%;
}

1
make-columns.min.css vendored Normal file
View File

@ -0,0 +1 @@
.row.make-columns{-moz-column-width:19em;-webkit-column-width:19em;-moz-column-gap:1em;-webkit-column-gap:1em}.row.make-columns>div{display:inline-block;padding:.5rem;width:100%}.panel{display:inline-block;height:100%;width:100%}

View File

@ -1,8 +1,8 @@
.parallax{
height: 600px;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-position: 100% auto;
position:relative;
height: 600px;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-position: 100% auto;
position:relative;
}

1
parallax.min.css vendored Normal file
View File

@ -0,0 +1 @@
.parallax{height:600px;background-repeat:no-repeat;background-attachment:fixed;background-size:cover;background-position:100% auto;position:relative}

2
push.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
push_ask=function(){Notification.requestPermission((function(){}))},push_send=function(t,b){new Notification(t,{body:b,icon:"favicon.png"})};
//# sourceMappingURL=push.min.js.map

18
push.min.js.map Normal file
View File

@ -0,0 +1,18 @@
{
"version": 3,
"sources": [
"push.js"
],
"names": [
"push_ask",
"Notification",
"requestPermission",
"push_send",
"t",
"b",
"body",
"icon"
],
"mappings": "AAAAA,SAAW,WACTC,aAAaC,mBAAkB,gBAIjCC,UAAY,SAASC,EAAGC,GACtB,IAAIJ,aAAaG,EAAG,CAClBE,KAAOD,EACPE,KAAO",
"file": "push.js"
}

15
selText.js Normal file
View File

@ -0,0 +1,15 @@
var selText = function(callback){
document.body.addEventListener('mouseup', function(e){
var selection;
if (window.getSelection) {
selection = window.getSelection();
} else if (document.selection) {
selection = document.selection.createRange();
}
if(selection.toString() !== '') {
callback(selection.toString(),e.pageX, e.pageY);
}
});
};

2
selText.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
var selText=function(callback){document.body.addEventListener("mouseup",(function(e){var selection;window.getSelection?selection=window.getSelection():document.selection&&(selection=document.selection.createRange()),""!==selection.toString()&&callback(selection.toString(),e.pageX,e.pageY)}))};
//# sourceMappingURL=selText.min.js.map

23
selText.min.js.map Normal file
View File

@ -0,0 +1,23 @@
{
"version": 3,
"sources": [
"selText.js"
],
"names": [
"selText",
"callback",
"document",
"body",
"addEventListener",
"e",
"selection",
"window",
"getSelection",
"createRange",
"toString",
"pageX",
"pageY"
],
"mappings": "AAAA,IAAIA,QAAU,SAASC,UACrBC,SAASC,KAAKC,iBAAiB,WAAW,SAASC,GACjD,IAAIC,UAEAC,OAAOC,aACTF,UAAYC,OAAOC,eACVN,SAASI,YAClBA,UAAYJ,SAASI,UAAUG,eAGL,KAAzBH,UAAUI,YACXT,SAASK,UAAUI,WAAWL,EAAEM,MAAON,EAAEO",
"file": "selText.js"
}

8
sitemap.css Normal file
View File

@ -0,0 +1,8 @@
ARTICLE { font-family: sans-serif;
background: white; color: black }
AUTHOR { margin: 1em; color: red }
HEADLINE { text-align: right;
margin-bottom: 2em }
PARA { line-height: 1.5;
margin-left: 15% }
INSTRUMENT { color: blue }

1
sitemap.min.css vendored Normal file
View File

@ -0,0 +1 @@
ARTICLE{font-family:sans-serif;background:#fff;color:#000}AUTHOR{margin:1em;color:red}HEADLINE{text-align:right;margin-bottom:2em}PARA{line-height:1.5;margin-left:15%}INSTRUMENT{color:#00f}

View File

@ -12,7 +12,7 @@ input.switch[type="checkbox"] + label {
float: left;
margin-right: 5px;
transition: background-color 0.5s linear;
margin-top: 15px;
margin-bottom: 15px;
}
input.switch[type="checkbox"] + label:hover {
cursor: pointer;

1
switch.min.css vendored Normal file
View File

@ -0,0 +1 @@
input.switch[type=checkbox]{display:none}input.switch[type=checkbox]+label{width:60px;height:30px;border-radius:30px;border:2px solid #ddd;background-color:#eee;display:inline-block;content:"";float:left;margin-right:5px;transition:background-color .5s linear;margin-bottom:15px}input.switch[type=checkbox]+label:hover{cursor:pointer}input.switch[type=checkbox]+label::before{width:30px;height:30px;border-radius:30px;background-color:#fff;display:block;content:"";float:left;margin-right:5px;transition:margin .1s linear;box-shadow:0 0 5px #aaa}input.switch[type=checkbox]:checked+label{background-color:#2b8718}input.switch[type=checkbox]:checked+label::before{margin:0 0 0 30px}

15
tablefilter.js Normal file
View File

@ -0,0 +1,15 @@
function myFilter() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("suchstr");
filter = input.value.toUpperCase();
li = document.querySelectorAll("#suchlist .row");
for (i = 0; i < li.length; i++) {
txtValue = li[i].textContent || li[i].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}

1
tablefilter.min.js vendored Normal file
View File

@ -0,0 +1 @@
function myFilter(){var e,t,l,n,r;for(n=0,t=(e=document.getElementById("suchstr")).value.toUpperCase(),l=document.querySelectorAll("#suchlist .row");n<l.length;n++)(r=l[n].textContent||l[n].innerText).toUpperCase().indexOf(t)>-1?l[n].style.display="":l[n].style.display="none"}

29
tablefilter.min.js.map Normal file
View File

@ -0,0 +1,29 @@
{
"version": 3,
"sources": [
"tablefilter.js"
],
"names": [
"myFilter",
"input",
"filter",
"ul",
"li",
"a",
"i",
"txtValue",
"document",
"getElementById",
"value",
"toUpperCase",
"jQuery",
"length",
"textContent",
"innerText",
"indexOf",
"style",
"display"
],
"mappings": "AAAA,SAASA,WACP,IAAIC,MAAOC,OAAQC,GAAIC,GAAIC,EAAGC,EAAGC,SAKjC,IAHAL,QADAD,MAAQO,SAASC,eAAe,YACjBC,MAAMC,cAErBP,GAAKQ,OAAO,kBACPN,EAAI,EAAGA,EAAIF,GAAGS,OAAQP,KACzBC,SAAWH,GAAGE,GAAGQ,aAAeV,GAAGE,GAAGS,WACzBJ,cAAcK,QAAQd,SAAW,EAC5CE,GAAGE,GAAGW,MAAMC,QAAU,GAEtBd,GAAGE,GAAGW,MAAMC,QAAU",
"file": "tablefilter.js"
}

View File

@ -1,90 +1,90 @@
.wysiwyg {
width: 40rem;
min-height: 18rem;
box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.3);
border-top: 6px solid #4a4a4a;
border-radius: 3px;
margin: 2rem;
}
.wysiwyg .toolbar {
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.wysiwyg .toolbar .line {
display: flex;
border-bottom: 1px solid #e2e2e2;
}
.wysiwyg .toolbar .line:last-child {
border-bottom: none;
}
.wysiwyg .toolbar .line .box {
display: flex;
border-left: 1px solid #e2e2e2;
}
.wysiwyg .toolbar .line .box .btn {
display: block;
display: flex;
align-items: center;
justify-content: center;
position: relative;
transition: 0.2s ease all;
}
.wysiwyg .toolbar .line .box .btn:hover, .wysiwyg .toolbar .line .box .btn.active {
background-color: #e1e1e1;
cursor: pointer;
}
.wysiwyg .toolbar .line .box .btn.icon img {
width: 15px;
padding: 10px;
}
.wysiwyg .toolbar .line .box .btn.icon.smaller img {
width: 12px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu {
width: 20px;
padding: 0 10px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu::after {
content: '';
width: 6px;
height: 6px;
position: absolute;
background-image: url(https://image.flaticon.com/icons/svg/25/25243.svg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
right: 4px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu .submenu {
display: none;
position: absolute;
top: 36px;
left: -1px;
z-index: 10;
background-color: #fff;
border: 1px solid #b5b5b5;
border-top: none;
}
.wysiwyg .toolbar .line .box .btn.has-submenu .submenu .btn {
width: 39px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu:hover .submenu {
display: block;
}
.wysiwyg .content-area {
padding: 15px 12px;
line-height: 1.5;
}
.wysiwyg .content-area .visuell-view {
outline: none;
}
.wysiwyg .content-area .visuell-view p {
margin: 12px 0;
}
.wysiwyg .content-area .html-view {
outline: none;
display: none;
width: 100%;
height: 200px;
border: none;
resize: none;
.wysiwyg {
width: 40rem;
min-height: 18rem;
box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.3);
border-top: 6px solid #4a4a4a;
border-radius: 3px;
margin: 2rem;
}
.wysiwyg .toolbar {
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.wysiwyg .toolbar .line {
display: flex;
border-bottom: 1px solid #e2e2e2;
}
.wysiwyg .toolbar .line:last-child {
border-bottom: none;
}
.wysiwyg .toolbar .line .box {
display: flex;
border-left: 1px solid #e2e2e2;
}
.wysiwyg .toolbar .line .box .btn {
display: block;
display: flex;
align-items: center;
justify-content: center;
position: relative;
transition: 0.2s ease all;
}
.wysiwyg .toolbar .line .box .btn:hover, .wysiwyg .toolbar .line .box .btn.active {
background-color: #e1e1e1;
cursor: pointer;
}
.wysiwyg .toolbar .line .box .btn.icon img {
width: 15px;
padding: 10px;
}
.wysiwyg .toolbar .line .box .btn.icon.smaller img {
width: 12px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu {
width: 20px;
padding: 0 10px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu::after {
content: '';
width: 6px;
height: 6px;
position: absolute;
background-image: url(https://image.flaticon.com/icons/svg/25/25243.svg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
right: 4px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu .submenu {
display: none;
position: absolute;
top: 36px;
left: -1px;
z-index: 10;
background-color: #fff;
border: 1px solid #b5b5b5;
border-top: none;
}
.wysiwyg .toolbar .line .box .btn.has-submenu .submenu .btn {
width: 39px;
}
.wysiwyg .toolbar .line .box .btn.has-submenu:hover .submenu {
display: block;
}
.wysiwyg .content-area {
padding: 15px 12px;
line-height: 1.5;
}
.wysiwyg .content-area .visuell-view {
outline: none;
}
.wysiwyg .content-area .visuell-view p {
margin: 12px 0;
}
.wysiwyg .content-area .html-view {
outline: none;
display: none;
width: 100%;
height: 200px;
border: none;
resize: none;
}

View File

@ -1,140 +1,140 @@
function initWYSIWYG() {
$('.wysiwyg').html('<div class="toolbar">'+
' <div class="line">'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="bold" title="Bold">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25432.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="italic" title="Italic">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25392.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="underline" title="Underline">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25433.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="strikeThrough" title="Strike through">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25626.svg">'+
' </span>'+
' </div>'+
' '+
' <div class="box">'+
' <span class="btn icon has-submenu">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg">'+
' <div class="submenu">'+
' <span class="btn icon" data-action="justifyLeft" title="Justify left">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg"> '+
' </span>'+
' <span class="btn icon" data-action="justifyCenter" title="Justify center">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25440.svg"> '+
' </span>'+
' <span class="btn icon" data-action="justifyRight" title="Justify right">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25288.svg"> '+
' </span>'+
' <span class="btn icon" data-action="formatBlock" title="Justify block">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25181.svg"> '+
' </span>'+
' </div>'+
' </span>'+
' <span class="btn icon" data-action="insertOrderedList" title="Insert ordered list">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25242.svg"> '+
' </span>'+
' <span class="btn icon" data-action="insertUnorderedList" title="Insert unordered list">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25648.svg"> '+
' </span>'+
' <span class="btn icon" data-action="outdent" title="Outdent">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25410.svg"> '+
' </span>'+
' <span class="btn icon" data-action="indent" title="Indent">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25233.svg"> '+
' </span>'+
' '+
' </div>'+
' <div class="box">'+
' <span class="btn icon" data-action="insertHorizontalRule" title="Insert horizontal rule">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25232.svg"> '+
' </span>'+
' </div>'+
' '+
'</div>'+
'<div class="line">'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="undo" title="Undo">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25249.svg">'+
' </span>'+
' <span class="btn icon" data-action="removeFormat" title="Remove format">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25454.svg"> '+
' </span>'+
' </div>'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="createLink" title="Insert Link">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25385.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="unlink" title="Unlink">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25341.svg">'+
' </span>'+
' </div>'+
' <div class="box">'+
' <span class="btn icon" data-action="code" title="Show HTML-Code">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25185.svg">'+
' </span>'+
' </div>'+
' '+
'</div>'+
'</div>'+
'<div class="content-area">'+
'<div class="visuell-view" contenteditable>'+
'</div>'+
'<textarea class="html-view"></textarea>'+
'</div>');
}
initWYSIWYG();
const editor = document.getElementsByClassName('wysiwyg')[0];
console.log(editor);
const toolbar = editor.getElementsByClassName('toolbar')[0];
const buttons = toolbar.querySelectorAll('.btn:not(.has-submenu)');
for(let i = 0; i < buttons.length; i++) {
let button = buttons[i];
button.addEventListener('click', function(e) {
let action = this.dataset.action;
switch(action) {
case 'code':
execCodeAction(this, editor);
break;
case 'createLink':
execLinkAction();
break;
default:
execDefaultAction(action);
}
});
}
function execCodeAction(button, editor) {
const contentArea = editor.getElementsByClassName('content-area')[0];
const visuellView = contentArea.getElementsByClassName('visuell-view')[0];
const htmlView = contentArea.getElementsByClassName('html-view')[0];
if(button.classList.contains('active')) { // show visuell view
visuellView.innerHTML = htmlView.value;
htmlView.style.display = 'none';
visuellView.style.display = 'block';
button.classList.remove('active');
} else { // show html view
htmlView.innerText = visuellView.innerHTML;
visuellView.style.display = 'none';
htmlView.style.display = 'block';
button.classList.add('active');
}
}
function execLinkAction() {
let linkValue = prompt('Link (e.g. https://webdeasy.de/)');
document.execCommand('createLink', false, linkValue);
}
function execDefaultAction(action) {
document.execCommand(action, false);
function initWYSIWYG() {
$('.wysiwyg').html('<div class="toolbar">'+
' <div class="line">'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="bold" title="Bold">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25432.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="italic" title="Italic">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25392.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="underline" title="Underline">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25433.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="strikeThrough" title="Strike through">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25626.svg">'+
' </span>'+
' </div>'+
' '+
' <div class="box">'+
' <span class="btn icon has-submenu">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg">'+
' <div class="submenu">'+
' <span class="btn icon" data-action="justifyLeft" title="Justify left">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg"> '+
' </span>'+
' <span class="btn icon" data-action="justifyCenter" title="Justify center">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25440.svg"> '+
' </span>'+
' <span class="btn icon" data-action="justifyRight" title="Justify right">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25288.svg"> '+
' </span>'+
' <span class="btn icon" data-action="formatBlock" title="Justify block">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25181.svg"> '+
' </span>'+
' </div>'+
' </span>'+
' <span class="btn icon" data-action="insertOrderedList" title="Insert ordered list">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25242.svg"> '+
' </span>'+
' <span class="btn icon" data-action="insertUnorderedList" title="Insert unordered list">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25648.svg"> '+
' </span>'+
' <span class="btn icon" data-action="outdent" title="Outdent">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25410.svg"> '+
' </span>'+
' <span class="btn icon" data-action="indent" title="Indent">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25233.svg"> '+
' </span>'+
' '+
' </div>'+
' <div class="box">'+
' <span class="btn icon" data-action="insertHorizontalRule" title="Insert horizontal rule">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25232.svg"> '+
' </span>'+
' </div>'+
' '+
'</div>'+
'<div class="line">'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="undo" title="Undo">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25249.svg">'+
' </span>'+
' <span class="btn icon" data-action="removeFormat" title="Remove format">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25454.svg"> '+
' </span>'+
' </div>'+
' '+
' <div class="box">'+
' <span class="btn icon smaller" data-action="createLink" title="Insert Link">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25385.svg">'+
' </span>'+
' <span class="btn icon smaller" data-action="unlink" title="Unlink">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25341.svg">'+
' </span>'+
' </div>'+
' <div class="box">'+
' <span class="btn icon" data-action="code" title="Show HTML-Code">'+
' <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25185.svg">'+
' </span>'+
' </div>'+
' '+
'</div>'+
'</div>'+
'<div class="content-area">'+
'<div class="visuell-view" contenteditable>'+
'</div>'+
'<textarea class="html-view"></textarea>'+
'</div>');
}
initWYSIWYG();
const editor = document.getElementsByClassName('wysiwyg')[0];
console.log(editor);
const toolbar = editor.getElementsByClassName('toolbar')[0];
const buttons = toolbar.querySelectorAll('.btn:not(.has-submenu)');
for(let i = 0; i < buttons.length; i++) {
let button = buttons[i];
button.addEventListener('click', function(e) {
let action = this.dataset.action;
switch(action) {
case 'code':
execCodeAction(this, editor);
break;
case 'createLink':
execLinkAction();
break;
default:
execDefaultAction(action);
}
});
}
function execCodeAction(button, editor) {
const contentArea = editor.getElementsByClassName('content-area')[0];
const visuellView = contentArea.getElementsByClassName('visuell-view')[0];
const htmlView = contentArea.getElementsByClassName('html-view')[0];
if(button.classList.contains('active')) { // show visuell view
visuellView.innerHTML = htmlView.value;
htmlView.style.display = 'none';
visuellView.style.display = 'block';
button.classList.remove('active');
} else { // show html view
htmlView.innerText = visuellView.innerHTML;
visuellView.style.display = 'none';
htmlView.style.display = 'block';
button.classList.add('active');
}
}
function execLinkAction() {
let linkValue = prompt('Link (e.g. https://webdeasy.de/)');
document.execCommand('createLink', false, linkValue);
}
function execDefaultAction(action) {
document.execCommand(action, false);
}

1
wysiwyg.min.css vendored Normal file
View File

@ -0,0 +1 @@
.wysiwyg{width:40rem;min-height:18rem;box-shadow:0 0 4px 1px rgba(0,0,0,.3);border-top:6px solid #4a4a4a;border-radius:3px;margin:2rem}.wysiwyg .toolbar{box-shadow:0 1px 4px rgba(0,0,0,.2)}.wysiwyg .toolbar .line{display:flex;border-bottom:1px solid #e2e2e2}.wysiwyg .toolbar .line:last-child{border-bottom:none}.wysiwyg .toolbar .line .box{display:flex;border-left:1px solid #e2e2e2}.wysiwyg .toolbar .line .box .btn{display:block;display:flex;align-items:center;justify-content:center;position:relative;transition:.2s ease all}.wysiwyg .toolbar .line .box .btn.active,.wysiwyg .toolbar .line .box .btn:hover{background-color:#e1e1e1;cursor:pointer}.wysiwyg .toolbar .line .box .btn.icon img{width:15px;padding:10px}.wysiwyg .toolbar .line .box .btn.icon.smaller img{width:12px}.wysiwyg .toolbar .line .box .btn.has-submenu{width:20px;padding:0 10px}.wysiwyg .toolbar .line .box .btn.has-submenu::after{content:'';width:6px;height:6px;position:absolute;background-image:url(https://image.flaticon.com/icons/svg/25/25243.svg);background-repeat:no-repeat;background-size:cover;background-position:center;right:4px}.wysiwyg .toolbar .line .box .btn.has-submenu .submenu{display:none;position:absolute;top:36px;left:-1px;z-index:10;background-color:#fff;border:1px solid #b5b5b5;border-top:none}.wysiwyg .toolbar .line .box .btn.has-submenu .submenu .btn{width:39px}.wysiwyg .toolbar .line .box .btn.has-submenu:hover .submenu{display:block}.wysiwyg .content-area{padding:15px 12px;line-height:1.5}.wysiwyg .content-area .visuell-view{outline:0}.wysiwyg .content-area .visuell-view p{margin:12px 0}.wysiwyg .content-area .html-view{outline:0;display:none;width:100%;height:200px;border:none;resize:none}

2
wysiwyg.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
function initWYSIWYG(){$(".wysiwyg").html('<div class="toolbar"> <div class="line"> <div class="box"> <span class="btn icon smaller" data-action="bold" title="Bold"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25432.svg"> </span> <span class="btn icon smaller" data-action="italic" title="Italic"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25392.svg"> </span> <span class="btn icon smaller" data-action="underline" title="Underline"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25433.svg"> </span> <span class="btn icon smaller" data-action="strikeThrough" title="Strike through"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25626.svg"> </span> </div> <div class="box"> <span class="btn icon has-submenu"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg"> <div class="submenu"> <span class="btn icon" data-action="justifyLeft" title="Justify left"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25351.svg"> </span> <span class="btn icon" data-action="justifyCenter" title="Justify center"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25440.svg"> </span> <span class="btn icon" data-action="justifyRight" title="Justify right"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25288.svg"> </span> <span class="btn icon" data-action="formatBlock" title="Justify block"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25181.svg"> </span> </div> </span> <span class="btn icon" data-action="insertOrderedList" title="Insert ordered list"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25242.svg"> </span> <span class="btn icon" data-action="insertUnorderedList" title="Insert unordered list"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25648.svg"> </span> <span class="btn icon" data-action="outdent" title="Outdent"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25410.svg"> </span> <span class="btn icon" data-action="indent" title="Indent"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25233.svg"> </span> </div> <div class="box"> <span class="btn icon" data-action="insertHorizontalRule" title="Insert horizontal rule"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25232.svg"> </span> </div> </div><div class="line"> <div class="box"> <span class="btn icon smaller" data-action="undo" title="Undo"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25249.svg"> </span> <span class="btn icon" data-action="removeFormat" title="Remove format"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25454.svg"> </span> </div> <div class="box"> <span class="btn icon smaller" data-action="createLink" title="Insert Link"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25385.svg"> </span> <span class="btn icon smaller" data-action="unlink" title="Unlink"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25341.svg"> </span> </div> <div class="box"> <span class="btn icon" data-action="code" title="Show HTML-Code"> <img loading="lazy" src="https://image.flaticon.com/icons/svg/25/25185.svg"> </span> </div> </div></div><div class="content-area"><div class="visuell-view" contenteditable></div><textarea class="html-view"></textarea></div>')}initWYSIWYG();const editor=document.getElementsByClassName("wysiwyg")[0];console.log(editor);const toolbar=editor.getElementsByClassName("toolbar")[0],buttons=toolbar.querySelectorAll(".btn:not(.has-submenu)");for(let i=0;i<buttons.length;i++){let button;buttons[i].addEventListener("click",(function(e){let action=this.dataset.action;switch(action){case"code":execCodeAction(this,editor);break;case"createLink":execLinkAction();break;default:execDefaultAction(action)}}))}function execCodeAction(button,editor){const contentArea=editor.getElementsByClassName("content-area")[0],visuellView=contentArea.getElementsByClassName("visuell-view")[0],htmlView=contentArea.getElementsByClassName("html-view")[0];button.classList.contains("active")?(visuellView.innerHTML=htmlView.value,htmlView.style.display="none",visuellView.style.display="block",button.classList.remove("active")):(htmlView.innerText=visuellView.innerHTML,visuellView.style.display="none",htmlView.style.display="block",button.classList.add("active"))}function execLinkAction(){let linkValue=prompt("Link (e.g. https://webdeasy.de/)");document.execCommand("createLink",!1,linkValue)}function execDefaultAction(action){document.execCommand(action,!1)}
//# sourceMappingURL=wysiwyg.min.js.map

47
wysiwyg.min.js.map Normal file
View File

@ -0,0 +1,47 @@
{
"version": 3,
"sources": [
"wysiwyg.js"
],
"names": [
"initWYSIWYG",
"$",
"html",
"editor",
"document",
"getElementsByClassName",
"console",
"log",
"toolbar",
"buttons",
"querySelectorAll",
"i",
"length",
"button",
"addEventListener",
"e",
"action",
"this",
"dataset",
"execCodeAction",
"execLinkAction",
"execDefaultAction",
"contentArea",
"visuellView",
"htmlView",
"classList",
"contains",
"innerHTML",
"value",
"style",
"display",
"remove",
"innerText",
"add",
"linkValue",
"prompt",
"execCommand"
],
"mappings": "AAAA,SAASA,cACPC,EAAE,YAAYC,KAAK,ykHA2FrBF,cAEA,MAAMG,OAASC,SAASC,uBAAuB,WAAW,GAC1DC,QAAQC,IAAIJ,QACZ,MAAMK,QAAUL,OAAOE,uBAAuB,WAAW,GACnDI,QAAUD,QAAQE,iBAAiB,0BACzC,IAAI,IAAIC,EAAI,EAAGA,EAAIF,QAAQG,OAAQD,IAAK,CACtC,IAAIE,OAASJ,QAAQE,GAEdG,iBAAiB,SAAS,SAASC,GACxC,IAAIC,OAASC,KAAKC,QAAQF,OAE1B,OAAOA,QACL,IAAK,OACHG,eAAeF,KAAMd,QACrB,MACF,IAAK,aACHiB,iBACA,MACF,QACEC,kBAAkBL,YAK1B,SAASG,eAAeN,OAAQV,QAC9B,MAAMmB,YAAcnB,OAAOE,uBAAuB,gBAAgB,GAC5DkB,YAAcD,YAAYjB,uBAAuB,gBAAgB,GACjEmB,SAAWF,YAAYjB,uBAAuB,aAAa,GAC9DQ,OAAOY,UAAUC,SAAS,WAC3BH,YAAYI,UAAYH,SAASI,MACjCJ,SAASK,MAAMC,QAAU,OACzBP,YAAYM,MAAMC,QAAU,QAC5BjB,OAAOY,UAAUM,OAAO,YAExBP,SAASQ,UAAYT,YAAYI,UACjCJ,YAAYM,MAAMC,QAAU,OAC5BN,SAASK,MAAMC,QAAU,QACzBjB,OAAOY,UAAUQ,IAAI,WAGzB,SAASb,iBACP,IAAIc,UAAYC,OAAO,oCACvB/B,SAASgC,YAAY,cAAc,EAAOF,WAE5C,SAASb,kBAAkBL,QACzBZ,SAASgC,YAAYpB,QAAQ",
"file": "wysiwyg.js"
}