27 Commits

Author SHA1 Message Date
electronicfreak
dd82088551 lazy img 2024-03-31 12:55:43 +02: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
27 changed files with 2202 additions and 224 deletions

160
README.md
View File

@@ -120,88 +120,88 @@ git submodule add https://git.seemsleg.it/pub/cssjs-func-lib cssjs
<script src="/cssjs/ckeditor.js"></script> <script src="/cssjs/ckeditor.js"></script>
<script>ClassicEditor <script>ClassicEditor
.create( document.querySelector( '.editor' ), { .create( document.querySelector( '.editor' ), {
toolbar: { toolbar: {
items: [ items: [
'heading', 'heading',
'|', '|',
'bold', 'bold',
'italic', 'italic',
'underline', 'underline',
'link', 'link',
'removeFormat', 'removeFormat',
'fontSize', 'fontSize',
'fontFamily', 'fontFamily',
'|', '|',
'bulletedList', 'bulletedList',
'numberedList', 'numberedList',
'todoList', 'todoList',
'|', '|',
'indent', 'indent',
'outdent', 'outdent',
'alignment', 'alignment',
'horizontalLine', 'horizontalLine',
'|', '|',
'imageUpload', 'imageUpload',
'imageInsert', 'imageInsert',
'blockQuote', 'blockQuote',
'insertTable', 'insertTable',
'mediaEmbed', 'mediaEmbed',
'undo', 'undo',
'redo', 'redo',
'|', '|',
'codeBlock', 'codeBlock',
'exportPdf', 'exportPdf',
'htmlEmbed', 'htmlEmbed',
'exportWord', 'exportWord',
'highlight' 'highlight'
] ]
}, },
language: 'de', language: 'de',
image: { image: {
toolbar: [ toolbar: [
'imageTextAlternative', 'imageTextAlternative',
'|', '|',
'imageStyle:full', 'imageStyle:full',
'imageStyle:side', 'imageStyle:side',
'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight', 'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
'|', '|',
'imageResize', 'imageResize',
] ]
}, },
table: { table: {
contentToolbar: [ contentToolbar: [
'tableColumn', 'tableColumn',
'tableRow', 'tableRow',
'mergeTableCells' 'mergeTableCells'
] ]
}, },
licenseKey: '', licenseKey: '',
} ) } )
.then( editor => { .then( editor => {
window.editor = editor; window.editor = editor;
} ) } )
.catch( error => { .catch( error => {
console.error( 'Oops, something went wrong!' ); 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.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.warn( 'Build id: p276tlu14l98-tj7z79o4qxsd' );
console.error( error ); console.error( error );
} ); } );
</script> </script>
``` ```
Heading Heading
``` ```
... ...
heading: { heading: {
options: [ options: [
{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' }, { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
{ model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' }, { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
{ model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' } { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' }
] ]
} }
... ...
``` ```
@@ -304,4 +304,18 @@ benötigt "Fader"
<noscript><p><img src="https://log.seemsleg.it/logit?idsite=10&amp;rec=1" style="border:0;" alt="" /></p></noscript> <noscript><p><img src="https://log.seemsleg.it/logit?idsite=10&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End logit --> <!-- End logit -->
``` ```
nicht vergessen bei setSiteId die richtige id anzugeben 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,3 +1,8 @@
body {
background-color: #000 !important;
color: #fff;
}
textarea { textarea {
display: block; display: block;
width: 100%; width: 100%;
@@ -21,7 +26,6 @@ form .label {
margin: 0 10px; margin: 0 10px;
} }
.hover { .hover {
border: 1px solid white; border: 1px solid white;
} }

2
admin.min.css vendored
View File

@@ -1 +1 @@
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} 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}

View File

@@ -9,6 +9,15 @@ function copyToClipboard(id) {
document.execCommand("copy"); 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) { function copiedToClipboard(id) {
var tooltip = document.getElementById(id); var tooltip = document.getElementById(id);
tooltip.innerHTML = "Kopiert"; tooltip.innerHTML = "Kopiert";

View File

@@ -1 +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} .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}

View File

@@ -1,2 +1 @@
function copyToClipboard(id){var copyText=document.getElementById(id);copyText.select(),copyText.setSelectionRange(0,99999),document.execCommand("copy")}function copiedToClipboard(id){var tooltip;document.getElementById(id).innerHTML="Kopiert"}function resetClipboard(id){var tooltip;document.getElementById(id).innerHTML="Kopieren"} 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"}
//# sourceMappingURL=copy-to-clipboard.min.js.map

View File

@@ -22,6 +22,34 @@ function ajaxFeedback(e,url,css) {
return false; 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) { function formFeedback(e,f,url,css) {
var formData = {} var formData = {}
$(f).each(function(i, obj) { $(f).each(function(i, obj) {

3
feedback.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -2,11 +2,21 @@
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
right: 0px; right: 0px;
width: 150px; width: 170px;
border: 1px solid #fff; border: 1px solid #fff;
border-top-left-radius: 15px; border-top-left-radius: 15px;
border-bottom-left-radius: 15px; border-bottom-left-radius: 15px;
margin-right: -130px; 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 { #flag-panel.open {
@@ -32,24 +42,29 @@
z-index: 9999; z-index: 9999;
} }
#flag-overlay iframe { #flag-iframe {
width: 80%; position: fixed;
min-width: 350px; top: 0;
margin: 0 auto; left: 50%;
margin-top: 1vh; transform: translateX(-50%);
display: block; z-index: 10000;
background-color: #fff; background-color: #000;
border: 3px solid #000; border: 3px solid #fff;
border-radius: 1em; border-radius: 1em;
overflow-y: scroll; overflow-y: scroll;
height: 97vh; height: 97vh;
min-width: 350px;
width: 80%;
display: block;
margin: 0 auto;
margin-top: 1vh;
} }
#flag-overlay.closing { #flag-overlay.closing {
transition: opacity 0.5s; transition: opacity 0.5s;
} }
#flag-overlay.closing iframe { #flag-iframe.closing {
transition: margin 1s ease, width 1s ease, height 1s ease; transition: margin 1s ease, width 1s ease, height 1s ease;
width: 350px; width: 350px;
height: 170px; height: 170px;

35
flag.js
View File

@@ -14,24 +14,34 @@
var closeFlag = function(ev) { var closeFlag = function(ev) {
flag.classList.add('closing'); flag.classList.add('closing');
iframe.classList.add('closing');
setTimeout(function() { setTimeout(function() {
flag.style.opacity = 0; flag.style.opacity = 0;
iframe.style.opacity = 0;
setTimeout(function() { setTimeout(function() {
flag.remove(); flag.remove();
iframe.remove();
document.body.style.overflowY = 'auto'; document.body.style.overflowY = 'auto';
},500); },500);
},3000); },1000);
} }
var openFlag = function(ev) { var openFlag = function(ev, infos=false) {
flag = document.createElement('div'); flag = document.createElement('div');
document.body.style.overflowY = 'hidden'; document.body.style.overflowY = 'hidden';
flag.id = 'flag-overlay'; flag.id = 'flag-overlay';
iframe = document.createElement('iframe'); iframe = document.createElement('iframe');
iframe.src= ''; iframe.src= '';
iframe.name = 'flag-iframe'; iframe.name = 'flag-iframe';
flag.appendChild(iframe); iframe.id = 'flag-iframe';
document.body.appendChild(flag); document.body.appendChild(flag);
setTimeout(function() {
flag.addEventListener('click',function(){
closeFlag();
//console.log('close2');
});
},3000);
document.body.appendChild(iframe);
var form = document.createElement('form'); var form = document.createElement('form');
form.action = connector+"?style="+style; form.action = connector+"?style="+style;
@@ -45,10 +55,25 @@
});*/ });*/
var fields = {}; var fields = {};
fields['s'] = window.location.hostname; 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(document.referrer) {fields['r'] = document.referrer;}
if(window.location.href) {fields['u'] = window.location.href;} if(window.location.href) {fields['u'] = window.location.href;}
if(navigator.userAgent) {fields['a'] = navigator.userAgent;} if(navigator.userAgent) {fields['a'] = navigator.userAgent;}
fields['d'] = ''+window.screen.width+'x'+window.screen.height+' ('+window.screen.colorDepth+'bit)'; 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) { for(var f in fields) {
var inp = document.createElement('input'); var inp = document.createElement('input');
@@ -61,6 +86,7 @@
form.style = 'display:none'; form.style = 'display:none';
document.body.appendChild(form); document.body.appendChild(form);
form.submit(); form.submit();
form.remove();
} }
var panel = document.createElement('div'); var panel = document.createElement('div');
@@ -83,6 +109,7 @@
window.addEventListener("message", (event) => { window.addEventListener("message", (event) => {
//console.log(event); //console.log(event);
if(event.data == 'close') { if(event.data == 'close') {
//console.log('close1');
closeFlag(); closeFlag();
} }
}); });
@@ -92,7 +119,7 @@
for(var l=0;l<links.length;l++) { for(var l=0;l<links.length;l++) {
//console.log(l,links[l]); //console.log(l,links[l]);
links[l].addEventListener('click',function(ev) { links[l].addEventListener('click',function(ev) {
openFlag(ev); openFlag(ev,ev.target.dataset);
ev.preventDefault(); ev.preventDefault();
return false; return false;
}); });

2
flag.min.css vendored
View File

@@ -1 +1 @@
#flag-panel{position:fixed;bottom:0;right:0;width:150px;border:1px solid #fff;border-top-left-radius:15px;border-bottom-left-radius:15px;margin-right:-130px}#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-overlay iframe{width:80%;min-width:350px;margin:0 auto;margin-top:1vh;display:block;background-color:#fff;border:3px solid #000;border-radius:1em;overflow-y:scroll;height:97vh}#flag-overlay.closing{transition:opacity .5s}#flag-overlay.closing iframe{transition:margin 1s ease,width 1s ease,height 1s ease;width:350px;height:170px;margin-top:calc(50vh - 50px);overflow:hidden} #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
View File

@@ -1,2 +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"),setTimeout((function(){flag.style.opacity=0,setTimeout((function(){flag.remove(),document.body.style.overflowY="auto"}),500)}),3e3)},openFlag=function(ev){flag=document.createElement("div"),document.body.style.overflowY="hidden",flag.id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",flag.appendChild(iframe),document.body.appendChild(flag);var form=document.createElement("form");form.action=connector+"?style="+style,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};for(var f in fields.s=window.location.hostname,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)",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()},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.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback"); !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 //# sourceMappingURL=flag.min.js.map

