Committing laravel (part 3)
committing js templating files and components
This commit is contained in:
parent
74c4b1d3f4
commit
82f958e5da
87 changed files with 3138 additions and 0 deletions
7
resources/js/app.js
Normal file
7
resources/js/app.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import "./bootstrap";
|
||||||
|
import "./vendor/dom";
|
||||||
|
import "./vendor/tailwind-merge";
|
||||||
|
import "./vendor/svg-loader";
|
||||||
|
|
||||||
|
// Load static files
|
||||||
|
import.meta.glob(["../images/**"]);
|
41
resources/js/bootstrap.js
vendored
Normal file
41
resources/js/bootstrap.js
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import _ from "lodash";
|
||||||
|
import helper from "./helper";
|
||||||
|
import { getColor } from "./colors";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
window._ = _;
|
||||||
|
window.helper = helper;
|
||||||
|
window.getColor = getColor;
|
||||||
|
window.dayjs = dayjs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We'll load the axios HTTP library which allows us to easily issue requests
|
||||||
|
* to our Laravel back-end. This library automatically handles sending the
|
||||||
|
* CSRF token as a header based on the value of the "XSRF" token cookie.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import axios from "axios";
|
||||||
|
window.axios = axios;
|
||||||
|
|
||||||
|
window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Echo exposes an expressive API for subscribing to channels and listening
|
||||||
|
* for events that are broadcast by Laravel. Echo and event broadcasting
|
||||||
|
* allows your team to easily build robust real-time web applications.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// import Echo from 'laravel-echo';
|
||||||
|
|
||||||
|
// import Pusher from 'pusher-js';
|
||||||
|
// window.Pusher = Pusher;
|
||||||
|
|
||||||
|
// window.Echo = new Echo({
|
||||||
|
// broadcaster: 'pusher',
|
||||||
|
// key: import.meta.env.VITE_PUSHER_APP_KEY,
|
||||||
|
// cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1',
|
||||||
|
// wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`,
|
||||||
|
// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80,
|
||||||
|
// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443,
|
||||||
|
// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https',
|
||||||
|
// enabledTransports: ['ws', 'wss'],
|
||||||
|
// });
|
24
resources/js/colors.js
Normal file
24
resources/js/colors.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import helper from "./helper";
|
||||||
|
import resolveConfig from "tailwindcss/resolveConfig";
|
||||||
|
import tailwindConfig from "tailwind-config";
|
||||||
|
import flatten from "flat";
|
||||||
|
|
||||||
|
const twConfig = resolveConfig(tailwindConfig);
|
||||||
|
const colors = twConfig.theme?.colors;
|
||||||
|
|
||||||
|
function getColor(colorKey, opacity = 1) {
|
||||||
|
const flattenColors = flatten(colors);
|
||||||
|
|
||||||
|
if (flattenColors[colorKey].search("var") === -1) {
|
||||||
|
return `rgb(${helper.toRGB(flattenColors[colorKey])} / ${opacity})`;
|
||||||
|
} else {
|
||||||
|
const cssVariableName = `--color-${
|
||||||
|
flattenColors[colorKey].split("--color-")[1].split(")")[0]
|
||||||
|
}`;
|
||||||
|
return `rgb(${getComputedStyle(document.body).getPropertyValue(
|
||||||
|
cssVariableName
|
||||||
|
)} / ${opacity})`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { getColor };
|
10
resources/js/components/balloon-block-editor/index.js
Normal file
10
resources/js/components/balloon-block-editor/index.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".editor").each(function () {
|
||||||
|
const el = this;
|
||||||
|
BalloonBlockEditor.create(el).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
10
resources/js/components/balloon-editor/index.js
Normal file
10
resources/js/components/balloon-editor/index.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".editor").each(function () {
|
||||||
|
const el = this;
|
||||||
|
BalloonEditor.create(el).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
17
resources/js/components/calendar/draggable/index.js
Normal file
17
resources/js/components/calendar/draggable/index.js
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".full-calendar-draggable").each(function () {
|
||||||
|
new Draggable(this, {
|
||||||
|
itemSelector: ".event",
|
||||||
|
eventData: function (eventEl) {
|
||||||
|
return {
|
||||||
|
title: $(eventEl).find(".event__title").html(),
|
||||||
|
duration: {
|
||||||
|
days: parseInt($(eventEl).find(".event__days").text()),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
65
resources/js/components/calendar/index.js
Normal file
65
resources/js/components/calendar/index.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".full-calendar").each(function () {
|
||||||
|
let calendar = new Calendar(this, {
|
||||||
|
plugins: [
|
||||||
|
interactionPlugin,
|
||||||
|
dayGridPlugin,
|
||||||
|
timeGridPlugin,
|
||||||
|
listPlugin,
|
||||||
|
],
|
||||||
|
droppable: true,
|
||||||
|
headerToolbar: {
|
||||||
|
left: "prev,next today",
|
||||||
|
center: "title",
|
||||||
|
right: "dayGridMonth,timeGridWeek,timeGridDay,listWeek",
|
||||||
|
},
|
||||||
|
initialDate: "2021-01-12",
|
||||||
|
navLinks: true,
|
||||||
|
editable: true,
|
||||||
|
dayMaxEvents: true,
|
||||||
|
events: [
|
||||||
|
{
|
||||||
|
title: "Vue Vixens Day",
|
||||||
|
start: "2021-01-05",
|
||||||
|
end: "2021-01-08",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "VueConfUS",
|
||||||
|
start: "2021-01-11",
|
||||||
|
end: "2021-01-15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "VueJS Amsterdam",
|
||||||
|
start: "2021-01-17",
|
||||||
|
end: "2021-01-21",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Vue Fes Japan 2019",
|
||||||
|
start: "2021-01-21",
|
||||||
|
end: "2021-01-24",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Laracon 2021",
|
||||||
|
start: "2021-01-24",
|
||||||
|
end: "2021-01-27",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
drop: function (info) {
|
||||||
|
if (
|
||||||
|
$("#checkbox-events").length &&
|
||||||
|
$("#checkbox-events")[0].checked
|
||||||
|
) {
|
||||||
|
$(info.draggedEl).parent().remove();
|
||||||
|
|
||||||
|
if ($("#calendar-events").children().length == 1) {
|
||||||
|
$("#calendar-no-events").removeClass("hidden");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
calendar.render();
|
||||||
|
});
|
||||||
|
})();
|
10
resources/js/components/classic-editor/index.js
Normal file
10
resources/js/components/classic-editor/index.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".editor").each(function () {
|
||||||
|
const el = this;
|
||||||
|
ClassicEditor.create(el).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
17
resources/js/components/dark-mode-switcher/index.js
Normal file
17
resources/js/components/dark-mode-switcher/index.js
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Dark mode switcher
|
||||||
|
$(".dark-mode-switcher").on("click", function () {
|
||||||
|
if ($(this).hasClass("dark-mode-switcher--active")) {
|
||||||
|
$(this).removeClass("dark-mode-switcher--active");
|
||||||
|
} else {
|
||||||
|
$(this).addClass("dark-mode-switcher--active");
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
const link = $(".dark-mode-switcher").data("url");
|
||||||
|
window.location.href = link;
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
})();
|
17
resources/js/components/document-editor/index.js
Normal file
17
resources/js/components/document-editor/index.js
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".editor").each(function () {
|
||||||
|
const el = this;
|
||||||
|
DocumentEditor.create($(el).find(".document-editor__editable")[0])
|
||||||
|
.then((editor) => {
|
||||||
|
$(el)
|
||||||
|
.closest(".editor")
|
||||||
|
.find(".document-editor__toolbar")
|
||||||
|
.append(editor.ui.view.toolbar.element);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
44
resources/js/components/donut-chart/index.js
Normal file
44
resources/js/components/donut-chart/index.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".donut-chart").length) {
|
||||||
|
let ctx = $(".donut-chart")[0].getContext("2d");
|
||||||
|
let myDoughnutChart = new Chart(ctx, {
|
||||||
|
type: "doughnut",
|
||||||
|
data: {
|
||||||
|
labels: ["Html", "Vuejs", "Laravel"],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 5,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cutout: "80%",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
39
resources/js/components/dropzone/index.js
Normal file
39
resources/js/components/dropzone/index.js
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Dropzone
|
||||||
|
Dropzone.autoDiscover = false;
|
||||||
|
$(".dropzone").each(function () {
|
||||||
|
let options = {
|
||||||
|
accept: (file, done) => {
|
||||||
|
console.log("Uploaded");
|
||||||
|
done();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($(this).data("single")) {
|
||||||
|
options.maxFiles = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("file-types")) {
|
||||||
|
options.accept = (file, done) => {
|
||||||
|
if (
|
||||||
|
$(this).data("file-types").split("|").indexOf(file.type) ===
|
||||||
|
-1
|
||||||
|
) {
|
||||||
|
alert("Error! Files of this type are not accepted");
|
||||||
|
done("Error! Files of this type are not accepted");
|
||||||
|
} else {
|
||||||
|
console.log("Uploaded");
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
let dz = new Dropzone(this, options);
|
||||||
|
|
||||||
|
dz.on("maxfilesexceeded", (file) => {
|
||||||
|
alert("No more files please!");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
32
resources/js/components/highlight/index.js
Normal file
32
resources/js/components/highlight/index.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Highlight code
|
||||||
|
$(".highlight").each(function () {
|
||||||
|
let source = $(this).find("code").html();
|
||||||
|
|
||||||
|
// First replace
|
||||||
|
let replace = helper.replaceAll(source, "HTMLOpenTag", "<");
|
||||||
|
replace = helper.replaceAll(replace, "HTMLCloseTag", ">");
|
||||||
|
|
||||||
|
// Save for copy code function
|
||||||
|
let originalSource = $(
|
||||||
|
'<textarea class="absolute w-0 h-0 p-0 -mt-1 -ml-1"></textarea>'
|
||||||
|
).val(replace);
|
||||||
|
$(this).append(originalSource);
|
||||||
|
|
||||||
|
// Beautify code
|
||||||
|
if ($(this).find("code").hasClass("javascript")) {
|
||||||
|
replace = jsBeautify(replace);
|
||||||
|
} else {
|
||||||
|
replace = jsBeautify.html(replace);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format for highlight.js
|
||||||
|
replace = helper.replaceAll(replace, "<", "<");
|
||||||
|
replace = helper.replaceAll(replace, ">", ">");
|
||||||
|
$(this).find("code").html(replace);
|
||||||
|
});
|
||||||
|
|
||||||
|
hljs.highlightAll();
|
||||||
|
})();
|
88
resources/js/components/horizontal-bar-chart/index.js
Normal file
88
resources/js/components/horizontal-bar-chart/index.js
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".horizontal-bar-chart").length) {
|
||||||
|
let ctx = $(".horizontal-bar-chart")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
data: [0, 200, 250, 200, 500, 450, 850, 1050],
|
||||||
|
backgroundColor: getColor("primary"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
data: [0, 300, 400, 560, 320, 600, 720, 850],
|
||||||
|
backgroundColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.200")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
indexAxis: "y",
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
10
resources/js/components/inline-editor/index.js
Normal file
10
resources/js/components/inline-editor/index.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".editor").each(function () {
|
||||||
|
const el = this;
|
||||||
|
InlineEditor.create(el).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
98
resources/js/components/leaflet-map-loader/index.js
Normal file
98
resources/js/components/leaflet-map-loader/index.js
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
import locations from "../../../json/location.json"
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".leaflet").each(async function () {
|
||||||
|
const map = L.map(this, {
|
||||||
|
center: [$(this).data("lat"), $(this).data("long")],
|
||||||
|
zoom: 9,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (map) {
|
||||||
|
const apiKey = $(this).data("api-key");
|
||||||
|
|
||||||
|
L.tileLayer(
|
||||||
|
`https://tile.thunderforest.com/atlas/{z}/{x}/{y}@2x.png?apikey=${apiKey}`,
|
||||||
|
{
|
||||||
|
attribution:
|
||||||
|
"Map data © OpenStreetMap contributors, Tiles © Thunderforest",
|
||||||
|
}
|
||||||
|
).addTo(map);
|
||||||
|
|
||||||
|
const markers = L.markerClusterGroup({
|
||||||
|
maxClusterRadius: 30,
|
||||||
|
iconCreateFunction: function (cluster) {
|
||||||
|
const color = $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.100", 0.6)
|
||||||
|
: getColor("primary", 0.8);
|
||||||
|
const mapMarkerRegionSvg =
|
||||||
|
window.btoa(`<svg xmlns="http://www.w3.org/2000/svg" width="55.066" height="47.691" viewBox="0 0 55.066 47.691">
|
||||||
|
<g id="Group_15" data-name="Group 15" transform="translate(-319.467 -83.991)">
|
||||||
|
<g id="Group_14" data-name="Group 14">
|
||||||
|
<path id="Intersection_4" data-name="Intersection 4" d="M12.789,17.143a15,15,0,0,1,20.7,0l-1.6,2.141-.018-.018a12.352,12.352,0,0,0-17.469,0l-.018.018Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.845"/>
|
||||||
|
<path id="Intersection_5" data-name="Intersection 5" d="M10.384,13.919a19,19,0,0,1,25.511,0l-2.016,2.7a15.647,15.647,0,0,0-21.479,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.652"/>
|
||||||
|
<path id="Intersection_6" data-name="Intersection 6" d="M7.982,10.7a22.978,22.978,0,0,1,30.313,0l-2,2.679a19.652,19.652,0,0,0-26.316,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.453"/>
|
||||||
|
</g>
|
||||||
|
<g id="Group_13" data-name="Group 13" transform="translate(427.806 461.061) rotate(-120)">
|
||||||
|
<path id="Intersection_4-2" data-name="Intersection 4" d="M12.789,17.143a15,15,0,0,1,20.7,0l-1.6,2.141-.018-.018a12.352,12.352,0,0,0-17.469,0l-.018.018Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.845"/>
|
||||||
|
<path id="Intersection_5-2" data-name="Intersection 5" d="M10.384,13.919a19,19,0,0,1,25.511,0l-2.016,2.7a15.647,15.647,0,0,0-21.479,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.652"/>
|
||||||
|
<path id="Intersection_6-2" data-name="Intersection 6" d="M7.982,10.7a22.978,22.978,0,0,1,30.313,0l-2,2.679a19.652,19.652,0,0,0-26.316,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.453"/>
|
||||||
|
</g>
|
||||||
|
<circle id="Ellipse_9" data-name="Ellipse 9" cx="11" cy="11" r="11" transform="translate(336 96)" fill="${color}"/>
|
||||||
|
<g id="Group_12" data-name="Group 12" transform="translate(613.194 -139.96) rotate(120)">
|
||||||
|
<path id="Intersection_4-3" data-name="Intersection 4" d="M12.789,17.143a15,15,0,0,1,20.7,0l-1.6,2.141-.018-.018a12.352,12.352,0,0,0-17.469,0l-.018.018Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.845"/>
|
||||||
|
<path id="Intersection_5-3" data-name="Intersection 5" d="M10.384,13.919a19,19,0,0,1,25.511,0l-2.016,2.7a15.647,15.647,0,0,0-21.479,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.652"/>
|
||||||
|
<path id="Intersection_6-3" data-name="Intersection 6" d="M7.982,10.7a22.978,22.978,0,0,1,30.313,0l-2,2.679a19.652,19.652,0,0,0-26.316,0Z" transform="translate(323.861 78.999)" fill="${color}" opacity="0.453"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
`);
|
||||||
|
|
||||||
|
return L.divIcon({
|
||||||
|
html: `<div class="relative w-full h-full">
|
||||||
|
<div class="absolute inset-0 flex items-center justify-center ml-1.5 mb-0.5 font-medium text-white">${cluster.getChildCount()}</div>
|
||||||
|
<img class="w-full h-full" src="data:image/svg+xml;base64,${mapMarkerRegionSvg}">
|
||||||
|
</div>`,
|
||||||
|
className: "",
|
||||||
|
iconSize: L.point(42, 42),
|
||||||
|
iconAnchor: L.point(20, 45),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
spiderfyOnMaxZoom: false,
|
||||||
|
showCoverageOnHover: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
map.addLayer(markers);
|
||||||
|
|
||||||
|
const color = $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.100")
|
||||||
|
: getColor("primary");
|
||||||
|
const mapMarkerSvg =
|
||||||
|
window.btoa(`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="31.063" viewBox="0 0 20 31.063">
|
||||||
|
<g id="Group_16" data-name="Group 16" transform="translate(-408 -150.001)">
|
||||||
|
<path id="Subtraction_21" data-name="Subtraction 21" d="M10,31.064h0L1.462,15.208A10,10,0,1,1,20,10a9.9,9.9,0,0,1-1.078,4.522l-.056.108c-.037.071-.077.146-.121.223L10,31.062ZM10,2a8,8,0,1,0,8,8,8,8,0,0,0-8-8Z" transform="translate(408 150)" fill="${color}"/>
|
||||||
|
<circle id="Ellipse_26" data-name="Ellipse 26" cx="6" cy="6" r="6" transform="translate(412 154)" fill="${color}"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
`);
|
||||||
|
|
||||||
|
locations.map(function (markerElem) {
|
||||||
|
const marker = L.marker(
|
||||||
|
{
|
||||||
|
lat: parseFloat(markerElem.latitude),
|
||||||
|
lng: parseFloat(markerElem.longitude),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: markerElem.name,
|
||||||
|
icon: L.icon({
|
||||||
|
iconUrl: `data:image/svg+xml;base64,${mapMarkerSvg}`,
|
||||||
|
iconAnchor: L.point(10, 35),
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
markers.addLayer(marker);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
98
resources/js/components/line-chart/index.js
Normal file
98
resources/js/components/line-chart/index.js
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".line-chart").length) {
|
||||||
|
let ctx = $(".line-chart")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
data: [
|
||||||
|
0, 200, 250, 200, 500, 450, 850, 1050, 950, 1100,
|
||||||
|
900, 1200,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: getColor("primary"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
data: [
|
||||||
|
0, 300, 400, 560, 320, 600, 720, 850, 690, 805,
|
||||||
|
1200, 1010,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderDash: [2, 2],
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.400", 0.6)
|
||||||
|
: getColor("slate.400"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
font: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
44
resources/js/components/litepicker/index.js
Normal file
44
resources/js/components/litepicker/index.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Litepicker
|
||||||
|
$(".datepicker").each(function () {
|
||||||
|
let options = {
|
||||||
|
autoApply: false,
|
||||||
|
singleMode: false,
|
||||||
|
numberOfColumns: 2,
|
||||||
|
numberOfMonths: 2,
|
||||||
|
showWeekNumbers: true,
|
||||||
|
format: "D MMM, YYYY",
|
||||||
|
dropdowns: {
|
||||||
|
minYear: 1990,
|
||||||
|
maxYear: null,
|
||||||
|
months: true,
|
||||||
|
years: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($(this).data("single-mode")) {
|
||||||
|
options.singleMode = true;
|
||||||
|
options.numberOfColumns = 1;
|
||||||
|
options.numberOfMonths = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("format")) {
|
||||||
|
options.format = $(this).data("format");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$(this).val()) {
|
||||||
|
let date = dayjs().format(options.format);
|
||||||
|
date += !options.singleMode
|
||||||
|
? " - " + dayjs().add(1, "month").format(options.format)
|
||||||
|
: "";
|
||||||
|
$(this).val(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
new Litepicker({
|
||||||
|
element: this,
|
||||||
|
...options,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
10
resources/js/components/lucide/index.js
Normal file
10
resources/js/components/lucide/index.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Lucide Icons
|
||||||
|
createIcons({
|
||||||
|
icons,
|
||||||
|
"stroke-width": 1.5,
|
||||||
|
nameAttr: "data-lucide",
|
||||||
|
});
|
||||||
|
})();
|
49
resources/js/components/mobile-menu/index.js
Normal file
49
resources/js/components/mobile-menu/index.js
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Scrollbar
|
||||||
|
if ($(".mobile-menu .scrollable").length) {
|
||||||
|
new SimpleBar($(".mobile-menu .scrollable")[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mobile Menu
|
||||||
|
$(".mobile-menu-toggler").on("click", function () {
|
||||||
|
if ($(".mobile-menu").hasClass("mobile-menu--active")) {
|
||||||
|
$(".mobile-menu").removeClass("mobile-menu--active");
|
||||||
|
} else {
|
||||||
|
$(".mobile-menu").addClass("mobile-menu--active");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".mobile-menu")
|
||||||
|
.find(".menu")
|
||||||
|
.on("click", function () {
|
||||||
|
if ($(this).parent().find("ul").length) {
|
||||||
|
if (
|
||||||
|
$(this).parent().find("ul").first()[0].offsetParent !== null
|
||||||
|
) {
|
||||||
|
$(this)
|
||||||
|
.find(".menu__sub-icon")
|
||||||
|
.removeClass("transform rotate-180");
|
||||||
|
$(this)
|
||||||
|
.parent()
|
||||||
|
.find("ul")
|
||||||
|
.first()
|
||||||
|
.slideUp(300, function () {
|
||||||
|
$(this).removeClass("menu__sub-open");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$(this)
|
||||||
|
.find(".menu__sub-icon")
|
||||||
|
.addClass("transform rotate-180");
|
||||||
|
$(this)
|
||||||
|
.parent()
|
||||||
|
.find("ul")
|
||||||
|
.first()
|
||||||
|
.slideDown(300, function () {
|
||||||
|
$(this).addClass("menu__sub-open");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
43
resources/js/components/pie-chart/index.js
Normal file
43
resources/js/components/pie-chart/index.js
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".pie-chart").length) {
|
||||||
|
let ctx = $(".pie-chart")[0].getContext("2d");
|
||||||
|
let myPieChart = new Chart(ctx, {
|
||||||
|
type: "pie",
|
||||||
|
data: {
|
||||||
|
labels: ["Html", "Vuejs", "Laravel"],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 5,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
20
resources/js/components/preview-component/index.js
Normal file
20
resources/js/components/preview-component/index.js
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Show code or preview
|
||||||
|
$(".preview-component").each(function () {
|
||||||
|
const previewComponent = this;
|
||||||
|
$(this)
|
||||||
|
.find('input[type="checkbox"]')
|
||||||
|
.first()
|
||||||
|
.on("click", function () {
|
||||||
|
if ($(this).is(":checked")) {
|
||||||
|
$(previewComponent).find(".preview").hide();
|
||||||
|
$(previewComponent).find(".source").fadeIn(200);
|
||||||
|
} else {
|
||||||
|
$(previewComponent).find(".preview").fadeIn(200);
|
||||||
|
$(previewComponent).find(".source").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
85
resources/js/components/report-bar-chart-1/index.js
Normal file
85
resources/js/components/report-bar-chart-1/index.js
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".report-bar-chart-1").length) {
|
||||||
|
let ctx = $(".report-bar-chart-1")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barThickness: 8,
|
||||||
|
maxBarThickness: 6,
|
||||||
|
data: [
|
||||||
|
60, 150, 30, 200, 180, 50, 180, 120, 230, 180, 250,
|
||||||
|
270,
|
||||||
|
],
|
||||||
|
backgroundColor: getColor("primary", 0.9),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
barThickness: 8,
|
||||||
|
maxBarThickness: 6,
|
||||||
|
data: [
|
||||||
|
50, 135, 40, 180, 190, 60, 150, 90, 250, 170, 240,
|
||||||
|
250,
|
||||||
|
],
|
||||||
|
backgroundColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.400")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: 11,
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.300", 0.8)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
89
resources/js/components/report-bar-chart/index.js
Normal file
89
resources/js/components/report-bar-chart/index.js
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".report-bar-chart").length) {
|
||||||
|
// Fake visitor data
|
||||||
|
let reportBarChartData = new Array(40).fill(0).map((data, key) => {
|
||||||
|
if (key % 3 == 0 || key % 5 == 0) {
|
||||||
|
return Math.ceil(Math.random() * (0 - 20) + 20);
|
||||||
|
} else {
|
||||||
|
return Math.ceil(Math.random() * (0 - 7) + 7);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Fake visitor bar color
|
||||||
|
let reportBarChartColor = reportBarChartData.map((data) => {
|
||||||
|
if (data >= 8 && data <= 14) {
|
||||||
|
return $("html").hasClass("dark")
|
||||||
|
? "#2E51BBA6"
|
||||||
|
: getColor("primary", 0.65);
|
||||||
|
} else if (data >= 15) {
|
||||||
|
return $("html").hasClass("dark")
|
||||||
|
? "#2E51BB"
|
||||||
|
: getColor("primary");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $("html").hasClass("dark")
|
||||||
|
? "#2E51BB59"
|
||||||
|
: getColor("primary", 0.35);
|
||||||
|
});
|
||||||
|
|
||||||
|
let ctx = $(".report-bar-chart")[0].getContext("2d");
|
||||||
|
let myBarChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: reportBarChartData,
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barThickness: 6,
|
||||||
|
data: reportBarChartData,
|
||||||
|
backgroundColor: reportBarChartColor,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
// Swap visitor data
|
||||||
|
let newData = reportBarChartData[0];
|
||||||
|
reportBarChartData.shift();
|
||||||
|
reportBarChartData.push(newData);
|
||||||
|
|
||||||
|
// Swap visitor bar color
|
||||||
|
let newColor = reportBarChartColor[0];
|
||||||
|
reportBarChartColor.shift();
|
||||||
|
reportBarChartColor.push(newColor);
|
||||||
|
|
||||||
|
myBarChart.update();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
})();
|
44
resources/js/components/report-donut-chart-1/index.js
Normal file
44
resources/js/components/report-donut-chart-1/index.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".report-donut-chart-1").length) {
|
||||||
|
$(".report-donut-chart-1").each(function () {
|
||||||
|
let ctx = $(this)[0].getContext("2d");
|
||||||
|
let myDoughnutChart = new Chart(ctx, {
|
||||||
|
type: "doughnut",
|
||||||
|
data: {
|
||||||
|
labels: ["Yellow", "Dark"],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cutout: "83%",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
42
resources/js/components/report-donut-chart-2/index.js
Normal file
42
resources/js/components/report-donut-chart-2/index.js
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".report-donut-chart-2").length) {
|
||||||
|
let ctx = $(".report-donut-chart-2")[0].getContext("2d");
|
||||||
|
let myDoughnutChart = new Chart(ctx, {
|
||||||
|
type: "doughnut",
|
||||||
|
data: {
|
||||||
|
labels: ["Yellow", "Dark"],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cutout: "83%",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
46
resources/js/components/report-donut-chart/index.js
Normal file
46
resources/js/components/report-donut-chart/index.js
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
(function () {
|
||||||
|
"use stirct";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($("#report-donut-chart").length) {
|
||||||
|
let ctx = $("#report-donut-chart")[0].getContext("2d");
|
||||||
|
let myDoughnutChart = new Chart(ctx, {
|
||||||
|
type: "doughnut",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"31 - 50 Years old",
|
||||||
|
">= 50 Years old",
|
||||||
|
"17 - 30 Years old",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 5,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cutout: "80%",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
96
resources/js/components/report-line-chart/index.js
Normal file
96
resources/js/components/report-line-chart/index.js
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($("#report-line-chart").length) {
|
||||||
|
let ctx = $("#report-line-chart")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 200, 250, 200, 700, 550, 650, 1050, 950, 1100,
|
||||||
|
900, 1200,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: getColor("primary", 0.8),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 300, 400, 560, 320, 600, 720, 850, 690, 805,
|
||||||
|
1200, 1010,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderDash: [2, 2],
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.400", 0.6)
|
||||||
|
: getColor("slate.400"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: 12,
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: 12,
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
45
resources/js/components/report-pie-chart/index.js
Normal file
45
resources/js/components/report-pie-chart/index.js
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($("#report-pie-chart").length) {
|
||||||
|
let ctx = $("#report-pie-chart")[0].getContext("2d");
|
||||||
|
let myPieChart = new Chart(ctx, {
|
||||||
|
type: "pie",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"31 - 50 Years old",
|
||||||
|
">= 50 Years old",
|
||||||
|
"17 - 30 Years old",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
data: [15, 10, 65],
|
||||||
|
backgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
hoverBackgroundColor: [
|
||||||
|
getColor("pending", 0.9),
|
||||||
|
getColor("warning", 0.9),
|
||||||
|
getColor("primary", 0.9),
|
||||||
|
],
|
||||||
|
borderWidth: 5,
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.700")
|
||||||
|
: getColor("white"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
77
resources/js/components/simple-line-chart-1/index.js
Normal file
77
resources/js/components/simple-line-chart-1/index.js
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".simple-line-chart-1").length) {
|
||||||
|
$(".simple-line-chart-1").each(function () {
|
||||||
|
let ctx = $(this)[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data:
|
||||||
|
$(this).data("random") !== undefined
|
||||||
|
? helper.randomNumbers(0, 5, 12)
|
||||||
|
: [
|
||||||
|
0, 200, 250, 200, 500, 450, 850, 1050,
|
||||||
|
950, 1100, 900, 1200,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor:
|
||||||
|
$(this).data("line-color") !== undefined
|
||||||
|
? $(this).data("line-color")
|
||||||
|
: getColor("primary", 0.8),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
77
resources/js/components/simple-line-chart-2/index.js
Normal file
77
resources/js/components/simple-line-chart-2/index.js
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".simple-line-chart-2").length) {
|
||||||
|
$(".simple-line-chart-2").each(function () {
|
||||||
|
let ctx = $(this)[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data:
|
||||||
|
$(this).data("random") !== undefined
|
||||||
|
? helper.randomNumbers(0, 5, 12)
|
||||||
|
: [
|
||||||
|
0, 300, 400, 560, 320, 600, 720, 850,
|
||||||
|
690, 805, 1200, 1010,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderDash: [2, 2],
|
||||||
|
borderColor:
|
||||||
|
$(this).data("line-color") !== undefined
|
||||||
|
? $(this).data("line-color")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
84
resources/js/components/simple-line-chart-3/index.js
Normal file
84
resources/js/components/simple-line-chart-3/index.js
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".simple-line-chart-3").length) {
|
||||||
|
let ctx = $(".simple-line-chart-3")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 200, 250, 200, 700, 550, 650, 1050, 950, 1100,
|
||||||
|
900, 1200,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: getColor("primary", 0.8),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 300, 400, 560, 320, 600, 720, 850, 690, 805,
|
||||||
|
1200, 1010,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderDash: [2, 2],
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.100")
|
||||||
|
: getColor("slate.400"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
84
resources/js/components/simple-line-chart-4/index.js
Normal file
84
resources/js/components/simple-line-chart-4/index.js
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".simple-line-chart-4").length) {
|
||||||
|
let ctx = $(".simple-line-chart-4")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 200, 250, 200, 700, 550, 650, 1050, 950, 1100,
|
||||||
|
900, 1200,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: getColor("primary", 0.8),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: [
|
||||||
|
0, 300, 400, 560, 320, 600, 720, 850, 690, 805,
|
||||||
|
1200, 1010,
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderDash: [2, 2],
|
||||||
|
borderColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.100")
|
||||||
|
: getColor("slate.400"),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
71
resources/js/components/simple-line-chart/index.js
Normal file
71
resources/js/components/simple-line-chart/index.js
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".simple-line-chart").length) {
|
||||||
|
$(".simple-line-chart").each(function () {
|
||||||
|
let ctx = $(this)[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "# of Votes",
|
||||||
|
data: helper.randomNumbers(0, 5, 12),
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor:
|
||||||
|
$(this).data("line-color") !== undefined
|
||||||
|
? $(this).data("line-color")
|
||||||
|
: getColor("primary", 0.8),
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
pointBorderColor: "transparent",
|
||||||
|
tension: 0.4,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
18
resources/js/components/source/index.js
Normal file
18
resources/js/components/source/index.js
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Copy original code
|
||||||
|
$("body").on("click", ".copy-code", function () {
|
||||||
|
const content = $(this).html();
|
||||||
|
const self = this;
|
||||||
|
$(self).html(content.replace("Copy example code", "Copied!"));
|
||||||
|
setTimeout(() => {
|
||||||
|
$(self).html(content);
|
||||||
|
}, 1500);
|
||||||
|
|
||||||
|
const highlight = $(this).closest(".highlight");
|
||||||
|
$(highlight).find("textarea")[0].select();
|
||||||
|
$(highlight).find("textarea")[0].setSelectionRange(0, 99999);
|
||||||
|
document.execCommand("copy");
|
||||||
|
});
|
||||||
|
})();
|
78
resources/js/components/stacked-bar-chart-1/index.js
Normal file
78
resources/js/components/stacked-bar-chart-1/index.js
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".stacked-bar-chart-1").length) {
|
||||||
|
let ctx = $(".stacked-bar-chart-1")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: [...Array(16).keys()],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
backgroundColor: getColor("primary", 0.8),
|
||||||
|
data: helper.randomNumbers(-100, 100, 16),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
backgroundColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.200")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
data: helper.randomNumbers(-100, 100, 16),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
display: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
stacked: true,
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
stacked: true,
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
93
resources/js/components/stacked-bar-chart/index.js
Normal file
93
resources/js/components/stacked-bar-chart/index.js
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".stacked-bar-chart").length) {
|
||||||
|
let ctx = $(".stacked-bar-chart")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
backgroundColor: getColor("primary"),
|
||||||
|
data: helper.randomNumbers(-100, 100, 12),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
backgroundColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.200")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
data: helper.randomNumbers(-100, 100, 12),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
stacked: true,
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
stacked: true,
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
110
resources/js/components/tiny-slider/index.js
Normal file
110
resources/js/components/tiny-slider/index.js
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const defaultConfig = {
|
||||||
|
slideBy: "page",
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: true,
|
||||||
|
controls: false,
|
||||||
|
nav: false,
|
||||||
|
speed: 500,
|
||||||
|
};
|
||||||
|
|
||||||
|
const singleItemConfig = {
|
||||||
|
slideBy: "page",
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: false,
|
||||||
|
controls: true,
|
||||||
|
nav: false,
|
||||||
|
speed: 500,
|
||||||
|
};
|
||||||
|
|
||||||
|
const multipleItemsConfig = {
|
||||||
|
slideBy: "page",
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: false,
|
||||||
|
controls: true,
|
||||||
|
items: 1,
|
||||||
|
nav: false,
|
||||||
|
speed: 500,
|
||||||
|
responsive: {
|
||||||
|
600: {
|
||||||
|
items: 3,
|
||||||
|
},
|
||||||
|
480: {
|
||||||
|
items: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const responsiveConfig = {
|
||||||
|
slideBy: "page",
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: false,
|
||||||
|
controls: true,
|
||||||
|
items: 1,
|
||||||
|
nav: true,
|
||||||
|
speed: 500,
|
||||||
|
responsive: {
|
||||||
|
600: {
|
||||||
|
items: 3,
|
||||||
|
},
|
||||||
|
480: {
|
||||||
|
items: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const centerModeConfig = {
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: false,
|
||||||
|
controls: true,
|
||||||
|
center: true,
|
||||||
|
items: 1,
|
||||||
|
nav: false,
|
||||||
|
speed: 500,
|
||||||
|
responsive: {
|
||||||
|
600: {
|
||||||
|
items: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const fadeConfig = {
|
||||||
|
mode: "gallery",
|
||||||
|
slideBy: "page",
|
||||||
|
mouseDrag: true,
|
||||||
|
autoplay: true,
|
||||||
|
controls: true,
|
||||||
|
nav: true,
|
||||||
|
speed: 500,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Tiny Slider
|
||||||
|
if ($(".tiny-slider").length) {
|
||||||
|
$(".tiny-slider").each(function () {
|
||||||
|
const config = $(this).data("config");
|
||||||
|
this.tns = tns({
|
||||||
|
container: this,
|
||||||
|
...(config === undefined || config === "" ? defaultConfig : {}),
|
||||||
|
...(config === "single-item" ? singleItemConfig : {}),
|
||||||
|
...(config === "multiple-items" ? multipleItemsConfig : {}),
|
||||||
|
...(config === "responsive" ? responsiveConfig : {}),
|
||||||
|
...(config === "center-mode" ? centerModeConfig : {}),
|
||||||
|
...(config === "fade" ? fadeConfig : {}),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(".tiny-slider-navigator").length) {
|
||||||
|
$(".tiny-slider-navigator").each(function () {
|
||||||
|
$(this).on("click", function () {
|
||||||
|
if ($(this).data("target") == "prev") {
|
||||||
|
$("#" + $(this).data("carousel"))[0].tns.goTo("prev");
|
||||||
|
} else {
|
||||||
|
$("#" + $(this).data("carousel"))[0].tns.goTo("next");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
56
resources/js/components/tippy-content/index.js
Normal file
56
resources/js/components/tippy-content/index.js
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Tooltips
|
||||||
|
$(".tippy-content").each(function () {
|
||||||
|
let options = {};
|
||||||
|
|
||||||
|
if ($(this).data("trigger") !== undefined) {
|
||||||
|
options.trigger = $(this).data("trigger");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("placement") !== undefined) {
|
||||||
|
options.placement = $(this).data("placement");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("theme") !== undefined) {
|
||||||
|
options.theme = $(this).data("theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
const initTippyContent = () => {
|
||||||
|
if (
|
||||||
|
!$(this).find("canvas").hasClass("chart") ||
|
||||||
|
($(this).find("canvas").hasClass("chart") &&
|
||||||
|
$(this).find("canvas").attr("style") !== undefined)
|
||||||
|
) {
|
||||||
|
tippy(`[data-tooltip="${$(this).attr("id")}"]`, {
|
||||||
|
plugins: [animateFillPlugin],
|
||||||
|
content: $(this)[0],
|
||||||
|
allowHTML: true,
|
||||||
|
arrow: roundArrow,
|
||||||
|
popperOptions: {
|
||||||
|
modifiers: [
|
||||||
|
{
|
||||||
|
name: "preventOverflow",
|
||||||
|
options: {
|
||||||
|
rootBoundary: "viewport",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
animateFill: false,
|
||||||
|
animation: "shift-away",
|
||||||
|
theme: "light",
|
||||||
|
trigger: "click",
|
||||||
|
...options,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
initTippyContent();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
initTippyContent();
|
||||||
|
});
|
||||||
|
})();
|
34
resources/js/components/tippy/index.js
Normal file
34
resources/js/components/tippy/index.js
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Tooltips
|
||||||
|
$(".tooltip").each(function () {
|
||||||
|
let options = {
|
||||||
|
content: $(this).attr("title"),
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($(this).data("trigger") !== undefined) {
|
||||||
|
options.trigger = $(this).data("trigger");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("placement") !== undefined) {
|
||||||
|
options.placement = $(this).data("placement");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("theme") !== undefined) {
|
||||||
|
options.theme = $(this).data("theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("tooltip-content") !== undefined) {
|
||||||
|
options.content = $($(this).data("tooltip-content"))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this).removeAttr("title");
|
||||||
|
|
||||||
|
tippy(this, {
|
||||||
|
arrow: roundArrow,
|
||||||
|
animation: "shift-away",
|
||||||
|
...options,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
55
resources/js/components/tom-select/index.js
Normal file
55
resources/js/components/tom-select/index.js
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Tom Select
|
||||||
|
$(".tom-select").each(function () {
|
||||||
|
let options = {
|
||||||
|
plugins: {
|
||||||
|
dropdown_input: {},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($(this).data("placeholder")) {
|
||||||
|
options.placeholder = $(this).data("placeholder");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).attr("multiple") !== undefined) {
|
||||||
|
options = {
|
||||||
|
...options,
|
||||||
|
plugins: {
|
||||||
|
...options.plugins,
|
||||||
|
remove_button: {
|
||||||
|
title: "Remove this item",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
persist: false,
|
||||||
|
create: true,
|
||||||
|
onDelete: function (values) {
|
||||||
|
return confirm(
|
||||||
|
values.length > 1
|
||||||
|
? "Are you sure you want to remove these " +
|
||||||
|
values.length +
|
||||||
|
" items?"
|
||||||
|
: 'Are you sure you want to remove "' +
|
||||||
|
values[0] +
|
||||||
|
'"?'
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(this).data("header")) {
|
||||||
|
options = {
|
||||||
|
...options,
|
||||||
|
plugins: {
|
||||||
|
...options.plugins,
|
||||||
|
dropdown_header: {
|
||||||
|
title: $(this).data("header"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
new TomSelect(this, options);
|
||||||
|
});
|
||||||
|
})();
|
15
resources/js/components/top-bar/index.js
Normal file
15
resources/js/components/top-bar/index.js
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".search")
|
||||||
|
.find("input")
|
||||||
|
.each(function () {
|
||||||
|
$(this).on("focus", function () {
|
||||||
|
$(".search-result").addClass("show");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(this).on("focusout", function () {
|
||||||
|
$(".search-result").removeClass("show");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
87
resources/js/components/vertical-bar-chart/index.js
Normal file
87
resources/js/components/vertical-bar-chart/index.js
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Chart
|
||||||
|
if ($(".vertical-bar-chart").length) {
|
||||||
|
let ctx = $(".vertical-bar-chart")[0].getContext("2d");
|
||||||
|
let myChart = new Chart(ctx, {
|
||||||
|
type: "bar",
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: "Html Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
data: [0, 200, 250, 200, 500, 450, 850, 1050],
|
||||||
|
backgroundColor: getColor("primary"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "VueJs Template",
|
||||||
|
barPercentage: 0.5,
|
||||||
|
barThickness: 6,
|
||||||
|
maxBarThickness: 8,
|
||||||
|
minBarLength: 2,
|
||||||
|
data: [0, 300, 400, 560, 320, 600, 720, 850],
|
||||||
|
backgroundColor: $("html").hasClass("dark")
|
||||||
|
? getColor("darkmode.200")
|
||||||
|
: getColor("slate.300"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
labels: {
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scales: {
|
||||||
|
x: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: 12,
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
display: false,
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
y: {
|
||||||
|
ticks: {
|
||||||
|
font: {
|
||||||
|
size: "12",
|
||||||
|
},
|
||||||
|
color: getColor("slate.500", 0.8),
|
||||||
|
callback: function (value, index, values) {
|
||||||
|
return "$" + value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: $("html").hasClass("dark")
|
||||||
|
? getColor("slate.500", 0.3)
|
||||||
|
: getColor("slate.300"),
|
||||||
|
borderDash: [2, 2],
|
||||||
|
drawBorder: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
127
resources/js/helper.js
Normal file
127
resources/js/helper.js
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
import { parseColor } from "tailwindcss/lib/util/color";
|
||||||
|
|
||||||
|
const helpers = {
|
||||||
|
cutText(text, length) {
|
||||||
|
if (text.split(" ").length > 1) {
|
||||||
|
let string = text.substring(0, length);
|
||||||
|
let splitText = string.split(" ");
|
||||||
|
splitText.pop();
|
||||||
|
return splitText.join(" ") + "...";
|
||||||
|
} else {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatDate(date, format) {
|
||||||
|
return dayjs(date).format(format);
|
||||||
|
},
|
||||||
|
capitalizeFirstLetter(string) {
|
||||||
|
if (string) {
|
||||||
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onlyNumber(number) {
|
||||||
|
if (number) {
|
||||||
|
return number.replace(/\D/g, "");
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatCurrency(number) {
|
||||||
|
if (number) {
|
||||||
|
let formattedNumber = number.toString().replace(/\D/g, "");
|
||||||
|
let rest = formattedNumber.length % 3;
|
||||||
|
let currency = formattedNumber.substr(0, rest);
|
||||||
|
let thousand = formattedNumber.substr(rest).match(/\d{3}/g);
|
||||||
|
let separator;
|
||||||
|
|
||||||
|
if (thousand) {
|
||||||
|
separator = rest ? "." : "";
|
||||||
|
currency += separator + thousand.join(".");
|
||||||
|
}
|
||||||
|
|
||||||
|
return currency;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
timeAgo(time) {
|
||||||
|
let date = new Date(
|
||||||
|
(time || "").replace(/-/g, "/").replace(/[TZ]/g, " ")
|
||||||
|
),
|
||||||
|
diff = (new Date().getTime() - date.getTime()) / 1000,
|
||||||
|
dayDiff = Math.floor(diff / 86400);
|
||||||
|
|
||||||
|
if (isNaN(dayDiff) || dayDiff < 0 || dayDiff >= 31)
|
||||||
|
return dayjs(time).format("MMMM DD, YYYY");
|
||||||
|
|
||||||
|
return (
|
||||||
|
(dayDiff == 0 &&
|
||||||
|
((diff < 60 && "just now") ||
|
||||||
|
(diff < 120 && "1 minute ago") ||
|
||||||
|
(diff < 3600 && Math.floor(diff / 60) + " minutes ago") ||
|
||||||
|
(diff < 7200 && "1 hour ago") ||
|
||||||
|
(diff < 86400 &&
|
||||||
|
Math.floor(diff / 3600) + " hours ago"))) ||
|
||||||
|
(dayDiff == 1 && "Yesterday") ||
|
||||||
|
(dayDiff < 7 && dayDiff + " days ago") ||
|
||||||
|
(dayDiff < 31 && Math.ceil(dayDiff / 7) + " weeks ago")
|
||||||
|
);
|
||||||
|
},
|
||||||
|
diffTimeByNow(time) {
|
||||||
|
let startDate = dayjs(dayjs().format("YYYY-MM-DD HH:mm:ss").toString());
|
||||||
|
let endDate = dayjs(
|
||||||
|
dayjs(time).format("YYYY-MM-DD HH:mm:ss").toString()
|
||||||
|
);
|
||||||
|
|
||||||
|
let duration = dayjs.duration(endDate.diff(startDate));
|
||||||
|
let milliseconds = Math.floor(duration.asMilliseconds());
|
||||||
|
|
||||||
|
let days = Math.round(milliseconds / 86400000);
|
||||||
|
let hours = Math.round((milliseconds % 86400000) / 3600000);
|
||||||
|
let minutes = Math.round(((milliseconds % 86400000) % 3600000) / 60000);
|
||||||
|
let seconds = Math.round(
|
||||||
|
(((milliseconds % 86400000) % 3600000) % 60000) / 1000
|
||||||
|
);
|
||||||
|
|
||||||
|
if (seconds < 30 && seconds >= 0) {
|
||||||
|
minutes += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
days: days.toString().length < 2 ? "0" + days : days,
|
||||||
|
hours: hours.toString().length < 2 ? "0" + hours : hours,
|
||||||
|
minutes: minutes.toString().length < 2 ? "0" + minutes : minutes,
|
||||||
|
seconds: seconds.toString().length < 2 ? "0" + seconds : seconds,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
isset(obj) {
|
||||||
|
return Object.keys(obj).length;
|
||||||
|
},
|
||||||
|
assign(obj) {
|
||||||
|
return JSON.parse(JSON.stringify(obj));
|
||||||
|
},
|
||||||
|
delay(time) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve();
|
||||||
|
}, time);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
randomNumbers(from, to, length) {
|
||||||
|
let numbers = [0];
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
numbers.push(Math.ceil(Math.random() * (from - to) + to));
|
||||||
|
}
|
||||||
|
|
||||||
|
return numbers;
|
||||||
|
},
|
||||||
|
replaceAll(str, find, replace) {
|
||||||
|
return str.replace(new RegExp(find, "g"), replace);
|
||||||
|
},
|
||||||
|
toRGB(value) {
|
||||||
|
return parseColor(value).color.join(" ");
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default helpers;
|
68
resources/js/layouts/side-menu/index.js
Normal file
68
resources/js/layouts/side-menu/index.js
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Side Menu Dropdown
|
||||||
|
$(".side-menu").on("click", function () {
|
||||||
|
if ($(this).parent().find("ul").length) {
|
||||||
|
if ($(this).parent().find("ul").first()[0].offsetParent !== null) {
|
||||||
|
$(this)
|
||||||
|
.find(".side-menu__sub-icon")
|
||||||
|
.removeClass("transform rotate-180");
|
||||||
|
$(this).removeClass("side-menu--open");
|
||||||
|
$(this)
|
||||||
|
.parent()
|
||||||
|
.find("ul")
|
||||||
|
.first()
|
||||||
|
.slideUp(300, function () {
|
||||||
|
$(this).removeClass("side-menu__sub-open");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$(this)
|
||||||
|
.find(".side-menu__sub-icon")
|
||||||
|
.addClass("transform rotate-180");
|
||||||
|
$(this).addClass("side-menu--open");
|
||||||
|
$(this)
|
||||||
|
.parent()
|
||||||
|
.find("ul")
|
||||||
|
.first()
|
||||||
|
.slideDown(300, function () {
|
||||||
|
$(this).addClass("side-menu__sub-open");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Side Menu Tooltips
|
||||||
|
const initTooltips = (function tooltips() {
|
||||||
|
$(".side-menu").each(function () {
|
||||||
|
if (this._tippy == undefined) {
|
||||||
|
const content = $(this)
|
||||||
|
.find(".side-menu__title")
|
||||||
|
.html()
|
||||||
|
.replace(/<[^>]*>?/gm, "")
|
||||||
|
.trim();
|
||||||
|
tippy(this, {
|
||||||
|
content: content,
|
||||||
|
arrow: roundArrow,
|
||||||
|
animation: "shift-away",
|
||||||
|
placement: "right",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
$(window).width() <= 1260 ||
|
||||||
|
$(this).closest(".side-nav").hasClass("side-nav--simple")
|
||||||
|
) {
|
||||||
|
this._tippy.enable();
|
||||||
|
} else {
|
||||||
|
this._tippy.disable();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return tooltips;
|
||||||
|
})();
|
||||||
|
|
||||||
|
window.addEventListener("resize", () => {
|
||||||
|
initTooltips();
|
||||||
|
});
|
||||||
|
})();
|
81
resources/js/pages/calendar/index.js
Normal file
81
resources/js/pages/calendar/index.js
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
// (function () {
|
||||||
|
// "use strict";
|
||||||
|
|
||||||
|
// if ($("#calendar").length) {
|
||||||
|
// if ($("#calendar-events").length) {
|
||||||
|
// new Draggable($("#calendar-events")[0], {
|
||||||
|
// itemSelector: ".event",
|
||||||
|
// eventData: function (eventEl) {
|
||||||
|
// return {
|
||||||
|
// title: $(eventEl).find(".event__title").html(),
|
||||||
|
// duration: {
|
||||||
|
// days: parseInt(
|
||||||
|
// $(eventEl).find(".event__days").text()
|
||||||
|
// ),
|
||||||
|
// },
|
||||||
|
// };
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
// let calendar = new Calendar($("#calendar")[0], {
|
||||||
|
// plugins: [
|
||||||
|
// interactionPlugin,
|
||||||
|
// dayGridPlugin,
|
||||||
|
// timeGridPlugin,
|
||||||
|
// listPlugin,
|
||||||
|
// ],
|
||||||
|
// droppable: true,
|
||||||
|
// headerToolbar: {
|
||||||
|
// left: "prev,next today",
|
||||||
|
// center: "title",
|
||||||
|
// right: "dayGridMonth,timeGridWeek,timeGridDay,listWeek",
|
||||||
|
// },
|
||||||
|
// initialDate: "2021-01-12",
|
||||||
|
// navLinks: true,
|
||||||
|
// editable: true,
|
||||||
|
// dayMaxEvents: true,
|
||||||
|
// events: [
|
||||||
|
// {
|
||||||
|
// title: "Vue Vixens Day",
|
||||||
|
// start: "2021-01-05",
|
||||||
|
// end: "2021-01-08",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: "VueConfUS",
|
||||||
|
// start: "2021-01-11",
|
||||||
|
// end: "2021-01-15",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: "VueJS Amsterdam",
|
||||||
|
// start: "2021-01-17",
|
||||||
|
// end: "2021-01-21",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: "Vue Fes Japan 2019",
|
||||||
|
// start: "2021-01-21",
|
||||||
|
// end: "2021-01-24",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: "Laracon 2021",
|
||||||
|
// start: "2021-01-24",
|
||||||
|
// end: "2021-01-27",
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// drop: function (info) {
|
||||||
|
// if (
|
||||||
|
// $("#checkbox-events").length &&
|
||||||
|
// $("#checkbox-events")[0].checked
|
||||||
|
// ) {
|
||||||
|
// $(info.draggedEl).parent().remove();
|
||||||
|
|
||||||
|
// if ($("#calendar-events").children().length == 1) {
|
||||||
|
// $("#calendar-no-events").removeClass("hidden");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
|
||||||
|
// calendar.render();
|
||||||
|
// }
|
||||||
|
// })();
|
19
resources/js/pages/chat/index.js
Normal file
19
resources/js/pages/chat/index.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$(".chat-list")
|
||||||
|
.children()
|
||||||
|
.each(function () {
|
||||||
|
$(this).on("click", function () {
|
||||||
|
$(".chat-box")
|
||||||
|
.children("div:nth-child(2)")
|
||||||
|
.fadeOut(300, function () {
|
||||||
|
$(".chat-box")
|
||||||
|
.children("div:nth-child(1)")
|
||||||
|
.fadeIn(300, function (el) {
|
||||||
|
$(el).removeClass("hidden").removeAttr("style");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
53
resources/js/pages/login/index.js
Normal file
53
resources/js/pages/login/index.js
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
async function login() {
|
||||||
|
// Reset state
|
||||||
|
$("#login-form").find(".login__input").removeClass("border-danger");
|
||||||
|
$("#login-form").find(".login__input-error").html("");
|
||||||
|
|
||||||
|
// Post form
|
||||||
|
let email = $("#email").val();
|
||||||
|
let password = $("#password").val();
|
||||||
|
|
||||||
|
// Loading state
|
||||||
|
$("#btn-login").html(
|
||||||
|
'<i data-loading-icon="oval" data-color="white" class="w-5 h-5 mx-auto"></i>'
|
||||||
|
);
|
||||||
|
tailwind.svgLoader();
|
||||||
|
await helper.delay(1500);
|
||||||
|
|
||||||
|
axios
|
||||||
|
.post(`login`, {
|
||||||
|
email: email,
|
||||||
|
password: password,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
location.href = "/";
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
$("#btn-login").html("Login");
|
||||||
|
if (err.response.data.message != "Wrong email or password.") {
|
||||||
|
for (const [key, val] of Object.entries(
|
||||||
|
err.response.data.errors
|
||||||
|
)) {
|
||||||
|
$(`#${key}`).addClass("border-danger");
|
||||||
|
$(`#error-${key}`).html(val);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$(`#password`).addClass("border-danger");
|
||||||
|
$(`#error-password`).html(err.response.data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#login-form").on("keyup", function (e) {
|
||||||
|
if (e.keyCode === 13) {
|
||||||
|
login();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#btn-login").on("click", function () {
|
||||||
|
login();
|
||||||
|
});
|
||||||
|
})();
|
24
resources/js/pages/modal/index.js
Normal file
24
resources/js/pages/modal/index.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Show modal
|
||||||
|
$("#programmatically-show-modal").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-modal");
|
||||||
|
const modal = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
modal.show();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Hide modal
|
||||||
|
$("#programmatically-hide-modal").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-modal");
|
||||||
|
const modal = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
modal.hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Toggle modal
|
||||||
|
$("#programmatically-toggle-modal").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-modal");
|
||||||
|
const modal = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
modal.toggle();
|
||||||
|
});
|
||||||
|
})();
|
125
resources/js/pages/notification/index.js
Normal file
125
resources/js/pages/notification/index.js
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Basic non sticky notification
|
||||||
|
$("#basic-non-sticky-notification-toggle").on("click", function () {
|
||||||
|
Toastify({
|
||||||
|
node: $("#basic-non-sticky-notification-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: 3000,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Basic sticky notification
|
||||||
|
$("#basic-sticky-notification-toggle").on("click", function () {
|
||||||
|
Toastify({
|
||||||
|
node: $("#basic-non-sticky-notification-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Success notification
|
||||||
|
$("#success-notification-toggle").on("click", function () {
|
||||||
|
Toastify({
|
||||||
|
node: $("#success-notification-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Notification with actions
|
||||||
|
$("#notification-with-actions-toggle").on("click", function () {
|
||||||
|
Toastify({
|
||||||
|
node: $("#notification-with-actions-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Notification with avatar
|
||||||
|
$("#notification-with-avatar-toggle").on("click", function () {
|
||||||
|
// Init toastify
|
||||||
|
let avatarNotification = Toastify({
|
||||||
|
node: $("#notification-with-avatar-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: false,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
|
||||||
|
// Close notification event
|
||||||
|
$(avatarNotification.toastElement)
|
||||||
|
.find('[data-dismiss="notification"]')
|
||||||
|
.on("click", function () {
|
||||||
|
avatarNotification.hideToast();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Notification with split buttons
|
||||||
|
$("#notification-with-split-buttons-toggle").on("click", function () {
|
||||||
|
// Init toastify
|
||||||
|
let splitButtonsNotification = Toastify({
|
||||||
|
node: $("#notification-with-split-buttons-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: false,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
|
||||||
|
// Close notification event
|
||||||
|
$(splitButtonsNotification.toastElement)
|
||||||
|
.find('[data-dismiss="notification"]')
|
||||||
|
.on("click", function () {
|
||||||
|
splitButtonsNotification.hideToast();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Notification with buttons below
|
||||||
|
$("#notification-with-buttons-below-toggle").on("click", function () {
|
||||||
|
// Init toastify
|
||||||
|
Toastify({
|
||||||
|
node: $("#notification-with-buttons-below-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: -1,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
});
|
||||||
|
})();
|
24
resources/js/pages/slideover/index.js
Normal file
24
resources/js/pages/slideover/index.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Show slide over
|
||||||
|
$("#programmatically-show-slideover").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-slideover");
|
||||||
|
const slideOver = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
slideOver.show();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Hide slide over
|
||||||
|
$("#programmatically-hide-slideover").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-slideover");
|
||||||
|
const slideOver = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
slideOver.hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Toggle slide over
|
||||||
|
$("#programmatically-toggle-slideover").on("click", function () {
|
||||||
|
const el = document.querySelector("#programmatically-slideover");
|
||||||
|
const slideOver = tailwind.Modal.getOrCreateInstance(el);
|
||||||
|
slideOver.toggle();
|
||||||
|
});
|
||||||
|
})();
|
300
resources/js/pages/tabulator/index.js
Normal file
300
resources/js/pages/tabulator/index.js
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const imageAssets = import.meta.glob(
|
||||||
|
"/resources/images/fakers/*.{jpg,jpeg,png,svg}",
|
||||||
|
{ eager: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
// Tabulator
|
||||||
|
if ($("#tabulator").length) {
|
||||||
|
// Setup Tabulator
|
||||||
|
const tabulator = new Tabulator("#tabulator", {
|
||||||
|
ajaxURL: "https://dummy-data.left4code.com",
|
||||||
|
paginationMode: "remote",
|
||||||
|
filterMode: "remote",
|
||||||
|
sortMode: "remote",
|
||||||
|
printAsHtml: true,
|
||||||
|
printStyled: true,
|
||||||
|
pagination: true,
|
||||||
|
paginationSize: 10,
|
||||||
|
paginationSizeSelector: [10, 20, 30, 40],
|
||||||
|
layout: "fitColumns",
|
||||||
|
responsiveLayout: "collapse",
|
||||||
|
placeholder: "No matching records found",
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: "",
|
||||||
|
formatter: "responsiveCollapse",
|
||||||
|
width: 40,
|
||||||
|
minWidth: 30,
|
||||||
|
hozAlign: "center",
|
||||||
|
resizable: false,
|
||||||
|
headerSort: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
// For HTML table
|
||||||
|
{
|
||||||
|
title: "PRODUCT NAME",
|
||||||
|
minWidth: 200,
|
||||||
|
responsive: 0,
|
||||||
|
field: "name",
|
||||||
|
vertAlign: "middle",
|
||||||
|
print: false,
|
||||||
|
download: false,
|
||||||
|
formatter(cell) {
|
||||||
|
const response = cell.getData();
|
||||||
|
return `<div>
|
||||||
|
<div class="font-medium whitespace-nowrap">${response.name}</div>
|
||||||
|
<div class="text-xs text-slate-500 whitespace-nowrap">${response.category}</div>
|
||||||
|
</div>`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "IMAGES",
|
||||||
|
minWidth: 200,
|
||||||
|
field: "images",
|
||||||
|
hozAlign: "center",
|
||||||
|
headerHozAlign: "center",
|
||||||
|
vertAlign: "middle",
|
||||||
|
print: false,
|
||||||
|
download: false,
|
||||||
|
formatter(cell) {
|
||||||
|
return `<div class="flex lg:justify-center">
|
||||||
|
<div class="w-10 h-10 intro-x image-fit">
|
||||||
|
<img alt="Midone Tailwind HTML Admin Template" class="rounded-full shadow-[0px_0px_0px_2px_#fff,_1px_1px_5px_rgba(0,0,0,0.32)] dark:shadow-[0px_0px_0px_2px_#3f4865,_1px_1px_5px_rgba(0,0,0,0.32)]" src="${
|
||||||
|
imageAssets[
|
||||||
|
"/resources/images/fakers/" +
|
||||||
|
cell.getData().images[0]
|
||||||
|
].default
|
||||||
|
}">
|
||||||
|
</div>
|
||||||
|
<div class="w-10 h-10 -ml-5 intro-x image-fit">
|
||||||
|
<img alt="Midone Tailwind HTML Admin Template" class="rounded-full shadow-[0px_0px_0px_2px_#fff,_1px_1px_5px_rgba(0,0,0,0.32)] dark:shadow-[0px_0px_0px_2px_#3f4865,_1px_1px_5px_rgba(0,0,0,0.32)]" src="${
|
||||||
|
imageAssets[
|
||||||
|
"/resources/images/fakers/" +
|
||||||
|
cell.getData().images[1]
|
||||||
|
].default
|
||||||
|
}">
|
||||||
|
</div>
|
||||||
|
<div class="w-10 h-10 -ml-5 intro-x image-fit">
|
||||||
|
<img alt="Midone Tailwind HTML Admin Template" class="rounded-full shadow-[0px_0px_0px_2px_#fff,_1px_1px_5px_rgba(0,0,0,0.32)] dark:shadow-[0px_0px_0px_2px_#3f4865,_1px_1px_5px_rgba(0,0,0,0.32)]" src="${
|
||||||
|
imageAssets[
|
||||||
|
"/resources/images/fakers/" +
|
||||||
|
cell.getData().images[2]
|
||||||
|
].default
|
||||||
|
}">
|
||||||
|
</div>
|
||||||
|
</div>`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "REMAINING STOCK",
|
||||||
|
minWidth: 200,
|
||||||
|
field: "remaining_stock",
|
||||||
|
hozAlign: "center",
|
||||||
|
headerHozAlign: "center",
|
||||||
|
vertAlign: "middle",
|
||||||
|
print: false,
|
||||||
|
download: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "STATUS",
|
||||||
|
minWidth: 200,
|
||||||
|
field: "status",
|
||||||
|
hozAlign: "center",
|
||||||
|
headerHozAlign: "center",
|
||||||
|
vertAlign: "middle",
|
||||||
|
print: false,
|
||||||
|
download: false,
|
||||||
|
formatter(cell) {
|
||||||
|
const response = cell.getData();
|
||||||
|
return `<div class="flex items-center lg:justify-center ${
|
||||||
|
response.status ? "text-success" : "text-danger"
|
||||||
|
}">
|
||||||
|
<i data-lucide="check-square" class="w-4 h-4 mr-2"></i> ${
|
||||||
|
response.status ? "Active" : "Inactive"
|
||||||
|
}
|
||||||
|
</div>`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "ACTIONS",
|
||||||
|
minWidth: 200,
|
||||||
|
field: "actions",
|
||||||
|
responsive: 1,
|
||||||
|
hozAlign: "center",
|
||||||
|
headerHozAlign: "center",
|
||||||
|
vertAlign: "middle",
|
||||||
|
print: false,
|
||||||
|
download: false,
|
||||||
|
formatter() {
|
||||||
|
let a =
|
||||||
|
$(`<div class="flex items-center lg:justify-center">
|
||||||
|
<a class="flex items-center mr-3 edit" href="javascript:;">
|
||||||
|
<i data-lucide="check-square" class="w-4 h-4 mr-1"></i> Edit
|
||||||
|
</a>
|
||||||
|
<a class="flex items-center delete text-danger" href="javascript:;">
|
||||||
|
<i data-lucide="trash-2" class="w-4 h-4 mr-1"></i> Delete
|
||||||
|
</a>
|
||||||
|
</div>`);
|
||||||
|
$(a)
|
||||||
|
.find(".edit")
|
||||||
|
.on("click", function () {
|
||||||
|
alert("EDIT");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(a)
|
||||||
|
.find(".delete")
|
||||||
|
.on("click", function () {
|
||||||
|
alert("DELETE");
|
||||||
|
});
|
||||||
|
return a[0];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// For print format
|
||||||
|
{
|
||||||
|
title: "PRODUCT NAME",
|
||||||
|
field: "name",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "CATEGORY",
|
||||||
|
field: "category",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "REMAINING STOCK",
|
||||||
|
field: "remaining_stock",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "STATUS",
|
||||||
|
field: "status",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
formatterPrint(cell) {
|
||||||
|
return cell.getValue() ? "Active" : "Inactive";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "IMAGE 1",
|
||||||
|
field: "images",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
formatterPrint(cell) {
|
||||||
|
return cell.getValue()[0];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "IMAGE 2",
|
||||||
|
field: "images",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
formatterPrint(cell) {
|
||||||
|
return cell.getValue()[1];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "IMAGE 3",
|
||||||
|
field: "images",
|
||||||
|
visible: false,
|
||||||
|
print: true,
|
||||||
|
download: true,
|
||||||
|
formatterPrint(cell) {
|
||||||
|
return cell.getValue()[2];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
tabulator.on("renderComplete", () => {
|
||||||
|
createIcons({
|
||||||
|
icons,
|
||||||
|
attrs: {
|
||||||
|
"stroke-width": 1.5,
|
||||||
|
},
|
||||||
|
nameAttr: "data-lucide",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Redraw table onresize
|
||||||
|
window.addEventListener("resize", () => {
|
||||||
|
tabulator.redraw();
|
||||||
|
createIcons({
|
||||||
|
icons,
|
||||||
|
"stroke-width": 1.5,
|
||||||
|
nameAttr: "data-lucide",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Filter function
|
||||||
|
function filterHTMLForm() {
|
||||||
|
let field = $("#tabulator-html-filter-field").val();
|
||||||
|
let type = $("#tabulator-html-filter-type").val();
|
||||||
|
let value = $("#tabulator-html-filter-value").val();
|
||||||
|
tabulator.setFilter(field, type, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// On submit filter form
|
||||||
|
$("#tabulator-html-filter-form")[0].addEventListener(
|
||||||
|
"keypress",
|
||||||
|
function (event) {
|
||||||
|
let keycode = event.keyCode ? event.keyCode : event.which;
|
||||||
|
if (keycode == "13") {
|
||||||
|
event.preventDefault();
|
||||||
|
filterHTMLForm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// On click go button
|
||||||
|
$("#tabulator-html-filter-go").on("click", function (event) {
|
||||||
|
filterHTMLForm();
|
||||||
|
});
|
||||||
|
|
||||||
|
// On reset filter form
|
||||||
|
$("#tabulator-html-filter-reset").on("click", function (event) {
|
||||||
|
$("#tabulator-html-filter-field").val("name");
|
||||||
|
$("#tabulator-html-filter-type").val("like");
|
||||||
|
$("#tabulator-html-filter-value").val("");
|
||||||
|
filterHTMLForm();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Export
|
||||||
|
$("#tabulator-export-csv").on("click", function (event) {
|
||||||
|
tabulator.download("csv", "data.csv");
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#tabulator-export-json").on("click", function (event) {
|
||||||
|
tabulator.download("json", "data.json");
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#tabulator-export-xlsx").on("click", function (event) {
|
||||||
|
tabulator.download("xlsx", "data.xlsx", {
|
||||||
|
sheetName: "Products",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#tabulator-export-html").on("click", function (event) {
|
||||||
|
tabulator.download("html", "data.html", {
|
||||||
|
style: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Print
|
||||||
|
$("#tabulator-print").on("click", function (event) {
|
||||||
|
tabulator.print();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
63
resources/js/pages/validation/index.js
Normal file
63
resources/js/pages/validation/index.js
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
function onSubmit(pristine) {
|
||||||
|
let valid = pristine.validate();
|
||||||
|
|
||||||
|
if (valid) {
|
||||||
|
Toastify({
|
||||||
|
node: $("#success-notification-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: 3000,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
} else {
|
||||||
|
Toastify({
|
||||||
|
node: $("#failed-notification-content")
|
||||||
|
.clone()
|
||||||
|
.removeClass("hidden")[0],
|
||||||
|
duration: 3000,
|
||||||
|
newWindow: true,
|
||||||
|
close: true,
|
||||||
|
gravity: "top",
|
||||||
|
position: "right",
|
||||||
|
stopOnFocus: true,
|
||||||
|
}).showToast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(".validate-form").each(function () {
|
||||||
|
let pristine = new Pristine(this, {
|
||||||
|
classTo: "input-form",
|
||||||
|
errorClass: "has-error",
|
||||||
|
errorTextParent: "input-form",
|
||||||
|
errorTextClass: "text-danger mt-2",
|
||||||
|
});
|
||||||
|
|
||||||
|
pristine.addValidator(
|
||||||
|
$(this).find('input[type="url"]')[0],
|
||||||
|
function (value) {
|
||||||
|
let expression =
|
||||||
|
/[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
|
||||||
|
let regex = new RegExp(expression);
|
||||||
|
if (!value.length || (value.length && value.match(regex))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
"This field is URL format only",
|
||||||
|
2,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
$(this).on("submit", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
onSubmit(pristine);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
1
resources/js/vendor/accordion/index.js
vendored
Normal file
1
resources/js/vendor/accordion/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/accordion";
|
1
resources/js/vendor/alert/index.js
vendored
Normal file
1
resources/js/vendor/alert/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/alert";
|
2
resources/js/vendor/calendar/index.js
vendored
Normal file
2
resources/js/vendor/calendar/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import { Calendar } from "@fullcalendar/core";
|
||||||
|
window.Calendar = Calendar;
|
2
resources/js/vendor/calendar/plugins/day-grid.js
vendored
Normal file
2
resources/js/vendor/calendar/plugins/day-grid.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import dayGridPlugin from "@fullcalendar/daygrid";
|
||||||
|
window.dayGridPlugin = dayGridPlugin;
|
3
resources/js/vendor/calendar/plugins/interaction.js
vendored
Normal file
3
resources/js/vendor/calendar/plugins/interaction.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import interactionPlugin, { Draggable } from "@fullcalendar/interaction";
|
||||||
|
window.interactionPlugin = interactionPlugin;
|
||||||
|
window.Draggable = Draggable;
|
2
resources/js/vendor/calendar/plugins/list.js
vendored
Normal file
2
resources/js/vendor/calendar/plugins/list.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import listPlugin from "@fullcalendar/list";
|
||||||
|
window.listPlugin = listPlugin;
|
2
resources/js/vendor/calendar/plugins/time-grid.js
vendored
Normal file
2
resources/js/vendor/calendar/plugins/time-grid.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||||
|
window.timeGridPlugin = timeGridPlugin;
|
2
resources/js/vendor/chartjs/index.js
vendored
Normal file
2
resources/js/vendor/chartjs/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Chart from "chart.js/auto";
|
||||||
|
window.Chart = Chart;
|
2
resources/js/vendor/ckeditor/balloon-block/index.js
vendored
Normal file
2
resources/js/vendor/ckeditor/balloon-block/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import BalloonBlockEditor from "@ckeditor/ckeditor5-build-balloon-block";
|
||||||
|
window.BalloonBlockEditor = BalloonBlockEditor;
|
2
resources/js/vendor/ckeditor/balloon/index.js
vendored
Normal file
2
resources/js/vendor/ckeditor/balloon/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import BalloonEditor from "@ckeditor/ckeditor5-build-balloon";
|
||||||
|
window.BalloonEditor = BalloonEditor;
|
2
resources/js/vendor/ckeditor/classic/index.js
vendored
Normal file
2
resources/js/vendor/ckeditor/classic/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
|
||||||
|
window.ClassicEditor = ClassicEditor;
|
2
resources/js/vendor/ckeditor/document/index.js
vendored
Normal file
2
resources/js/vendor/ckeditor/document/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import DocumentEditor from "@ckeditor/ckeditor5-build-decoupled-document";
|
||||||
|
window.DocumentEditor = DocumentEditor;
|
2
resources/js/vendor/ckeditor/inline/index.js
vendored
Normal file
2
resources/js/vendor/ckeditor/inline/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import InlineEditor from "@ckeditor/ckeditor5-build-inline";
|
||||||
|
window.InlineEditor = InlineEditor;
|
2
resources/js/vendor/dom/index.js
vendored
Normal file
2
resources/js/vendor/dom/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import dom from "@left4code/tw-starter/dist/js/dom";
|
||||||
|
window.$ = dom;
|
1
resources/js/vendor/dropdown/index.js
vendored
Normal file
1
resources/js/vendor/dropdown/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/dropdown";
|
2
resources/js/vendor/dropzone/index.js
vendored
Normal file
2
resources/js/vendor/dropzone/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Dropzone from "dropzone";
|
||||||
|
window.Dropzone = Dropzone;
|
4
resources/js/vendor/highlight/index.js
vendored
Normal file
4
resources/js/vendor/highlight/index.js
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import hljs from "highlight.js";
|
||||||
|
import jsBeautify from "js-beautify";
|
||||||
|
window.hljs = hljs;
|
||||||
|
window.jsBeautify = jsBeautify;
|
1
resources/js/vendor/image-zoom/index.js
vendored
Normal file
1
resources/js/vendor/image-zoom/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "zoom-vanilla.js/dist/zoom-vanilla.min.js";
|
3
resources/js/vendor/leaflet-map/index.js
vendored
Normal file
3
resources/js/vendor/leaflet-map/index.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import L from "leaflet";
|
||||||
|
import "leaflet.markercluster";
|
||||||
|
window.L = L;
|
2
resources/js/vendor/litepicker/index.js
vendored
Normal file
2
resources/js/vendor/litepicker/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Litepicker from "litepicker";
|
||||||
|
window.Litepicker = Litepicker;
|
3
resources/js/vendor/lucide/index.js
vendored
Normal file
3
resources/js/vendor/lucide/index.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import { createIcons, icons } from "lucide";
|
||||||
|
window.createIcons = createIcons;
|
||||||
|
window.icons = icons;
|
1
resources/js/vendor/modal/index.js
vendored
Normal file
1
resources/js/vendor/modal/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/modal";
|
2
resources/js/vendor/pristine/index.js
vendored
Normal file
2
resources/js/vendor/pristine/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Pristine from "pristinejs";
|
||||||
|
window.Pristine = Pristine;
|
2
resources/js/vendor/simplebar/index.js
vendored
Normal file
2
resources/js/vendor/simplebar/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import SimpleBar from "simplebar";
|
||||||
|
window.SimpleBar = SimpleBar;
|
1
resources/js/vendor/svg-loader/index.js
vendored
Normal file
1
resources/js/vendor/svg-loader/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/svg-loader";
|
1
resources/js/vendor/tab/index.js
vendored
Normal file
1
resources/js/vendor/tab/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/tab";
|
2
resources/js/vendor/tabulator/index.js
vendored
Normal file
2
resources/js/vendor/tabulator/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import { TabulatorFull as Tabulator } from "tabulator-tables";
|
||||||
|
window.Tabulator = Tabulator;
|
10
resources/js/vendor/tailwind-merge/index.js
vendored
Normal file
10
resources/js/vendor/tailwind-merge/index.js
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import * as tailwindMerge from "tailwind-merge";
|
||||||
|
|
||||||
|
const { twMerge } = tailwindMerge;
|
||||||
|
|
||||||
|
document.querySelectorAll("[data-tw-merge]").forEach((el) => {
|
||||||
|
el.setAttribute("class", twMerge(el.getAttribute("class")));
|
||||||
|
el.removeAttribute("data-tw-merge");
|
||||||
|
});
|
||||||
|
|
||||||
|
window.twMerge = tailwindMerge;
|
2
resources/js/vendor/tiny-slider/index.js
vendored
Normal file
2
resources/js/vendor/tiny-slider/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import { tns } from "tiny-slider/src/tiny-slider";
|
||||||
|
window.tns = tns;
|
4
resources/js/vendor/tippy/index.js
vendored
Normal file
4
resources/js/vendor/tippy/index.js
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import tippy, { roundArrow, animateFill as animateFillPlugin } from "tippy.js";
|
||||||
|
window.tippy = tippy;
|
||||||
|
window.roundArrow = roundArrow;
|
||||||
|
window.animateFillPlugin = animateFillPlugin;
|
2
resources/js/vendor/toastify/index.js
vendored
Normal file
2
resources/js/vendor/toastify/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Toastify from "toastify-js";
|
||||||
|
window.Toastify = Toastify;
|
2
resources/js/vendor/tom-select/index.js
vendored
Normal file
2
resources/js/vendor/tom-select/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import TomSelect from "tom-select";
|
||||||
|
window.TomSelect = TomSelect;
|
1
resources/js/vendor/transition/index.js
vendored
Normal file
1
resources/js/vendor/transition/index.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import "@left4code/tw-starter/dist/js/transition";
|
2
resources/js/vendor/xlsx/index.js
vendored
Normal file
2
resources/js/vendor/xlsx/index.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import * as xlsx from "xlsx";
|
||||||
|
window.xlsx = xlsx;
|
Loading…
Reference in a new issue