Work on incomes & expanse

This commit is contained in:
TiclemFR
2024-01-27 10:32:55 +01:00
parent 336f2bae93
commit ce5b9ac0c8
48 changed files with 27832 additions and 15 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class page extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'page:new {name}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create Inertia page folder with .vue and .scss files';
/**
* Execute the console command.
*/
public function handle()
{
shell_exec('mkdir '.getcwd().'\resources\js\Pages\\'.$this->argument('name'));
shell_exec('echo. > '.getcwd().'\resources\js\Pages\\'.$this->argument('name').'\\'.strtolower($this->argument('name')).'.vue');
shell_exec('echo. > '.getcwd().'\resources\js\Pages\\'.$this->argument('name').'\\'.strtolower($this->argument('name')).'.scss');
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Http\Controllers;
use App\Models\Income;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Inertia\Inertia;
class TransactionsController extends Controller
{
public $table = 'incomes';
public function index(){
$query = $this->queryBuilder();
$data['incomes']['columns'] = collect($query->columns)->map(function($item){
return ucfirst(substr($item, strrpos($item, '.')+1));
});
$data['incomes']['data'] = $query->get();
return Inertia::render('Transactions/index', $data);
}
private function queryBuilder(){
$query = DB::table($this->table)
->select([
// 'users.account',
// 'users.role',
// 'users.email',
'incomes.amount',
'incomes.description',
'incomes.date',
'type_incomes.label'
])
->join('users', 'users.id', 'incomes.id_user')
->join('type_incomes', 'type_incomes.id', 'incomes.id_type_income')
;
return $query;
}
}

View File

@@ -9,6 +9,9 @@ use Inertia\Inertia;
class UserController extends Controller
{
/**
* Use to login a user
*/
public function login(Request $request){
$credentials = $request->validate([
'email' => ['required', 'email'],
@@ -19,7 +22,7 @@ class UserController extends Controller
return redirect()->intended('/');
}
return redirect()->back()->withErrors([
return back()->withErrors([
'message' => 'The provided credentials do not match our records.',
]);
}

View File

@@ -42,6 +42,9 @@ class HandleInertiaRequests extends Middleware
'message' => fn () => $request->session()->get('message')
],
'appName' => config('app.name'),
'auth.user' => fn () => $request->user()
? $request->user()->only('id', 'name', 'email', 'role', 'account')
: null,
]);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Income>
*/
class IncomeFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'id_user' => 1,
'id_type_income' => 1,
'amount' => fake()->randomFloat(),
'description' => Str::random(90),
'date' => fake()->date(),
];
}
}

View File