View File

@@ -22,21 +22,30 @@
"remove", "remove",
"overflowY", "overflowY",
"openFlag", "openFlag",
"infos",
"createElement", "createElement",
"id", "id",
"src", "src",
"name", "name",
"appendChild", "appendChild",
"addEventListener",
"form", "form",
"action", "action",
"target", "target",
"method", "method",
"screenshotTarget", "screenshotTarget",
"fields", "fields",
"f",
"window", "window",
"location", "location",
"hostname", "hostname",
"datas",
"querySelectorAll",
"i",
"length",
"console",
"log",
"tmp",
"split",
"referrer", "referrer",
"href", "href",
"navigator", "navigator",
@@ -45,6 +54,7 @@
"width", "width",
"height", "height",
"colorDepth", "colorDepth",
"f",
"inp", "inp",
"type", "type",
"value", "value",
@@ -52,7 +62,6 @@
"panel", "panel",
"tab", "tab",
"innerHTML", "innerHTML",
"addEventListener",
"contains", "contains",
"toggle", "toggle",
"button", "button",
@@ -60,10 +69,9 @@
"data", "data",
"links", "links",
"getElementsByClassName", "getElementsByClassName",
"length",
"l", "l",
"preventDefault" "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,WACnBC,YAAW,WACTV,KAAKF,MAAMa,QAAU,EACrBD,YAAW,WACTV,KAAKY,SACLX,SAASC,KAAKJ,MAAMe,UAAY,SAChC,OACF,MAGAC,SAAW,SAASP,IACtBP,KAAOC,SAASc,cAAc,OAC9Bd,SAASC,KAAKJ,MAAMe,UAAY,SAChCb,KAAKgB,GAAK,gBACVjB,OAASE,SAASc,cAAc,WACzBE,IAAK,GACZlB,OAAOmB,KAAO,cACdlB,KAAKmB,YAAYpB,QACjBE,SAASC,KAAKiB,YAAYnB,MAE1B,IAAIoB,KAAOnB,SAASc,cAAc,QAClCK,KAAKC,OAASxB,UAAU,UAAUC,MAClCsB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBvB,SAASC,KAMlC,IAAIuB,OAAS,GAOb,IAAI,IAAIC,KANRD,OAAU,EAAIE,OAAOC,SAASC,SAC3B5B,SAAS6B,WAAWL,OAAU,EAAIxB,SAAS6B,UAC3CH,OAAOC,SAASG,OAAON,OAAU,EAAIE,OAAOC,SAASG,MACrDC,UAAUC,YAAYR,OAAU,EAAIO,UAAUC,WACjDR,OAAU,EAAOE,OAAOO,OAAOC,MAAM,IAAIR,OAAOO,OAAOE,OAAO,KAAKT,OAAOO,OAAOG,WAAW,OAE/EZ,OAAQ,CACnB,IAAIa,IAAMrC,SAASc,cAAc,SACjCuB,IAAIC,KAAO,SACXD,IAAIpB,KAAOQ,EACXY,IAAIE,MAAQf,OAAOC,GACnBN,KAAKD,YAAYmB,KAGnBlB,KAAKtB,MAAQ,eACbG,SAASC,KAAKiB,YAAYC,MAC1BA,KAAKqB,UAGHC,MAAQzC,SAASc,cAAc,OACnC2B,MAAM1B,GAAK,aAEX,IAAI2B,IAAM1C,SAASc,cAAc,QACjC4B,IAAIC,UAAY,UAChBD,IAAIE,iBAAiB,cAAa,SAAStC,IACrCmC,MAAMlC,UAAUsC,SAAS,WAC3BJ,MAAMlC,UAAUC,IAAI,UAEtBiC,MAAMlC,UAAUuC,OAAO,WAGzB,IAAIC,OAAS/C,SAASc,cAAc,UAEpCiC,OAAOJ,UAAY,iBACnBI,OAAOH,iBAAiB,QAAQ/B,UAEhCa,OAAOkB,iBAAiB,UAAYI,QAEjB,SAAdA,MAAMC,MACP5C,cAIJ,IAAI6C,MAAQlD,SAASmD,uBAAuB,aAC5C,GAAGD,MAAME,OAAS,EAChB,IAAI,IAAIC,EAAE,EAAEA,EAAEH,MAAME,OAAOC,IAEzBH,MAAMG,GAAGT,iBAAiB,SAAQ,SAAStC,IAGzC,OAFAO,SAASP,IACTA,GAAGgD,kBACI,KAKbb,MAAMvB,YAAYwB,KAClBD,MAAMvB,YAAY6B,QAElB/C,SAASC,KAAKiB,YAAYuB,OAxG5B,CAyGG", "mappings": "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",
"file": "flag.js" "file": "flag.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);
}

