Replaced Moment with Carbon #84

Merged
Ghost merged 148 commits from develop into beta 2022-09-22 05:53:36 +02:00
11 changed files with 92 additions and 624 deletions
Showing only changes of commit 8bf640ee18 - Show all commits

View file

@ -8,6 +8,7 @@ use App\Services\SettingsService;
use App\Services\RenderService;
use App\Services\MaintenanceService;
use App\Services\AuthService;
use App\Services\AssetService;
class SettingsAPIController extends Controller
{
@ -15,21 +16,25 @@ class SettingsAPIController extends Controller
protected $render;
protected $mainteance;
protected $auth;
protected $assets;
public function __construct(
SettingsService $settingsService,
RenderService $renderService,
MaintenanceService $maintenanceService,
AuthService $authService
AuthService $authService,
AssetService $assetService
) {
$this->settings = $settingsService;
$this->render = $renderService;
$this->maintenance = $maintenanceService;
$this->auth = $authService;
$this->assets = $assetService;
}
public function publish(Request $request)
{
$this->assets->moveToTheme(true);
$result = $this->render->publishAll();
return response()->json($result)->header('Content-Type', 'application/json');
}

View file

@ -15,6 +15,9 @@ class AssetService
$this->themeTestImagePath = '../public/theme/images/global/';
$this->themeTestCSSPath = '../public/theme/css/theme/';
$this->themeTestScriptsPath = '../public/theme/scripts/theme/';
$this->themeImagePath = '../public/assets/images/global/';
$this->themeCSSPath = '../public/assets/css/theme/';
$this->themeScriptsPath = '../public/assets/scripts/theme/';
$this->themes = $themeService;
$this->currentTheme = $this->themes->getCurrentTheme();
}
@ -24,8 +27,14 @@ class AssetService
return $this->currentTheme;
}
public function moveToTheme()
public function moveToTheme($live = false)
{
$imagePath = '';
$cssPath = '';
$scriptPath = '';
($live) ? $imagePath = $this->themeImagePath : $imagePath = $this->themeTestImagePath;
($live) ? $cssPath = $this->themeCSSPath : $cssPath = $this->themeTestCSSPath;
($live) ? $scriptPath = $this->themeScriptsPath : $scriptPath = $this->themeTestScriptsPath;
//get current theme
foreach (
new \DirectoryIterator('../content/themes/' . $this->currentTheme . '/assets/images/global/') as $file
@ -34,17 +43,17 @@ class AssetService
continue;
}
//make theme directory if not present
if (!is_dir($this->themeTestImagePath)) {
mkdir($this->themeTestImagePath, 0755, true);
if (!is_dir($imagePath)) {
mkdir($imagePath, 0755, true);
}
if (!is_file($this->themeTestImagePath . $file->getFileName())) {
if (!is_file($imagePath . $file->getFileName())) {
copy(
'../content/themes/' .
$this->currentTheme .
'/assets/images/global/' .
$file->getFileName(),
$this->themeTestImagePath . $file->getFileName()
$imagePath . $file->getFileName()
);
} else {
//image is already there, so chill
@ -52,40 +61,38 @@ class AssetService
//print $file->getFilename() . "\n";
}
//clear test theme css and script directories
$styles = glob($this->themeTestCSSPath . '*'); // get all file names
$styles = glob($cssPath . '*'); // get all file names
foreach ($styles as $file) { // iterate files
if (is_file($file)) {
unlink($file); // delete file
}
}
$scripts = glob($this->themeTestScriptsPath . '*'); // get all file names
$scripts = glob($scriptPath . '*'); // get all file names
foreach ($scripts as $file) { // iterate files
if (is_file($file)) {
unlink($file); // delete file
}
}
//
//copy theme assets to public
$newcss = glob('../content/themes/' . $this->currentTheme . '/assets/css/*');
if (!is_dir($this->themeTestCSSPath)) {
mkdir($this->themeTestCSSPath, 0755, true);
if (!is_dir($cssPath)) {
mkdir($cssPath, 0755, true);
}
foreach ($newcss as $file) { // iterate files
if (is_file($file)) {
$path = explode('/', $file);
copy($file, $this->themeTestCSSPath . $path[6]);
copy($file, $cssPath . $path[6]);
}
}
$newjs = glob('../content/themes/' . $this->currentTheme . '/assets/scripts/*');
if (!is_dir($this->themeTestScriptsPath)) {
mkdir($this->themeTestScriptsPath, 0755, true);
if (!is_dir($scriptPath)) {
mkdir($scriptPath, 0755, true);
}
foreach ($newjs as $file) { // iterate files
if (is_file($file)) {
$path = explode('/', $file);
copy($file, $this->themeTestScriptsPath . $path[6]);
copy($file, $scriptPath . $path[6]);
}
}
}

View file

@ -124,7 +124,7 @@ nav {
}
nav img {
width: 50px;
width: 40px;
border-bottom: none;
}

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by Pixelmator Pro 3.3.8 -->
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path id="Path" fill="none" stroke="none" d="M 0 0 L 24 0 L 24 24 L 0 24 Z"/>
<path id="path1" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 4 6 L 20 6"/>
<path id="path2" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 4 12 L 20 12"/>
<path id="path3" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 4 18 L 20 18"/>
<!-- Generated by Pixelmator Pro 3.5.8 -->
<svg width="20" height="16" viewBox="0 0 20 16" xmlns="http://www.w3.org/2000/svg">
<path id="path1-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 2 L 18 2"/>
<path id="path2-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 8 L 18 8"/>
<path id="path3-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 14 L 18 14"/>
</svg>

After

Width:  |  Height:  |  Size: 589 B

View file

@ -1,600 +0,0 @@
h1, h2, h3 {
color: #ebe5d4;
}
h1 {
font-size: 2em;
font-weight: 400;
}
h2 {
font-size: 1.75em;
font-weight: 400;
}
h3 {
font-size: 1.5em;
font-weight: 300;
}
html {
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
footer,
header,
nav,
section {
display: block;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
line-height: 1em;
}
figcaption,
figure,
main {
display: block;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
pre {
font-family: monospace, monospace;
font-size: 1em;
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:active,
a:hover {
outline-width: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
b,
strong {
font-weight: inherit;
font-weight: bolder;
}
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
dfn {
font-style: italic;
}
mark {
background-color: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 60%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.55em;
background: #151d26;
color: #151d26;
border-radius: 2px;
padding: 0 2px 0 2px;
margin: 0 2px 0 0;
}
audio,
video {
display: inline-block;
}
audio:not([controls]) {
display: none;
height: 0;
}
img {
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button, html [type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
border-style: none;
padding: 0;
}
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
progress {
display: inline-block;
vertical-align: baseline;
}
textarea {
overflow: auto;
}
[type=checkbox],
[type=radio] {
box-sizing: border-box;
padding: 0;
}
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
height: auto;
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
details,
menu {
display: block;
}
summary {
display: list-item;
}
canvas {
display: inline-block;
}
template {
display: none;
}
[hidden] {
display: none;
}
form {
display: inline-block;
}
form a {
color: #151d26;
}
form p {
background: #e8c33e;
color: #151d26;
padding: 5px;
display: block;
border-radius: 5px;
text-align: left;
}
input[type=email], input[type=password], input[type=text] {
border: 0;
border-radius: 5px;
padding: 5px;
margin: 10px 5px 0 0;
font: 18px Helvetica, Arial, sans-serif;
display: inline-block;
background: #151d26;
color: #e8c33e;
}
textarea {
border: 0;
border-radius: 3px;
color: #ebe5d4;
font: 15px Helvetica, Arial, sans-serif;
background: #151d26;
}
button, input[type=submit] {
background: #7ED07E;
color: #151d26;
font: 20px Helvetica, Arial, sans-serif;
border-radius: 5px;
position: relative;
cursor: pointer;
border: 0;
padding: 10px 0 5px 0;
transition: all 0.3s linear;
}
select {
font: 14px Helvetica, Arial, sans-serif;
border: 1px solid #FC6399;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
color: #151d26;
}
::-webkit-input-placeholder {
font: 25px Helvetica, Arial, sans-serif;
color: #ebe5d4;
}
:-moz-placeholder {
/* Firefox 18- */
font: 25px Helvetica, Arial, sans-serif;
color: #ebe5d4;
}
::-moz-placeholder {
/* Firefox 19+ */
font: 15px Helvetica, Arial, sans-serif;
color: #ebe5d4;
}
:-ms-input-placeholder {
font: 25px Helvetica, Arial, sans-serif;
color: #ebe5d4;
}
html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
font: 400 1.2em/1.4em Helvetica, Arial, sans-serif;
}
html body {
background: #ebe5d4;
margin: 0;
padding: 0;
perspective: 1px;
transform-style: preserve-3d;
height: 100%;
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
}
html body a {
color: #151d26;
text-decoration: none;
border-bottom: 1px solid #7ED07E;
}
html body a:hover {
border-bottom: 1px solid #FC6399;
}
html body code {
background: #32302f;
color: #7ED07E;
border-radius: 3px;
padding: 3px;
}
html body pre {
background: #32302f;
color: #7ED07E;
border-radius: 3px;
padding: 3px;
}
html body code {
color: #FC6399;
background: none;
}
html body svg.icons {
width: 25px;
fill: #ebe5d4;
}
html body header {
background: #151d26;
height: 90%;
width: 100%;
border-top: #ebe5d4 3px solid;
}
html body header #media {
width: 100%;
height: 90%;
position: absolute;
}
html body header #media .slide {
transition: all 0.7s linear;
width: 100%;
height: 100%;
position: absolute;
}
html body header #media .hide {
opacity: 0;
}
html body header #media .show {
opacity: 1;
}
html body header #media video {
width: 100%;
height: 100%;
object-fit: cover;
}
html body header nav {
width: 97%;
margin: 10px auto;
z-index: 1000;
position: relative;
color: #151d26;
}
html body header nav .left, html body header nav .right {
width: 50%;
display: inline-block;
vertical-align: top;
}
html body header nav .left a.logo-link {
border-bottom: none;
margin: 0 0 20px 0;
display: block;
}
html body header nav .left a.logo-link #logo {
width: 50px;
border-bottom: none;
}
html body header nav .right {
text-align: right;
}
html body header nav .right a.menu-link {
background: #FC6399;
margin-bottom: 4px;
padding: 3px;
border-radius: 2px;
display: inline-block;
font-size: 0.8em;
border-bottom: none;
}
html body header nav .right a.menu-link:hover {
background: #FC6399;
}
html body .container {
z-index: 2;
background: #ebe5d4;
line-height: 30px;
font-weight: lighter;
width: 100%;
color: #32302f;
}
html body .container article {
position: relative;
width: 80%;
height: 80%;
max-width: 840px;
background: #ebe5d4;
vertical-align: top;
color: #32302f;
margin: 0 auto;
}
html body .container article .index, html body .container article .page {
padding: 0 0 15px 0;
}
html body .container article .index img, html body .container article .page img {
display: block;
width: 100%;
}
html body .container article .index h1, html body .container article .index h2, html body .container article .page h1, html body .container article .page h2 {
color: #151d26;
}
html body .container article .index p, html body .container article .page p {
font: 300 1.25em/1.6em Helvetica, Arial, sans-serif;
}
html body .container article .index .page_files .page_doc a, html body .container article .page .page_files .page_doc a {
background: #32302f;
border-radius: 3px;
color: #ebe5d4;
padding: 3px;
margin: 0 5px 0 0;
}
html body .container article .index .meta, html body .container article .page .meta {
font: 500 0.8em/1.3em Helvetica, Arial, sans-serif;
padding: 5px 0 0 0;
border-top: 1px solid #151d26;
background: #ebe5d4;
}
html body .container article .index .meta a, html body .container article .page .meta a {
font-size: 0.8em;
font-weight: 400;
}
html body .container article .index .archive-item, html body .container article .page .archive-item {
padding: 15px 0 20px 0;
}
html body .container article .index .archive-item span.year, html body .container article .page .archive-item span.year {
font-size: 1.5em;
font-weight: 500;
padding: 5px;
display: block;
color: #151d26;
}
html body .container article .index .archive-item .archive-month, html body .container article .page .archive-item .archive-month {
display: inline-block;
vertical-align: top;
width: 30%;
padding: 5px;
}
html body .container article .index .archive-item .archive-month span.month, html body .container article .page .archive-item .archive-month span.month {
color: #FC6399;
font-size: 1.5em;
font-weight: 300;
padding: 5px;
display: block;
}
html body .container section {
padding: 0 0 20px 0;
background: #151d26;
}
html body .container section a {
color: #ebe5d4;
}
html body .container section .index-lists, html body .container section .page-title {
max-width: 840px;
width: 80%;
margin: 0 auto;
padding: 20px 0 0 0;
}
html body .container section .index-lists span, html body .container section .page-title span {
font-size: 2em;
color: #FC6399;
font-weight: 400;
width: 80%;
margin: 0 auto;
padding: 20px 0 0 0;
}
html body .container section .index-lists .recent, html body .container section .index-lists .featured, html body .container section .page-title .recent, html body .container section .page-title .featured {
display: inline-block;
width: 50%;
vertical-align: top;
}
html body .container section .index-lists label, html body .container section .page-title label {
background: #32302f;
color: #ebe5d4;
font-size: 1.5em;
line-height: 1.3;
}
html body footer {
background: #ebe5d4;
padding: 10px;
color: #151d26;
font-size: 0.8em;
font-weight: 600;
height: 100px;
}
html body footer .inner {
margin: 20px auto;
width: 80%;
max-width: 840px;
}
html body footer .inner a {
color: #FC6399;
}
html body header nav {
width: 98%;
}
html body header span {
font-size: 2.5em;
}
html body header .container article .index .archive-item .archive-month, html body header .container article .page .archive-item .archive-month {
width: 45%;
}
html body header nav {
width: 96%;
}
html body header .container article .index, html body header .container article .page {
margin: 0;
}
html body header .container article .index p, html body header .container article .page p {
font: 300 1em/1.6em Helvetica, Arial, sans-serif;
}
html body header .container section .index-lists .recent, html body header .container section .index-lists .featured {
width: 100% !important;
}
html body header nav {
width: 95%;
}
html body .container article .index, html body .container article .page {
margin: 0;
}
html body .container article .index p, html body .container article .page p {
font: 300 0.9em/1.7em Helvetica, Arial, sans-serif;
}
html body .container article .index .archive-item .archive-month, html body .container article .page .archive-item .archive-month {
width: 95%;
}
/*# sourceMappingURL=base.css.map */

View file

@ -1 +0,0 @@
{"version":3,"sourceRoot":"","sources":["../../../styles/_typography.sass","../../../styles/_normalize.sass","../../../styles/_colors.sass","../../../styles/_forms.sass","../../../styles/_structure.sass"],"names":[],"mappings":"AAGA;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AChBJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAMI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AACJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA,YCnFM;EDoFN,OCpFM;EDqFN;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAGA;EACI;EACA;;;AAER;EACI;;;AAGA;EACI;;;AAER;AAAA;AAAA;AAAA;AAAA;EAKI;EACA;EACA;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;EAEI;;;AAEJ;AAAA;AAAA;EAGI;;;AAEJ;AAAA;AAAA;AAAA;EAII;EACA;;;AAEJ;AAAA;AAAA;AAAA;EAII;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;EACA;;;AAEJ;AAAA;EAEI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AEpMJ;EACI;;AACA;EACI,ODHE;;ACIN;EACI,YDHI;ECIJ,ODNE;ECOF;EACA;EACA;EACA;;;AAER;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YDnBM;ECoBN,ODlBQ;;;ACoBZ;EACI;EACA;EACA,ODrBK;ECsBL;EACA,YD3BM;;;AC6BV;EACI,YD3BS;EC4BT,OD/BM;ECgCN;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,OD9CM;;;ACgDV;EACI;EACA,OD9CK;;;ACgDT;AACI;EACA;EACA,ODnDK;;;ACqDT;AACI;EACA;EACA,ODxDK;;;AC0DT;EACI;EACA,OD5DK;;;AEJT;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YFLK;EEML;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,OFpBI;EEqBJ;EACA;;AAEA;EACE;;AAEJ;EACE,YFvBG;EEwBH,OF1BO;EE2BP;EACA;;AAEF;EACE,YF7BG;EE8BH,OFhCO;EEiCP;EACA;;AACF;EACE,OFtCO;EEuCP;;AAEF;EACE;EACA,MFxCG;;AE0CL;EACE,YF/CI;EEgDJ;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACF;EACE;;AACF;EACE;;AACF;EACE;EACA;EACA;;AACJ;EACE;EACA;EACA;EACA;EACA,OFzEE;;AE0EF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;EACA;;AACN;EACE;;AACA;EACE,YFxFC;EEyFD;EACA;EACA;EACA;EACA;EACA;;AACA;EACE,YFhGD;;AEkGT;EACE;EACA,YFjGG;EEkGH;EACA;EACA;EAEA,OFrGG;;AEsGH;EACE;EACA;EACA;EACA;EAEA,YF7GC;EE8GD;EACA,OF9GC;EE+GD;;AAGA;EACE;;AACA;EACE;EACA;;AACF;EACE,OF7HF;;AE8HA;EACE;;AAIE;EACE,YF/HP;EEgIO;EACA,OFlIP;EEmIO;EACA;;AACN;EACE;EACA;EACA;EACA,YFzIH;;AE0IG;EACE;EACA;;AAEJ;EACE;;AACA;EACE;EACA;EACA;EACA;EACA,OFzJJ;;AE0JE;EACE;EACA;EACA;EACA;;AACA;EACE,OF/JH;EEgKG;EACA;EACA;EACA;;AACV;EACE;EACA,YFvKE;;AEwKF;EACE,OFrKD;;AEsKD;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,OFjLC;EEkLD;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;;AACF;EACE,YFvLH;EEwLG,OFzLH;EE0LG;EACA;;AAER;EACE,YF9LG;EE+LH;EACA,OFpMI;EEqMJ;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE,OF5MG;;AEkNP;EACE;;AACF;EACE;;AAKM;EACE;;AAIV;EACE;;AAGE;EACE;;AACA;EACE;;AAGF;EACE;;AAIR;EACE;;AAGA;EACE;;AACA;EACE;;AAEA;EACE","file":"base.css"}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by Pixelmator Pro 3.3.8 -->
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path id="Path" fill="none" stroke="none" d="M 0 0 L 24 0 L 24 24 L 0 24 Z"/>
<path id="path1" fill="none" stroke="#f3ebd2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 18 6 L 6 18"/>
<path id="path2" fill="none" stroke="#f3ebd2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 6 6 L 18 18"/>
</svg>

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by Pixelmator Pro 3.5.8 -->
<svg width="20" height="16" viewBox="0 0 20 16" xmlns="http://www.w3.org/2000/svg">
<path id="path1-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 2 L 18 2"/>
<path id="path2-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 8 L 18 8"/>
<path id="path3-copy" fill="none" stroke="#1d3040" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 2 14 L 18 14"/>
</svg>

After

Width:  |  Height:  |  Size: 589 B

View file

@ -0,0 +1,35 @@
export default class Base {
//--------------------------
// constructor
//--------------------------
constructor() {
this.currentSlide = 0;
this.slides = document.querySelectorAll('.slide');
//alert('FRESH');
document.getElementById('menu-open').addEventListener('click', e => {
document.getElementById('menu').style.opacity = '100%';
document.getElementById('menu').style.visibility = 'visible';
});
document.getElementById('menu-close').addEventListener('click', e => {
document.getElementById('menu').style.opacity = '0';
document.getElementById('menu').style.visibility = 'hidden';
});
this.start();
}
start() {
if (this.slides.length > 1) {
this.slideInterval = setInterval(() => {
this.slides[this.currentSlide].className = 'hide slide';
this.currentSlide = (this.currentSlide + 1) % this.slides.length;
this.slides[this.currentSlide].className = 'show slide';
}, 3000);
}
}
//--------------------------
// methods
//--------------------------
//--------------------------
// event handlers
//--------------------------
}

View file

@ -0,0 +1,9 @@
import Base from "./Base.js";
document.addEventListener(
"DOMContentLoaded",
function () {
var base = new Base();
},
false
);