@@ -4,9 +4,8 @@ namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use App\Models\User;
use App\Models\Income;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class DatabaseSeeder extends Seeder
{
@@ -15,13 +14,10 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
User::create([
'name' => 'Clément',
'email' => 'clement@clement-turlure.fr',
'password' => Hash::make('wo37oq88&*'),
'role' => 'admin',
$this->call([
UserSeeder::class,
TypeIncomeSeeder::class,
IncomeSeeder::class,
]);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use App\Models\Income;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class IncomeSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
Income::factory()
->count(50)
->create();
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use App\Models\TypeIncome;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class TypeIncomeSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
TypeIncome::create([
'label' => 'test',
]);
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
User::create([
'name' => 'Clément',
'email' => 'clement@clement-turlure.fr',
'password' => Hash::make('wo37oq88&*'),
'role' => 'admin',
]);
}
}

8453
node_modules/.vite/deps/@inertiajs_inertia-vue3.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

978
node_modules/.vite/deps/@inertiajs_vue3.js generated vendored Normal file
View File

@@ -0,0 +1,978 @@
import {
axios_default
} from "./chunk-MJN6PGBK.js";
import {
require_cjs,
require_lib,
require_lodash,
require_lodash2
} from "./chunk-Y3GWUAMM.js";
import "./chunk-SA4QXAJ3.js";
import {
computed,
createSSRApp,
defineComponent,
h,
isReactive,
markRaw,
reactive,
ref,
shallowRef,
watch
} from "./chunk-XSQZ24V4.js";
import {
__commonJS,
__toESM
} from "./chunk-CEQRFMJQ.js";
// node_modules/nprogress/nprogress.js
var require_nprogress = __commonJS({
"node_modules/nprogress/nprogress.js"(exports, module) {
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define(factory);
} else if (typeof exports === "object") {
module.exports = factory();
} else {
root.NProgress = factory();
}
})(exports, function() {
var NProgress = {};
NProgress.version = "0.2.0";
var Settings = NProgress.settings = {
minimum: 0.08,
easing: "ease",
positionUsing: "",
speed: 200,
trickle: true,
trickleRate: 0.02,
trickleSpeed: 800,
showSpinner: true,
barSelector: '[role="bar"]',
spinnerSelector: '[role="spinner"]',
parent: "body",
template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'
};
NProgress.configure = function(options) {
var key, value;
for (key in options) {
value = options[key];
if (value !== void 0 && options.hasOwnProperty(key))
Settings[key] = value;
}
return this;
};
NProgress.status = null;
NProgress.set = function(n) {
var started = NProgress.isStarted();
n = clamp(n, Settings.minimum, 1);
NProgress.status = n === 1 ? null : n;
var progress = NProgress.render(!started), bar = progress.querySelector(Settings.barSelector), speed = Settings.speed, ease = Settings.easing;
progress.offsetWidth;
queue(function(next) {
if (Settings.positionUsing === "")
Settings.positionUsing = NProgress.getPositioningCSS();
css(bar, barPositionCSS(n, speed, ease));
if (n === 1) {
css(progress, {
transition: "none",
opacity: 1
});
progress.offsetWidth;
setTimeout(function() {
css(progress, {
transition: "all " + speed + "ms linear",
opacity: 0
});
setTimeout(function() {
NProgress.remove();
next();
}, speed);
}, speed);
} else {
setTimeout(next, speed);
}
});
return this;
};
NProgress.isStarted = function() {
return typeof NProgress.status === "number";
};
NProgress.start = function() {
if (!NProgress.status)
NProgress.set(0);
var work = function() {
setTimeout(function() {
if (!NProgress.status)
return;
NProgress.trickle();
work();
}, Settings.trickleSpeed);
};
if (Settings.trickle)
work();
return this;
};
NProgress.done = function(force) {
if (!force && !NProgress.status)
return this;
return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);
};
NProgress.inc = function(amount) {
var n = NProgress.status;
if (!n) {
return NProgress.start();
} else {
if (typeof amount !== "number") {
amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);
}
n = clamp(n + amount, 0, 0.994);
return NProgress.set(n);
}
};
NProgress.trickle = function() {
return NProgress.inc(Math.random() * Settings.trickleRate);
};
(function() {
var initial = 0, current = 0;
NProgress.promise = function($promise) {
if (!$promise || $promise.state() === "resolved") {
return this;
}
if (current === 0) {
NProgress.start();
}
initial++;
current++;
$promise.always(function() {
current--;
if (current === 0) {
initial = 0;
NProgress.done();
} else {
NProgress.set((initial - current) / initial);
}
});
return this;
};
})();
NProgress.render = function(fromStart) {
if (NProgress.isRendered())
return document.getElementById("nprogress");
addClass(document.documentElement, "nprogress-busy");
var progress = document.createElement("div");
progress.id = "nprogress";
progress.innerHTML = Settings.template;
var bar = progress.querySelector(Settings.barSelector), perc = fromStart ? "-100" : toBarPerc(NProgress.status || 0), parent = document.querySelector(Settings.parent), spinner;
css(bar, {
transition: "all 0 linear",
transform: "translate3d(" + perc + "%,0,0)"
});
if (!Settings.showSpinner) {
spinner = progress.querySelector(Settings.spinnerSelector);
spinner && removeElement(spinner);
}
if (parent != document.body) {
addClass(parent, "nprogress-custom-parent");
}
parent.appendChild(progress);
return progress;
};
NProgress.remove = function() {
removeClass(document.documentElement, "nprogress-busy");
removeClass(document.querySelector(Settings.parent), "nprogress-custom-parent");
var progress = document.getElementById("nprogress");
progress && removeElement(progress);
};
NProgress.isRendered = function() {
return !!document.getElementById("nprogress");
};
NProgress.getPositioningCSS = function() {
var bodyStyle = document.body.style;
var vendorPrefix = "WebkitTransform" in bodyStyle ? "Webkit" : "MozTransform" in bodyStyle ? "Moz" : "msTransform" in bodyStyle ? "ms" : "OTransform" in bodyStyle ? "O" : "";
if (vendorPrefix + "Perspective" in bodyStyle) {
return "translate3d";
} else if (vendorPrefix + "Transform" in bodyStyle) {
return "translate";
} else {
return "margin";
}
};
function clamp(n, min, max) {
if (n < min)
return min;
if (n > max)
return max;
return n;
}
function toBarPerc(n) {
return (-1 + n) * 100;
}
function barPositionCSS(n, speed, ease) {
var barCSS;
if (Settings.positionUsing === "translate3d") {
barCSS = { transform: "translate3d(" + toBarPerc(n) + "%,0,0)" };
} else if (Settings.positionUsing === "translate") {
barCSS = { transform: "translate(" + toBarPerc(n) + "%,0)" };
} else {
barCSS = { "margin-left": toBarPerc(n) + "%" };
}
barCSS.transition = "all " + speed + "ms " + ease;
return barCSS;
}
var queue = /* @__PURE__ */ function() {
var pending = [];
function next() {
var fn = pending.shift();
if (fn) {
fn(next);
}
}
return function(fn) {
pending.push(fn);
if (pending.length == 1)
next();
};
}();
var css = /* @__PURE__ */ function() {
var cssPrefixes = ["Webkit", "O", "Moz", "ms"], cssProps = {};
function camelCase(string) {
return string.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function(match, letter) {
return letter.toUpperCase();
});
}
function getVendorProp(name) {
var style = document.body.style;
if (name in style)
return name;
var i = cssPrefixes.length, capName = name.charAt(0).toUpperCase() + name.slice(1), vendorName;
while (i--) {
vendorName = cssPrefixes[i] + capName;
if (vendorName in style)
return vendorName;
}
return name;
}
function getStyleProp(name) {
name = camelCase(name);
return cssProps[name] || (cssProps[name] = getVendorProp(name));
}
function applyCss(element, prop, value) {
prop = getStyleProp(prop);
element.style[prop] = value;
}
return function(element, properties) {
var args = arguments, prop, value;
if (args.length == 2) {
for (prop in properties) {
value = properties[prop];
if (value !== void 0 && properties.hasOwnProperty(prop))
applyCss(element, prop, value);
}
} else {
applyCss(element, args[1], args[2]);
}
};
}();
function hasClass(element, name) {
var list = typeof element == "string" ? element : classList(element);
return list.indexOf(" " + name + " ") >= 0;
}
function addClass(element, name) {
var oldList = classList(element), newList = oldList + name;
if (hasClass(oldList, name))
return;
element.className = newList.substring(1);
}
function removeClass(element, name) {
var oldList = classList(element), newList;
if (!hasClass(element, name))
return;
newList = oldList.replace(" " + name + " ", " ");
element.className = newList.substring(1, newList.length - 1);
}
function classList(element) {
return (" " + (element.className || "") + " ").replace(/\s+/gi, " ");
}
function removeElement(element) {
element && element.parentNode && element.parentNode.removeChild(element);
}
return NProgress;
});
}
});
// node_modules/@inertiajs/core/dist/index.esm.js
var import_deepmerge = __toESM(require_cjs());
var O = __toESM(require_lib());
var import_nprogress = __toESM(require_nprogress());
function R(t, e) {
let i;
return function(...n) {
clearTimeout(i), i = setTimeout(() => t.apply(this, n), e);
};
}
function f(t, e) {
return document.dispatchEvent(new CustomEvent(`inertia:${t}`, e));
}
var M = (t) => f("before", { cancelable: true, detail: { visit: t } });
var j = (t) => f("error", { detail: { errors: t } });
var H = (t) => f("exception", { cancelable: true, detail: { exception: t } });
var N = (t) => f("finish", { detail: { visit: t } });
var $ = (t) => f("invalid", { cancelable: true, detail: { response: t } });
var S = (t) => f("navigate", { detail: { page: t } });
var q = (t) => f("progress", { detail: { progress: t } });
var W = (t) => f("start", { detail: { visit: t } });
var K = (t) => f("success", { detail: { page: t } });
function I(t) {
return t instanceof File || t instanceof Blob || t instanceof FileList && t.length > 0 || t instanceof FormData && Array.from(t.values()).some((e) => I(e)) || typeof t == "object" && t !== null && Object.values(t).some((e) => I(e));
}
function A(t, e = new FormData(), i = null) {
t = t || {};
for (let n in t)
Object.prototype.hasOwnProperty.call(t, n) && J(e, X(i, n), t[n]);
return e;
}
function X(t, e) {
return t ? t + "[" + e + "]" : e;
}
function J(t, e, i) {
if (Array.isArray(i))
return Array.from(i.keys()).forEach((n) => J(t, X(e, n.toString()), i[n]));
if (i instanceof Date)
return t.append(e, i.toISOString());
if (i instanceof File)
return t.append(e, i, i.name);
if (i instanceof Blob)
return t.append(e, i);
if (typeof i == "boolean")
return t.append(e, i ? "1" : "0");
if (typeof i == "string")
return t.append(e, i);
if (typeof i == "number")
return t.append(e, `${i}`);
if (i == null)
return t.append(e, "");
A(i, t, e);
}
var z = { modal: null, listener: null, show(t) {
typeof t == "object" && (t = `All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);
let e = document.createElement("html");
e.innerHTML = t, e.querySelectorAll("a").forEach((n) => n.setAttribute("target", "_top")), this.modal = document.createElement("div"), this.modal.style.position = "fixed", this.modal.style.width = "100vw", this.modal.style.height = "100vh", this.modal.style.padding = "50px", this.modal.style.boxSizing = "border-box", this.modal.style.backgroundColor = "rgba(0, 0, 0, .6)", this.modal.style.zIndex = 2e5, this.modal.addEventListener("click", () => this.hide());
let i = document.createElement("iframe");
if (i.style.backgroundColor = "white", i.style.borderRadius = "5px", i.style.width = "100%", i.style.height = "100%", this.modal.appendChild(i), document.body.prepend(this.modal), document.body.style.overflow = "hidden", !i.contentWindow)
throw new Error("iframe not yet ready.");
i.contentWindow.document.open(), i.contentWindow.document.write(e.outerHTML), i.contentWindow.document.close(), this.listener = this.hideOnEscape.bind(this), document.addEventListener("keydown", this.listener);
}, hide() {
this.modal.outerHTML = "", this.modal = null, document.body.style.overflow = "visible", document.removeEventListener("keydown", this.listener);
}, hideOnEscape(t) {
t.keyCode === 27 && this.hide();
} };
function v(t) {
return new URL(t.toString(), window.location.toString());
}
function k(t, e, i, n = "brackets") {
let o = /^https?:\/\//.test(e.toString()), c2 = o || e.toString().startsWith("/"), h2 = !c2 && !e.toString().startsWith("#") && !e.toString().startsWith("?"), m = e.toString().includes("?") || t === "get" && Object.keys(i).length, b = e.toString().includes("#"), a = new URL(e.toString(), "http://localhost");
return t === "get" && Object.keys(i).length && (a.search = O.stringify((0, import_deepmerge.default)(O.parse(a.search, { ignoreQueryPrefix: true }), i), { encodeValuesOnly: true, arrayFormat: n }), i = {}), [[o ? `${a.protocol}//${a.host}` : "", c2 ? a.pathname : "", h2 ? a.pathname.substring(1) : "", m ? a.search : "", b ? a.hash : ""].join(""), i];
}
function w(t) {
return t = new URL(t.href), t.hash = "", t;
}
var _ = typeof window > "u";
var C = class {
constructor() {
this.visitId = null;
}
init({ initialPage: e, resolveComponent: i, swapComponent: n }) {
this.page = e, this.resolveComponent = i, this.swapComponent = n, this.setNavigationType(), this.clearRememberedStateOnReload(), this.isBackForwardVisit() ? this.handleBackForwardVisit(this.page) : this.isLocationVisit() ? this.handleLocationVisit(this.page) : this.handleInitialPageVisit(this.page), this.setupEventListeners();
}
setNavigationType() {
this.navigationType = window.performance && window.performance.getEntriesByType("navigation").length > 0 ? window.performance.getEntriesByType("navigation")[0].type : "navigate";
}
clearRememberedStateOnReload() {
var _a;
this.navigationType === "reload" && ((_a = window.history.state) == null ? void 0 : _a.rememberedState) && delete window.history.state.rememberedState;
}
handleInitialPageVisit(e) {
this.page.url += window.location.hash, this.setPage(e, { preserveState: true }).then(() => S(e));
}
setupEventListeners() {
window.addEventListener("popstate", this.handlePopstateEvent.bind(this)), document.addEventListener("scroll", R(this.handleScrollEvent.bind(this), 100), true);
}
scrollRegions() {
return document.querySelectorAll("[scroll-region]");
}
handleScrollEvent(e) {
typeof e.target.hasAttribute == "function" && e.target.hasAttribute("scroll-region") && this.saveScrollPositions();
}
saveScrollPositions() {
this.replaceState({ ...this.page, scrollRegions: Array.from(this.scrollRegions()).map((e) => ({ top: e.scrollTop, left: e.scrollLeft })) });
}
resetScrollPositions() {
window.scrollTo(0, 0), this.scrollRegions().forEach((e) => {
typeof e.scrollTo == "function" ? e.scrollTo(0, 0) : (e.scrollTop = 0, e.scrollLeft = 0);
}), this.saveScrollPositions(), window.location.hash && setTimeout(() => {
var _a;
return (_a = document.getElementById(window.location.hash.slice(1))) == null ? void 0 : _a.scrollIntoView();
});
}
restoreScrollPositions() {
this.page.scrollRegions && this.scrollRegions().forEach((e, i) => {
let n = this.page.scrollRegions[i];
if (n)
typeof e.scrollTo == "function" ? e.scrollTo(n.left, n.top) : (e.scrollTop = n.top, e.scrollLeft = n.left);
else
return;
});
}
isBackForwardVisit() {
return window.history.state && this.navigationType === "back_forward";
}
handleBackForwardVisit(e) {
window.history.state.version = e.version, this.setPage(window.history.state, { preserveScroll: true, preserveState: true }).then(() => {
this.restoreScrollPositions(), S(e);
});
}
locationVisit(e, i) {
try {
let n = { preserveScroll: i };
window.sessionStorage.setItem("inertiaLocationVisit", JSON.stringify(n)), window.location.href = e.href, w(window.location).href === w(e).href && window.location.reload();
} catch {
return false;
}
}
isLocationVisit() {
try {
return window.sessionStorage.getItem("inertiaLocationVisit") !== null;
} catch {
return false;
}
}
handleLocationVisit(e) {
var _a, _b;
let i = JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit") || "");
window.sessionStorage.removeItem("inertiaLocationVisit"), e.url += window.location.hash, e.rememberedState = ((_a = window.history.state) == null ? void 0 : _a.rememberedState) ?? {}, e.scrollRegions = ((_b = window.history.state) == null ? void 0 : _b.scrollRegions) ?? [], this.setPage(e, { preserveScroll: i.preserveScroll, preserveState: true }).then(() => {
i.preserveScroll && this.restoreScrollPositions(), S(e);
});
}
isLocationVisitResponse(e) {
return !!(e && e.status === 409 && e.headers["x-inertia-location"]);
}
isInertiaResponse(e) {
return !!(e == null ? void 0 : e.headers["x-inertia"]);
}
createVisitId() {
return this.visitId = {}, this.visitId;
}
cancelVisit(e, { cancelled: i = false, interrupted: n = false }) {
e && !e.completed && !e.cancelled && !e.interrupted && (e.cancelToken.abort(), e.onCancel(), e.completed = false, e.cancelled = i, e.interrupted = n, N(e), e.onFinish(e));
}
finishVisit(e) {
!e.cancelled && !e.interrupted && (e.completed = true, e.cancelled = false, e.interrupted = false, N(e), e.onFinish(e));
}
resolvePreserveOption(e, i) {
return typeof e == "function" ? e(i) : e === "errors" ? Object.keys(i.props.errors || {}).length > 0 : e;
}
cancel() {
this.activeVisit && this.cancelVisit(this.activeVisit, { cancelled: true });
}
visit(e, { method: i = "get", data: n = {}, replace: o = false, preserveScroll: c2 = false, preserveState: h2 = false, only: m = [], headers: b = {}, errorBag: a = "", forceFormData: l = false, onCancelToken: g2 = () => {
}, onBefore: L2 = () => {
}, onStart: d2 = () => {
}, onProgress: p = () => {
}, onFinish: T2 = () => {
}, onCancel: y = () => {
}, onSuccess: D2 = () => {
}, onError: U = () => {
}, queryStringArrayFormat: F2 = "brackets" } = {}) {
let x2 = typeof e == "string" ? v(e) : e;
if ((I(n) || l) && !(n instanceof FormData) && (n = A(n)), !(n instanceof FormData)) {
let [r, s] = k(i, x2, n, F2);
x2 = v(r), n = s;
}
let P = { url: x2, method: i, data: n, replace: o, preserveScroll: c2, preserveState: h2, only: m, headers: b, errorBag: a, forceFormData: l, queryStringArrayFormat: F2, cancelled: false, completed: false, interrupted: false };
if (L2(P) === false || !M(P))
return;
this.activeVisit && this.cancelVisit(this.activeVisit, { interrupted: true }), this.saveScrollPositions();
let G = this.createVisitId();
this.activeVisit = { ...P, onCancelToken: g2, onBefore: L2, onStart: d2, onProgress: p, onFinish: T2, onCancel: y, onSuccess: D2, onError: U, queryStringArrayFormat: F2, cancelToken: new AbortController() }, g2({ cancel: () => {
this.activeVisit && this.cancelVisit(this.activeVisit, { cancelled: true });
} }), W(P), d2(P), axios_default({ method: i, url: w(x2).href, data: i === "get" ? {} : n, params: i === "get" ? n : {}, signal: this.activeVisit.cancelToken.signal, headers: { ...b, Accept: "text/html, application/xhtml+xml", "X-Requested-With": "XMLHttpRequest", "X-Inertia": true, ...m.length ? { "X-Inertia-Partial-Component": this.page.component, "X-Inertia-Partial-Data": m.join(",") } : {}, ...a && a.length ? { "X-Inertia-Error-Bag": a } : {}, ...this.page.version ? { "X-Inertia-Version": this.page.version } : {} }, onUploadProgress: (r) => {
n instanceof FormData && (r.percentage = r.progress ? Math.round(r.progress * 100) : 0, q(r), p(r));
} }).then((r) => {
var _a;
if (!this.isInertiaResponse(r))
return Promise.reject({ response: r });
let s = r.data;
m.length && s.component === this.page.component && (s.props = { ...this.page.props, ...s.props }), c2 = this.resolvePreserveOption(c2, s), h2 = this.resolvePreserveOption(h2, s), h2 && ((_a = window.history.state) == null ? void 0 : _a.rememberedState) && s.component === this.page.component && (s.rememberedState = window.history.state.rememberedState);
let E2 = x2, V = v(s.url);
return E2.hash && !V.hash && w(E2).href === V.href && (V.hash = E2.hash, s.url = V.href), this.setPage(s, { visitId: G, replace: o, preserveScroll: c2, preserveState: h2 });
}).then(() => {
let r = this.page.props.errors || {};
if (Object.keys(r).length > 0) {
let s = a ? r[a] ? r[a] : {} : r;
return j(s), U(s);
}
return K(this.page), D2(this.page);
}).catch((r) => {
if (this.isInertiaResponse(r.response))
return this.setPage(r.response.data, { visitId: G });
if (this.isLocationVisitResponse(r.response)) {
let s = v(r.response.headers["x-inertia-location"]), E2 = x2;
E2.hash && !s.hash && w(E2).href === s.href && (s.hash = E2.hash), this.locationVisit(s, c2 === true);
} else if (r.response)
$(r.response) && z.show(r.response.data);
else
return Promise.reject(r);
}).then(() => {
this.activeVisit && this.finishVisit(this.activeVisit);
}).catch((r) => {
if (!axios_default.isCancel(r)) {
let s = H(r);
if (this.activeVisit && this.finishVisit(this.activeVisit), s)
return Promise.reject(r);
}
});
}
setPage(e, { visitId: i = this.createVisitId(), replace: n = false, preserveScroll: o = false, preserveState: c2 = false } = {}) {
return Promise.resolve(this.resolveComponent(e.component)).then((h2) => {
i === this.visitId && (e.scrollRegions = e.scrollRegions || [], e.rememberedState = e.rememberedState || {}, n = n || v(e.url).href === window.location.href, n ? this.replaceState(e) : this.pushState(e), this.swapComponent({ component: h2, page: e, preserveState: c2 }).then(() => {
o || this.resetScrollPositions(), n || S(e);
}));
});
}
pushState(e) {
this.page = e, window.history.pushState(e, "", e.url);
}
replaceState(e) {
this.page = e, window.history.replaceState(e, "", e.url);
}
handlePopstateEvent(e) {
if (e.state !== null) {
let i = e.state, n = this.createVisitId();
Promise.resolve(this.resolveComponent(i.component)).then((o) => {
n === this.visitId && (this.page = i, this.swapComponent({ component: o, page: i, preserveState: false }).then(() => {
this.restoreScrollPositions(), S(i);
}));
});
} else {
let i = v(this.page.url);
i.hash = window.location.hash, this.replaceState({ ...this.page, url: i.href }), this.resetScrollPositions();
}
}
get(e, i = {}, n = {}) {
return this.visit(e, { ...n, method: "get", data: i });
}
reload(e = {}) {
return this.visit(window.location.href, { ...e, preserveScroll: true, preserveState: true });
}
replace(e, i = {}) {
return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${i.method ?? "get"}() instead.`), this.visit(e, { preserveState: true, ...i, replace: true });
}
post(e, i = {}, n = {}) {
return this.visit(e, { preserveState: true, ...n, method: "post", data: i });
}
put(e, i = {}, n = {}) {
return this.visit(e, { preserveState: true, ...n, method: "put", data: i });
}
patch(e, i = {}, n = {}) {
return this.visit(e, { preserveState: true, ...n, method: "patch", data: i });
}
delete(e, i = {}) {
return this.visit(e, { preserveState: true, ...i, method: "delete" });
}
remember(e, i = "default") {
var _a;
_ || this.replaceState({ ...this.page, rememberedState: { ...(_a = this.page) == null ? void 0 : _a.rememberedState, [i]: e } });
}
restore(e = "default") {
var _a, _b;
if (!_)
return (_b = (_a = window.history.state) == null ? void 0 : _a.rememberedState) == null ? void 0 : _b[e];
}
on(e, i) {
let n = (o) => {
let c2 = i(o);
o.cancelable && !o.defaultPrevented && c2 === false && o.preventDefault();
};
return document.addEventListener(`inertia:${e}`, n), () => document.removeEventListener(`inertia:${e}`, n);
}
};
var ie = { buildDOMElement(t) {
let e = document.createElement("template");
e.innerHTML = t;
let i = e.content.firstChild;
if (!t.startsWith("<script "))
return i;
let n = document.createElement("script");
return n.innerHTML = i.innerHTML, i.getAttributeNames().forEach((o) => {
n.setAttribute(o, i.getAttribute(o) || "");
}), n;
}, isInertiaManagedElement(t) {
return t.nodeType === Node.ELEMENT_NODE && t.getAttribute("inertia") !== null;
}, findMatchingElementIndex(t, e) {
let i = t.getAttribute("inertia");
return i !== null ? e.findIndex((n) => n.getAttribute("inertia") === i) : -1;
}, update: R(function(t) {
let e = t.map((n) => this.buildDOMElement(n));
Array.from(document.head.childNodes).filter((n) => this.isInertiaManagedElement(n)).forEach((n) => {
var _a, _b;
let o = this.findMatchingElementIndex(n, e);
if (o === -1) {
(_a = n == null ? void 0 : n.parentNode) == null ? void 0 : _a.removeChild(n);
return;
}
let c2 = e.splice(o, 1)[0];
c2 && !n.isEqualNode(c2) && ((_b = n == null ? void 0 : n.parentNode) == null ? void 0 : _b.replaceChild(c2, n));
}), e.forEach((n) => document.head.appendChild(n));
}, 1) };
function Q(t, e, i) {
let n = {}, o = 0;
function c2() {
let l = o += 1;
return n[l] = [], l.toString();
}
function h2(l) {
l === null || Object.keys(n).indexOf(l) === -1 || (delete n[l], a());
}
function m(l, g2 = []) {
l !== null && Object.keys(n).indexOf(l) > -1 && (n[l] = g2), a();
}
function b() {
let l = e(""), g2 = { ...l ? { title: `<title inertia="">${l}</title>` } : {} }, L2 = Object.values(n).reduce((d2, p) => d2.concat(p), []).reduce((d2, p) => {
if (p.indexOf("<") === -1)
return d2;
if (p.indexOf("<title ") === 0) {
let y = p.match(/(<title [^>]+>)(.*?)(<\/title>)/);
return d2.title = y ? `${y[1]}${e(y[2])}${y[3]}` : p, d2;
}
let T2 = p.match(/ inertia="[^"]+"/);
return T2 ? d2[T2[0]] = p : d2[Object.keys(d2).length] = p, d2;
}, g2);
return Object.values(L2);
}
function a() {
t ? i(b()) : ie.update(b());
}
return a(), { forceUpdate: a, createProvider: function() {
let l = c2();
return { update: (g2) => m(l, g2), disconnect: () => h2(l) };
} };
}
var Y = null;
function ne(t) {
document.addEventListener("inertia:start", re.bind(null, t)), document.addEventListener("inertia:progress", oe), document.addEventListener("inertia:finish", se);
}
function re(t) {
Y = setTimeout(() => import_nprogress.default.start(), t);
}
function oe(t) {
var _a;
import_nprogress.default.isStarted() && ((_a = t.detail.progress) == null ? void 0 : _a.percentage) && import_nprogress.default.set(Math.max(import_nprogress.default.status, t.detail.progress.percentage / 100 * 0.9));
}
function se(t) {
if (clearTimeout(Y), import_nprogress.default.isStarted())
t.detail.visit.completed ? import_nprogress.default.done() : t.detail.visit.interrupted ? import_nprogress.default.set(0) : t.detail.visit.cancelled && (import_nprogress.default.done(), import_nprogress.default.remove());
else
return;
}
function ae(t) {
let e = document.createElement("style");
e.type = "text/css", e.textContent = `
#nprogress {
pointer-events: none;
}
#nprogress .bar {
background: ${t};
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px;
}
#nprogress .peg {
display: block;
position: absolute;
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px ${t}, 0 0 5px ${t};
opacity: 1.0;
-webkit-transform: rotate(3deg) translate(0px, -4px);
-ms-transform: rotate(3deg) translate(0px, -4px);
transform: rotate(3deg) translate(0px, -4px);
}
#nprogress .spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
#nprogress .spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: ${t};
border-left-color: ${t};
border-radius: 50%;
-webkit-animation: nprogress-spinner 400ms linear infinite;
animation: nprogress-spinner 400ms linear infinite;
}
.nprogress-custom-parent {
overflow: hidden;
position: relative;
}
.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
position: absolute;
}
@-webkit-keyframes nprogress-spinner {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes nprogress-spinner {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
`, document.head.appendChild(e);
}
function Z({ delay: t = 250, color: e = "#29d", includeCSS: i = true, showSpinner: n = false } = {}) {
ne(t), import_nprogress.default.configure({ showSpinner: n }), i && ae(e);
}
function ee(t) {
let e = t.currentTarget.tagName.toLowerCase() === "a";
return !(t.target && (t == null ? void 0 : t.target).isContentEditable || t.defaultPrevented || e && t.which > 1 || e && t.altKey || e && t.ctrlKey || e && t.metaKey || e && t.shiftKey);
}
var Oe = new C();
// node_modules/@inertiajs/vue3/dist/index.esm.js
var import_lodash = __toESM(require_lodash());
var import_lodash2 = __toESM(require_lodash());
var import_lodash3 = __toESM(require_lodash2());
var import_lodash4 = __toESM(require_lodash());
var M2 = { created() {
if (!this.$options.remember)
return;
Array.isArray(this.$options.remember) && (this.$options.remember = { data: this.$options.remember }), typeof this.$options.remember == "string" && (this.$options.remember = { data: [this.$options.remember] }), typeof this.$options.remember.data == "string" && (this.$options.remember = { data: [this.$options.remember.data] });
let e = this.$options.remember.key instanceof Function ? this.$options.remember.key.call(this) : this.$options.remember.key, o = Oe.restore(e), n = this.$options.remember.data.filter((t) => !(this[t] !== null && typeof this[t] == "object" && this[t].__rememberable === false)), p = (t) => this[t] !== null && typeof this[t] == "object" && typeof this[t].__remember == "function" && typeof this[t].__restore == "function";
n.forEach((t) => {
this[t] !== void 0 && o !== void 0 && o[t] !== void 0 && (p(t) ? this[t].__restore(o[t]) : this[t] = o[t]), this.$watch(t, () => {
Oe.remember(n.reduce((a, l) => ({ ...a, [l]: (0, import_lodash.default)(p(l) ? this[l].__remember() : this[l]) }), {}), e);
}, { immediate: true, deep: true });
});
} };
var D = M2;
function T(e, o) {
let n = typeof e == "string" ? e : null, p = typeof e == "string" ? o : e, t = n ? Oe.restore(n) : null, a = typeof p == "object" ? (0, import_lodash2.default)(p) : (0, import_lodash2.default)(p()), l = null, f2 = null, h2 = (r) => r, y = reactive({ ...t ? t.data : (0, import_lodash2.default)(a), isDirty: false, errors: t ? t.errors : {}, hasErrors: false, processing: false, progress: null, wasSuccessful: false, recentlySuccessful: false, data() {
return Object.keys(a).reduce((r, s) => (r[s] = this[s], r), {});
}, transform(r) {
return h2 = r, this;
}, defaults(r, s) {
if (typeof p == "function")
throw new Error("You cannot call `defaults()` when using a function to define your form data.");
return typeof r > "u" ? a = this.data() : a = Object.assign({}, (0, import_lodash2.default)(a), typeof r == "string" ? { [r]: s } : r), this;
}, reset(...r) {
let s = typeof p == "object" ? (0, import_lodash2.default)(a) : (0, import_lodash2.default)(p()), i = (0, import_lodash2.default)(s);
return r.length === 0 ? (a = i, Object.assign(this, s)) : Object.keys(s).filter((m) => r.includes(m)).forEach((m) => {
a[m] = i[m], this[m] = s[m];
}), this;
}, setError(r, s) {
return Object.assign(this.errors, typeof r == "string" ? { [r]: s } : r), this.hasErrors = Object.keys(this.errors).length > 0, this;
}, clearErrors(...r) {
return this.errors = Object.keys(this.errors).reduce((s, i) => ({ ...s, ...r.length > 0 && !r.includes(i) ? { [i]: this.errors[i] } : {} }), {}), this.hasErrors = Object.keys(this.errors).length > 0, this;
}, submit(r, s, i = {}) {
let m = h2(this.data()), b = { ...i, onCancelToken: (u2) => {
if (l = u2, i.onCancelToken)
return i.onCancelToken(u2);
}, onBefore: (u2) => {
if (this.wasSuccessful = false, this.recentlySuccessful = false, clearTimeout(f2), i.onBefore)
return i.onBefore(u2);
}, onStart: (u2) => {
if (this.processing = true, i.onStart)
return i.onStart(u2);
}, onProgress: (u2) => {
if (this.progress = u2, i.onProgress)
return i.onProgress(u2);
}, onSuccess: async (u2) => {
this.processing = false, this.progress = null, this.clearErrors(), this.wasSuccessful = true, this.recentlySuccessful = true, f2 = setTimeout(() => this.recentlySuccessful = false, 2e3);
let N2 = i.onSuccess ? await i.onSuccess(u2) : null;
return a = (0, import_lodash2.default)(this.data()), this.isDirty = false, N2;
}, onError: (u2) => {
if (this.processing = false, this.progress = null, this.clearErrors().setError(u2), i.onError)
return i.onError(u2);
}, onCancel: () => {
if (this.processing = false, this.progress = null, i.onCancel)
return i.onCancel();
}, onFinish: (u2) => {
if (this.processing = false, this.progress = null, l = null, i.onFinish)
return i.onFinish(u2);
} };
r === "delete" ? Oe.delete(s, { ...b, data: m }) : Oe[r](s, m, b);
}, get(r, s) {
this.submit("get", r, s);
}, post(r, s) {
this.submit("post", r, s);
}, put(r, s) {
this.submit("put", r, s);
}, patch(r, s) {
this.submit("patch", r, s);
}, delete(r, s) {
this.submit("delete", r, s);
}, cancel() {
l && l.cancel();
}, __rememberable: n === null, __remember() {
return { data: this.data(), errors: this.errors };
}, __restore(r) {
Object.assign(this, r.data), this.setError(r.errors);
} });
return watch(y, (r) => {
y.isDirty = !(0, import_lodash3.default)(y.data(), a), n && Oe.remember((0, import_lodash2.default)(r.__remember()), n);
}, { immediate: true, deep: true }), y;
}
var c = ref(null);
var d = ref(null);
var k2 = shallowRef(null);
var F = ref(null);
var x = null;
var W2 = defineComponent({ name: "Inertia", props: { initialPage: { type: Object, required: true }, initialComponent: { type: Object, required: false }, resolveComponent: { type: Function, required: false }, titleCallback: { type: Function, required: false, default: (e) => e }, onHeadUpdate: { type: Function, required: false, default: () => () => {
} } }, setup({ initialPage: e, initialComponent: o, resolveComponent: n, titleCallback: p, onHeadUpdate: t }) {
c.value = o ? markRaw(o) : null, d.value = e, F.value = null;
let a = typeof window > "u";
return x = Q(a, p, t), a || (Oe.init({ initialPage: e, resolveComponent: n, swapComponent: async (l) => {
c.value = markRaw(l.component), d.value = l.page, F.value = l.preserveState ? F.value : Date.now();
} }), Oe.on("navigate", () => x.forceUpdate())), () => {
if (c.value) {
c.value.inheritAttrs = !!c.value.inheritAttrs;
let l = h(c.value, { ...d.value.props, key: F.value });
return k2.value && (c.value.layout = k2.value, k2.value = null), c.value.layout ? typeof c.value.layout == "function" ? c.value.layout(h, l) : (Array.isArray(c.value.layout) ? c.value.layout : [c.value.layout]).concat(l).reverse().reduce((f2, h2) => (h2.inheritAttrs = !!h2.inheritAttrs, h(h2, { ...d.value.props }, () => f2))) : l;
}
};
} });
var E = W2;
var $2 = { install(e) {
Oe.form = T, Object.defineProperty(e.config.globalProperties, "$inertia", { get: () => Oe }), Object.defineProperty(e.config.globalProperties, "$page", { get: () => d.value }), Object.defineProperty(e.config.globalProperties, "$headManager", { get: () => x }), e.mixin(D);
} };
function Q2() {
return reactive({ props: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.props;
}), url: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.url;
}), component: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.component;
}), version: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.version;
}), scrollRegions: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.scrollRegions;
}), rememberedState: computed(() => {
var _a;
return (_a = d.value) == null ? void 0 : _a.rememberedState;
}) });
}
async function j2({ id: e = "app", resolve: o, setup: n, title: p, progress: t = {}, page: a, render: l }) {
let f2 = typeof window > "u", h2 = f2 ? null : document.getElementById(e), y = a || JSON.parse(h2.dataset.page), r = (m) => Promise.resolve(o(m)).then((b) => b.default || b), s = [], i = await r(y.component).then((m) => n({ el: h2, App: E, props: { initialPage: y, initialComponent: m, resolveComponent: r, titleCallback: p, onHeadUpdate: f2 ? (b) => s = b : null }, plugin: $2 }));
if (!f2 && t && Z(t), f2) {
let m = await l(createSSRApp({ render: () => h("div", { id: e, "data-page": JSON.stringify(y), innerHTML: i ? l(i) : "" }) }));
return { head: s, body: m };
}
}
var X2 = defineComponent({ props: { title: { type: String, required: false } }, data() {
return { provider: this.$headManager.createProvider() };
}, beforeUnmount() {
this.provider.disconnect();
}, methods: { isUnaryTag(e) {
return ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"].indexOf(e.type) > -1;
}, renderTagStart(e) {
e.props = e.props || {}, e.props.inertia = e.props["head-key"] !== void 0 ? e.props["head-key"] : "";
let o = Object.keys(e.props).reduce((n, p) => {
let t = e.props[p];
return ["key", "head-key"].includes(p) ? n : t === "" ? n + ` ${p}` : n + ` ${p}="${t}"`;
}, "");
return `<${e.type}${o}>`;
}, renderTagChildren(e) {
return typeof e.children == "string" ? e.children : e.children.reduce((o, n) => o + this.renderTag(n), "");
}, isFunctionNode(e) {
return typeof e.type == "function";
}, isComponentNode(e) {
return typeof e.type == "object";
}, isCommentNode(e) {
return /(comment|cmt)/i.test(e.type.toString());
}, isFragmentNode(e) {
return /(fragment|fgt|symbol\(\))/i.test(e.type.toString());
}, isTextNode(e) {
return /(text|txt)/i.test(e.type.toString());
}, renderTag(e) {
if (this.isTextNode(e))
return e.children;
if (this.isFragmentNode(e))
return "";
if (this.isCommentNode(e))
return "";
let o = this.renderTagStart(e);
return e.children && (o += this.renderTagChildren(e)), this.isUnaryTag(e) || (o += `</${e.type}>`), o;
}, addTitleElement(e) {
return this.title && !e.find((o) => o.startsWith("<title")) && e.push(`<title inertia>${this.title}</title>`), e;
}, renderNodes(e) {
return this.addTitleElement(e.flatMap((o) => this.resolveNode(o)).map((o) => this.renderTag(o)).filter((o) => o));
}, resolveNode(e) {
return this.isFunctionNode(e) ? this.resolveNode(e.type()) : this.isComponentNode(e) ? (console.warn("Using components in the <Head> component is not supported."), []) : this.isTextNode(e) && e.children ? e : this.isFragmentNode(e) && e.children ? e.children.flatMap((o) => this.resolveNode(o)) : this.isCommentNode(e) ? [] : e;
} }, render() {
this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []));
} });
var Z2 = X2;
var se2 = defineComponent({ name: "Link", props: { as: { type: String, default: "a" }, data: { type: Object, default: () => ({}) }, href: { type: String, required: true }, method: { type: String, default: "get" }, replace: { type: Boolean, default: false }, preserveScroll: { type: Boolean, default: false }, preserveState: { type: Boolean, default: null }, only: { type: Array, default: () => [] }, headers: { type: Object, default: () => ({}) }, queryStringArrayFormat: { type: String, default: "brackets" } }, setup(e, { slots: o, attrs: n }) {
return () => {
let p = e.as.toLowerCase(), t = e.method.toLowerCase(), [a, l] = k(t, e.href || "", e.data, e.queryStringArrayFormat);
return p === "a" && t !== "get" && console.warn(`Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.
Please specify a more appropriate element using the "as" attribute. For example:
<Link href="${a}" method="${t}" as="button">...</Link>`), h(e.as, { ...n, ...p === "a" ? { href: a } : {}, onClick: (f2) => {
ee(f2) && (f2.preventDefault(), Oe.visit(a, { data: l, method: t, replace: e.replace, preserveScroll: e.preserveScroll, preserveState: e.preserveState ?? t !== "get", only: e.only, headers: e.headers, onCancelToken: n.onCancelToken || (() => ({})), onBefore: n.onBefore || (() => ({})), onStart: n.onStart || (() => ({})), onProgress: n.onProgress || (() => ({})), onFinish: n.onFinish || (() => ({})), onCancel: n.onCancel || (() => ({})), onSuccess: n.onSuccess || (() => ({})), onError: n.onError || (() => ({})) }));
} }, o);
};
} });
var ie2 = se2;
function O2(e, o) {
if (typeof e == "object" && e !== null && e.__rememberable === false)
return e;
let n = Oe.restore(o), p = isReactive(e) ? reactive : ref, t = typeof e.__remember == "function" && typeof e.__restore == "function", a = p(n === void 0 ? e : t ? e.__restore(n) : n);
return watch(a, (l) => {
Oe.remember((0, import_lodash4.default)(t ? e.__remember() : l), o);
}, { immediate: true, deep: true }), a;
}
export {
Z2 as Head,
ie2 as Link,
j2 as createInertiaApp,
Oe as router,
T as useForm,
Q2 as usePage,
O2 as useRemember
};
/*! Bundled license information:
nprogress/nprogress.js:
(* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
* @license MIT *)
*/
//# sourceMappingURL=@inertiajs_vue3.js.map

7
node_modules/.vite/deps/@inertiajs_vue3.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

55
node_modules/.vite/deps/_metadata.json generated vendored Normal file
View File

@@ -0,0 +1,55 @@
{
"hash": "3284a5c1",
"configHash": "e4bd813e",
"lockfileHash": "70b356e8",
"browserHash": "1e7acf72",
"optimized": {
"@inertiajs/inertia-vue3": {
"src": "../../@inertiajs/inertia-vue3/dist/index.js",
"file": "@inertiajs_inertia-vue3.js",
"fileHash": "6e1bbf6c",
"needsInterop": true
},
"@inertiajs/vue3": {
"src": "../../@inertiajs/vue3/dist/index.esm.js",
"file": "@inertiajs_vue3.js",
"fileHash": "5ec0f65e",
"needsInterop": false
},
"axios": {
"src": "../../axios/index.js",
"file": "axios.js",
"fileHash": "5db804a5",
"needsInterop": false
},
"laravel-vite-plugin/inertia-helpers": {
"src": "../../laravel-vite-plugin/inertia-helpers/index.js",
"file": "laravel-vite-plugin_inertia-helpers.js",
"fileHash": "725a9dbd",
"needsInterop": false
},
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "e35c5d08",
"needsInterop": false
}
},
"chunks": {
"chunk-MJN6PGBK": {
"file": "chunk-MJN6PGBK.js"
},
"chunk-Y3GWUAMM": {
"file": "chunk-Y3GWUAMM.js"
},
"chunk-SA4QXAJ3": {
"file": "chunk-SA4QXAJ3.js"
},
"chunk-XSQZ24V4": {
"file": "chunk-XSQZ24V4.js"
},
"chunk-CEQRFMJQ": {
"file": "chunk-CEQRFMJQ.js"
}
}
}

40
node_modules/.vite/deps/axios.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
import {
Axios,
AxiosError,
AxiosHeaders,
Cancel,
CancelToken,
CanceledError,
HttpStatusCode,
VERSION,
all,
axios_default,
formToJSON,
getAdapter,
isAxiosError,
isCancel,
mergeConfig,
spread,
toFormData
} from "./chunk-MJN6PGBK.js";
import "./chunk-CEQRFMJQ.js";
export {
Axios,
AxiosError,
AxiosHeaders,
Cancel,
CancelToken,
CanceledError,
HttpStatusCode,
VERSION,
all,
axios_default as default,
formToJSON,
getAdapter,
isAxiosError,
isCancel,
mergeConfig,
spread,
toFormData
};
//# sourceMappingURL=axios.js.map

7
node_modules/.vite/deps/axios.js.map generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

42
node_modules/.vite/deps/chunk-CEQRFMJQ.js generated vendored Normal file
View File

@@ -0,0 +1,42 @@
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
export {
__esm,
__commonJS,
__export,
__toESM,
__toCommonJS
};
//# sourceMappingURL=chunk-CEQRFMJQ.js.map

7
node_modules/.vite/deps/chunk-CEQRFMJQ.js.map generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

2164
node_modules/.vite/deps/chunk-MJN6PGBK.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

7
node_modules/.vite/deps/chunk-MJN6PGBK.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

38
node_modules/.vite/deps/chunk-SA4QXAJ3.js generated vendored Normal file
View File

@@ -0,0 +1,38 @@
import {
initCustomFormatter,
init_runtime_dom_esm_bundler,
warn
} from "./chunk-XSQZ24V4.js";
// node_modules/vue/dist/vue.runtime.esm-bundler.js
init_runtime_dom_esm_bundler();
init_runtime_dom_esm_bundler();
function initDev() {
{
initCustomFormatter();
}
}
if (true) {
initDev();
}
var compile = () => {
if (true) {
warn(
`Runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
);
}
};
export {
compile
};
/*! Bundled license information:
vue/dist/vue.runtime.esm-bundler.js:
(**
* vue v3.4.15
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**)
*/
//# sourceMappingURL=chunk-SA4QXAJ3.js.map