View File

@@ -9,94 +9,94 @@
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory()); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());
}(this, (function () { 'use strict'; }(this, (function () { 'use strict';
/*! ***************************************************************************** /*! *****************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
/* global Reflect, Promise */ /* global Reflect, Promise */
var extendStatics = function(d, b) { var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf || extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b); return extendStatics(d, b);
}; };
function __extends(d, b) { function __extends(d, b) {
if (typeof b !== "function" && b !== null) if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b); extendStatics(d, b);
function __() { this.constructor = d; } function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
} }
var __assign = function() { var __assign = function() {
__assign = Object.assign || function __assign(t) { __assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) { for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i]; s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
} }
return t; return t;
}; };
return __assign.apply(this, arguments); return __assign.apply(this, arguments);
}; };
function __awaiter(thisArg, _arguments, P, generator) { function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); step((generator = generator.apply(thisArg, _arguments || [])).next());
}); });
} }
function __generator(thisArg, body) { function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; } function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) { function step(op) {
if (f) throw new TypeError("Generator is already executing."); if (f) throw new TypeError("Generator is already executing.");
while (_) try { while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value]; if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) { switch (op[0]) {
case 0: case 1: t = op; break; case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false }; case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue; case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue; case 7: op = _.ops.pop(); _.trys.pop(); continue;
default: default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop(); if (t[2]) _.ops.pop();
_.trys.pop(); continue; _.trys.pop(); continue;
} }
op = body.call(thisArg, _); op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
} }
} }
function __spreadArray(to, from, pack) { function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) { if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i); if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i]; ar[i] = from[i];
} }
} }
return to.concat(ar || from); return to.concat(ar || from);
} }
var Bounds = /** @class */ (function () { var Bounds = /** @class */ (function () {
@@ -701,7 +701,7 @@
(next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) || (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||
// ( OP | HY ) × NU // ( OP | HY ) × NU
([OP, HY].indexOf(current) !== -1 && next === NU) || ([OP, HY].indexOf(current) !== -1 && next === NU) ||
// NU × (NU | SY | IS) // NU × (NU | SY | IS)
(current === NU && [NU, SY, IS].indexOf(next) !== -1)) { (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {
return BREAK_NOT_ALLOWED$1; return BREAK_NOT_ALLOWED$1;
} }
@@ -7010,7 +7010,7 @@
case 4: case 4:
_i++; _i++;
return [3 /*break*/, 2]; return [3 /*break*/, 2];
case 5: case 5:
// 3. For all its in-flow, non-positioned, block-level descendants in tree order: // 3. For all its in-flow, non-positioned, block-level descendants in tree order:
return [4 /*yield*/, this.renderNodeContent(stack.element)]; return [4 /*yield*/, this.renderNodeContent(stack.element)];
case 6: case 6:

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

44
jquery-autoresize.js vendored
View File

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

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,8 +1,8 @@
.parallax{ .parallax{
height: 600px; height: 600px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-attachment: fixed; background-attachment: fixed;
background-size: cover; background-size: cover;
background-position: 100% auto; background-position: 100% auto;
position:relative; position:relative;
} }

View File

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

2
switch.min.css vendored
View File

@@ -1 +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-top: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} 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}

View File

@@ -3,7 +3,7 @@ function myFilter() {
input = document.getElementById("suchstr"); input = document.getElementById("suchstr");
filter = input.value.toUpperCase(); filter = input.value.toUpperCase();
li = jQuery("#suchlist .row"); li = document.querySelectorAll("#suchlist .row");
for (i = 0; i < li.length; i++) { for (i = 0; i < li.length; i++) {
txtValue = li[i].textContent || li[i].innerText; txtValue = li[i].textContent || li[i].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) { if (txtValue.toUpperCase().indexOf(filter) > -1) {

3
tablefilter.min.js vendored
View File

@@ -1,2 +1 @@
function myFilter(){var input,filter,ul,li,a,i,txtValue;for(filter=(input=document.getElementById("suchstr")).value.toUpperCase(),li=jQuery("#suchlist .row"),i=0;i<li.length;i++)(txtValue=li[i].textContent||li[i].innerText).toUpperCase().indexOf(filter)>-1?li[i].style.display="":li[i].style.display="none"} 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"}
//# sourceMappingURL=tablefilter.min.js.map