restored
1
resources/assets/vendor/libs/animate-css/animate.scss
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@import 'animate.css/animate';
|
7
resources/assets/vendor/libs/animate-on-scroll/animate-on-scroll.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import AOS from 'aos/dist/aos';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.AOS = AOS;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { AOS };
|
1
resources/assets/vendor/libs/animate-on-scroll/animate-on-scroll.scss
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@import 'aos/dist/aos';
|
171
resources/assets/vendor/libs/apex-charts/apex-charts.scss
vendored
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
/**
|
||||||
|
* Apex Charts
|
||||||
|
*/
|
||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
@import 'apexcharts-clevision/dist/apexcharts';
|
||||||
|
|
||||||
|
// Light style
|
||||||
|
@if $enable-light-style {
|
||||||
|
.light-style {
|
||||||
|
.apexcharts-canvas {
|
||||||
|
.apexcharts-tooltip {
|
||||||
|
background: light.$card-bg;
|
||||||
|
border-color: light.$border-color;
|
||||||
|
box-shadow: light.$box-shadow;
|
||||||
|
.apexcharts-tooltip-title {
|
||||||
|
background: light.$card-bg;
|
||||||
|
border-color: light.$border-color;
|
||||||
|
font-family: light.$font-family-base !important;
|
||||||
|
}
|
||||||
|
&.apexcharts-theme-light {
|
||||||
|
color: light.$headings-color;
|
||||||
|
}
|
||||||
|
&.apexcharts-theme-dark {
|
||||||
|
color: light.$white;
|
||||||
|
}
|
||||||
|
.apexcharts-tooltip-title {
|
||||||
|
font-weight: light.$headings-font-weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.apexcharts-xaxistooltip,
|
||||||
|
.apexcharts-yaxistooltip {
|
||||||
|
background: light.$body-bg;
|
||||||
|
border-color: light.$border-color;
|
||||||
|
color: light.$headings-color;
|
||||||
|
&.apexcharts-xaxistooltip-bottom,
|
||||||
|
&.apexcharts-yaxistooltip-bottom {
|
||||||
|
&:after {
|
||||||
|
border-bottom-color: light.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-bottom-color: light.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-left,
|
||||||
|
&.apexcharts-yaxistooltip-left {
|
||||||
|
&:after {
|
||||||
|
border-left-color: light.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-left-color: light.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-right,
|
||||||
|
&.apexcharts-yaxistooltip-right {
|
||||||
|
&:after {
|
||||||
|
border-right-color: light.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-right-color: light.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-top,
|
||||||
|
&.apexcharts-yaxistooltip-top {
|
||||||
|
&:after {
|
||||||
|
border-top-color: light.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-top-color: light.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.apexcharts-tooltip-text {
|
||||||
|
font-family: light.$font-family-base !important;
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Dark Style
|
||||||
|
@if $enable-dark-style {
|
||||||
|
.dark-style {
|
||||||
|
#radarChart {
|
||||||
|
.apexcharts-canvas {
|
||||||
|
.apexcharts-grid line {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.apexcharts-canvas {
|
||||||
|
.apexcharts-tooltip {
|
||||||
|
background: dark.$body-bg;
|
||||||
|
border-color: dark.$border-color;
|
||||||
|
box-shadow: dark.$box-shadow;
|
||||||
|
.apexcharts-tooltip-title {
|
||||||
|
background: dark.$body-bg;
|
||||||
|
border-color: dark.$border-color;
|
||||||
|
font-family: dark.$font-family-base !important;
|
||||||
|
}
|
||||||
|
&.apexcharts-theme-light {
|
||||||
|
color: dark.$headings-color;
|
||||||
|
}
|
||||||
|
&.apexcharts-theme-dark {
|
||||||
|
color: dark.$white;
|
||||||
|
}
|
||||||
|
.apexcharts-tooltip-title {
|
||||||
|
font-weight: dark.$headings-font-weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.apexcharts-xaxistooltip,
|
||||||
|
.apexcharts-yaxistooltip {
|
||||||
|
background: dark.$body-bg;
|
||||||
|
color: dark.$headings-color;
|
||||||
|
border-color: dark.$border-color;
|
||||||
|
&.apexcharts-xaxistooltip-bottom,
|
||||||
|
&.apexcharts-yaxistooltip-bottom {
|
||||||
|
&:after {
|
||||||
|
border-bottom-color: dark.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-bottom-color: dark.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-left,
|
||||||
|
&.apexcharts-yaxistooltip-left {
|
||||||
|
&:after {
|
||||||
|
border-left-color: dark.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-left-color: dark.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-right,
|
||||||
|
&.apexcharts-yaxistooltip-right {
|
||||||
|
&:after {
|
||||||
|
border-right-color: dark.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-right-color: dark.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.apexcharts-xaxistooltip-top,
|
||||||
|
&.apexcharts-yaxistooltip-top {
|
||||||
|
&:after {
|
||||||
|
border-top-color: dark.$body-bg;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
border-top-color: dark.$border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTL
|
||||||
|
@include app-rtl(false) {
|
||||||
|
.apexcharts-canvas {
|
||||||
|
.apexcharts-yaxis {
|
||||||
|
text {
|
||||||
|
text-anchor: start;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.apexcharts-legend-marker,
|
||||||
|
.apexcharts-tooltip-marker {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
resources/assets/vendor/libs/apex-charts/apexcharts.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import ApexCharts from 'apexcharts-clevision';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.ApexCharts = ApexCharts;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { ApexCharts };
|
5
resources/assets/vendor/libs/dropzone/_mixins.scss
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
@mixin dropzone-theme($border) {
|
||||||
|
.dropzone.dz-drag-hover {
|
||||||
|
border-color: $border !important;
|
||||||
|
}
|
||||||
|
}
|
56
resources/assets/vendor/libs/dropzone/dropzone.js
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import Dropzone from 'dropzone/dist/dropzone';
|
||||||
|
|
||||||
|
Dropzone.autoDiscover = false;
|
||||||
|
|
||||||
|
// File upload progress animation
|
||||||
|
Dropzone.prototype.uploadFiles = function (files) {
|
||||||
|
const minSteps = 6;
|
||||||
|
const maxSteps = 60;
|
||||||
|
const timeBetweenSteps = 100;
|
||||||
|
const bytesPerStep = 100000;
|
||||||
|
const isUploadSuccess = true;
|
||||||
|
|
||||||
|
const self = this;
|
||||||
|
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const file = files[i];
|
||||||
|
const totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep)));
|
||||||
|
|
||||||
|
for (let step = 0; step < totalSteps; step++) {
|
||||||
|
const duration = timeBetweenSteps * (step + 1);
|
||||||
|
|
||||||
|
setTimeout(
|
||||||
|
(function (file, totalSteps, step) {
|
||||||
|
return function () {
|
||||||
|
file.upload = {
|
||||||
|
progress: (100 * (step + 1)) / totalSteps,
|
||||||
|
total: file.size,
|
||||||
|
bytesSent: ((step + 1) * file.size) / totalSteps
|
||||||
|
};
|
||||||
|
|
||||||
|
self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent);
|
||||||
|
if (file.upload.progress === 100) {
|
||||||
|
if (isUploadSuccess) {
|
||||||
|
file.status = Dropzone.SUCCESS;
|
||||||
|
self.emit('success', file, 'success', null);
|
||||||
|
} else {
|
||||||
|
file.status = Dropzone.ERROR;
|
||||||
|
self.emit('error', file, 'Some upload error', null);
|
||||||
|
}
|
||||||
|
|
||||||
|
self.emit('complete', file);
|
||||||
|
self.processQueue();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(file, totalSteps, step),
|
||||||
|
duration
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.Dropzone = Dropzone;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { Dropzone };
|
423
resources/assets/vendor/libs/dropzone/dropzone.scss
vendored
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
// Dropzone
|
||||||
|
|
||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
|
||||||
|
$dz-box-padding: 1.25rem !default;
|
||||||
|
$dz-icon-size: 1.875rem !default;
|
||||||
|
$dz-thumbnail-width: 10rem !default;
|
||||||
|
$dz-thumbnail-height: 7.5rem !default;
|
||||||
|
$dz-preview-padding: 0.625rem !default;
|
||||||
|
$dz-progress-height: 0.5rem !default;
|
||||||
|
$dz-icon-block-size: 3.75rem !default;
|
||||||
|
|
||||||
|
// common styles
|
||||||
|
.dropzone {
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: light.$border-radius-lg;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
|
||||||
|
// Disabled
|
||||||
|
&:not(.dz-clickable) {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hover
|
||||||
|
&.dz-drag-hover {
|
||||||
|
border-style: solid;
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
font-size: light.$h4-font-size;
|
||||||
|
line-height: light.$h4-line-height;
|
||||||
|
.note {
|
||||||
|
font-size: light.$font-size-base;
|
||||||
|
line-height: light.$line-height-base;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback
|
||||||
|
.dz-browser-not-supported {
|
||||||
|
&.dropzone-box {
|
||||||
|
min-height: auto !important;
|
||||||
|
border: none !important;
|
||||||
|
border-radius: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
width: auto !important;
|
||||||
|
cursor: default !important;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default message
|
||||||
|
|
||||||
|
.dz-started .dz-message {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
margin: 5rem 0;
|
||||||
|
font-weight: light.$font-weight-medium;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.note {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
font-weight: light.$font-weight-normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preview
|
||||||
|
.dz-preview {
|
||||||
|
position: relative;
|
||||||
|
vertical-align: top;
|
||||||
|
margin-left: 1rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
background: #fff;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
box-sizing: content-box;
|
||||||
|
cursor: default;
|
||||||
|
@include light.media-breakpoint-down(sm) {
|
||||||
|
margin: $dz-box-padding - 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// File information
|
||||||
|
.dz-filename {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: $dz-preview-padding $dz-preview-padding 0 $dz-preview-padding;
|
||||||
|
background: #fff;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
white-space: normal;
|
||||||
|
text-overflow: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-size {
|
||||||
|
padding: 1.875rem $dz-preview-padding $dz-preview-padding $dz-preview-padding;
|
||||||
|
font-size: 0.6875rem;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Progressbar
|
||||||
|
.dz-preview .progress,
|
||||||
|
.dz-preview .progess-bar {
|
||||||
|
height: $dz-progress-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-preview .progress {
|
||||||
|
position: absolute;
|
||||||
|
left: 1.25rem;
|
||||||
|
right: 1.25rem;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -$dz-progress-height * 0.5;
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-complete .progress {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Thumbnail
|
||||||
|
.dz-thumbnail {
|
||||||
|
position: relative;
|
||||||
|
padding: $dz-preview-padding;
|
||||||
|
height: $dz-thumbnail-height;
|
||||||
|
text-align: center;
|
||||||
|
box-sizing: content-box;
|
||||||
|
|
||||||
|
> img,
|
||||||
|
.dz-nopreview {
|
||||||
|
top: 50%;
|
||||||
|
position: relative;
|
||||||
|
transform: translateY(-50%) scale(1);
|
||||||
|
margin: 0 auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
> img {
|
||||||
|
max-height: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-nopreview {
|
||||||
|
font-weight: light.$font-weight-medium;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.6875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-thumbnail img[src] ~ .dz-nopreview {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove link
|
||||||
|
.dz-remove {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.375rem 0;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
border-top-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// error/success states
|
||||||
|
.dz-error-mark,
|
||||||
|
.dz-success-mark {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
display: none;
|
||||||
|
margin-left: -$dz-icon-block-size * 0.5;
|
||||||
|
margin-top: -$dz-icon-block-size * 0.5;
|
||||||
|
height: $dz-icon-block-size;
|
||||||
|
width: $dz-icon-block-size;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-position: center center;
|
||||||
|
background-size: $dz-icon-size $dz-icon-size;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.06);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-success-mark {
|
||||||
|
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-mark {
|
||||||
|
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-message {
|
||||||
|
position: absolute;
|
||||||
|
top: -1px;
|
||||||
|
left: -1px;
|
||||||
|
bottom: -1px;
|
||||||
|
right: -1px;
|
||||||
|
display: none;
|
||||||
|
color: #fff;
|
||||||
|
z-index: 40;
|
||||||
|
padding: 0.75rem;
|
||||||
|
text-align: left;
|
||||||
|
overflow: auto;
|
||||||
|
font-weight: light.$font-weight-medium;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error state
|
||||||
|
.dz-error {
|
||||||
|
.dz-error-message {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-mark {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
.dz-error-message {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-mark {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Success state
|
||||||
|
.dz-success .dz-success-mark {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTL
|
||||||
|
@include app-rtl(false) {
|
||||||
|
.dz-hidden-input {
|
||||||
|
left: auto !important;
|
||||||
|
right: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Light style
|
||||||
|
@if $enable-light-style {
|
||||||
|
.light-style {
|
||||||
|
$dz-overlay-bg: light.$dark;
|
||||||
|
$dz-thumbnail-bg: light.$gray-25;
|
||||||
|
$dz-border-color: light.$card-border-color;
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
border: 2px dashed $dz-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-preview {
|
||||||
|
border: light.$card-border-width solid $dz-border-color;
|
||||||
|
border-radius: light.$border-radius;
|
||||||
|
box-shadow: light.$card-box-shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
color: light.$headings-color;
|
||||||
|
.note {
|
||||||
|
color: light.$body-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-thumbnail {
|
||||||
|
border-bottom: 1px solid light.rgba-to-hex($dz-border-color);
|
||||||
|
background: $dz-thumbnail-bg;
|
||||||
|
|
||||||
|
@include light.border-top-radius(if(light.$border-radius, calc(#{light.$border-radius} - 1px), 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-size {
|
||||||
|
color: light.$text-muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-remove {
|
||||||
|
color: light.$body-color;
|
||||||
|
border-top: 1px solid light.rgba-to-hex($dz-border-color);
|
||||||
|
|
||||||
|
@include light.border-bottom-radius(if(light.$border-radius, calc(#{light.$border-radius} - 1px), 0));
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: light.$body-color;
|
||||||
|
background: light.$gray-100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-nopreview {
|
||||||
|
color: light.$text-muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-mark,
|
||||||
|
.dz-success-mark {
|
||||||
|
background-color: rgba($dz-overlay-bg, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-message {
|
||||||
|
background: rgba(map-get(light.$theme-colors, danger), 0.8);
|
||||||
|
|
||||||
|
@include light.border-top-radius(light.$border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
@include light.media-breakpoint-up(sm) {
|
||||||
|
.dz-preview {
|
||||||
|
display: inline-block;
|
||||||
|
width: $dz-thumbnail-width + ($dz-preview-padding * 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-thumbnail {
|
||||||
|
width: $dz-thumbnail-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// dark style
|
||||||
|
@if $enable-dark-style {
|
||||||
|
.dark-style {
|
||||||
|
$dz-overlay-bg: dark.$dark;
|
||||||
|
$dz-thumbnail-bg: dark.$gray-25;
|
||||||
|
$dz-border-color: dark.$card-border-color;
|
||||||
|
|
||||||
|
.dropzone {
|
||||||
|
border: 2px dashed $dz-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-preview {
|
||||||
|
background: dark.$card-bg;
|
||||||
|
border: dark.$card-border-width solid $dz-border-color;
|
||||||
|
border-radius: dark.$border-radius;
|
||||||
|
box-shadow: dark.$card-box-shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-message {
|
||||||
|
color: dark.$headings-color;
|
||||||
|
.note {
|
||||||
|
color: dark.$body-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-filename {
|
||||||
|
background: dark.$card-bg;
|
||||||
|
padding-top: 0.25rem;
|
||||||
|
padding-bottom: 0.25rem;
|
||||||
|
border-bottom: dark.$card-border-width solid $dz-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-size {
|
||||||
|
color: dark.$text-muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-thumbnail {
|
||||||
|
border-bottom: 1px solid $dz-border-color;
|
||||||
|
background: $dz-thumbnail-bg;
|
||||||
|
|
||||||
|
@include dark.border-top-radius(if(dark.$border-radius, calc(#{dark.$border-radius} - 1px), 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-nopreview {
|
||||||
|
color: dark.$text-muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-remove {
|
||||||
|
color: dark.$body-color;
|
||||||
|
border-top: 1px solid $dz-border-color;
|
||||||
|
|
||||||
|
@include dark.border-bottom-radius(if(dark.$border-radius, calc(#{dark.$border-radius} - 1px), 0));
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: dark.$body-color;
|
||||||
|
background: dark.$gray-100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-mark,
|
||||||
|
.dz-success-mark {
|
||||||
|
background-color: rgba($dz-overlay-bg, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-error-message {
|
||||||
|
background: rgba(map-get(dark.$theme-colors, danger), 0.8);
|
||||||
|
|
||||||
|
@include dark.border-top-radius(dark.$border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
@include dark.media-breakpoint-up(sm) {
|
||||||
|
.dz-preview {
|
||||||
|
display: inline-block;
|
||||||
|
width: $dz-thumbnail-width + ($dz-preview-padding * 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dz-thumbnail {
|
||||||
|
width: $dz-thumbnail-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
339
resources/assets/vendor/libs/idletimer/idletimer.js
vendored
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
/*! Idle Timer - v1.1.1 - 2020-06-25
|
||||||
|
* https://github.com/thorst/jquery-idletimer
|
||||||
|
* Copyright (c) 2020 Paul Irish; Licensed MIT */
|
||||||
|
/*
|
||||||
|
mousewheel (deprecated) -> IE6.0, Chrome, Opera, Safari
|
||||||
|
DOMMouseScroll (deprecated) -> Firefox 1.0
|
||||||
|
wheel (standard) -> Chrome 31, Firefox 17, IE9, Firefox Mobile 17.0
|
||||||
|
|
||||||
|
//No need to use, use DOMMouseScroll
|
||||||
|
MozMousePixelScroll -> Firefox 3.5, Firefox Mobile 1.0
|
||||||
|
|
||||||
|
//Events
|
||||||
|
WheelEvent -> see wheel
|
||||||
|
MouseWheelEvent -> see mousewheel
|
||||||
|
MouseScrollEvent -> Firefox 3.5, Firefox Mobile 1.0
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
$.idleTimer = function (firstParam, elem) {
|
||||||
|
var opts;
|
||||||
|
if (typeof firstParam === 'object') {
|
||||||
|
opts = firstParam;
|
||||||
|
firstParam = null;
|
||||||
|
} else if (typeof firstParam === 'number') {
|
||||||
|
opts = { timeout: firstParam };
|
||||||
|
firstParam = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// element to watch
|
||||||
|
elem = elem || document;
|
||||||
|
|
||||||
|
// defaults that are to be stored as instance props on the elem
|
||||||
|
opts = $.extend(
|
||||||
|
{
|
||||||
|
idle: false, // indicates if the user is idle
|
||||||
|
timeout: 30000, // the amount of time (ms) before the user is considered idle
|
||||||
|
events:
|
||||||
|
'mousemove keydown wheel DOMMouseScroll mousewheel mousedown touchstart touchmove MSPointerDown MSPointerMove' // define active events
|
||||||
|
},
|
||||||
|
opts
|
||||||
|
);
|
||||||
|
|
||||||
|
var jqElem = $(elem),
|
||||||
|
obj = jqElem.data('idleTimerObj') || {},
|
||||||
|
/* (intentionally not documented)
|
||||||
|
* Toggles the idle state and fires an appropriate event.
|
||||||
|
* @return {void}
|
||||||
|
*/
|
||||||
|
toggleIdleState = function (e) {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
// toggle the state
|
||||||
|
obj.idle = !obj.idle;
|
||||||
|
|
||||||
|
// store toggle state date time
|
||||||
|
obj.olddate = +new Date();
|
||||||
|
|
||||||
|
// create a custom event, with state and name space
|
||||||
|
var event = $.Event((obj.idle ? 'idle' : 'active') + '.idleTimer');
|
||||||
|
|
||||||
|
// trigger event on object with elem and copy of obj
|
||||||
|
$(elem).trigger(event, [elem, $.extend({}, obj), e]);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Handle event triggers
|
||||||
|
* @return {void}
|
||||||
|
* @method event
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
handleEvent = function (e) {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
// ignore writting to storage unless related to idleTimer
|
||||||
|
if (e.type === 'storage' && e.originalEvent.key !== obj.timerSyncId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is already paused, ignore events for now
|
||||||
|
if (obj.remaining != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
mousemove is kinda buggy, it can be triggered when it should be idle.
|
||||||
|
Typically is happening between 115 - 150 milliseconds after idle triggered.
|
||||||
|
@psyafter & @kaellis report "always triggered if using modal (jQuery ui, with overlay)"
|
||||||
|
@thorst has similar issues on ios7 "after $.scrollTop() on text area"
|
||||||
|
*/
|
||||||
|
if (e.type === 'mousemove') {
|
||||||
|
// if coord are same, it didn't move
|
||||||
|
if (e.pageX === obj.pageX && e.pageY === obj.pageY) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// if coord don't exist how could it move
|
||||||
|
if (typeof e.pageX === 'undefined' && typeof e.pageY === 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// under 200 ms is hard to do, and you would have to stop, as continuous activity will bypass this
|
||||||
|
var elapsed = +new Date() - obj.olddate;
|
||||||
|
if (elapsed < 200) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear any existing timeout
|
||||||
|
clearTimeout(obj.tId);
|
||||||
|
|
||||||
|
// if the idle timer is enabled, flip
|
||||||
|
if (obj.idle) {
|
||||||
|
toggleIdleState(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// store when user was last active
|
||||||
|
obj.lastActive = +new Date();
|
||||||
|
|
||||||
|
// update mouse coord
|
||||||
|
obj.pageX = e.pageX;
|
||||||
|
obj.pageY = e.pageY;
|
||||||
|
|
||||||
|
// sync lastActive
|
||||||
|
if (e.type !== 'storage' && obj.timerSyncId) {
|
||||||
|
if (typeof localStorage !== 'undefined') {
|
||||||
|
localStorage.setItem(obj.timerSyncId, obj.lastActive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set a new timeout
|
||||||
|
obj.tId = setTimeout(toggleIdleState, obj.timeout);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Restore initial settings and restart timer
|
||||||
|
* @return {void}
|
||||||
|
* @method reset
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
reset = function () {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
// reset settings
|
||||||
|
obj.idle = obj.idleBackup;
|
||||||
|
obj.olddate = +new Date();
|
||||||
|
obj.lastActive = obj.olddate;
|
||||||
|
obj.remaining = null;
|
||||||
|
|
||||||
|
// reset Timers
|
||||||
|
clearTimeout(obj.tId);
|
||||||
|
if (!obj.idle) {
|
||||||
|
obj.tId = setTimeout(toggleIdleState, obj.timeout);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Store remaining time, stop timer
|
||||||
|
* You can pause from an idle OR active state
|
||||||
|
* @return {void}
|
||||||
|
* @method pause
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
pause = function () {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
// this is already paused
|
||||||
|
if (obj.remaining != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// define how much is left on the timer
|
||||||
|
obj.remaining = obj.timeout - (+new Date() - obj.olddate);
|
||||||
|
|
||||||
|
// clear any existing timeout
|
||||||
|
clearTimeout(obj.tId);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Start timer with remaining value
|
||||||
|
* @return {void}
|
||||||
|
* @method resume
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
resume = function () {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
// this isn't paused yet
|
||||||
|
if (obj.remaining == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// start timer
|
||||||
|
if (!obj.idle) {
|
||||||
|
obj.tId = setTimeout(toggleIdleState, obj.remaining);
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear remaining
|
||||||
|
obj.remaining = null;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Stops the idle timer. This removes appropriate event handlers
|
||||||
|
* and cancels any pending timeouts.
|
||||||
|
* @return {void}
|
||||||
|
* @method destroy
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
destroy = function () {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
//clear any pending timeouts
|
||||||
|
clearTimeout(obj.tId);
|
||||||
|
|
||||||
|
//Remove data
|
||||||
|
jqElem.removeData('idleTimerObj');
|
||||||
|
|
||||||
|
//detach the event handlers
|
||||||
|
jqElem.off('._idleTimer');
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Returns the time until becoming idle
|
||||||
|
* @return {number}
|
||||||
|
* @method remainingtime
|
||||||
|
* @static
|
||||||
|
*/
|
||||||
|
remainingtime = function () {
|
||||||
|
var obj = $.data(elem, 'idleTimerObj') || {};
|
||||||
|
|
||||||
|
//If idle there is no time remaining
|
||||||
|
if (obj.idle) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//If its paused just return that
|
||||||
|
if (obj.remaining != null) {
|
||||||
|
return obj.remaining;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Determine remaining, if negative idle didn't finish flipping, just return 0
|
||||||
|
var remaining = obj.timeout - (+new Date() - obj.lastActive);
|
||||||
|
if (remaining < 0) {
|
||||||
|
remaining = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//If this is paused return that number, else return current remaining
|
||||||
|
return remaining;
|
||||||
|
};
|
||||||
|
|
||||||
|
// determine which function to call
|
||||||
|
if (firstParam === null && typeof obj.idle !== 'undefined') {
|
||||||
|
// they think they want to init, but it already is, just reset
|
||||||
|
reset();
|
||||||
|
return jqElem;
|
||||||
|
} else if (firstParam === null) {
|
||||||
|
// they want to init
|
||||||
|
} else if (firstParam !== null && typeof obj.idle === 'undefined') {
|
||||||
|
// they want to do something, but it isnt init
|
||||||
|
// not sure the best way to handle this
|
||||||
|
return false;
|
||||||
|
} else if (firstParam === 'destroy') {
|
||||||
|
destroy();
|
||||||
|
return jqElem;
|
||||||
|
} else if (firstParam === 'pause') {
|
||||||
|
pause();
|
||||||
|
return jqElem;
|
||||||
|
} else if (firstParam === 'resume') {
|
||||||
|
resume();
|
||||||
|
return jqElem;
|
||||||
|
} else if (firstParam === 'reset') {
|
||||||
|
reset();
|
||||||
|
return jqElem;
|
||||||
|
} else if (firstParam === 'getRemainingTime') {
|
||||||
|
return remainingtime();
|
||||||
|
} else if (firstParam === 'getElapsedTime') {
|
||||||
|
return +new Date() - obj.olddate;
|
||||||
|
} else if (firstParam === 'getLastActiveTime') {
|
||||||
|
return obj.lastActive;
|
||||||
|
} else if (firstParam === 'isIdle') {
|
||||||
|
return obj.idle;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test via a getter in the options object to see if the passive property is accessed
|
||||||
|
// This isnt working in jquery, though is planned for 4.0
|
||||||
|
// https://github.com/jquery/jquery/issues/2871
|
||||||
|
/*var supportsPassive = false;
|
||||||
|
try {
|
||||||
|
var Popts = Object.defineProperty({}, "passive", {
|
||||||
|
get: function() {
|
||||||
|
supportsPassive = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.addEventListener("test", null, Popts);
|
||||||
|
} catch (e) {}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* (intentionally not documented)
|
||||||
|
* Handles a user event indicating that the user isn't idle. namespaced with internal idleTimer
|
||||||
|
* @param {Event} event A DOM2-normalized event object.
|
||||||
|
* @return {void}
|
||||||
|
*/
|
||||||
|
jqElem.on((opts.events + ' ').split(' ').join('._idleTimer ').trim(), function (e) {
|
||||||
|
handleEvent(e);
|
||||||
|
});
|
||||||
|
//}, supportsPassive ? { passive: true } : false);
|
||||||
|
|
||||||
|
if (opts.timerSyncId) {
|
||||||
|
$(window).on('storage', handleEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Internal Object Properties, This isn't all necessary, but we
|
||||||
|
// explicitly define all keys here so we know what we are working with
|
||||||
|
obj = $.extend(
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
olddate: +new Date(), // the last time state changed
|
||||||
|
lastActive: +new Date(), // the last time timer was active
|
||||||
|
idle: opts.idle, // current state
|
||||||
|
idleBackup: opts.idle, // backup of idle parameter since it gets modified
|
||||||
|
timeout: opts.timeout, // the interval to change state
|
||||||
|
remaining: null, // how long until state changes
|
||||||
|
timerSyncId: opts.timerSyncId, // localStorage key to use for syncing this timer
|
||||||
|
tId: null, // the idle timer setTimeout
|
||||||
|
pageX: null, // used to store the mouse coord
|
||||||
|
pageY: null
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// set a timeout to toggle state. May wish to omit this in some situations
|
||||||
|
if (!obj.idle) {
|
||||||
|
obj.tId = setTimeout(toggleIdleState, obj.timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// store our instance on the object
|
||||||
|
$.data(elem, 'idleTimerObj', obj);
|
||||||
|
|
||||||
|
return jqElem;
|
||||||
|
};
|
||||||
|
|
||||||
|
// This allows binding to element
|
||||||
|
$.fn.idleTimer = function (firstParam) {
|
||||||
|
if (this[0]) {
|
||||||
|
return $.idleTimer(firstParam, this[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
})(jQuery);
|
1
resources/assets/vendor/libs/jkanban/jkanban.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'jkanban/dist/jkanban';
|
28
resources/assets/vendor/libs/jkanban/jkanban.scss
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
@import 'jkanban/dist/jkanban';
|
||||||
|
|
||||||
|
// Light layout
|
||||||
|
@if $enable-light-style {
|
||||||
|
.light-style {
|
||||||
|
.kanban-board {
|
||||||
|
background: light.$border-color;
|
||||||
|
}
|
||||||
|
.kanban-item {
|
||||||
|
background: light.$card-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dark layout
|
||||||
|
@if $enable-dark-style {
|
||||||
|
.dark-style {
|
||||||
|
.kanban-board {
|
||||||
|
background: dark.$border-color;
|
||||||
|
}
|
||||||
|
.kanban-item {
|
||||||
|
background: dark.$card-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
resources/assets/vendor/libs/jquery-repeater/jquery-repeater.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'jquery.repeater/jquery.repeater';
|
1
resources/assets/vendor/libs/jquery-sticky/jquery-sticky.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'jquery-sticky/jquery.sticky';
|
11
resources/assets/vendor/libs/jquery-timepicker/_mixins.scss
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
@import '../../scss/_bootstrap-extended/_functions';
|
||||||
|
|
||||||
|
@mixin timepicker-theme($background, $color: null) {
|
||||||
|
$color: if($color, $color, color-contrast($background));
|
||||||
|
|
||||||
|
li.ui-timepicker-selected,
|
||||||
|
.ui-timepicker-list .ui-timepicker-selected:hover {
|
||||||
|
color: $color !important;
|
||||||
|
background: $background !important;
|
||||||
|
}
|
||||||
|
}
|
1
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'timepicker/jquery.timepicker';
|
116
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.scss
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
|
||||||
|
.ui-timepicker-wrapper {
|
||||||
|
max-height: 10rem;
|
||||||
|
overflow-y: auto;
|
||||||
|
margin: 0.125rem 0;
|
||||||
|
background: #fff;
|
||||||
|
background-clip: padding-box;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0.125rem 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-duration {
|
||||||
|
margin-left: 0.25rem;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0.25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list li {
|
||||||
|
padding: 0.4rem 0.75rem;
|
||||||
|
margin: 0.2rem 0.51rem;
|
||||||
|
white-space: nowrap;
|
||||||
|
cursor: pointer;
|
||||||
|
list-style: none;
|
||||||
|
border-radius: light.$border-radius-lg;
|
||||||
|
|
||||||
|
&.ui-timepicker-disabled,
|
||||||
|
&.ui-timepicker-selected.ui-timepicker-disabled {
|
||||||
|
background: #fff !important;
|
||||||
|
cursor: default !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-light-style {
|
||||||
|
.light-style {
|
||||||
|
.ui-timepicker-wrapper {
|
||||||
|
padding: light.$dropdown-padding-y + 0;
|
||||||
|
z-index: light.$zindex-popover;
|
||||||
|
background: light.$dropdown-bg;
|
||||||
|
box-shadow: light.$card-box-shadow;
|
||||||
|
border: light.$dropdown-border-width solid light.$dropdown-border-color;
|
||||||
|
|
||||||
|
@include light.border-radius(light.$border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list li {
|
||||||
|
color: light.$dropdown-link-color;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: light.$dropdown-link-hover-bg;
|
||||||
|
}
|
||||||
|
&:not(.ui-timepicker-selected) {
|
||||||
|
.ui-timepicker-duration {
|
||||||
|
color: light.$text-muted;
|
||||||
|
|
||||||
|
.ui-timepicker-list:hover & {
|
||||||
|
color: light.$text-muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list li.ui-timepicker-disabled,
|
||||||
|
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
|
||||||
|
background: light.$dropdown-bg !important;
|
||||||
|
color: light.$dropdown-link-disabled-color !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-style {
|
||||||
|
.dark-style {
|
||||||
|
.ui-timepicker-wrapper {
|
||||||
|
border: dark.$dropdown-border-width solid dark.$dropdown-border-color;
|
||||||
|
padding: dark.$dropdown-padding-y 0;
|
||||||
|
z-index: dark.$zindex-popover;
|
||||||
|
background: dark.$dropdown-bg;
|
||||||
|
box-shadow: dark.$card-box-shadow;
|
||||||
|
|
||||||
|
@include dark.border-radius(dark.$border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list li {
|
||||||
|
color: dark.$dropdown-link-color;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: dark.$dropdown-link-hover-bg;
|
||||||
|
}
|
||||||
|
&:not(.ui-timepicker-selected) {
|
||||||
|
.ui-timepicker-duration {
|
||||||
|
color: dark.$text-muted;
|
||||||
|
|
||||||
|
.ui-timepicker-list:hover & {
|
||||||
|
color: dark.$text-muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-timepicker-list li.ui-timepicker-disabled,
|
||||||
|
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
|
||||||
|
color: dark.$dropdown-link-disabled-color !important;
|
||||||
|
background: dark.$dropdown-bg !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
resources/assets/vendor/libs/jstree/jstree.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
import 'jstree/dist/jstree';
|
160
resources/assets/vendor/libs/jstree/jstree.scss
vendored
Normal file
123
resources/assets/vendor/libs/jstree/themes/_theme.scss
vendored
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
@import '../../../scss/_bootstrap-extended/include'; // imported for media query mixin
|
||||||
|
|
||||||
|
// Light Style
|
||||||
|
@if $enable-light-style {
|
||||||
|
$theme-name: 'default';
|
||||||
|
$throbber-bg: "url('./themes/default/throbber.gif')";
|
||||||
|
$small-bg: "url('./themes/default/32px.png')";
|
||||||
|
$big-bg: "url('./themes/default/40px.png')";
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.jstree-#{$theme-name} > .jstree-container-ul .jstree-loading > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-small > .jstree-container-ul .jstree-loading > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
|
||||||
|
background-image: #{$throbber-bg};
|
||||||
|
}
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} .jstree-node,
|
||||||
|
.jstree-#{$theme-name} .jstree-icon,
|
||||||
|
.jstree-#{$theme-name} .jstree-file,
|
||||||
|
.jstree-#{$theme-name} .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name} .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name} .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-small .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-small .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-large .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-large .jstree-er {
|
||||||
|
background-image: #{$small-bg};
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
#jstree-dnd.jstree-dnd-responsive > .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-dnd-responsive > .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-node > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-themeicon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-checkbox,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-folder {
|
||||||
|
background-image: #{$big-bg};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} .jstree-last,
|
||||||
|
.jstree-#{$theme-name} > .jstree-no-dots .jstree-node,
|
||||||
|
.jstree-#{$theme-name} > .jstree-no-dots .jstree-leaf > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name} .jstree-disabled,
|
||||||
|
.jstree-#{$theme-name} .jstree-themeicon-custom:not(.jstree-file):not(.jstree-folder) {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dark Style
|
||||||
|
@if $enable-dark-style {
|
||||||
|
$theme-name: 'default-dark';
|
||||||
|
$throbber-bg: "url('./themes/default-dark/throbber.gif')";
|
||||||
|
$small-bg: "url('./themes/default-dark/32px.png')";
|
||||||
|
$big-bg: "url('./themes/default-dark/40px.png')";
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.jstree-#{$theme-name} > .jstree-container-ul .jstree-loading > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-small > .jstree-container-ul .jstree-loading > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
|
||||||
|
background-image: #{$throbber-bg};
|
||||||
|
}
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} .jstree-node,
|
||||||
|
.jstree-#{$theme-name} .jstree-icon,
|
||||||
|
.jstree-#{$theme-name} .jstree-file,
|
||||||
|
.jstree-#{$theme-name} .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name} .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name} .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-small .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-small .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-small .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-large .jstree-folder,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-large .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-#{$theme-name}-large .jstree-er {
|
||||||
|
background-image: #{$small-bg};
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
#jstree-dnd.jstree-dnd-responsive > .jstree-ok,
|
||||||
|
#jstree-dnd.jstree-dnd-responsive > .jstree-er,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-node,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-icon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-node > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-themeicon,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-checkbox,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-file,
|
||||||
|
.jstree-#{$theme-name}-responsive .jstree-folder {
|
||||||
|
background-image: #{$big-bg};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.jstree-#{$theme-name} .jstree-last,
|
||||||
|
.jstree-#{$theme-name} > .jstree-no-dots .jstree-node,
|
||||||
|
.jstree-#{$theme-name} > .jstree-no-dots .jstree-leaf > .jstree-ocl,
|
||||||
|
.jstree-#{$theme-name} .jstree-disabled,
|
||||||
|
.jstree-#{$theme-name} .jstree-themeicon-custom:not(.jstree-file):not(.jstree-folder) {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
BIN
resources/assets/vendor/libs/jstree/themes/default-dark/32px.png
vendored
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
resources/assets/vendor/libs/jstree/themes/default-dark/40px.png
vendored
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
resources/assets/vendor/libs/jstree/themes/default-dark/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
resources/assets/vendor/libs/jstree/themes/default/32px.png
vendored
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
resources/assets/vendor/libs/jstree/themes/default/40px.png
vendored
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
resources/assets/vendor/libs/jstree/themes/default/throbber.gif
vendored
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/layers-2x.png
vendored
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/layers.png
vendored
Normal file
After Width: | Height: | Size: 696 B |
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon-2x.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon.png
vendored
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/marker-shadow.png
vendored
Normal file
After Width: | Height: | Size: 618 B |
19
resources/assets/vendor/libs/leaflet/leaflet.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import leaFlet from 'leaflet';
|
||||||
|
|
||||||
|
import markerIcon2x from 'leaflet/dist/images/marker-icon-2x.png';
|
||||||
|
import markerIcon from 'leaflet/dist/images/marker-icon.png';
|
||||||
|
import markerShadow from 'leaflet/dist/images/marker-shadow.png';
|
||||||
|
|
||||||
|
delete leaFlet.Icon.Default.prototype._getIconUrl;
|
||||||
|
|
||||||
|
leaFlet.Icon.Default.mergeOptions({
|
||||||
|
iconRetinaUrl: markerIcon2x,
|
||||||
|
iconUrl: markerIcon,
|
||||||
|
shadowUrl: markerShadow
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.leaFlet = leaFlet;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { leaFlet };
|
46
resources/assets/vendor/libs/leaflet/leaflet.scss
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
@import '../../scss/_bootstrap-extended/include';
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
@import 'leaflet/dist/leaflet';
|
||||||
|
|
||||||
|
.leaflet-map {
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-pane {
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTL
|
||||||
|
|
||||||
|
@include app-rtl(false) {
|
||||||
|
.leaflet-map {
|
||||||
|
.leaflet-control-container {
|
||||||
|
.leaflet-left {
|
||||||
|
right: 0;
|
||||||
|
left: unset;
|
||||||
|
.leaflet-control-zoom,
|
||||||
|
.leaflet-control-layers {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.leaflet-right {
|
||||||
|
left: 0;
|
||||||
|
right: unset;
|
||||||
|
.leaflet-control-zoom,
|
||||||
|
.leaflet-control-layers {
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Map tooltip border radius
|
||||||
|
|
||||||
|
.leaflet-popup {
|
||||||
|
.leaflet-popup-content-wrapper {
|
||||||
|
border-radius: $border-radius;
|
||||||
|
}
|
||||||
|
}
|
7
resources/assets/vendor/libs/mapbox-gl/mapbox-gl.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import mapboxgl from 'mapbox-gl';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.mapboxgl = mapboxgl;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { mapboxgl };
|
8
resources/assets/vendor/libs/mapbox-gl/mapbox-gl.scss
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
@import 'mapbox-gl/dist/mapbox-gl';
|
||||||
|
|
||||||
|
.marker-focus {
|
||||||
|
filter: drop-shadow(0px 0px 7px light.$primary);
|
||||||
|
}
|
7
resources/assets/vendor/libs/masonry/masonry.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import Masonry from 'masonry-layout';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.Masonry = Masonry;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { Masonry };
|
115
resources/assets/vendor/libs/quill/_mixins.scss
vendored
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
@mixin quill-generate-lists($indent) {
|
||||||
|
$quill-list-types: (
|
||||||
|
1: lower-alpha,
|
||||||
|
2: lower-roman,
|
||||||
|
3: decimal,
|
||||||
|
4: lower-alpha,
|
||||||
|
5: lower-roman,
|
||||||
|
6: decimal,
|
||||||
|
7: lower-alpha,
|
||||||
|
8: lower-roman,
|
||||||
|
9: decimal
|
||||||
|
);
|
||||||
|
|
||||||
|
@for $i from 1 through 9 {
|
||||||
|
ol li.ql-indent-#{$i} {
|
||||||
|
counter-increment: list-#{$i};
|
||||||
|
|
||||||
|
@if $i < 9 {
|
||||||
|
$lists: '';
|
||||||
|
|
||||||
|
@for $l from $i + 1 through 9 {
|
||||||
|
$lists: '#{$lists} list-#{$l}';
|
||||||
|
}
|
||||||
|
|
||||||
|
counter-reset: #{$lists};
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: counter(list-#{$i}, map-get($quill-list-types, $i)) '. ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-indent-#{$i}:not(.ql-direction-rtl) {
|
||||||
|
padding-left: $indent * $i;
|
||||||
|
|
||||||
|
[dir='rtl'] & {
|
||||||
|
padding-right: $indent * $i;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li.ql-indent-#{$i}:not(.ql-direction-rtl) {
|
||||||
|
padding-left: $indent * ($i + 1);
|
||||||
|
|
||||||
|
[dir='rtl'] & {
|
||||||
|
padding-right: $indent * ($i + 1);
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
|
||||||
|
padding-right: $indent * $i;
|
||||||
|
|
||||||
|
[dir='rtl'] & {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: $indent * $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
|
||||||
|
padding-right: $indent * ($i + 1);
|
||||||
|
|
||||||
|
[dir='rtl'] & {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: $indent * ($i + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin quill-theme($color) {
|
||||||
|
.ql-snow.ql-toolbar,
|
||||||
|
.ql-snow .ql-toolbar {
|
||||||
|
button:hover,
|
||||||
|
button:focus,
|
||||||
|
button.ql-active,
|
||||||
|
.ql-picker-label:hover,
|
||||||
|
.ql-picker-label.ql-active,
|
||||||
|
.ql-picker-item:hover,
|
||||||
|
.ql-picker-item.ql-selected {
|
||||||
|
color: $color !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover .ql-fill,
|
||||||
|
button:focus .ql-fill,
|
||||||
|
button.ql-active .ql-fill,
|
||||||
|
.ql-picker-label:hover .ql-fill,
|
||||||
|
.ql-picker-label.ql-active .ql-fill,
|
||||||
|
.ql-picker-item:hover .ql-fill,
|
||||||
|
.ql-picker-item.ql-selected .ql-fill,
|
||||||
|
button:hover .ql-stroke.ql-fill,
|
||||||
|
button:focus .ql-stroke.ql-fill,
|
||||||
|
button.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-picker-label:hover .ql-stroke.ql-fill,
|
||||||
|
.ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-picker-item:hover .ql-stroke.ql-fill,
|
||||||
|
.ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
||||||
|
fill: $color !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover .ql-stroke,
|
||||||
|
button:focus .ql-stroke,
|
||||||
|
button.ql-active .ql-stroke,
|
||||||
|
.ql-picker-label:hover .ql-stroke,
|
||||||
|
.ql-picker-label.ql-active .ql-stroke,
|
||||||
|
.ql-picker-item:hover .ql-stroke,
|
||||||
|
.ql-picker-item.ql-selected .ql-stroke,
|
||||||
|
button:hover .ql-stroke-miter,
|
||||||
|
button:focus .ql-stroke-miter,
|
||||||
|
button.ql-active .ql-stroke-miter,
|
||||||
|
.ql-picker-label:hover .ql-stroke-miter,
|
||||||
|
.ql-picker-label.ql-active .ql-stroke-miter,
|
||||||
|
.ql-picker-item:hover .ql-stroke-miter,
|
||||||
|
.ql-picker-item.ql-selected .ql-stroke-miter {
|
||||||
|
stroke: $color !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1112
resources/assets/vendor/libs/quill/editor.scss
vendored
Normal file
7
resources/assets/vendor/libs/quill/katex.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import katex from 'katex/dist/katex';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.katex = katex;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { katex };
|
1
resources/assets/vendor/libs/quill/katex.scss
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
@import 'katex/dist/katex';
|
7
resources/assets/vendor/libs/quill/quill.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import Quill from 'quill/dist/quill';
|
||||||
|
|
||||||
|
try {
|
||||||
|
window.Quill = Quill;
|
||||||
|
} catch (e) {}
|
||||||
|
|
||||||
|
export { Quill };
|
289
resources/assets/vendor/libs/quill/typography.scss
vendored
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
@use '../../scss/_bootstrap-extended/include' as light;
|
||||||
|
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||||
|
@import '../../scss/_custom-variables/libs';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
.ql-editor,
|
||||||
|
.ql-content {
|
||||||
|
$quill-indent: 2rem;
|
||||||
|
|
||||||
|
p,
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
pre,
|
||||||
|
blockquote,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol > li,
|
||||||
|
ul > li {
|
||||||
|
list-style-type: none;
|
||||||
|
|
||||||
|
&:not(.ql-direction-rtl) {
|
||||||
|
padding-left: $quill-indent;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
padding-right: $quill-indent;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ql-direction-rtl {
|
||||||
|
padding-right: $quill-indent;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: $quill-indent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li::before {
|
||||||
|
content: '\2022';
|
||||||
|
}
|
||||||
|
|
||||||
|
ul[data-checked='true'],
|
||||||
|
ul[data-checked='false'] {
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
|
> li * {
|
||||||
|
pointer-events: all;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
pointer-events: all;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul[data-checked='false'] > li::before {
|
||||||
|
content: '\2610';
|
||||||
|
}
|
||||||
|
|
||||||
|
ul[data-checked='true'] > li::before {
|
||||||
|
content: '\2611';
|
||||||
|
}
|
||||||
|
|
||||||
|
li::before {
|
||||||
|
display: inline-block;
|
||||||
|
width: calc(#{$quill-indent} - 0.3em);
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.ql-direction-rtl::before {
|
||||||
|
margin-right: -$quill-indent;
|
||||||
|
margin-left: 0.3em;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
margin-right: 0.3em;
|
||||||
|
margin-left: -$quill-indent;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li:not(.ql-direction-rtl)::before {
|
||||||
|
text-align: right;
|
||||||
|
margin-left: -$quill-indent;
|
||||||
|
margin-right: 0.3em;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
text-align: left;
|
||||||
|
margin-left: 0.3em;
|
||||||
|
margin-right: -$quill-indent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ol li {
|
||||||
|
counter-increment: list-0;
|
||||||
|
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: counter(list-0, decimal) '. ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include quill-generate-lists($quill-indent);
|
||||||
|
|
||||||
|
.ql-video {
|
||||||
|
max-width: 100%;
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
&.ql-align-right {
|
||||||
|
margin: 0 0 0 auto;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
margin: 0 auto 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ql-align-center {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-red {
|
||||||
|
background-color: #e60000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-black {
|
||||||
|
background-color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-yellow {
|
||||||
|
background-color: #ff0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-orange {
|
||||||
|
background-color: #f90;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-purple {
|
||||||
|
background-color: #93f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-blue {
|
||||||
|
background-color: #06c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-bg-green {
|
||||||
|
background-color: #008a00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-red {
|
||||||
|
color: #e60000;
|
||||||
|
}
|
||||||
|
.ql-color-white {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-yellow {
|
||||||
|
color: #ff0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-orange {
|
||||||
|
color: #f90;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-purple {
|
||||||
|
color: #93f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-blue {
|
||||||
|
color: #06c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-color-green {
|
||||||
|
color: #008a00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-direction-rtl {
|
||||||
|
direction: rtl;
|
||||||
|
text-align: inherit;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
direction: ltr;
|
||||||
|
text-align: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-align-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-align-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-align-right {
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
@include app-rtl {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Light style
|
||||||
|
@if $enable-light-style {
|
||||||
|
.light-style {
|
||||||
|
.ql-editor,
|
||||||
|
.ql-content {
|
||||||
|
blockquote {
|
||||||
|
font-size: light.$blockquote-font-size;
|
||||||
|
margin-bottom: light.$spacer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-font-serif {
|
||||||
|
font-family: light.$font-family-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-font-monospace {
|
||||||
|
font-family: light.$font-family-monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-size-large {
|
||||||
|
font-size: light.$font-size-lg;
|
||||||
|
}
|
||||||
|
.ql-size-huge {
|
||||||
|
font-size: light.$font-size-xl;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-size-small {
|
||||||
|
font-size: light.$font-size-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dark style
|
||||||
|
@if $enable-dark-style {
|
||||||
|
.dark-style {
|
||||||
|
.ql-editor,
|
||||||
|
.ql-content {
|
||||||
|
blockquote {
|
||||||
|
font-size: dark.$blockquote-font-size;
|
||||||
|
margin-bottom: dark.$spacer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-font-monospace {
|
||||||
|
font-family: dark.$font-family-monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-font-serif {
|
||||||
|
font-family: dark.$font-family-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-size-huge {
|
||||||
|
font-size: dark.$font-size-xl;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-size-large {
|
||||||
|
font-size: dark.$font-size-lg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ql-size-small {
|
||||||
|
font-size: dark.$font-size-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|