7
node_modules/.vite/deps/chunk-SA4QXAJ3.js.map generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../vue/dist/vue.runtime.esm-bundler.js"],
"sourcesContent": ["/**\n* vue v3.4.15\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { initCustomFormatter, warn } from '@vue/runtime-dom';\nexport * from '@vue/runtime-dom';\n\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nconst compile = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n }\n};\n\nexport { compile };\n"],
"mappings": ";;;;;;;AAKA;AACA;AAEA,SAAS,UAAU;AACjB;AACE,wBAAoB;AAAA,EACtB;AACF;AAEA,IAAI,MAA2C;AAC7C,UAAQ;AACV;AACA,IAAM,UAAU,MAAM;AACpB,MAAI,MAA2C;AAC7C;AAAA,MACE;AAAA,IACF;AAAA,EACF;AACF;",
"names": []
}

11805
node_modules/.vite/deps/chunk-XSQZ24V4.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

7
node_modules/.vite/deps/chunk-XSQZ24V4.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

3478
node_modules/.vite/deps/chunk-Y3GWUAMM.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

7
node_modules/.vite/deps/chunk-Y3GWUAMM.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
import "./chunk-CEQRFMJQ.js";
// node_modules/laravel-vite-plugin/inertia-helpers/index.js
async function resolvePageComponent(path, pages) {
for (const p of Array.isArray(path) ? path : [path]) {
const page = pages[p];
if (typeof page === "undefined") {
continue;
}
return typeof page === "function" ? page() : page;
}
throw new Error(`Page not found: ${path}`);
}
export {
resolvePageComponent
};
//# sourceMappingURL=laravel-vite-plugin_inertia-helpers.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../laravel-vite-plugin/inertia-helpers/index.js"],
"sourcesContent": ["export async function resolvePageComponent(path, pages) {\n for (const p of (Array.isArray(path) ? path : [path])) {\n const page = pages[p];\n if (typeof page === 'undefined') {\n continue;\n }\n return typeof page === 'function' ? page() : page;\n }\n throw new Error(`Page not found: ${path}`);\n}\n"],
"mappings": ";;;AAAA,eAAsB,qBAAqB,MAAM,OAAO;AACpD,aAAW,KAAM,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,GAAI;AACnD,UAAM,OAAO,MAAM,CAAC;AACpB,QAAI,OAAO,SAAS,aAAa;AAC7B;AAAA,IACJ;AACA,WAAO,OAAO,SAAS,aAAa,KAAK,IAAI;AAAA,EACjD;AACA,QAAM,IAAI,MAAM,mBAAmB,IAAI,EAAE;AAC7C;",
"names": []
}

