work on main design & layout

This commit is contained in:
bkfox 2024-01-26 21:55:43 +01:00
parent 0adcacf375
commit 25ceacdff9
25 changed files with 713 additions and 532 deletions

View File

@ -1,5 +1,6 @@
import datetime
import logging
import operator
from collections import deque
from django.db import models
@ -163,7 +164,7 @@ class Log(Renderable, models.Model):
object_list += [cls(obj) for obj in items]
@classmethod
def merge_diffusions(cls, logs, diffs, count=None, diff_count=None, log_slice=None):
def merge_diffusions(cls, logs, diffs, count=None, diff_count=None, log_slice=None, group_logs=False):
"""Merge logs and diffusions together.
`logs` can either be a queryset or a list ordered by `Log.date`.
@ -178,7 +179,7 @@ class Log(Renderable, models.Model):
while True:
if not len(diffs):
object_list += logs
cls._append_logs(object_list, logs, len(logs), slice=log_slice, group=group_logs)
break
if not len(logs):
@ -188,16 +189,8 @@ class Log(Renderable, models.Model):
diff = diffs.popleft()
# - takes all logs after diff start
index = next(
(i for i, v in enumerate(logs) if v.date <= diff.end),
len(logs),
)
if index is not None and index > 0:
if log_slice:
object_list += logs[: min(log_slice, index)]
else:
object_list += logs[:index]
logs = logs[index:]
index = cls._next_index(logs, diff.end, len(logs), pred=operator.le)
cls._append_logs(object_list, logs, index, slice=log_slice, group=group_logs)
if len(logs):
# FIXME
@ -206,10 +199,7 @@ class Log(Renderable, models.Model):
# object_list.append(logs[0])
# - skips logs while diff is running
index = next(
(i for i, v in enumerate(logs) if v.date < diff.start),
len(logs),
)
index = cls._next_index(logs, diff.start, len(logs))
if index is not None and index > 0:
logs = logs[index:]
@ -218,6 +208,25 @@ class Log(Renderable, models.Model):
return object_list if count is None else object_list[:count]
@staticmethod
def _next_index(items, date, default, pred=operator.lt):
iter = (i for i, v in enumerate(items) if pred(v.date, date))
return next(iter, default)
@staticmethod
def _append_logs(object_list, logs, count, slice=None, group=False):
if slice:
count = min(slice, count)
logs = logs[:count]
if not logs:
return object_list
if group:
object_list.append(logs)
else:
object_list += logs
return object_list
def print(self):
r = []
if self.diffusion:

View File

@ -181,7 +181,7 @@ class BasePage(Renderable, models.Model):
headline = headline.split("\n")[:3]
headline[-1] += suffix
return mark_safe("<br>".join(headline))
return mark_safe(" ".join(headline))
@classmethod
def get_init_kwargs_from(cls, page, **kwargs):

View File

@ -8,47 +8,55 @@
--subtitle-1-sz: 1.6rem;
--subtitle-2-sz: 1.4rem;
--subtitle-3-sz: 1.2rem;
--heading-title-bg-color: rgba(255, 255, 0, 1);
--heading-bg-color: var(--highlight-color);
--heading-bg-highlight-color: var(--highlight-color-2);
--heading-font-family: default;
--heading-bg: var(--hg-color);
--heading-fg: var(--text-color);
--heading-hg-fg: var(--text-color);
--heading-hg-bg: var(--hg-color-2);
--preview-bg: var(--body-bg);
--preview-title-sz: 1.4rem;
--preview-subtitle-sz: 1rem;
--preview-cover-size: 14rem;
--preview-cover-small-size: 10rem;
--preview-cover-tiny-size: 4rem;
--preview-wide-content-sz: 1.6rem;
--preview-heading-bg-color: var(--hg-color);
--header-height: var(--preview-cover-size);
--a-carousel-p: 1.4rem;
--a-carousel-ml: calc(1.2rem - 0.5rem);
--a-carousel-gap: 1.2rem;
--a-carousel-nav-x: -0.6em;
--a-carousel-bg: var(--hg-color-alpha);
--a-progress-bg: transparent;
--a-progress-bar-bg: var(--highlight-color-2);
--a-progress-bar-color: var(--highlight-color);
--a-progress-bar-bg: var(--hg-color-2);
--a-progress-bar-color: var(--hg-color);
--a-progress-bar-pd: 0.4rem;
--a-playlist-header-bg: var(--highlight-color-2-alpha);
--a-playlist-header-fg: var(--highlight-color);
--a-playlist-header-bg: var(--hg-color-2-alpha);
--a-playlist-header-fg: var(--text-color);
--a-playlist-title-sz: 1rem;
--a-playlist-title-pd: 0.6rem;
--a-playlist-item-border: 1px var(--highlight-color-2) solid;
--a-sound-bg: var(--highlight-color-alpha);
--a-sound-hv-bg: var(--highlight-color);
--a-sound-playing-fg: var(--highlight-color-alpha);
--a-sound-hv-fg: var(--highlight-color-2);
--a-playlist-item-border: 1px var(--hg-color-2) solid;
--a-sound-bg: var(--hg-color-alpha);
--a-sound-hv-bg: var(--hg-color);
--a-sound-playing-fg: var(--hg-color-alpha);
--a-sound-hv-fg: var(--text-color);
--a-sound-text-sz: 1rem;
--a-player-url-fg: var(--highlight-color-2);
--a-player-panel-bg: var(--highlight-color);
--a-player-url-fg: var(--text-color);
--a-player-panel-bg: var(--hg-color);
--a-player-bar-height: var(--nav-primary-height);
--a-player-bar-bg: var(--highlight-color);
--a-player-bar-bg: var(--hg-color);
--a-player-bar-title-alone-sz: 1.4rem;
--button-fg: var(--highlight-color-2);
--button-bg: var(--highlight-color);
--button-sec-bg: var(--highlight-color-alpha);
--a-player-bar-button-fg: var(--button-fg);
--a-player-bar-button-fg: var(--button-bg);
--a-player-bar-button-hg-fg: var(--button-hg-fg);
--a-player-bar-button-hg-bg: var(--button-hg-bg);
--button-fg: var(--text-color);
--button-bg: var(--hg-color);
--button-sec-bg: var(--hg-color-alpha);
--button-hg-fg: var(--text-color);
--button-hg-bg: var(--highlight-color);
--button-active-fg: var(--highlight-color);
--button-active-bg: var(--highlight-color-2);
--button-hg-bg: var(--hg-color-2);
--button-active-fg: var(--text-color);
--button-active-bg: var(--hg-color-2);
}
@media screen and (max-width: 1380px) {
@ -82,26 +90,27 @@
font-size: var(--subtitle-3-sz);
}
.headings a, a.heading, a.subtitle {
text-decoration: none !important;
}
.heading {
display: inline-block;
}
.heading:not(:empty) {
background-color: var(--heading-bg-color);
color: var(--heading-fg);
padding: 0.4rem;
margin-top: 0em !important;
vertical-align: top;
}
.heading:not(:empty).highlight, .heading:not(:empty).active, .preview.active .heading:not(:empty) {
background-color: var(--heading-bg-highlight-color);
color: var(--highlight-color);
}
.heading.title {
background-color: var(--heading-title-bg-color);
color: var(--heading-hg-fg);
}
.preview {
position: relative;
background-size: cover;
background-color: var(--preview-bg) !important;
}
.preview.preview-item {
width: 100%;
@ -139,14 +148,13 @@
font-size: 1rem;
}
@media screen and (max-width: 600px) {
@media screen and (max-width: 400px) {
.preview .content {
display: none;
}
}
.preview-cover {
background-size: cover;
background-color: transparent !important;
height: var(--preview-cover-size);
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
@ -184,17 +192,20 @@
}
.list-item {
display: flex;
flex-direction: column;
width: 100%;
}
.list-item:not(:first-child) {
margin-top: 0.6rem;
padding: 0.6rem;
}
.list-item .headings {
display: flex;
flex-direction: row;
padding-top: 0em;
padding: 0em;
margin-bottom: 0.4rem !important;
}
.list-item .headings .heading {
padding: 0rem;
}
.list-item .headings .title {
flex-grow: 1;
}
@ -202,40 +213,39 @@
font-size: var(--preview-title-sz);
text-align: right;
}
.list-item .media {
flex-grow: 1;
}
.list-item .media-content {
display: flex;
flex-direction: column;
margin-bottom: unset;
}
.list-item:not(.no-cover) .list-item .media-content {
min-height: var(--preview-cover-small-size);
}
.list-item .media-content .content {
flex-grow: 1;
margin-bottom: auto;
}
.list-item .media-content .actions {
flex-grow: unset;
.list-item .actions {
text-align: right;
margin-top: auto;
margin-top: 0.6rem;
}
.preview-wide {
height: var(--preview-cover-size);
display: flex;
@media screen and (max-width: 600px) {
.list-item .headings {
flex-direction: column;
}
.list-item .headings .heading {
display: inline;
text-align: left;
}
.list-item .headings .subtitle {
color: unset !important;
background: none !important;
}
}
.preview-wide .headings {
height: var(--preview-cover-size);
}
.preview-wide:not(.header) .headings {
.list-item.wide .preview-cover {
box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2);
}
.preview-wide .headings {
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
flex-grow: 0;
margin-right: 1.2rem;
}
.preview-wide .content {
.list-item.wide .content {
font-size: var(--preview-wide-content-sz);
flex-grow: 1;
}
@ -256,6 +266,9 @@
.preview-card:not(.header) {
box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2);
}
.preview-card .heading {
background-color: var(--preview-heading-bg-color);
}
.preview-card .title {
max-height: calc(var(--preview-cover-size) / 2);
overflow: hidden;
@ -288,10 +301,20 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
gap: 1.2rem;
}
.a-carousel {
margin-left: calc(0rem - var(--a-carousel-ml));
.list-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.2rem;
}
@media screen and (max-width: 800px) {
.list-grid {
grid-template-columns: 1fr;
}
}
.a-carousel .a-carousel-viewport {
background-color: var(--a-carousel-bg);
margin-bottom: var(--a-carousel-p);
padding: var(--a-carousel-p) 0;
padding-left: var(--a-carousel-ml);
}
@ -305,18 +328,8 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
flex-shrink: 0;
}
.a-carousel-button-container button, .a-carousel-button-container .button {
z-index: 1000;
position: absolute;
display: flex;
flex-direction: column;
top: 50%;
}
.a-carousel-button-container button.prev, .a-carousel-button-container .button.prev {
left: var(--a-carousel-nav-x);
}
.a-carousel-button-container button.next, .a-carousel-button-container .button.next {
right: var(--a-carousel-nav-x);
.a-carousel-bullets-container {
padding-left: var(--a-carousel-ml);
}
.a-progress {
@ -483,8 +496,8 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
transition: background-color 0.5s;
}
.a-player-bar .button.open {
background-color: var(--highlight-color-2-alpha);
color: var(--highlight-color);
background-color: var(--a-player-bar-button-hg-bg);
color: var(--a-player-bar-button-hg-fg);
}
.a-player-bar-content {
@ -2711,50 +2724,56 @@ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-i
min-height: calc(100vh - 3.25rem);
}
#player .button, #player a.button, #player button.button, #player .nav-urls a, .ax .button, .ax a.button, .ax button.button, .ax .nav-urls a {
#player .button, #player a.button, #player button.button, .ax .button, .ax a.button, .ax button.button {
font-size: 1rem;
display: inline-block;
padding: 0.4rem;
border: 1px var(--highlight-color-2-alpha) solid;
border: none;
justify-content: center;
text-align: center;
cursor: pointer;
text-decoration: none;
color: var(--button-fg);
background-color: var(--button-bg);
}
#player .button.secondary, #player a.button.secondary, #player button.button.secondary, #player .nav-urls a.secondary, .ax .button.secondary, .ax a.button.secondary, .ax button.button.secondary, .ax .nav-urls a.secondary {
#player .button.secondary, #player a.button.secondary, #player button.button.secondary, .ax .button.secondary, .ax a.button.secondary, .ax button.button.secondary {
background-color: var(--button-sec-bg);
}
#player .button .icon, #player a.button .icon, #player button.button .icon, #player .nav-urls a .icon, .ax .button .icon, .ax a.button .icon, .ax button.button .icon, .ax .nav-urls a .icon {
#player .button .label, #player .button label, #player a.button .label, #player a.button label, #player button.button .label, #player button.button label, .ax .button .label, .ax .button label, .ax a.button .label, .ax a.button label, .ax button.button .label, .ax button.button label {
cursor: pointer;
}
#player .button .icon, #player a.button .icon, #player button.button .icon, .ax .button .icon, .ax a.button .icon, .ax button.button .icon {
vertical-align: middle;
}
#player .button .icon:not(:only-child):first-child, #player a.button .icon:not(:only-child):first-child, #player button.button .icon:not(:only-child):first-child, #player .nav-urls a .icon:not(:only-child):first-child, .ax .button .icon:not(:only-child):first-child, .ax a.button .icon:not(:only-child):first-child, .ax button.button .icon:not(:only-child):first-child, .ax .nav-urls a .icon:not(:only-child):first-child {
#player .button .icon:not(:only-child):first-child, #player a.button .icon:not(:only-child):first-child, #player button.button .icon:not(:only-child):first-child, .ax .button .icon:not(:only-child):first-child, .ax a.button .icon:not(:only-child):first-child, .ax button.button .icon:not(:only-child):first-child {
margin-right: 0.6rem;
}
#player .button .icon:not(:only-child):last-child, #player a.button .icon:not(:only-child):last-child, #player button.button .icon:not(:only-child):last-child, #player .nav-urls a .icon:not(:only-child):last-child, .ax .button .icon:not(:only-child):last-child, .ax a.button .icon:not(:only-child):last-child, .ax button.button .icon:not(:only-child):last-child, .ax .nav-urls a .icon:not(:only-child):last-child {
#player .button .icon:not(:only-child):last-child, #player a.button .icon:not(:only-child):last-child, #player button.button .icon:not(:only-child):last-child, .ax .button .icon:not(:only-child):last-child, .ax a.button .icon:not(:only-child):last-child, .ax button.button .icon:not(:only-child):last-child {
margin-left: 0.6rem;
}
#player .button:hover, #player a.button:hover, #player button.button:hover, #player .nav-urls a:hover, .ax .button:hover, .ax a.button:hover, .ax button.button:hover, .ax .nav-urls a:hover {
#player .button:hover, #player a.button:hover, #player button.button:hover, .ax .button:hover, .ax a.button:hover, .ax button.button:hover {
color: var(--button-hg-fg);
background-color: var(--button-hg-bg);
opacity: 1 !important;
}
#player .button.active, #player a.button.active, #player button.button.active, #player .nav-urls a.active, .ax .button.active, .ax a.button.active, .ax button.button.active, .ax .nav-urls a.active {
border-color: var(--highlight-color-alpha);
#player .button.active, #player a.button.active, #player button.button.active, .ax .button.active, .ax a.button.active, .ax button.button.active {
color: var(--button-active-fg);
background-color: var(--button-active-bg);
}
#player .button.active:hover, #player a.button.active:hover, #player button.button.active:hover, #player .nav-urls a.active:hover, .ax .button.active:hover, .ax a.button.active:hover, .ax button.button.active:hover, .ax .nav-urls a.active:hover {
border-color: var(--highlight-color);
background-color: var(--highlight-color-2-alpha);
#player .button.active:hover, #player a.button.active:hover, #player button.button.active:hover, .ax .button.active:hover, .ax a.button.active:hover, .ax button.button.active:hover {
border-color: var(--hg-color);
background-color: var(--hg-color-2-alpha);
opacity: 1 !important;
}
#player .button:not([disabled]), #player .button:not(.disabled), #player a.button:not([disabled]), #player a.button:not(.disabled), #player button.button:not([disabled]), #player button.button:not(.disabled), #player .nav-urls a:not([disabled]), #player .nav-urls a:not(.disabled), .ax .button:not([disabled]), .ax .button:not(.disabled), .ax a.button:not([disabled]), .ax a.button:not(.disabled), .ax button.button:not([disabled]), .ax button.button:not(.disabled), .ax .nav-urls a:not([disabled]), .ax .nav-urls a:not(.disabled) {
#player .button:not([disabled]), #player .button:not(.disabled), #player a.button:not([disabled]), #player a.button:not(.disabled), #player button.button:not([disabled]), #player button.button:not(.disabled), .ax .button:not([disabled]), .ax .button:not(.disabled), .ax a.button:not([disabled]), .ax a.button:not(.disabled), .ax button.button:not([disabled]), .ax button.button:not(.disabled) {
cursor: pointer;
}
#player .button[disabled], #player .button.disabled, #player a.button[disabled], #player a.button.disabled, #player button.button[disabled], #player button.button.disabled, #player .nav-urls a[disabled], #player .nav-urls a.disabled, .ax .button[disabled], .ax .button.disabled, .ax a.button[disabled], .ax a.button.disabled, .ax button.button[disabled], .ax button.button.disabled, .ax .nav-urls a[disabled], .ax .nav-urls a.disabled {
background-color: var(--highlight-color-grey);
color: var(--highlight-color-2);
border-color: var(--highlight-color-2-alpha);
#player .button[disabled], #player .button.disabled, #player a.button[disabled], #player a.button.disabled, #player button.button[disabled], #player button.button.disabled, .ax .button[disabled], .ax .button.disabled, .ax a.button[disabled], .ax a.button.disabled, .ax button.button[disabled], .ax button.button.disabled {
background-color: var(--hg-color-grey);
color: var(--hg-color-2);
border-color: var(--hg-color-2-alpha);
}
#player .button .dropdown-trigger, #player a.button .dropdown-trigger, #player button.button .dropdown-trigger, #player .nav-urls a .dropdown-trigger, .ax .button .dropdown-trigger, .ax a.button .dropdown-trigger, .ax button.button .dropdown-trigger, .ax .nav-urls a .dropdown-trigger {
#player .button .dropdown-trigger, #player a.button .dropdown-trigger, #player button.button .dropdown-trigger, .ax .button .dropdown-trigger, .ax a.button .dropdown-trigger, .ax button.button .dropdown-trigger {
border-radius: 1.5em;
}
#player .button-group .button, #player .nav .button, .ax .button-group .button, .ax .nav .button {

View File

@ -18,7 +18,20 @@
.a-carousel-container > *[data-v-b79f173e] {
flex-shrink: 0;
}
.a-carousel-bullets-container[data-v-b79f173e] {
justify-content: center;
flex-grow: 1;
}
.a-carousel-bullets-container .bullet[data-v-b79f173e] {
cursor: pointer;
}
.a-carousel-bullets-container .bullet-right[data-v-b79f173e] {
margin-left: auto;
}
.a-carousel-bullets-container[data-v-b79f173e] {
display: flex;
flex-direction: row;
}
/*!**************************************************************************************************************************************************************************************************************************************!*\
!*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-24.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-24.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-24.use[3]!./src/assets/common.scss ***!
@ -6928,11 +6941,11 @@ a.tag:hover {
animation: 1s ease-in-out 1s infinite alternate blink;
}
.highlight-color {
.hg-color {
color: var(--highlight-color);
}
.highlight-color-2 {
.hg-color-2 {
color: var(--highlight-color-2);
}
@ -6959,28 +6972,36 @@ input.half-field:not(:active):not(:hover) {
:root {
--body-bg: #fff;
--text-color: black;
--main-color: #EFCA08;
--main-color-light: #EFCA08B3;
--main-color-dark: #F49F0A;
--secondary-color: #00A6A6;
--secondary-color-light: #00A6A6B3;
--secondary-color-dark: #057ba8;
--disabled-color: #aaa;
--disabled-bg: #eee;
--highlight-color: rgba(255, 255, 0, 1);
--highlight-color-alpha: rgba(255, 255, 0, 0.7);
--highlight-color-grey: rgba(230, 230, 60, 1);
--highlight-color-2: rgb(0, 0, 254);
--highlight-color-2-alpha: rgb(0, 0, 254, 0.7);
--highlight-color-2-grey: rgba(50, 200, 200, 1);
--link-fg: #00A6A6;
--link-hv-fg: var(--text-color);
--hg-color: #EFCA08;
--hg-color-alpha: #EFCA08B3;
--hg-color-grey: rgba(230, 230, 60, 1);
--hg-color-2: #F49F0A;
--hg-color-2-alpha: #F49F0AB3;
--hg-color-2-grey: rgba(50, 200, 200, 1);
--nav-primary-height: 3rem;
--nav-secondary-height: 2.5rem;
--nav-bg: var(--highlight-color);
--nav-fg: var(--highlight-color-2);
--nav-active-bg: var(--highlight-color-2);
--nav-active-fg: var(--highlight-color);
--nav-bg: var(--main-color);
--nav-fg: var(--text-color);
--nav-active-bg: var(--main-color-dark);
--nav-active-fg: var(--text-color);
--nav-fs: 1rem;
--nav-2-fs: 0.8rem;
--button-fg: var(--text-color);
--button-bg: var(--highlight-color);
--button-hg-fg: var(--highlight-color-2);
--button-hg-bg: var(--highlight-color);
--button-active-fg: var(--highlight-color);
--button-active-bg: var(--highlight-color-2);
--button-bg: var(--hg-color);
--button-hg-fg: var(--hg-color-2);
--button-hg-bg: var(--hg-color);
--button-active-fg: var(--hg-color);
--button-active-bg: var(--hg-color-2);
}
body {

View File

@ -1211,7 +1211,7 @@
background-color: var(--vc-bg);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-tap-highlight-color: transparent;
-webkit-tap-hg-color: transparent;
}
.vc-container,

View File

@ -8,47 +8,55 @@
--subtitle-1-sz: 1.6rem;
--subtitle-2-sz: 1.4rem;
--subtitle-3-sz: 1.2rem;
--heading-title-bg-color: rgba(255, 255, 0, 1);
--heading-bg-color: var(--highlight-color);
--heading-bg-highlight-color: var(--highlight-color-2);
--heading-font-family: default;
--heading-bg: var(--hg-color);
--heading-fg: var(--text-color);
--heading-hg-fg: var(--text-color);
--heading-hg-bg: var(--hg-color-2);
--preview-bg: var(--body-bg);
--preview-title-sz: 1.4rem;
--preview-subtitle-sz: 1rem;
--preview-cover-size: 14rem;
--preview-cover-small-size: 10rem;
--preview-cover-tiny-size: 4rem;
--preview-wide-content-sz: 1.6rem;
--preview-heading-bg-color: var(--hg-color);
--header-height: var(--preview-cover-size);
--a-carousel-p: 1.4rem;
--a-carousel-ml: calc(1.2rem - 0.5rem);
--a-carousel-gap: 1.2rem;
--a-carousel-nav-x: -0.6em;
--a-carousel-bg: var(--hg-color-alpha);
--a-progress-bg: transparent;
--a-progress-bar-bg: var(--highlight-color-2);
--a-progress-bar-color: var(--highlight-color);
--a-progress-bar-bg: var(--hg-color-2);
--a-progress-bar-color: var(--hg-color);
--a-progress-bar-pd: 0.4rem;
--a-playlist-header-bg: var(--highlight-color-2-alpha);
--a-playlist-header-fg: var(--highlight-color);
--a-playlist-header-bg: var(--hg-color-2-alpha);
--a-playlist-header-fg: var(--text-color);
--a-playlist-title-sz: 1rem;
--a-playlist-title-pd: 0.6rem;
--a-playlist-item-border: 1px var(--highlight-color-2) solid;
--a-sound-bg: var(--highlight-color-alpha);
--a-sound-hv-bg: var(--highlight-color);
--a-sound-playing-fg: var(--highlight-color-alpha);
--a-sound-hv-fg: var(--highlight-color-2);
--a-playlist-item-border: 1px var(--hg-color-2) solid;
--a-sound-bg: var(--hg-color-alpha);
--a-sound-hv-bg: var(--hg-color);
--a-sound-playing-fg: var(--hg-color-alpha);
--a-sound-hv-fg: var(--text-color);
--a-sound-text-sz: 1rem;
--a-player-url-fg: var(--highlight-color-2);
--a-player-panel-bg: var(--highlight-color);
--a-player-url-fg: var(--text-color);
--a-player-panel-bg: var(--hg-color);
--a-player-bar-height: var(--nav-primary-height);
--a-player-bar-bg: var(--highlight-color);
--a-player-bar-bg: var(--hg-color);
--a-player-bar-title-alone-sz: 1.4rem;
--button-fg: var(--highlight-color-2);
--button-bg: var(--highlight-color);
--button-sec-bg: var(--highlight-color-alpha);
--a-player-bar-button-fg: var(--button-fg);
--a-player-bar-button-fg: var(--button-bg);
--a-player-bar-button-hg-fg: var(--button-hg-fg);
--a-player-bar-button-hg-bg: var(--button-hg-bg);
--button-fg: var(--text-color);
--button-bg: var(--hg-color);
--button-sec-bg: var(--hg-color-alpha);
--button-hg-fg: var(--text-color);
--button-hg-bg: var(--highlight-color);
--button-active-fg: var(--highlight-color);
--button-active-bg: var(--highlight-color-2);
--button-hg-bg: var(--hg-color-2);
--button-active-fg: var(--text-color);
--button-active-bg: var(--hg-color-2);
}
@media screen and (max-width: 1380px) {
@ -82,26 +90,27 @@
font-size: var(--subtitle-3-sz);
}
.headings a, a.heading, a.subtitle {
text-decoration: none !important;
}
.heading {
display: inline-block;
}
.heading:not(:empty) {
background-color: var(--heading-bg-color);
color: var(--heading-fg);
padding: 0.4rem;
margin-top: 0em !important;
vertical-align: top;
}
.heading:not(:empty).highlight, .heading:not(:empty).active, .preview.active .heading:not(:empty) {
background-color: var(--heading-bg-highlight-color);
color: var(--highlight-color);
}
.heading.title {
background-color: var(--heading-title-bg-color);
color: var(--heading-hg-fg);
}
.preview {
position: relative;
background-size: cover;
background-color: var(--preview-bg) !important;
}
.preview.preview-item {
width: 100%;
@ -139,14 +148,13 @@
font-size: 1rem;
}
@media screen and (max-width: 600px) {
@media screen and (max-width: 400px) {
.preview .content {
display: none;
}
}
.preview-cover {
background-size: cover;
background-color: transparent !important;
height: var(--preview-cover-size);
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
@ -184,17 +192,20 @@
}
.list-item {
display: flex;
flex-direction: column;
width: 100%;
}
.list-item:not(:first-child) {
margin-top: 0.6rem;
padding: 0.6rem;
}
.list-item .headings {
display: flex;
flex-direction: row;
padding-top: 0em;
padding: 0em;
margin-bottom: 0.4rem !important;
}
.list-item .headings .heading {
padding: 0rem;
}
.list-item .headings .title {
flex-grow: 1;
}
@ -202,40 +213,39 @@
font-size: var(--preview-title-sz);
text-align: right;
}
.list-item .media {
flex-grow: 1;
}
.list-item .media-content {
display: flex;
flex-direction: column;
margin-bottom: unset;
}
.list-item:not(.no-cover) .list-item .media-content {
min-height: var(--preview-cover-small-size);
}
.list-item .media-content .content {
flex-grow: 1;
margin-bottom: auto;
}
.list-item .media-content .actions {
flex-grow: unset;
.list-item .actions {
text-align: right;
margin-top: auto;
margin-top: 0.6rem;
}
.preview-wide {
height: var(--preview-cover-size);
display: flex;
@media screen and (max-width: 600px) {
.list-item .headings {
flex-direction: column;
}
.list-item .headings .heading {
display: inline;
text-align: left;
}
.list-item .headings .subtitle {
color: unset !important;
background: none !important;
}
}
.preview-wide .headings {
height: var(--preview-cover-size);
}
.preview-wide:not(.header) .headings {
.list-item.wide .preview-cover {
box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2);
}
.preview-wide .headings {
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
flex-grow: 0;
margin-right: 1.2rem;
}
.preview-wide .content {
.list-item.wide .content {
font-size: var(--preview-wide-content-sz);
flex-grow: 1;
}
@ -256,6 +266,9 @@
.preview-card:not(.header) {
box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2);
}
.preview-card .heading {
background-color: var(--preview-heading-bg-color);
}
.preview-card .title {
max-height: calc(var(--preview-cover-size) / 2);
overflow: hidden;
@ -288,10 +301,20 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
gap: 1.2rem;
}
.a-carousel {
margin-left: calc(0rem - var(--a-carousel-ml));
.list-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.2rem;
}
@media screen and (max-width: 800px) {
.list-grid {
grid-template-columns: 1fr;
}
}
.a-carousel .a-carousel-viewport {
background-color: var(--a-carousel-bg);
margin-bottom: var(--a-carousel-p);
padding: var(--a-carousel-p) 0;
padding-left: var(--a-carousel-ml);
}
@ -305,18 +328,8 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
flex-shrink: 0;
}
.a-carousel-button-container button, .a-carousel-button-container .button {
z-index: 1000;
position: absolute;
display: flex;
flex-direction: column;
top: 50%;
}
.a-carousel-button-container button.prev, .a-carousel-button-container .button.prev {
left: var(--a-carousel-nav-x);
}
.a-carousel-button-container button.next, .a-carousel-button-container .button.next {
right: var(--a-carousel-nav-x);
.a-carousel-bullets-container {
padding-left: var(--a-carousel-ml);
}
.a-progress {
@ -483,8 +496,8 @@ preview-header:not(.no-cover) .card-headings .heading, preview-header:not(.no-co
transition: background-color 0.5s;
}
.a-player-bar .button.open {
background-color: var(--highlight-color-2-alpha);
color: var(--highlight-color);
background-color: var(--a-player-bar-button-hg-bg);
color: var(--a-player-bar-button-hg-fg);
}
.a-player-bar-content {
@ -7276,20 +7289,19 @@ a.tag:hover {
padding-bottom: 5rem;
}
.page a {
color: var(--highlight-color-2);
text-decoration: none;
color: var(--link-fg);
text-decoration: underline;
}
.page a:hover {
color: var(--text-color);
color: var(--link-hv-fg);
}
.page section.container {
margin-top: 0.6rem;
}
.page section.container > .title {
margin-top: unset;
padding-top: unset !important;
font-size: 1.4rem;
clear: both;
margin-bottom: 1.2rem;
border-bottom: 1px solid black;
}
.page section.container:not(:last-child) {
margin-bottom: 0.6rem;
@ -7300,7 +7312,7 @@ a.tag:hover {
}
.vc-weekday-1, .vc-weekday-7 {
color: var(--highlight-color-2) !important;
color: var(--hg-color-2) !important;
}
.schedules {
@ -7318,50 +7330,56 @@ a.tag:hover {
margin-right: 0.6rem;
}
.button, a.button, button.button, .nav-urls a {
.button, a.button, button.button {
font-size: 1rem;
display: inline-block;
padding: 0.4rem;
border: 1px var(--highlight-color-2-alpha) solid;
border: none;
justify-content: center;
text-align: center;
cursor: pointer;
text-decoration: none;
color: var(--button-fg);
background-color: var(--button-bg);
}
.button.secondary, a.button.secondary, button.button.secondary, .nav-urls a.secondary {
.button.secondary, a.button.secondary, button.button.secondary {
background-color: var(--button-sec-bg);
}
.button .icon, a.button .icon, button.button .icon, .nav-urls a .icon {
.button .label, .button label, a.button .label, a.button label, button.button .label, button.button label {
cursor: pointer;
}
.button .icon, a.button .icon, button.button .icon {
vertical-align: middle;
}
.button .icon:not(:only-child):first-child, a.button .icon:not(:only-child):first-child, button.button .icon:not(:only-child):first-child, .nav-urls a .icon:not(:only-child):first-child {
.button .icon:not(:only-child):first-child, a.button .icon:not(:only-child):first-child, button.button .icon:not(:only-child):first-child {
margin-right: 0.6rem;
}
.button .icon:not(:only-child):last-child, a.button .icon:not(:only-child):last-child, button.button .icon:not(:only-child):last-child, .nav-urls a .icon:not(:only-child):last-child {
.button .icon:not(:only-child):last-child, a.button .icon:not(:only-child):last-child, button.button .icon:not(:only-child):last-child {
margin-left: 0.6rem;
}
.button:hover, a.button:hover, button.button:hover, .nav-urls a:hover {
.button:hover, a.button:hover, button.button:hover {
color: var(--button-hg-fg);
background-color: var(--button-hg-bg);
opacity: 1 !important;
}
.button.active, a.button.active, button.button.active, .nav-urls a.active {
border-color: var(--highlight-color-alpha);
.button.active, a.button.active, button.button.active {
color: var(--button-active-fg);
background-color: var(--button-active-bg);
}
.button.active:hover, a.button.active:hover, button.button.active:hover, .nav-urls a.active:hover {
border-color: var(--highlight-color);
background-color: var(--highlight-color-2-alpha);
.button.active:hover, a.button.active:hover, button.button.active:hover {
border-color: var(--hg-color);
background-color: var(--hg-color-2-alpha);
opacity: 1 !important;
}
.button:not([disabled]), .button:not(.disabled), a.button:not([disabled]), a.button:not(.disabled), button.button:not([disabled]), button.button:not(.disabled), .nav-urls a:not([disabled]), .nav-urls a:not(.disabled) {
.button:not([disabled]), .button:not(.disabled), a.button:not([disabled]), a.button:not(.disabled), button.button:not([disabled]), button.button:not(.disabled) {
cursor: pointer;
}
.button[disabled], .button.disabled, a.button[disabled], a.button.disabled, button.button[disabled], button.button.disabled, .nav-urls a[disabled], .nav-urls a.disabled {
background-color: var(--highlight-color-grey);
color: var(--highlight-color-2);
border-color: var(--highlight-color-2-alpha);
.button[disabled], .button.disabled, a.button[disabled], a.button.disabled, button.button[disabled], button.button.disabled {
background-color: var(--hg-color-grey);
color: var(--hg-color-2);
border-color: var(--hg-color-2-alpha);
}
.button .dropdown-trigger, a.button .dropdown-trigger, button.button .dropdown-trigger, .nav-urls a .dropdown-trigger {
.button .dropdown-trigger, a.button .dropdown-trigger, button.button .dropdown-trigger {
border-radius: 1.5em;
}
@ -7426,8 +7444,8 @@ a.tag:hover {
}
}
.navbar-item.active, .table tr.is-selected {
color: var(--highlight-color-2);
background-color: var(--highlight-color);
color: var(--hg-color-2);
background-color: var(--hg-color);
}
.title {
@ -7461,6 +7479,7 @@ a.tag:hover {
text-transform: uppercase;
}
.nav .nav-item a, .nav .nav-item .button {
color: var(--nav-fg);
display: block;
width: 100%;
}
@ -7518,6 +7537,7 @@ a.tag:hover {
.breadcrumbs {
text-align: right;
padding: 0.6rem 0rem;
font-size: 0.8rem;
padding-bottom: 0;
margin-bottom: 0;
}
@ -7548,7 +7568,7 @@ a.tag:hover {
flex-grow: 1;
}
.navs .nav + .nav {
flew-grow: 0 !important;
flex-grow: 0 !important;
}
.nav {
justify-content: space-between;
@ -7570,8 +7590,8 @@ a.tag:hover {
font-weight: 400;
}
.nav .nav-menu .nav-item:hover {
background-color: var(--highlight-color-2-alpha);
color: var(--highlight-color);
background-color: var(--hg-color-2-alpha);
color: var(--hg-color);
}
.nav .nav-menu:not(.active) {
display: none !important;
@ -7634,10 +7654,17 @@ nav li a, nav li .button {
.header-cover:not(:only-child) {
float: right;
position: relative;
z-index: 1000;
background-color: var(--body-bg);
height: var(--header-height);
max-width: calc(var(--header-height) * 2);
margin: 0 0 1.2rem 1.2rem;
}
.header-cover:not(:only-child) img {
width: 100%;
height: 100%;
}
.header-cover:only-child {
with: 100%;
@ -7650,6 +7677,19 @@ nav li a, nav li .button {
margin-bottom: 2rem;
}
.list-item.logs .track .icon {
color: var(--secondary-color-dark);
}
.list-item:nth-child(3n) {
padding: 0.6rem;
border-radius: 0.4rem;
border: 1px solid var(--main-color-dark) !important;
}
.list-item:nth-child(3n+1) {
border-radius: 0.4rem;
border: 1px solid var(--secondary-color-dark) !important;
}
body {
font-size: 1.4em;
}

View File

@ -35,7 +35,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mod
\*******************************************************************************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n setup() {\n return {\n viewport: (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null),\n container: (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null)\n };\n },\n data() {\n return {\n cards: [],\n index: 0,\n refresh_: 0\n };\n },\n props: {\n cardSelector: {\n type: String,\n default: ''\n },\n containerClass: {\n type: String,\n default: ''\n },\n buttonClass: {\n type: String,\n default: 'button'\n },\n leftButtonIcon: {\n type: String,\n default: \"fas fa-chevron-left\"\n },\n rightButtonIcon: {\n type: String,\n default: \"fas fa-chevron-right\"\n }\n },\n computed: {\n card() {\n return this.cards()[this.index];\n },\n showPrevButton() {\n return this.index > 0;\n },\n showNextButton() {\n if (!this.cards || this.cards.length <= 1) return false;\n let {\n count\n } = this.visibility;\n return this.index + count < this.cards.length;\n },\n visibility() {\n // force refresh on index\n [this.index, this.refresh_];\n if (!this.cards) return {\n min: -1,\n max: -1,\n count: 0\n };\n const vOff = this.offset(this.$refs.viewport);\n var [min, max] = [-1, -1];\n for (let at = 0; at < this.cards.length; at++) {\n const card = this.cards[at];\n const cOff = this.offset(card);\n const visible = vOff.min <= cOff.min && vOff.max >= cOff.max;\n if (visible) {\n if (min === -1) min = parseInt(at);\n max = parseInt(at);\n }\n }\n if (max !== -1) max++;\n return {\n min,\n max,\n count: min !== -1 ? max - min : 0\n };\n }\n },\n methods: {\n offset(el, parent = null) {\n const rect = el.getBoundingClientRect();\n const off = {\n min: rect.left,\n max: rect.right\n };\n if (parent === null) return off;\n const pOff = this.offset(parent);\n return {\n min: off.min - pOff.min,\n max: off.max - pOff.max\n };\n },\n getCards() {\n if (!this.$refs.container) return [];\n if (!this.cardSelector) return this.$refs.container.children;\n return this.$refs.container.querySelectorAll(this.cardSelector);\n },\n selectIndex(index, relative = false) {\n if (relative) index = this.index + index;\n index = Math.min(this.cards.length, index);\n const el = this.cards[index];\n if (!el) return null;\n const elOff = this.offset(el, this.$refs.container);\n this.$refs.container.style.marginLeft = `-${elOff.min}px`;\n this.index = index;\n return el;\n },\n next() {\n this.refresh_++;\n if (!this.visibility.count) return;\n let {\n count\n } = this.visibility;\n let at = Math.min(count === 1 ? this.index + count : this.index + count - 1, this.cards.length - count);\n this.selectIndex(at);\n },\n prev() {\n this.refresh_++;\n if (!this.visibility.count) return;\n const {\n min,\n count\n } = this.visibility;\n let at = Math.max(0, min - count);\n if (min < 0 || count <= 0) return;\n this.selectIndex(at);\n },\n refresh() {\n this.cards = this.getCards();\n this.selectIndex(this.index);\n this.refresh_++;\n }\n },\n mounted() {\n this.observers = [new MutationObserver(() => this.refresh()), new ResizeObserver(() => this.refresh())];\n this.observers[0].observe(this.$refs.container, {\n \"childList\": true\n });\n this.observers[1].observe(this.$refs.container);\n this.refresh();\n },\n unmounted() {\n for (var observer of this.observers) observer.disconnect();\n }\n});\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\n\nclass Offset {\n constructor(el, min = null, max = null) {\n this.el = el;\n this.rect = el.getBoundingClientRect();\n ({\n min,\n max\n } = this.minmax(min, max));\n this.min = min;\n this.max = max;\n this.size = max - min;\n }\n minmax(min = null, max = null) {\n min = min === null ? this.rect.left : min;\n max = max === null ? this.rect.right : max;\n return {\n min,\n max\n };\n }\n relative(to) {\n return new Offset(this.el, this.min - to.min, this.max - to.min);\n }\n}\nclass Card extends Offset {\n constructor(el, index) {\n super(el);\n this.index = index;\n }\n visible(viewportOffset) {\n return viewportOffset.min <= this.min && viewportOffset.max >= this.max;\n }\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n setup() {\n return {\n viewport: (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null),\n container: (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null)\n };\n },\n data() {\n return {\n cards: [],\n index: 0,\n refresh_: 0\n };\n },\n props: {\n cardSelector: {\n type: String,\n default: ''\n },\n containerClass: {\n type: String,\n default: ''\n },\n buttonClass: {\n type: String,\n default: 'button'\n },\n leftButtonIcon: {\n type: String,\n default: \"fas fa-chevron-left\"\n },\n rightButtonIcon: {\n type: String,\n default: \"fas fa-chevron-right\"\n }\n },\n computed: {\n card() {\n return this.cards()[this.index];\n },\n /*showPrevButton() {\n return this.index > 0\n },\n showNextButton() {\n if(!this.cards || this.cards.length <= 1)\n return false\n let { count } = this.visibility\n return (this.index + count) < this.cards.length\n },*/\n\n bullets() {\n if (!this.cards || !this.$refs.viewport) return [];\n let contOff = new Offset(this.$refs.container);\n let viewMax = new Offset(this.$refs.viewport).max;\n let bullets = [];\n let i = 0;\n let max = viewMax;\n bullets.push(i);\n while (i < this.cards.length) {\n // skip until next view\n for (; i < this.cards.length; i++) {\n let card = this.cards[i].relative(contOff);\n if (card.max > max) {\n max = card.min + viewMax;\n bullets.push(i);\n i++;\n break;\n }\n }\n }\n return bullets;\n }\n },\n methods: {\n getCards() {\n if (!this.$refs.container) return [];\n let nodes = !this.cardSelector ? [...this.$refs.container.children] : [...this.$refs.container.querySelectorAll(this.cardSelector)];\n return nodes.map((el, index) => new Card(el, index));\n },\n select(index, relative = false) {\n if (relative) index = this.index + index;\n index = Math.min(index, this.cards.length);\n index = Math.max(index, 0);\n let card = this.cards[index];\n if (!card) return null;\n card = new Card(card.el);\n const cont = new Offset(this.$refs.container);\n const rel = card.relative(cont);\n this.$refs.container.style.marginLeft = `-${rel.min}px`;\n this.index = index;\n return card.el;\n },\n refresh() {\n this.cards = this.getCards();\n this.select(this.index);\n this.refresh_++;\n }\n },\n mounted() {\n this.observers = [new MutationObserver(() => this.refresh()), new ResizeObserver(() => this.refresh())];\n this.observers[0].observe(this.$refs.container, {\n \"childList\": true\n });\n this.observers[1].observe(this.$refs.container);\n this.refresh();\n },\n unmounted() {\n for (var observer of this.observers) observer.disconnect();\n }\n});\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
/***/ }),
@ -205,7 +205,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
\***********************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-b79f173e\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"a-carousel\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"a-carousel-button-container\"\n};\nconst _hoisted_3 = {\n class: \"icon\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"a-carousel-button-container\"\n};\nconst _hoisted_5 = {\n class: \"icon\"\n};\nconst _hoisted_6 = {\n ref: \"viewport\",\n class: \"a-carousel-viewport\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", _hoisted_1, [$options.showPrevButton ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"nav\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([$props.buttonClass, 'prev']),\n \"aria-label\": \"Go left\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.prev && $options.prev(...args))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.leftButtonIcon)\n }, null, 2 /* CLASS */)])], 2 /* CLASS */)])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $options.showNextButton ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([$props.buttonClass, 'next']),\n \"aria-label\": \"Go left\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.next && $options.next(...args))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)($props.rightButtonIcon)\n }, null, 2 /* CLASS */)])], 2 /* CLASS */)])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"nav\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"section\", {\n ref: \"container\",\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['a-carousel-container', $props.containerClass])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\", {}, undefined, true)], 2 /* CLASS */)], 512 /* NEED_PATCH */)]);\n}\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-b79f173e\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"a-carousel\"\n};\nconst _hoisted_2 = {\n ref: \"viewport\",\n class: \"a-carousel-viewport\"\n};\nconst _hoisted_3 = {\n class: \"a-carousel-bullets-container\"\n};\nconst _hoisted_4 = [\"onClick\"];\nconst _hoisted_5 = {\n key: 0,\n class: \"fa fa-circle\"\n};\nconst _hoisted_6 = {\n key: 1,\n class: \"far fa-circle\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"nav\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"section\", {\n ref: \"container\",\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['a-carousel-container', $props.containerClass])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\", {}, undefined, true)], 2 /* CLASS */)], 512 /* NEED_PATCH */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"nav\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" <span class=\\\"icon bullet\\\" @click=\\\"prev\\\" v-if=\\\"showPrevButton\\\">\\n <i :class=\\\"leftButtonIcon\\\"></i>\\n </span> \"), $options.bullets.length > 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($options.bullets, bullet => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n class: \"icon bullet\",\n key: bullet,\n onClick: $event => $options.select(bullet)\n }, [bullet == $data.index ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_5)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_6))], 8 /* PROPS */, _hoisted_4);\n }), 128 /* KEYED_FRAGMENT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" <span class=\\\"icon bullet\\\" @click=\\\"next\\\" v-if=\\\"showNextButton\\\">\\n <i :class=\\\"rightButtonIcon\\\"></i>\\n </span> \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"bullets-right\", {\n vBind: this\n }, undefined, true)])]);\n}\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
/***/ }),
@ -485,7 +485,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extr
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AActionButton_vue_vue_type_template_id_3f443389__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AActionButton.vue?vue&type=template&id=3f443389 */ \"./src/components/AActionButton.vue?vue&type=template&id=3f443389\");\n/* harmony import */ var _AActionButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AActionButton.vue?vue&type=script&lang=js */ \"./src/components/AActionButton.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AActionButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AActionButton_vue_vue_type_template_id_3f443389__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AActionButton.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AActionButton.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AActionButton_vue_vue_type_template_id_3f443389__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AActionButton.vue?vue&type=template&id=3f443389 */ \"./src/components/AActionButton.vue?vue&type=template&id=3f443389\");\n/* harmony import */ var _AActionButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AActionButton.vue?vue&type=script&lang=js */ \"./src/components/AActionButton.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AActionButton_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AActionButton_vue_vue_type_template_id_3f443389__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AActionButton.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AActionButton.vue?");
/***/ }),
@ -495,7 +495,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AAc
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AAutocomplete_vue_vue_type_template_id_32d72269__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AAutocomplete.vue?vue&type=template&id=32d72269 */ \"./src/components/AAutocomplete.vue?vue&type=template&id=32d72269\");\n/* harmony import */ var _AAutocomplete_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AAutocomplete.vue?vue&type=script&lang=js */ \"./src/components/AAutocomplete.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AAutocomplete_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AAutocomplete_vue_vue_type_template_id_32d72269__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AAutocomplete.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AAutocomplete.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AAutocomplete_vue_vue_type_template_id_32d72269__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AAutocomplete.vue?vue&type=template&id=32d72269 */ \"./src/components/AAutocomplete.vue?vue&type=template&id=32d72269\");\n/* harmony import */ var _AAutocomplete_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AAutocomplete.vue?vue&type=script&lang=js */ \"./src/components/AAutocomplete.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AAutocomplete_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AAutocomplete_vue_vue_type_template_id_32d72269__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AAutocomplete.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AAutocomplete.vue?");
/***/ }),
@ -505,7 +505,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AAu
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ACarousel_vue_vue_type_template_id_b79f173e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=template&id=b79f173e&scoped=true */ \"./src/components/ACarousel.vue?vue&type=template&id=b79f173e&scoped=true\");\n/* harmony import */ var _ACarousel_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=script&lang=js */ \"./src/components/ACarousel.vue?vue&type=script&lang=js\");\n/* harmony import */ var _ACarousel_vue_vue_type_style_index_0_id_b79f173e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=style&index=0&id=b79f173e&scoped=true&lang=css */ \"./src/components/ACarousel.vue?vue&type=style&index=0&id=b79f173e&scoped=true&lang=css\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ACarousel_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ACarousel_vue_vue_type_template_id_b79f173e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-b79f173e\"],['__file',\"src/components/ACarousel.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ACarousel_vue_vue_type_template_id_b79f173e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=template&id=b79f173e&scoped=true */ \"./src/components/ACarousel.vue?vue&type=template&id=b79f173e&scoped=true\");\n/* harmony import */ var _ACarousel_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=script&lang=js */ \"./src/components/ACarousel.vue?vue&type=script&lang=js\");\n/* harmony import */ var _ACarousel_vue_vue_type_style_index_0_id_b79f173e_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ACarousel.vue?vue&type=style&index=0&id=b79f173e&scoped=true&lang=css */ \"./src/components/ACarousel.vue?vue&type=style&index=0&id=b79f173e&scoped=true&lang=css\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ACarousel_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ACarousel_vue_vue_type_template_id_b79f173e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-b79f173e\"],['__file',\"src/components/ACarousel.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ACarousel.vue?");
/***/ }),
@ -515,7 +515,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ACa
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=template&id=a87ed2dc */ \"./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc\");\n/* harmony import */ var _ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=script&lang=js */ \"./src/components/ADropdown.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ADropdown.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=template&id=a87ed2dc */ \"./src/components/ADropdown.vue?vue&type=template&id=a87ed2dc\");\n/* harmony import */ var _ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ADropdown.vue?vue&type=script&lang=js */ \"./src/components/ADropdown.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ADropdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ADropdown_vue_vue_type_template_id_a87ed2dc__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ADropdown.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ADropdown.vue?");
/***/ }),
@ -525,7 +525,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ADr
\*************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AEpisode_vue_vue_type_template_id_2e4db98a__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AEpisode.vue?vue&type=template&id=2e4db98a */ \"./src/components/AEpisode.vue?vue&type=template&id=2e4db98a\");\n/* harmony import */ var _AEpisode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AEpisode.vue?vue&type=script&lang=js */ \"./src/components/AEpisode.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AEpisode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AEpisode_vue_vue_type_template_id_2e4db98a__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AEpisode.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AEpisode.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AEpisode_vue_vue_type_template_id_2e4db98a__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AEpisode.vue?vue&type=template&id=2e4db98a */ \"./src/components/AEpisode.vue?vue&type=template&id=2e4db98a\");\n/* harmony import */ var _AEpisode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AEpisode.vue?vue&type=script&lang=js */ \"./src/components/AEpisode.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AEpisode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AEpisode_vue_vue_type_template_id_2e4db98a__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AEpisode.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AEpisode.vue?");
/***/ }),
@ -535,7 +535,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AEp
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AList_vue_vue_type_template_id_70c3911f__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AList.vue?vue&type=template&id=70c3911f */ \"./src/components/AList.vue?vue&type=template&id=70c3911f\");\n/* harmony import */ var _AList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AList.vue?vue&type=script&lang=js */ \"./src/components/AList.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AList_vue_vue_type_template_id_70c3911f__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AList.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AList.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AList_vue_vue_type_template_id_70c3911f__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AList.vue?vue&type=template&id=70c3911f */ \"./src/components/AList.vue?vue&type=template&id=70c3911f\");\n/* harmony import */ var _AList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AList.vue?vue&type=script&lang=js */ \"./src/components/AList.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AList_vue_vue_type_template_id_70c3911f__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AList.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AList.vue?");
/***/ }),
@ -545,7 +545,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ALi
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APage_vue_vue_type_template_id_53c8e290__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APage.vue?vue&type=template&id=53c8e290 */ \"./src/components/APage.vue?vue&type=template&id=53c8e290\");\n/* harmony import */ var _APage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APage.vue?vue&type=script&lang=js */ \"./src/components/APage.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APage_vue_vue_type_template_id_53c8e290__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APage.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APage.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APage_vue_vue_type_template_id_53c8e290__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APage.vue?vue&type=template&id=53c8e290 */ \"./src/components/APage.vue?vue&type=template&id=53c8e290\");\n/* harmony import */ var _APage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APage.vue?vue&type=script&lang=js */ \"./src/components/APage.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APage_vue_vue_type_template_id_53c8e290__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APage.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APage.vue?");
/***/ }),
@ -555,7 +555,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APa
\************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ State: function() { return /* reexport safe */ _APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.State; }\n/* harmony export */ });\n/* harmony import */ var _APlayer_vue_vue_type_template_id_1779e8bc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlayer.vue?vue&type=template&id=1779e8bc */ \"./src/components/APlayer.vue?vue&type=template&id=1779e8bc\");\n/* harmony import */ var _APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlayer.vue?vue&type=script&lang=js */ \"./src/components/APlayer.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlayer_vue_vue_type_template_id_1779e8bc__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlayer.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlayer.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ State: function() { return /* reexport safe */ _APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.State; }\n/* harmony export */ });\n/* harmony import */ var _APlayer_vue_vue_type_template_id_1779e8bc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlayer.vue?vue&type=template&id=1779e8bc */ \"./src/components/APlayer.vue?vue&type=template&id=1779e8bc\");\n/* harmony import */ var _APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlayer.vue?vue&type=script&lang=js */ \"./src/components/APlayer.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlayer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlayer_vue_vue_type_template_id_1779e8bc__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlayer.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlayer.vue?");
/***/ }),
@ -565,7 +565,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APlaylist_vue_vue_type_template_id_60410bd3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlaylist.vue?vue&type=template&id=60410bd3 */ \"./src/components/APlaylist.vue?vue&type=template&id=60410bd3\");\n/* harmony import */ var _APlaylist_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlaylist.vue?vue&type=script&lang=js */ \"./src/components/APlaylist.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlaylist_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlaylist_vue_vue_type_template_id_60410bd3__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlaylist.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlaylist.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APlaylist_vue_vue_type_template_id_60410bd3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlaylist.vue?vue&type=template&id=60410bd3 */ \"./src/components/APlaylist.vue?vue&type=template&id=60410bd3\");\n/* harmony import */ var _APlaylist_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlaylist.vue?vue&type=script&lang=js */ \"./src/components/APlaylist.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlaylist_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlaylist_vue_vue_type_template_id_60410bd3__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlaylist.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlaylist.vue?");
/***/ }),
@ -575,7 +575,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APl
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Page: function() { return /* reexport safe */ _APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.Page; }\n/* harmony export */ });\n/* harmony import */ var _APlaylistEditor_vue_vue_type_template_id_6e4f72a0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlaylistEditor.vue?vue&type=template&id=6e4f72a0 */ \"./src/components/APlaylistEditor.vue?vue&type=template&id=6e4f72a0\");\n/* harmony import */ var _APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlaylistEditor.vue?vue&type=script&lang=js */ \"./src/components/APlaylistEditor.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlaylistEditor_vue_vue_type_template_id_6e4f72a0__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlaylistEditor.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlaylistEditor.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Page: function() { return /* reexport safe */ _APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.Page; }\n/* harmony export */ });\n/* harmony import */ var _APlaylistEditor_vue_vue_type_template_id_6e4f72a0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./APlaylistEditor.vue?vue&type=template&id=6e4f72a0 */ \"./src/components/APlaylistEditor.vue?vue&type=template&id=6e4f72a0\");\n/* harmony import */ var _APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./APlaylistEditor.vue?vue&type=script&lang=js */ \"./src/components/APlaylistEditor.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_APlaylistEditor_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_APlaylistEditor_vue_vue_type_template_id_6e4f72a0__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/APlaylistEditor.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/APlaylistEditor.vue?");
/***/ }),
@ -585,7 +585,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AProgress_vue_vue_type_template_id_6871a6ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AProgress.vue?vue&type=template&id=6871a6ae */ \"./src/components/AProgress.vue?vue&type=template&id=6871a6ae\");\n/* harmony import */ var _AProgress_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AProgress.vue?vue&type=script&lang=js */ \"./src/components/AProgress.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AProgress_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AProgress_vue_vue_type_template_id_6871a6ae__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AProgress.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AProgress.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AProgress_vue_vue_type_template_id_6871a6ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AProgress.vue?vue&type=template&id=6871a6ae */ \"./src/components/AProgress.vue?vue&type=template&id=6871a6ae\");\n/* harmony import */ var _AProgress_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AProgress.vue?vue&type=script&lang=js */ \"./src/components/AProgress.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AProgress_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AProgress_vue_vue_type_template_id_6871a6ae__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AProgress.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AProgress.vue?");
/***/ }),
@ -595,7 +595,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APr
\*********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARow_vue_vue_type_template_id_2f72fd2e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ARow.vue?vue&type=template&id=2f72fd2e */ \"./src/components/ARow.vue?vue&type=template&id=2f72fd2e\");\n/* harmony import */ var _ARow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ARow.vue?vue&type=script&lang=js */ \"./src/components/ARow.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ARow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ARow_vue_vue_type_template_id_2f72fd2e__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ARow.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ARow.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARow_vue_vue_type_template_id_2f72fd2e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ARow.vue?vue&type=template&id=2f72fd2e */ \"./src/components/ARow.vue?vue&type=template&id=2f72fd2e\");\n/* harmony import */ var _ARow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ARow.vue?vue&type=script&lang=js */ \"./src/components/ARow.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ARow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ARow_vue_vue_type_template_id_2f72fd2e__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ARow.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ARow.vue?");
/***/ }),
@ -605,7 +605,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARo
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARows_vue_vue_type_template_id_24354cda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ARows.vue?vue&type=template&id=24354cda */ \"./src/components/ARows.vue?vue&type=template&id=24354cda\");\n/* harmony import */ var _ARows_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ARows.vue?vue&type=script&lang=js */ \"./src/components/ARows.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ARows_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ARows_vue_vue_type_template_id_24354cda__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ARows.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ARows.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARows_vue_vue_type_template_id_24354cda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ARows.vue?vue&type=template&id=24354cda */ \"./src/components/ARows.vue?vue&type=template&id=24354cda\");\n/* harmony import */ var _ARows_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ARows.vue?vue&type=script&lang=js */ \"./src/components/ARows.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ARows_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ARows_vue_vue_type_template_id_24354cda__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ARows.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ARows.vue?");
/***/ }),
@ -615,7 +615,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ARo
\***************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASoundItem_vue_vue_type_template_id_2d901711__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ASoundItem.vue?vue&type=template&id=2d901711 */ \"./src/components/ASoundItem.vue?vue&type=template&id=2d901711\");\n/* harmony import */ var _ASoundItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ASoundItem.vue?vue&type=script&lang=js */ \"./src/components/ASoundItem.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ASoundItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ASoundItem_vue_vue_type_template_id_2d901711__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ASoundItem.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ASoundItem.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASoundItem_vue_vue_type_template_id_2d901711__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ASoundItem.vue?vue&type=template&id=2d901711 */ \"./src/components/ASoundItem.vue?vue&type=template&id=2d901711\");\n/* harmony import */ var _ASoundItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ASoundItem.vue?vue&type=script&lang=js */ \"./src/components/ASoundItem.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ASoundItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ASoundItem_vue_vue_type_template_id_2d901711__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ASoundItem.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ASoundItem.vue?");
/***/ }),
@ -625,7 +625,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASo
\****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AStatistics_vue_vue_type_template_id_214a9738__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AStatistics.vue?vue&type=template&id=214a9738 */ \"./src/components/AStatistics.vue?vue&type=template&id=214a9738\");\n/* harmony import */ var _AStatistics_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AStatistics.vue?vue&type=script&lang=js */ \"./src/components/AStatistics.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AStatistics_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AStatistics_vue_vue_type_template_id_214a9738__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AStatistics.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AStatistics.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AStatistics_vue_vue_type_template_id_214a9738__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AStatistics.vue?vue&type=template&id=214a9738 */ \"./src/components/AStatistics.vue?vue&type=template&id=214a9738\");\n/* harmony import */ var _AStatistics_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AStatistics.vue?vue&type=script&lang=js */ \"./src/components/AStatistics.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AStatistics_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AStatistics_vue_vue_type_template_id_214a9738__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AStatistics.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AStatistics.vue?");
/***/ }),
@ -635,7 +635,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASt
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AStreamer_vue_vue_type_template_id_06ef60ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AStreamer.vue?vue&type=template&id=06ef60ae */ \"./src/components/AStreamer.vue?vue&type=template&id=06ef60ae\");\n/* harmony import */ var _AStreamer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AStreamer.vue?vue&type=script&lang=js */ \"./src/components/AStreamer.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AStreamer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AStreamer_vue_vue_type_template_id_06ef60ae__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AStreamer.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AStreamer.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AStreamer_vue_vue_type_template_id_06ef60ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AStreamer.vue?vue&type=template&id=06ef60ae */ \"./src/components/AStreamer.vue?vue&type=template&id=06ef60ae\");\n/* harmony import */ var _AStreamer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AStreamer.vue?vue&type=script&lang=js */ \"./src/components/AStreamer.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_AStreamer_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_AStreamer_vue_vue_type_template_id_06ef60ae__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/AStreamer.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/AStreamer.vue?");
/***/ }),
@ -645,7 +645,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASt
\************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASwitch_vue_vue_type_template_id_62a3c675__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ASwitch.vue?vue&type=template&id=62a3c675 */ \"./src/components/ASwitch.vue?vue&type=template&id=62a3c675\");\n/* harmony import */ var _ASwitch_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ASwitch.vue?vue&type=script&lang=js */ \"./src/components/ASwitch.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_home_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ASwitch_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ASwitch_vue_vue_type_template_id_62a3c675__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ASwitch.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ASwitch.vue?");
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ASwitch_vue_vue_type_template_id_62a3c675__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ASwitch.vue?vue&type=template&id=62a3c675 */ \"./src/components/ASwitch.vue?vue&type=template&id=62a3c675\");\n/* harmony import */ var _ASwitch_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ASwitch.vue?vue&type=script&lang=js */ \"./src/components/ASwitch.vue?vue&type=script&lang=js\");\n/* harmony import */ var _media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_media_data_code_projets_aircox_assets_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ASwitch_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_ASwitch_vue_vue_type_template_id_62a3c675__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"src/components/ASwitch.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack://aircox-assets/./src/components/ASwitch.vue?");
/***/ }),

View File

@ -49,7 +49,7 @@ Usefull context:
})
</script>
<div id="app">
<div class="container navs">
<div class="navs">
{% block nav %}
<nav class="nav primary" role="navigation" aria-label="main navigation">
{% block nav-primary %}
@ -95,16 +95,18 @@ Usefull context:
<header class="container header preview preview-header {% if cover %}has-cover{% endif %}">
{% block header %}
{% if cover %}
<img src="{{ cover }}" class="header-cover">
<div class="header-cover">
<img src="{{ cover }}" class="header-cover">
</div>
{% endif %}
<div class="headings preview-card-headings">
{% block headings %}
<div>
<h1 class="heading title is-1 {% block title-class %}{% endblock %}">{% block title %}{{ title|default:"" }}{% endblock %}</h1>
<h1 class="title is-1 {% block title-class %}{% endblock %}">{% block title %}{{ title|default:"" }}{% endblock %}</h1>
</div>
<div>
{% spaceless %}
<span class="heading subtitle is-2">
<span class="subtitle is-2">
{% block subtitle %}
{% if subtitle %}
{{ subtitle }}

View File

@ -15,7 +15,7 @@
{{ block.super }}
{% block list-container %}
<section class="container clear-both" role="list">
<section class="container clear-both list list-grid {{ list_class|default:"" }}" role="list">
{% block list %}
{% with has_headline=True %}
{% for object in object_list %}

View File

@ -13,7 +13,7 @@
{% if next_diffs %}
<section class="container">
<h2 class="title is-3 p-2">
<h2 class="title">
{% with station.name as station %}
{% blocktrans %}Today on {{ station }}{% endblocktrans %}
{% endwith %}
@ -37,10 +37,11 @@
{% if logs %}
<section class="container">
<h2 class="title is-3 p-2">{% translate "It just happened" %}</h2>
{% for object in logs %}
{% include "./widgets/log.html" with widget="item" %}
{% endfor %}
<h2 class="title">{% translate "It just happened" %}</h2>
<div class="list-grid" role="list">
{% include "./widgets/logs.html" with object_list=logs %}
</div>
<nav class="nav-urls">
<a href="{% url "timetable-list" %}"
@ -61,7 +62,7 @@
{% if publications %}
<section class="container">
<h2 class="title is-3 p-2">{% translate "Last publications" %}</h2>
<h2 class="title">{% translate "Last publications" %}</h2>
{% include "./widgets/carousel.html" with objects=publications url_name="page-list" url_label=_("All publications") %}
</section>
{% endif %}

View File

@ -1,45 +0,0 @@
{% extends "aircox/page_list.html" %}
{% comment %}List of logs for a specific date{% endcomment %}
{% load i18n humanize aircox %}
{% block title %}
{% if not page or not page.title %}
{% with station.name as station %}
{% blocktranslate %}That happened on {{ station }}{% endblocktranslate %}
{% endwith %}
{% else %}
{{ block.super }}
{% endif %}
{% endblock %}
{% block subtitle %}{{ date|date:"l d F Y" }}{% endblock %}
{% block secondary-nav %}
<nav class="nav secondary">
{% include "./widgets/dates_menu.html" with url_name="log-list" %}
</nav>
{% endblock %}
{% block pages_list_ %}
<section>
{# <h4 class="subtitle size-4">{{ date }}</h4> #}
{% include "aircox/widgets/log_list.html" %}
</section>
{% endblock %}
{% block pages_list %}
{% with hide_schedule=True %}
<section role="list" class="list">
{% for object in object_list %}
{% if object.episode %}
{% page_widget "item" object.episode diffusion=object timetable=True %}
{% else %}
{% page_widget "item" object timetable=True %}
{% endif %}
{% endfor %}
</section>
{% endwith %}
{% endblock %}

View File

@ -16,12 +16,13 @@
<a href="{% url "timetable-list" date=date %}">{{ date|date:"l d F Y" }}</a>
{% endblock %}
{% block list %}
{% for object in object_list %}
{% if object.episode %}
{% page_widget "item" object.episode diffusion=object timetable=True %}
{% else %}
{% page_widget "item" object timetable=True %}
{% endif %}
{% endfor %}
{% block list-container %}
{% with list_class="list-grid" %}
{{ block.super }}
{% endwith %}
{% endblock %}
{% block list %}
{% include "./widgets/logs.html" with object_list=object_list timetable=True %}
{% endblock %}

View File

@ -32,11 +32,11 @@
{% endif %}
{% endblock %}
</section>
{% block actions-container %}
{{ block.super }}
{% endblock %}
</div>
</div>
{% block actions-container %}
{{ block.super }}
{% endblock %}
{% endblock %}
{% endblock %}

View File

@ -8,13 +8,16 @@ Context objects:
In case of modification, you might want to check on `assets/vue/player.vue`
for design review.
{% endcomment %}
{% block outer %}
{% if object|is_diffusion %}
{% page_widget widget object.episode diffusion=object %}
{% page_widget widget object.episode diffusion=object timetable=timetable|default:False %}
{% elif object|is_log %}
{% include "./track_item.html" with object=object.track log=object timetable=timetable|default:False %}
{% else %}
{% include "./track_item.html" with object=object.track log=object %}
{% for obj in object %}
{% include "./track_item.html" with object=obj.track log=obj timetable=timetable|default:False %}
{% endfor %}
{% endif %}
{% endblock %}

View File

@ -33,4 +33,9 @@
{{ block.super }}
{{ object.display_headline }}
{% endif %}
{% if url %}
<a href="{{ url }}" class="ml-2">{% translate "Show" %}</a>
{% endif %}
{% endblock %}
{% block actions %}{% endblock %}

View File

@ -5,10 +5,11 @@ Context:
- object: track to render
{% endcomment %}
<span class="content mr-2">
<span class="icon highlight-color-2 m-2">
<span class="track">
<span class="icon hg-color-2">
<i class="fas fa-music"></i>
</span>
<label>
{% if log %}
<span>{{ log.date|date:"H:i" }} &mdash; </span>
{% endif %}
@ -19,4 +20,5 @@ Context:
{% if object.info %}(<i>{{ object.info }}</i>){% endif %}
</span>
{% endif %}
</label>
</span>

View File

@ -1,20 +1,43 @@
{% extends "./preview.html" %}
{% load i18n %}
{% load i18n aircox %}
{% block tag-class %}{{ block.super }} preview-wide{% endblock %}
{% block headings-class %}{{ block.super }} preview-card-headings{% endblock %}
{% block headings-tag-extra %}
{{ block.super }}
{% if cover %}
style="background-image: url({{ cover }});"
{% endif %}
{% block tag-class %}{{ block.super }} list-item wide is-fullwidth{% endblock %}
{% block headings %}
<a href="{{ url|escape }}" class="heading title {% block title-class %}{% endblock %}">
{% block title %}{{ title|default:"" }}{% endblock %}
</a>
<span class="heading subtitle {% block subtitle-class %}{% endblock %}">
{% block subtitle %}{{ subtitle|default:"" }}{% endblock %}
</span>
{% endblock %}
{% block inner %}
{% block headings-container %}{{ block.super }}{% endblock %}
<div class="is-flex-direction-column">
{% block content-container %}{{ block.super }}{% endblock %}
{% block actions-container %}{{ block.super }}{% endblock %}
</div>
{% block content-container %}
<div class="media">
{% if object.cover %}
<a href="{{ object.get_absolute_url }}"
class="media-left preview-cover"
style="background-image: url({{ object.cover.url }})">
</a>
{% endif %}
<div class="media-content">
{% block headings-container %}{{ block.super }}{% endblock %}
<section class="content">
{% block content %}
{% if content and with_content %}
{% autoescape off %}
{{ content|striptags|linebreaks }}
{% endautoescape %}
{% endif %}
{% endblock %}
</section>
{% block actions-container %}
{{ block.super }}
{% endblock %}
</div>
{% endblock %}
{% endblock %}

View File

@ -70,6 +70,12 @@ def do_is_diffusion(obj):
return isinstance(obj, Diffusion)
@register.filter(name="is_log")
def do_is_log(obj):
"""Return True if object is a Diffusion."""
return isinstance(obj, Log)
@register.filter(name="json")
def do_json(obj, fields=""):
"""Return object as json."""

View File

@ -50,6 +50,6 @@ class TimeTableView(GetDateMixin, BaseDiffusionListView):
if object_list is None:
logs = self.get_logs(self.date)
object_list = Log.merge_diffusions(logs, self.object_list)
object_list = Log.merge_diffusions(logs, self.object_list, group_logs=True)
object_list = list(reversed(object_list))
return super().get_context_data(date=self.date, dates=dates, object_list=object_list, **kwargs)

View File

@ -32,7 +32,7 @@ class HomeView(AttachedToMixin, BaseView, ListView):
logs = logs.after(min_date)
else:
logs = logs.date(today)
return Log.merge_diffusions(logs, object_list, diff_count=self.related_count)
return Log.merge_diffusions(logs, object_list, diff_count=self.related_count, group_logs=True)
def get_next_diffs(self):
now = tz.now()

View File

@ -15,31 +15,41 @@ input.half-field:not(:active):not(:hover) {
:root {
--body-bg: #fff;
--text-color: black;
--main-color: #EFCA08;
--main-color-light: #EFCA08B3;
--main-color-dark: #F49F0A;
--secondary-color: #00A6A6;
--secondary-color-light: #00A6A6B3;
--secondary-color-dark: #057ba8;
--disabled-color: #aaa;
--disabled-bg: #eee;
--link-fg: #00A6A6;
--link-hv-fg: var(--text-color);
--highlight-color: rgba(255, 255, 0, 1);
--highlight-color-alpha: rgba(255, 255, 0, 0.7);
--highlight-color-grey: rgba(230, 230, 60, 1);
--highlight-color-2: rgb(0, 0, 254);
--highlight-color-2-alpha: rgb(0, 0, 254, 0.7);
--highlight-color-2-grey: rgba(50, 200, 200, 1);
--hg-color: #EFCA08;
--hg-color-alpha: #EFCA08B3;
--hg-color-grey: rgba(230, 230, 60, 1);
--hg-color-2: #F49F0A;
--hg-color-2-alpha: #F49F0AB3;
--hg-color-2-grey: rgba(50, 200, 200, 1);
--nav-primary-height: 3rem;
--nav-secondary-height: 2.5rem;
--nav-bg: var(--highlight-color);
--nav-fg: var(--highlight-color-2);
--nav-active-bg: var(--highlight-color-2);
--nav-active-fg: var(--highlight-color);
--nav-bg: var(--main-color);
--nav-fg: var(--text-color);
--nav-active-bg: var(--main-color-dark);
--nav-active-fg: var(--text-color);
--nav-fs: 1rem;
--nav-2-fs: 0.8rem;
--button-fg: var(--text-color);
--button-bg: var(--highlight-color);
--button-hg-fg: var(--highlight-color-2);
--button-hg-bg: var(--highlight-color);
--button-active-fg: var(--highlight-color);
--button-active-bg: var(--highlight-color-2);
--button-bg: var(--hg-color);
--button-hg-fg: var(--hg-color-2);
--button-hg-bg: var(--hg-color);
--button-active-fg: var(--hg-color);
--button-active-bg: var(--hg-color-2);
}

View File

@ -8,54 +8,62 @@
--subtitle-2-sz: 1.4rem;
--subtitle-3-sz: 1.2rem;
--heading-title-bg-color: rgba(255, 255, 0, 1);
--heading-bg-color: var(--highlight-color);
--heading-bg-highlight-color: var(--highlight-color-2);
--heading-font-family: default;
--heading-bg: var(--hg-color);
--heading-fg: var(--text-color);
--heading-hg-fg: var(--text-color);
--heading-hg-bg: var(--hg-color-2);
--preview-bg: var(--body-bg);
--preview-title-sz: #{v.$text-size-medium};
--preview-subtitle-sz: #{v.$text-size};
--preview-cover-size: 14rem;
--preview-cover-small-size: 10rem;
--preview-cover-tiny-size: 4rem;
--preview-wide-content-sz: #{v.$text-size-bigger};
--preview-heading-bg-color: var(--hg-color);
--header-height: var(--preview-cover-size);
--a-carousel-p: #{v.$text-size-medium};
--a-carousel-ml: calc(#{v.$mp-4} - 0.5rem);
--a-carousel-gap: #{v.$mp-4};
--a-carousel-nav-x: -#{v.$mp-3e};
--a-carousel-bg: var(--hg-color-alpha);
--a-progress-bg: transparent;
--a-progress-bar-bg: var(--highlight-color-2);
--a-progress-bar-color: var(--highlight-color);
--a-progress-bar-bg: var(--hg-color-2);
--a-progress-bar-color: var(--hg-color);
--a-progress-bar-pd: #{v.$mp-2};
--a-playlist-header-bg: var(--highlight-color-2-alpha);
--a-playlist-header-fg: var(--highlight-color);
--a-playlist-header-bg: var(--hg-color-2-alpha);
--a-playlist-header-fg: var(--text-color);
--a-playlist-title-sz: #{v.$text-size};
--a-playlist-title-pd: #{v.$mp-3};
--a-playlist-item-border: 1px var(--highlight-color-2) solid;
--a-playlist-item-border: 1px var(--hg-color-2) solid;
--a-sound-bg: var(--highlight-color-alpha);
--a-sound-hv-bg: var(--highlight-color);
--a-sound-playing-fg: var(--highlight-color-alpha);
--a-sound-hv-fg: var(--highlight-color-2);
--a-sound-bg: var(--hg-color-alpha);
--a-sound-hv-bg: var(--hg-color);
--a-sound-playing-fg: var(--hg-color-alpha);
--a-sound-hv-fg: var(--text-color);
--a-sound-text-sz: #{v.$text-size};
--a-player-url-fg: var(--highlight-color-2);
--a-player-panel-bg: var(--highlight-color);
--a-player-url-fg: var(--text-color);
--a-player-panel-bg: var(--hg-color);
--a-player-bar-height: var(--nav-primary-height);
--a-player-bar-bg: var(--highlight-color);
--a-player-bar-bg: var(--hg-color);
--a-player-bar-title-alone-sz: #{v.$text-size-medium};
--a-player-bar-button-fg: var(--button-fg);
--a-player-bar-button-fg: var(--button-bg);
--a-player-bar-button-hg-fg: var(--button-hg-fg);
--a-player-bar-button-hg-bg: var(--button-hg-bg);
--button-fg: var(--highlight-color-2);
--button-bg: var(--highlight-color);
--button-sec-bg: var(--highlight-color-alpha);
--button-fg: var(--text-color);
--button-bg: var(--hg-color);
--button-sec-bg: var(--hg-color-alpha);
--button-hg-fg: var(--text-color);
--button-hg-bg: var(--highlight-color);
--button-active-fg: var(--highlight-color);
--button-active-bg: var(--highlight-color-2);
--button-hg-bg: var(--hg-color-2);
--button-active-fg: var(--text-color);
--button-active-bg: var(--hg-color-2);
}
@ -85,11 +93,16 @@
&.is-3 { font-size: var(--subtitle-3-sz); }
}
.headings a, a.heading, a.subtitle {
text-decoration: none !important;
}
.heading {
display: inline-block;
&:not(:empty) {
background-color: var(--heading-bg-color);
// border-bottom: 1px var(--heading-bg) solid;
color: var(--heading-fg);
padding: v.$mp-2;
margin-top: 0em !important;
vertical-align: top;
@ -97,26 +110,25 @@
&.highlight, &.active,
.preview.active &,
{
background-color: var(--heading-bg-highlight-color);
color: var(--highlight-color);
// border-color: var(--heading-hg-bg);
color: var(--heading-hg-fg);
}
}
&.title {
background-color: var(--heading-title-bg-color);
}
}
// ---- button
@mixin button {
.button, a.button, button.button, .nav-urls a {
.button, a.button, button.button {
font-size: v.$text-size;
display: inline-block;
padding: v.$mp-2;
border: 1px var(--highlight-color-2-alpha) solid;
border: none; //1px var(--button-fg) solid;
justify-content: center;
text-align: center;
// font-size: v.$text-size-medium;
cursor: pointer;
text-decoration: none;
color: var(--button-fg);
background-color: var(--button-bg);
@ -125,6 +137,10 @@
background-color: var(--button-sec-bg);
}
.label, label {
cursor: pointer;
}
.icon {
vertical-align: middle;
&:not(:only-child) {
@ -136,17 +152,18 @@
&:hover {
color: var(--button-hg-fg);
background-color: var(--button-hg-bg);
opacity: 1 !important;
}
&.active {
border-color: var(--highlight-color-alpha);
// border-color: var(--hg-color-alpha);
color: var(--button-active-fg);
background-color: var(--button-active-bg);
&:hover {
border-color: var(--highlight-color);
background-color: var(--highlight-color-2-alpha);
border-color: var(--hg-color);
background-color: var(--hg-color-2-alpha);
opacity: 1 !important;
}
}
@ -156,9 +173,9 @@
}
&[disabled], &.disabled {
background-color: var(--highlight-color-grey);
color: var(--highlight-color-2);
border-color: var(--highlight-color-2-alpha);
background-color: var(--hg-color-grey);
color: var(--hg-color-2);
border-color: var(--hg-color-2-alpha);
}
.dropdown-trigger {
@ -186,6 +203,7 @@
.preview {
position: relative;
background-size: cover;
background-color: var(--preview-bg) !important;
&.preview-item {
width: 100%;
@ -233,7 +251,7 @@
}
@media screen and (max-width: v.$screen-small) {
@media screen and (max-width: v.$screen-very-small) {
.preview .content {
display: none;
}
@ -242,7 +260,6 @@
.preview-cover {
background-size: cover;
background-color: transparent !important;
height: var(--preview-cover-size);
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
@ -289,18 +306,22 @@
// ---- list
.list-item {
display: flex;
flex-direction: column;
width: 100%;
&:not(:first-child) {
margin-top: calc(v.$mp-4 / 2);
}
padding: v.$mp-3;
.headings {
display: flex;
flex-direction: row;
padding-top: 0em;
padding: 0em;
margin-bottom: v.$mp-2 !important;
.heading {
// background-color: var(--preview-heading-bg-color);
padding: 0rem;
}
.title {
flex-grow: 1;
}
@ -308,51 +329,54 @@
.subtitle {
font-size: var(--preview-title-sz);
// background-color: var(--preview-heading-bg-color);
text-align: right;
}
.media {
flex-grow: 1;
}
.media-content {
display: flex;
flex-direction: column;
margin-bottom: unset;
.list-item:not(.no-cover) & {
min-height: var(--preview-cover-small-size);
}
.content {
flex-grow: 1;
margin-bottom: auto;
}
.actions {
text-align: right;
margin-top: v.$mp-3;
}
}
@media screen and (max-width: v.$screen-small) {
.list-item .headings {
flex-direction: column;
.heading {
display: inline;
text-align: left;
}
.actions {
flex-grow: unset;
text-align: right;
margin-top: auto;
.subtitle {
color: unset !important;
background: none !important;
}
}
}
// ---- wide
.preview-wide {
height: var(--preview-cover-size);
display: flex;
.headings {
height: var(--preview-cover-size)
}
&:not(.header) .headings {
.list-item.wide {
& .preview-cover {
box-shadow: 0em 0em 1em rgba(0,0,0,0.2);
}
& .headings {
width: var(--preview-cover-size);
min-width: var(--preview-cover-size);
flex-grow: 0;
margin-right: v.$mp-4;
}
& .content {
font-size: var(--preview-wide-content-sz);
flex-grow: 1;
@ -361,10 +385,8 @@
// ---- card
.preview-card {
padding: 0rem !important;
height: var(--preview-cover-size);
width: var(--preview-cover-size);
@ -381,6 +403,10 @@
box-shadow: 0em 0em 1em rgba(0,0,0,0.2);
}
.heading {
background-color: var(--preview-heading-bg-color);
}
.title {
max-height: calc( var(--preview-cover-size) / 2 );
overflow: hidden;
@ -417,19 +443,32 @@
}
// ---- card grid
// ---- grid
.card-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: v.$mp-4;
}
.list-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: v.$mp-4;
}
@media screen and (max-width: v.$screen-smaller) {
.list-grid {
grid-template-columns: 1fr;
}
}
// ---- ---- Carousel
.a-carousel {
margin-left: calc( 0rem - var(--a-carousel-ml));
.a-carousel-viewport {
background-color: var(--a-carousel-bg);
margin-bottom: var(--a-carousel-p);
padding: var(--a-carousel-p) 0;
padding-left: var(--a-carousel-ml);
}
@ -445,17 +484,9 @@
}
}
.a-carousel-button-container {
button, .button {
z-index:1000;
position: absolute;
display: flex;
flex-direction: column;
top: 50%;
&.prev { left: var(--a-carousel-nav-x); }
&.next { right: var(--a-carousel-nav-x); }
}
.a-carousel-bullets-container {
// due to a-carousel margin-left
padding-left: var(--a-carousel-ml);
}
@ -648,8 +679,8 @@
transition: background-color 0.5s;
&.open {
background-color: var(--highlight-color-2-alpha);
color: var(--highlight-color);
background-color: var(--a-player-bar-button-hg-bg);
color: var(--a-player-bar-button-hg-fg);
}
}
}

View File

@ -59,8 +59,8 @@
// -- colors
.highlight-color { color: var(--highlight-color); }
.highlight-color-2 { color: var(--highlight-color-2); }
.hg-color { color: var(--highlight-color); }
.hg-color-2 { color: var(--highlight-color-2); }
.bg-transparent { background-color: transparent; }

View File

@ -9,11 +9,11 @@
padding-bottom: 5rem;
a {
color: var(--highlight-color-2);
text-decoration: none;
color: var(--link-fg);
text-decoration: underline;
&:hover {
color: var(--text-color);
color: var(--link-hv-fg);
}
}
@ -22,10 +22,9 @@
margin-top: v.$mp-3;
> .title {
margin-top: unset;
padding-top: unset !important;
font-size: v.$text-size-medium;
clear: both;
margin-bottom: v.$mp-4;
border-bottom: 1px solid black;
}
&:not(:last-child) {
@ -42,7 +41,7 @@
}
.vc-weekday-1, .vc-weekday-7 {
color: var(--highlight-color-2) !important;
color: var(--hg-color-2) !important;
}
@ -112,8 +111,8 @@
}
.navbar-item.active, .table tr.is-selected {
color: var(--highlight-color-2);
background-color: var(--highlight-color);
color: var(--hg-color-2);
background-color: var(--hg-color);
}
@ -156,6 +155,7 @@
text-transform: uppercase;
a, .button {
color: var(--nav-fg);
display: block;
width: 100%;
}
@ -270,7 +270,7 @@
}
.nav + .nav {
flew-grow: 0 !important;
flex-grow: 0 !important;
}
}
@ -295,8 +295,8 @@
font-weight: v.$weight-normal;
&:hover {
background-color: var(--highlight-color-2-alpha);
color: var(--highlight-color);
background-color: var(--hg-color-2-alpha);
color: var(--hg-color);
}
}
}
@ -384,14 +384,21 @@ nav li {
.header-cover:not(:only-child) {
float: right;
position: relative;
z-index: 1000;
background-color: var(--body-bg);
height: var(--header-height);
max-width: calc(var(--header-height) * 2);
margin: 0 0 v.$mp-4 v.$mp-4;
img { width: 100%; height: 100%; }
}
.header-cover:only-child {
with: 100%;
}
// ---- ---- detail
.page-content {
margin-top: v.$mp-6;
@ -401,6 +408,29 @@ nav li {
}
}
// ---- ---- list
.list-item {
&.logs {
.track .icon {
color: var(--secondary-color-dark);
}
}
&:nth-child(3n) {
padding: v.$mp-3;
border-radius: v.$mp-2;
border: 1px solid var(--main-color-dark) !important;
}
&:nth-child(3n+1) {
border-radius: v.$mp-2;
border: 1px solid var(--secondary-color-dark) !important;
}
}
// ---- responsive
body { font-size: 1.4em; }

View File

@ -1,24 +1,27 @@
<template>
<section class="a-carousel">
<nav class="a-carousel-button-container" v-if="showPrevButton">
<button :class="[buttonClass, 'prev']" aria-label="Go left" @click="prev">
<span class="icon">
<i :class="leftButtonIcon"></i>
</span>
</button>
</nav>
<div class="a-carousel-button-container" v-if="showNextButton">
<button :class="[buttonClass, 'next']" aria-label="Go left" @click="next">
<span class="icon">
<i :class="rightButtonIcon"></i>
</span>
</button>
</div>
<nav ref="viewport" class="a-carousel-viewport">
<section ref="container" :class="['a-carousel-container', containerClass]">
<slot name="default"></slot>
</section>
</nav>
<nav class="a-carousel-bullets-container">
<!-- <span class="icon bullet" @click="prev" v-if="showPrevButton">
<i :class="leftButtonIcon"></i>
</span> -->
<template v-if="bullets.length > 1">
<span class="icon bullet" v-bind:key="bullet" v-for="bullet of bullets" @click="select(bullet)">
<i v-if="bullet == index" class="fa fa-circle"></i>
<i v-else class="far fa-circle"></i>
</span>
</template>
<!-- <span class="icon bullet" @click="next" v-if="showNextButton">
<i :class="rightButtonIcon"></i>
</span> -->
<slot name="bullets-right" :v-bind="this"></slot>
</nav>
</section>
</template>
<style scoped>
@ -42,10 +45,62 @@
flex-shrink: 0;
}
.a-carousel-bullets-container {
justify-content: center;
flex-grow: 1;
}
.a-carousel-bullets-container .bullet {
cursor: pointer;
}
.a-carousel-bullets-container .bullet-right {
margin-left: auto;
}
.a-carousel-bullets-container {
display: flex;
flex-direction: row;
}
</style>
<script>
import {ref} from 'vue'
class Offset {
constructor(el, min=null, max=null) {
this.el = el
this.rect = el.getBoundingClientRect();
({min, max} = this.minmax(min, max))
this.min = min
this.max = max
this.size = max-min
}
minmax(min=null, max=null) {
min = min === null ? this.rect.left : min
max = max === null ? this.rect.right : max
return {min, max}
}
relative(to) {
return new Offset(this.el, this.min-to.min, this.max-to.min)
}
}
class Card extends Offset {
constructor(el, index) {
super(el)
this.index = index
}
visible(viewportOffset) {
return viewportOffset.min <= this.min && viewportOffset.max >= this.max
}
}
export default {
setup() {
return {
@ -58,7 +113,7 @@ export default {
return {
cards: [],
index: 0,
refresh_: 0,
refresh_: 0,
}
},
@ -72,109 +127,77 @@ export default {
computed: {
card() { return this.cards()[this.index] },
showPrevButton() {
/*showPrevButton() {
return this.index > 0
},
showNextButton() {
if(!this.cards || this.cards.length <= 1)
return false
let { count } = this.visibility
return (this.index + count) < this.cards.length
},
},*/
visibility() {
// force refresh on index
[this.index, this.refresh_]
bullets() {
if(!this.cards || !this.$refs.viewport)
return []
if(!this.cards)
return {min: -1, max: -1, count: 0};
let contOff = new Offset(this.$refs.container)
let viewMax = new Offset(this.$refs.viewport).max
let bullets = []
const vOff = this.offset(this.$refs.viewport)
var [min, max] = [-1, -1]
for(let at=0; at < this.cards.length; at++) {
const card = this.cards[at]
const cOff = this.offset(card)
const visible = vOff.min <= cOff.min && vOff.max >= cOff.max
if(visible) {
if(min === -1)
min = parseInt(at)
max = parseInt(at)
let i = 0;
let max = viewMax
bullets.push(i)
while(i < this.cards.length) {
// skip until next view
for(; i < this.cards.length; i++) {
let card = this.cards[i].relative(contOff)
if(card.max > max) {
max = card.min + viewMax
bullets.push(i)
i++
break
}
}
}
if(max !== -1)
max++
return {
min, max,
count: (min !== -1) ? max-min : 0
}
return bullets
},
},
methods: {
offset(el, parent=null) {
const rect = el.getBoundingClientRect()
const off = {min: rect.left, max: rect.right }
if(parent === null)
return off
const pOff = this.offset(parent)
return {
min: off.min - pOff.min,
max: off.max - pOff.max,
}
},
getCards() {
if(!this.$refs.container)
return []
if(!this.cardSelector)
return this.$refs.container.children
return this.$refs.container.querySelectorAll(this.cardSelector)
let nodes = (!this.cardSelector) ?
[...this.$refs.container.children] :
[...this.$refs.container.querySelectorAll(this.cardSelector)]
return nodes.map((el, index) => new Card(el, index))
},
selectIndex(index, relative=false) {
select(index, relative=false) {
if(relative)
index = this.index + index
index = Math.min(this.cards.length, index)
const el = this.cards[index]
if(!el)
index = Math.min(index, this.cards.length)
index = Math.max(index, 0)
let card = this.cards[index]
if(!card)
return null;
const elOff = this.offset(el, this.$refs.container)
this.$refs.container.style.marginLeft = `-${elOff.min}px`
card = new Card(card.el)
const cont = new Offset(this.$refs.container)
const rel = card.relative(cont)
this.$refs.container.style.marginLeft = `-${rel.min}px`
this.index = index;
return el
},
next() {
this.refresh_++
if(!this.visibility.count)
return
let {count} = this.visibility
let at = Math.min(
count === 1 ? this.index+count : this.index+count-1,
this.cards.length-count
)
this.selectIndex(at)
},
prev() {
this.refresh_++
if(!this.visibility.count)
return
const {min, count} = this.visibility
let at = Math.max(0, min-count)
if(min < 0 || count <= 0)
return
this.selectIndex(at)
return card.el
},
refresh() {
this.cards = this.getCards()
this.selectIndex(this.index)
this.select(this.index)
this.refresh_++
}
},