3
node_modules/.vite/deps/package.json generated vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"type": "module"
}

326
node_modules/.vite/deps/vue.js generated vendored Normal file
View File

@@ -0,0 +1,326 @@
import {
compile
} from "./chunk-SA4QXAJ3.js";
import {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useModel,
useSSRContext,
useSlots,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
} from "./chunk-XSQZ24V4.js";
import "./chunk-CEQRFMJQ.js";
export {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBlock,
createCommentVNode,
createElementBlock,
createBaseVNode as createElementVNode,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useModel,
useSSRContext,
useSlots,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
};
//# sourceMappingURL=vue.js.map

7
node_modules/.vite/deps/vue.js.map generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@@ -1,3 +1,3 @@
.container-sm {
max-width: 25%;
}
}/*# sourceMappingURL=login.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["login.scss","login.css"],"names":[],"mappings":"AAAA;EACI,cAAA;ACCJ","file":"login.css"}

View File

@@ -0,0 +1,3 @@
.container-sm{
max-width: 25%;
}

View File

@@ -0,0 +1,3 @@
.col h3 {
background-color: green;
}/*# sourceMappingURL=index.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["index.scss","index.css"],"names":[],"mappings":"AACI;EACI,uBAAA;ACAR","file":"index.css"}

View File

@@ -0,0 +1,5 @@
.col{
h3{
background-color: green;
}
}

View File

@@ -0,0 +1,39 @@
<script setup>
import homeLayout from "../../templates/home.layout.vue";
import { Head } from "@inertiajs/vue3";
</script>
<style>
@import "index.css";
</style>
<template>
<homeLayout>
<Head>
<title>Transactions</title>
</Head>
<div class="row h-50">
<div class="col">
<h3 class="text-center">Incomes</h3>
<table class="table table-striped table-hover table-responsive">
<tbody>
<tr>
<td v-for="column in $page.props.incomes.columns">
{{ column }}
</td>
</tr>
<tr v-for="item in $page.props.incomes.data">
<td>{{ item.amount }}</td>
<td>{{ item.description }}</td>
<td>{{ item.date }}</td>
<td>{{ item.label }}</td>
</tr>
</tbody>
</table>
</div>
<div class="col">
<table class="table table-striped"></table>
</div>
</div>
</homeLayout>
</template>

View File

@@ -0,0 +1 @@
/*# sourceMappingURL=profile.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"profile.css"}

View File

View File

@@ -0,0 +1,31 @@
<script setup>
import { Head } from "@inertiajs/vue3";
import { reactive } from "vue";
import { router } from "@inertiajs/vue3";
import homeLayout from "../../templates/home.layout.vue";
// const form = reactive({
// email: null,
// password: null,
// });
function submit() {
// router.post("/login", form);
}
</script>
<style>
@import "profile.css";
</style>
<template>
<homeLayout>
<Head>
<title>Profile</title>
</Head>
<h2>{{ $page.props.auth.user.name }} - {{ $page.props.auth.user.email }}</h2>
<p>Account: {{ $page.props.auth.user.account }} </p>
<p>Role: {{ $page.props.auth.user.role }}</p>
</homeLayout>
</template>

View File

@@ -0,0 +1,30 @@
header {
margin-bottom: 5px;
background-color: rgb(0, 0, 0);
padding: 10px;
border-radius: 0 0 20px 20px;
box-shadow: 0 5px 5px gray;
}
header a {
color: white;
text-decoration: none;
width: 100%;
}
header a::before {
content: "";
display: block;
width: 100%;
height: 1px;
bottom: 0;
left: 0;
background-color: #08d375;
transform: scaleX(0);
transition: transform 0.5s ease;
}
header a:hover {
color: #08d375;
transition: all ease 0.5s;
}
header a:hover::before {
transform: scaleX(1);
}/*# sourceMappingURL=home.css.map */

View File

@@ -0,0 +1 @@
{"version":3,"sources":["home.scss","home.css"],"names":[],"mappings":"AAAA;EACI,kBAAA;EACA,8BAAA;EACA,aAAA;EACA,4BAAA;EACA,0BAAA;ACCJ;ADAI;EACI,YAAA;EACA,qBAAA;EACA,WAAA;ACER;ADDQ;EACI,WAAA;EACA,cAAA;EACA,WAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA;EACA,yBAAA;EACA,oBAAA;EACA,+BAAA;ACGZ;ADDQ;EACI,cAAA;EACA,yBAAA;ACGZ;ADFY;EACI,oBAAA;ACIhB","file":"home.css"}

View File

@@ -0,0 +1,28 @@
<script setup>
import { Link } from "@inertiajs/vue3";
</script>
<style>
@import "home.css";
</style>
<template>
<header>
<div class="container text-center">
<div class="row">
<div class="col">
<Link href="/">Home</Link>
</div>
<div class="col">
<Link href="/transactions">Manage Expanses & Incomes</Link>
</div>
<div class="col">
<Link href="">Lorem</Link>
</div>
</div>
</div>
</header>
<main>
<slot />
</main>
</template>

View File

@@ -0,0 +1,30 @@
header {
margin-bottom: 5px;
background-color: rgb(0, 0, 0);
padding: 10px;
border-radius: 0 0 20px 20px;
box-shadow: 0 5px 5px gray;
a {
color: white;
text-decoration: none;
width: 100%;
&::before {
content: "";
display: block;
width: 100%;
height: 1px;
bottom: 0;
left: 0;
background-color: #08d375;
transform: scaleX(0);
transition: transform 0.5s ease;
}
&:hover {
color: #08d375;
transition: all ease 0.5s;
&::before {
transform: scaleX(1);
}
}
}
}

View File

@@ -1,5 +1,6 @@
<?php
use App\Http\Controllers\TransactionsController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
@@ -25,5 +26,8 @@ Route::middleware(['auth'])->group(function(){
Route::get('/', function () {
return view('welcome');
})->name('home');
Route::get('/profile', function () {
return Inertia::render('User/profile');
})->name('profile');
Route::get('/transactions', [TransactionsController::class, 'index'])->name('transactions');
});