Compare commits
10 Commits
9ec2918fb4
...
df52a79f6d
| Author | SHA1 | Date |
|---|---|---|
|
|
df52a79f6d | |
|
|
52f65befbe | |
|
|
b1c6d37a5d | |
|
|
7baffc9cb5 | |
|
|
87096be7cc | |
|
|
7017d38f12 | |
|
|
91e325b248 | |
|
|
b3f3c2b115 | |
|
|
be7aabbcb3 | |
|
|
d58c8d7ca2 |
|
|
@ -0,0 +1,78 @@
|
|||
@servers(['prod' => 'ubuntu@172.26.12.217', 'dev' => 'ubuntu@smgdev.top'])
|
||||
|
||||
@setup
|
||||
$repository = 'git@172.26.1.255:SMG_DEV/ECOMMERCE.git';
|
||||
$folder = isset($folder) ? $folder : 'store';
|
||||
$releases_dir = '/var/www/'.$folder.'/releases';
|
||||
$app_dir = '/var/www/'.$folder;
|
||||
$release = date('YmdHis');
|
||||
$branch = isset($branch) ? $branch : 'production';
|
||||
$new_release_dir = $releases_dir .'/'. $release;
|
||||
$php_bin = 'php8.2';
|
||||
$composer_bin = 'php8.2 /usr/local/bin/composer'
|
||||
@endsetup
|
||||
|
||||
@task('clone_repository')
|
||||
echo 'Cloning repository'
|
||||
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
|
||||
git clone --depth 1 --single-branch --branch {{ $branch }} {{ $repository }} {{ $new_release_dir }}
|
||||
cd {{ $new_release_dir }}
|
||||
@endtask
|
||||
|
||||
@task('run_composer')
|
||||
echo "Starting deployment ({{ $release }})"
|
||||
cd {{ $new_release_dir }}
|
||||
{{ $composer_bin}} install --prefer-dist --no-scripts -q -o
|
||||
npm install --legacy-peer-deps
|
||||
npm run build
|
||||
@endtask
|
||||
|
||||
@task('update_symlinks')
|
||||
echo "Linking storage directory"
|
||||
rm -rf {{ $new_release_dir }}/storage
|
||||
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
|
||||
|
||||
echo 'Linking .env file'
|
||||
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
|
||||
|
||||
echo 'Linking current release'
|
||||
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
|
||||
@endtask
|
||||
|
||||
@task('setup_laravel')
|
||||
cd {{ $app_dir }}/current
|
||||
{{ $php_bin}} artisan storage:link
|
||||
@endtask
|
||||
|
||||
@task('clean_old_releases')
|
||||
# This lists our releases by modification time and delete all but the 3 most recent.
|
||||
purging=$(ls -dt {{ $releases_dir }}/* | tail -n +5);
|
||||
|
||||
if [ "{{ $releases_dir }}" != "" ]; then
|
||||
|
||||
if [ "$purging" != "" ]; then
|
||||
echo Purging old releases: $purging;
|
||||
rm -rf $purging;
|
||||
else
|
||||
echo "No releases found for purging at this time";
|
||||
fi
|
||||
|
||||
fi
|
||||
@endtask
|
||||
|
||||
@story('deploy',["on" => "prod"])
|
||||
clone_repository
|
||||
run_composer
|
||||
update_symlinks
|
||||
setup_laravel
|
||||
clean_old_releases
|
||||
@endstory
|
||||
|
||||
|
||||
@story('deploy-dev',["on" => "dev"])
|
||||
clone_repository
|
||||
run_composer
|
||||
update_symlinks
|
||||
setup_laravel
|
||||
clean_old_releases
|
||||
@endstory
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
pipeline {
|
||||
agent any
|
||||
stages
|
||||
{
|
||||
stage("Deploy Dev"){
|
||||
when {
|
||||
branch 'development'
|
||||
}
|
||||
steps {
|
||||
sshagent(credentials: ['dev-id_rsa']) {
|
||||
sh "composer install"
|
||||
sh "./vendor/bin/envoy run deploy-dev --branch=development"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("Deploy Stage"){
|
||||
when {
|
||||
branch 'stage'
|
||||
}
|
||||
steps {
|
||||
sshagent(credentials: ['dev-id_rsa']) {
|
||||
sh "composer install"
|
||||
sh "./vendor/bin/envoy run deploy-dev --branch=stage"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("Deploy Prod"){
|
||||
when {
|
||||
branch 'production'
|
||||
}
|
||||
steps {
|
||||
sshagent(credentials: ['dev-id_rsa']) {
|
||||
sh "composer install"
|
||||
sh "./vendor/bin/envoy run deploy --branch=production"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("Deploy Mirror"){
|
||||
when {
|
||||
branch 'production-mirror'
|
||||
}
|
||||
steps {
|
||||
sshagent(credentials: ['dev-id_rsa']) {
|
||||
sh "composer install"
|
||||
sh "./vendor/bin/envoy run deploy --branch=production-mirror --folder=pos-api-mirror"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -21,6 +21,7 @@ class AddressController extends Controller
|
|||
return [
|
||||
'id' => $address->id,
|
||||
'label' => $address->label,
|
||||
'name' => $address->name,
|
||||
'location' => $address->location,
|
||||
'address' => $address->address,
|
||||
'is_primary' => $address->is_primary,
|
||||
|
|
@ -29,6 +30,8 @@ class AddressController extends Controller
|
|||
'district_id' => $address->district_id,
|
||||
'subdistrict_id' => $address->subdistrict_id,
|
||||
'postal_code' => $address->postal_code,
|
||||
'latitude' => $address->latitude,
|
||||
'longitude' => $address->longitude,
|
||||
];
|
||||
});
|
||||
|
||||
|
|
@ -82,25 +85,35 @@ class AddressController extends Controller
|
|||
public function update(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'label' => 'required|string|max:255',
|
||||
'name' => 'required|string|max:255',
|
||||
'phone' => 'required|string|max:255',
|
||||
'province_id' => 'required|exists:provinces,id',
|
||||
'city_id' => 'required|exists:cities,id',
|
||||
'district_id' => 'required|exists:districts,id',
|
||||
'subdistrict_id' => 'required|exists:subdistricts,id',
|
||||
'postal_code' => 'required|string|max:10',
|
||||
'address' => 'required|string|max:255',
|
||||
'latitude' => 'required|numeric|between:-90,90',
|
||||
'longitude' => 'required|numeric|between:-180,180',
|
||||
'is_primary' => 'boolean'
|
||||
]);
|
||||
|
||||
$address = auth()->user()->addresses()->findOrFail($id);
|
||||
|
||||
$address->update([
|
||||
'label' => $request->label,
|
||||
'name' => $request->name,
|
||||
'phone' => $request->phone,
|
||||
'province_id' => $request->province_id,
|
||||
'city_id' => $request->city_id,
|
||||
'district_id' => $request->district_id,
|
||||
'subdistrict_id' => $request->subdistrict_id,
|
||||
'postal_code' => $request->postal_code,
|
||||
'address' => $request->address,
|
||||
'is_primary' => $request->boolean('is_primary')
|
||||
'latitude' => $request->latitude,
|
||||
'longitude' => $request->longitude,
|
||||
'is_primary' => $request->is_primary ?? $address->is_primary,
|
||||
]);
|
||||
|
||||
// Update location names based on selected IDs
|
||||
|
|
@ -133,12 +146,17 @@ class AddressController extends Controller
|
|||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'label' => 'required|string|max:255',
|
||||
'name' => 'required|string|max:255',
|
||||
'phone' => 'required|string|max:255',
|
||||
'province_id' => 'required|exists:provinces,id',
|
||||
'city_id' => 'required|exists:cities,id',
|
||||
'district_id' => 'required|exists:districts,id',
|
||||
'subdistrict_id' => 'required|exists:subdistricts,id',
|
||||
'postal_code' => 'required|string|max:10',
|
||||
'address' => 'required|string|max:255',
|
||||
'postal_code' => 'required|string|max:10',
|
||||
'latitude' => 'nullable|numeric|between:-90,90',
|
||||
'longitude' => 'nullable|numeric|between:-180,180',
|
||||
'is_primary' => 'boolean'
|
||||
]);
|
||||
|
||||
|
|
@ -149,18 +167,18 @@ class AddressController extends Controller
|
|||
$subdistrict = Subdistrict::find($request->subdistrict_id);
|
||||
|
||||
$address = auth()->user()->addresses()->create([
|
||||
'label' => 'Address ' . (auth()->user()->addresses()->count() + 1),
|
||||
'label' => $request->label,
|
||||
'name' => $request->name,
|
||||
'phone' => $request->phone,
|
||||
'province_id' => $request->province_id,
|
||||
'city_id' => $request->city_id,
|
||||
'district_id' => $request->district_id,
|
||||
'subdistrict_id' => $request->subdistrict_id,
|
||||
'province_name' => $province?->name,
|
||||
'regency_name' => $city?->name,
|
||||
'district_name' => $district?->name,
|
||||
'village_name' => $subdistrict?->name,
|
||||
'postal_code' => $request->postal_code,
|
||||
'address' => $request->address,
|
||||
'is_primary' => $request->boolean('is_primary')
|
||||
'postal_code' => $request->postal_code,
|
||||
'latitude' => $request->latitude,
|
||||
'longitude' => $request->longitude,
|
||||
'is_primary' => $request->is_primary ?? false,
|
||||
]);
|
||||
|
||||
// If set as primary, unset other primary addresses
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ class LoginWaController extends Controller
|
|||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => __('otp.sent'),
|
||||
|
||||
'redirect' => route('login-phone.otp.view', ['identity' => $identity]),
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
|
|
@ -78,6 +79,7 @@ class LoginWaController extends Controller
|
|||
{
|
||||
return view('account.otp', [
|
||||
'identity' => $identity,
|
||||
'type' => 'phone',
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class ProfileController extends Controller
|
|||
if ($request->hasFile('photo')) {
|
||||
$ext = $request->file('photo')->extension();
|
||||
$filename = $request->file('photo')->storeAs("profile", $user->id.".".$ext, "public");
|
||||
$user->photo = $filename;
|
||||
$user->photo = asset('storage/' . $filename);
|
||||
}
|
||||
|
||||
$user->save();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ContactController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
return view('contact.v1');
|
||||
}
|
||||
}
|
||||
|
|
@ -205,6 +205,31 @@ class ProductController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function brandsWithImages(Request $request)
|
||||
{
|
||||
$brandRepository = new \App\Repositories\Catalog\BrandRepository;
|
||||
$brands = $brandRepository->getList([]);
|
||||
|
||||
// Render brand links HTML with images as swiper slides
|
||||
$brandHtml = '';
|
||||
$currentBrandId = $request->input('current_brand');
|
||||
|
||||
foreach ($brands as $brand) {
|
||||
$isActive = $currentBrandId == $brand->id;
|
||||
// Only show brands that have images
|
||||
if ($brand->image_url) {
|
||||
$brandHtml .= '<a class="swiper-slide text-body" href="#!" aria-label="'.$brand->name.'" role="group" style="width: 170.2px; margin-right: 20px;">';
|
||||
$brandHtml .= '<img src="'.$brand->image_url.'" alt="'.$brand->name.'" class="me-2" width="100" height="100">';
|
||||
$brandHtml .= '</a>';
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'brands' => $brandHtml,
|
||||
]);
|
||||
}
|
||||
|
||||
public function announcements(Request $request)
|
||||
{
|
||||
// Static announcements for now - can be moved to database later
|
||||
|
|
@ -388,6 +413,70 @@ class ProductController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function populersJson(Request $request)
|
||||
{
|
||||
$type = $request->input('type', 'new');
|
||||
$limit = 6;
|
||||
|
||||
$user = auth()->user();
|
||||
$userId = $user ? $user->id : 0;
|
||||
[$location_id, $is_consignment] = Cache::remember('employee_user_'.$userId, 60 * 60 * 24, function () use ($user) {
|
||||
|
||||
if ($user == null) {
|
||||
return [10, false];
|
||||
}
|
||||
|
||||
$employee = @$user->employee;
|
||||
$location_id = @$employee->location_id;
|
||||
$location = @$employee->location;
|
||||
$is_consignment = (bool) @$location->is_consignment;
|
||||
|
||||
return [$location_id, $is_consignment];
|
||||
|
||||
});
|
||||
|
||||
$productRepository = new ProductRepository;
|
||||
|
||||
// Set parameters based on type
|
||||
$params = [
|
||||
'limit' => $limit,
|
||||
'location_id' => $location_id,
|
||||
'is_consignment' => $is_consignment,
|
||||
];
|
||||
|
||||
switch ($type) {
|
||||
case 'new':
|
||||
$params['sort'] = 'new';
|
||||
break;
|
||||
case 'best_sellers':
|
||||
$params['sort'] = 'best_sellers';
|
||||
break;
|
||||
case 'special-offer':
|
||||
$params['event'] = 'special-offer';
|
||||
break;
|
||||
case 'top_rated':
|
||||
$params['sort'] = 'random';
|
||||
break;
|
||||
default:
|
||||
$params['sort'] = 'new';
|
||||
break;
|
||||
}
|
||||
|
||||
$params['limit'] = 10;
|
||||
|
||||
$products = $productRepository->getList($params);
|
||||
|
||||
|
||||
$p = $products->map(function($row){
|
||||
$row->image_url = $row->image_url;
|
||||
return $row;
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'data' =>$p,
|
||||
]);
|
||||
}
|
||||
|
||||
public function detail($slug, Request $request, ProductRepository $productRepository)
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Repositories\Member\VoucherEvent\VoucherEventRepository;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class VoucherEventController extends Controller
|
||||
{
|
||||
protected $voucherEventRepository;
|
||||
|
||||
public function __construct(VoucherEventRepository $voucherEventRepository)
|
||||
{
|
||||
$this->voucherEventRepository = $voucherEventRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redeem a voucher event
|
||||
*
|
||||
* @param int $voucherEvent
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function redeem($voucherEvent, Request $request): JsonResponse
|
||||
{
|
||||
try {
|
||||
// Get the authenticated user
|
||||
$user = auth()->user();
|
||||
|
||||
if (!$user) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'User not authenticated'
|
||||
], 401);
|
||||
}
|
||||
|
||||
// Call the repository's redeem method
|
||||
$result = $this->voucherEventRepository->redeem($voucherEvent, $user);
|
||||
|
||||
if ($result['success']) {
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => $result['message'] ?? 'Voucher redeemed successfully!',
|
||||
'data' => $result['data'] ?? null
|
||||
]);
|
||||
} else {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $result['message'] ?? 'Failed to redeem voucher'
|
||||
], 400);
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error($e);
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -57,6 +57,7 @@ class User extends Authenticatable
|
|||
return $this->hasOne(Customer::class);
|
||||
}
|
||||
|
||||
|
||||
public function addresses()
|
||||
{
|
||||
return $this->hasMany(Address::class);
|
||||
|
|
@ -64,6 +65,6 @@ class User extends Authenticatable
|
|||
|
||||
public function getPhotoUrlAttribute()
|
||||
{
|
||||
return $this->photo ? env('WMS_ASSET_URL') . '/' . $this->photo : asset('img/photo-placeholder.png');
|
||||
return $this->photo ? (str_contains($this->photo, 'http') ? $this->photo : env('WMS_ASSET_URL') . '/' . $this->photo) : asset('img/photo-placeholder.png');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,9 @@ class BrandRepository
|
|||
|
||||
return Brand::whereIn('name', $ids)->orderBy('priority', 'desc')
|
||||
->where('priority', '>', 0)
|
||||
->orderBy('name', 'asc')->get();
|
||||
->orderBy('name', 'asc')
|
||||
|
||||
->get();
|
||||
}
|
||||
|
||||
return Brand::orderBy('priority', 'desc')->orderBy('name', 'asc')
|
||||
|
|
|
|||
|
|
@ -451,4 +451,5 @@ class MemberAuthRepository
|
|||
|
||||
return $user;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class VoucherRepository
|
|||
$model = Voucher::where('customer_id', (int) @$customer->id)
|
||||
->where('used_at', null)
|
||||
->where('expired_at','>=',Carbon::now())
|
||||
->orderBy('created_at','desc')->paginate($request->limit);
|
||||
->orderBy('created_at','desc')->paginate($request->limit ?? 100);
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class VoucherEventRepository
|
|||
{
|
||||
public function getList($request)
|
||||
{
|
||||
$model = VoucherEvent::where('redeem_point', '>', 0)->orderBy('created_at','desc')->paginate($request->limit);
|
||||
$model = VoucherEvent::where('redeem_point', '>', 0)->orderBy('created_at','desc')->paginate($request->limit ?? 100);
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
|
@ -114,7 +114,12 @@ class VoucherEventRepository
|
|||
$nominal = $voucher->nominal;
|
||||
}
|
||||
|
||||
$customer = Customer::where('user_id', auth()->user()->id)->firstOrFail();
|
||||
$customer = auth()->user()->customer ?? null;
|
||||
if ($customer == null) {
|
||||
throw ValidationException::withMessages([
|
||||
"customer" => "Lengkapi profil terlebih dahulu"
|
||||
]);
|
||||
}
|
||||
$point = DB::select("SELECT SUM(point) as point FROM customer_points WHERE customer_id = ? ", [$customer->id]);
|
||||
$point = (float) @$point[0]->point;
|
||||
|
||||
|
|
@ -141,7 +146,7 @@ class VoucherEventRepository
|
|||
'user_id' => auth()->user()->id
|
||||
]);
|
||||
|
||||
$customer = Customer::where('user_id', auth()->user()->id)->firstOrFail();
|
||||
$customer = auth()->user()->customer;
|
||||
|
||||
$this->redeemPoint($customer->id, $voucher->redeem_point, "Redeem point for ".$model->description, $model);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components\Checkout;
|
||||
|
||||
use App\Repositories\Member\VoucherEvent\VoucherEventRepository;
|
||||
use App\Repositories\Member\Voucher\VoucherRepository;
|
||||
use Illuminate\View\Component;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class PromoCode extends Component
|
||||
{
|
||||
public $voucher_events;
|
||||
public $vouchers;
|
||||
|
||||
/**
|
||||
* Create the component instance.
|
||||
*
|
||||
* @param VoucherEventRepository $voucherEventRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(VoucherRepository $voucherRepository, VoucherEventRepository $voucherEventRepository)
|
||||
{
|
||||
$this->voucher_events = $voucherEventRepository->getList([]);
|
||||
$this->vouchers = $voucherRepository->getList([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.checkout.promo-code', [
|
||||
'voucher_events' => $this->voucher_events,
|
||||
'vouchers' => $this->vouchers
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use App\Repositories\Catalog\BrandRepository;
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class FooterBrands extends Component
|
||||
{
|
||||
public $brands;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct(BrandRepository $brandRepository)
|
||||
{
|
||||
$this->brands = $brandRepository->getList([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*/
|
||||
public function render(): View|Closure|string
|
||||
{
|
||||
return view('components.footer-brands', ['brands' => $this->brands]);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,8 @@ namespace App\View\Components\Layout;
|
|||
|
||||
use App\Repositories\Catalog\CategoryRepository;
|
||||
use App\Repositories\Catalog\GenderRepository;
|
||||
use App\Repositories\Catalog\BrandRepository;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\View\Component;
|
||||
|
|
@ -13,6 +15,7 @@ class NavbarCategory extends Component
|
|||
|
||||
public $genders = [];
|
||||
public $categories = [];
|
||||
public $brands = [];
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
|
|
@ -22,13 +25,18 @@ class NavbarCategory extends Component
|
|||
|
||||
$genderRepository = new GenderRepository();
|
||||
$categoryRepository = new CategoryRepository();
|
||||
$brandsRepository = new BrandRepository();
|
||||
|
||||
|
||||
$this->genders = $genderRepository->getList([]);
|
||||
$this->genders = collect($this->genders)->chunk(7);
|
||||
|
||||
$this->categories = $categoryRepository->getList([]);
|
||||
// chunk
|
||||
$this->categories = collect($this->categories)->chunk(7);
|
||||
|
||||
|
||||
$this->brands = $brandsRepository->getList([]);
|
||||
$this->brands = collect($this->brands)->chunk(7);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
"awobaz/compoships": "^2.5",
|
||||
"cviebrock/eloquent-sluggable": "^12.0",
|
||||
"intervention/image": "^3.11",
|
||||
"laravel/envoy": "^2.10",
|
||||
"laravel/framework": "^12.0",
|
||||
"laravel/socialite": "^5.24",
|
||||
"laravel/tinker": "^2.10.1",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "132ddb45d6897d4128994f20e18e0e96",
|
||||
"content-hash": "1e2408100080c9d274ea0a025e8fc74d",
|
||||
"packages": [
|
||||
{
|
||||
"name": "awobaz/compoships",
|
||||
|
|
@ -1470,6 +1470,69 @@
|
|||
],
|
||||
"time": "2025-12-17T13:38:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/envoy",
|
||||
"version": "v2.10.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/envoy.git",
|
||||
"reference": "819a519e3d86b056c7aa3bd5d0801952a6fc14fd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/envoy/zipball/819a519e3d86b056c7aa3bd5d0801952a6fc14fd",
|
||||
"reference": "819a519e3d86b056c7aa3bd5d0801952a6fc14fd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^6.0|^7.0",
|
||||
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"php": "^7.2|^8.0",
|
||||
"symfony/console": "^4.3|^5.0|^6.0|^7.0",
|
||||
"symfony/process": "^4.3|^5.0|^6.0|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^8.0|^9.0|^10.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-posix": "Required to determine the System user on Unix systems."
|
||||
},
|
||||
"bin": [
|
||||
"bin/envoy"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laravel\\Envoy\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Taylor Otwell",
|
||||
"email": "taylor@laravel.com"
|
||||
}
|
||||
],
|
||||
"description": "Elegant SSH tasks for PHP.",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"ssh"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/envoy/issues",
|
||||
"source": "https://github.com/laravel/envoy/tree/v2.10.2"
|
||||
},
|
||||
"time": "2025-01-28T15:47:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v12.21.0",
|
||||
|
|
|
|||
|
|
@ -17,6 +17,14 @@ return [
|
|||
'select_village' => 'Select subdistrict...',
|
||||
'zip_code' => 'ZIP code',
|
||||
'address' => 'Address',
|
||||
'label' => 'Label',
|
||||
'name' => 'Name',
|
||||
'phone' => 'Phone',
|
||||
'please_enter_phone' => 'Please enter your phone number!',
|
||||
'latitude' => 'Latitude',
|
||||
'longitude' => 'Longitude',
|
||||
'please_enter_latitude' => 'Please enter your latitude!',
|
||||
'please_enter_longitude' => 'Please enter your longitude!',
|
||||
'set_as_primary_address' => 'Set as primary address',
|
||||
'save_changes' => 'Save changes',
|
||||
'close' => 'Close',
|
||||
|
|
@ -29,6 +37,8 @@ return [
|
|||
'please_select_village' => 'Please select your village!',
|
||||
'please_enter_zip_code' => 'Please enter your ZIP code!',
|
||||
'please_enter_address' => 'Please enter your address!',
|
||||
'please_enter_label' => 'Please enter your label!',
|
||||
'please_enter_name' => 'Please enter your name!',
|
||||
'saving' => 'Saving',
|
||||
'error_saving_address' => 'Error saving address',
|
||||
'address_updated_successfully' => 'Address updated successfully',
|
||||
|
|
|
|||
|
|
@ -45,4 +45,15 @@ return [
|
|||
'pickup' => 'Pickup',
|
||||
'pickup_ready' => 'Your order will be ready for pickup at the selected store',
|
||||
'continue_to_payment' => 'Continue to Payment',
|
||||
'apply_promo_code' => 'Apply promo code',
|
||||
'enter_promo_code' => 'Enter promo code',
|
||||
'enter_valid_promo_code' => 'Enter a valid promo code!',
|
||||
'apply' => 'Apply',
|
||||
'available_vouchers' => 'Available Vouchers',
|
||||
'available_voucher_events' => 'Available Voucher Events',
|
||||
'points_required' => 'Points Required',
|
||||
'valid_period' => 'Valid Period',
|
||||
'terms_and_conditions' => 'Terms and Conditions',
|
||||
'close' => 'Close',
|
||||
'redeem' => 'Redeem',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Contact us',
|
||||
'subtitle' => 'Feel free to contact us and we will be happy to help you!',
|
||||
|
||||
// Contact details section
|
||||
'location_title' => 'Location',
|
||||
'location_address' => 'Jalan Pintu Air Raya No.11 B,D,E,F,G RT.8/RW.1, Ps. Baru, Kecamatan Sawah Besar, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10710',
|
||||
'location_link' => 'Get directions',
|
||||
|
||||
'phone_title' => 'Phone',
|
||||
'phone_number' => '(021) 3500703',
|
||||
'phone_whatsapp' => '0818-4343-01',
|
||||
|
||||
'email_title' => 'Email',
|
||||
'email_address' => 'sales@asiagolf.id',
|
||||
|
||||
// Contact form
|
||||
'form_title' => 'Send us a message',
|
||||
'form_subtitle' => 'We usually respond within 24 hours',
|
||||
|
||||
'name_label' => 'Name',
|
||||
'name_placeholder' => 'Your name',
|
||||
|
||||
'email_label' => 'Email',
|
||||
'email_placeholder' => 'your.email@example.com',
|
||||
|
||||
'subject_label' => 'Subject',
|
||||
'subject_placeholder' => 'What is this about?',
|
||||
|
||||
'message_label' => 'Message',
|
||||
'message_placeholder' => 'Tell us more about your inquiry...',
|
||||
|
||||
'submit_button' => 'Send message',
|
||||
|
||||
// Social media
|
||||
'social_title' => 'Follow us',
|
||||
'social_instagram' => 'Instagram',
|
||||
'social_facebook' => 'Facebook',
|
||||
'social_twitter' => 'Twitter',
|
||||
|
||||
// Success messages
|
||||
'success_title' => 'Thank you for your message!',
|
||||
'success_message' => 'We have received your message and will get back to you soon.',
|
||||
|
||||
// Error messages
|
||||
'error_title' => 'Something went wrong',
|
||||
'error_message' => 'Please try again later or contact us directly.',
|
||||
|
||||
// Working hours
|
||||
'working_hours_title' => 'Working hours',
|
||||
'working_hours_mon_fri' => 'Mon - Fri 8:00 - 18:00',
|
||||
'working_hours_sat_sun' => 'Sat - Sun 10:00 - 16:00',
|
||||
|
||||
// Support section
|
||||
'support_title' => 'Looking for support?',
|
||||
'support_message' => 'We might already have what you\'re looking for. See our FAQs or head to our dedicated Help Center.',
|
||||
'help_center_button' => 'Help center',
|
||||
|
||||
// FAQ
|
||||
'faq_delivery_question' => 'How long will delivery take?',
|
||||
'faq_delivery_answer' => 'Delivery times vary based on your location and chosen shipping method. Generally, our standard delivery takes up to 5 days, while our Express Delivery ensures your order reaches you within 1 day. Please note that these times may be subject to occasional variations due to unforeseen circumstances, but we do our best to meet these estimates.',
|
||||
];
|
||||
|
|
@ -17,7 +17,15 @@ return [
|
|||
'select_village' => 'Pilih kelurahan/desa...',
|
||||
'zip_code' => 'Kode Pos',
|
||||
'address' => 'Alamat',
|
||||
'set_as_primary_address' => 'Jadikan alamat utama',
|
||||
'label' => 'Label',
|
||||
'name' => 'Nama',
|
||||
'phone' => 'Telepon',
|
||||
'please_enter_phone' => 'Silakan masukkan nomor telepon Anda!',
|
||||
'latitude' => 'Lintang',
|
||||
'longitude' => 'Bujur',
|
||||
'please_enter_latitude' => 'Silakan masukkan lintang Anda!',
|
||||
'please_enter_longitude' => 'Silakan masukkan bujur Anda!',
|
||||
'set_as_primary_address' => 'Jadikan sebagai alamat utama',
|
||||
'save_changes' => 'Simpan perubahan',
|
||||
'close' => 'Tutup',
|
||||
'alternative_shipping_address' => 'Alamat Pengiriman Alternatif',
|
||||
|
|
@ -29,6 +37,8 @@ return [
|
|||
'please_select_village' => 'Silakan pilih kelurahan/desa Anda!',
|
||||
'please_enter_zip_code' => 'Silakan masukkan kode pos Anda!',
|
||||
'please_enter_address' => 'Silakan masukkan alamat Anda!',
|
||||
'please_enter_label' => 'Silakan masukkan label Anda!',
|
||||
'please_enter_name' => 'Silakan masukkan nama Anda!',
|
||||
'saving' => 'Menyimpan',
|
||||
'error_saving_address' => 'Terjadi kesalahan saat menyimpan alamat',
|
||||
'address_updated_successfully' => 'Alamat berhasil diperbarui',
|
||||
|
|
|
|||
|
|
@ -45,4 +45,15 @@ return [
|
|||
'pickup' => 'Ambil di Toko',
|
||||
'pickup_ready' => 'Pesanan Anda akan siap diambil di toko yang dipilih',
|
||||
'continue_to_payment' => 'Lanjut ke Pembayaran',
|
||||
'apply_promo_code' => 'Gunakan kode promo',
|
||||
'enter_promo_code' => 'Masukkan kode promo',
|
||||
'enter_valid_promo_code' => 'Masukkan kode promo yang valid!',
|
||||
'apply' => 'Gunakan',
|
||||
'available_vouchers' => 'Voucher Tersedia',
|
||||
'available_voucher_events' => 'Event Voucher Tersedia',
|
||||
'points_required' => 'Poin Diperlukan',
|
||||
'valid_period' => 'Periode Berlaku',
|
||||
'terms_and_conditions' => 'Syarat dan Ketentuan',
|
||||
'close' => 'Tutup',
|
||||
'redeem' => 'Tukar',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Hubungi Kami',
|
||||
'subtitle' => 'Jangan ragu untuk menghubungi kami dan kami akan dengan senang hati membantu Anda!',
|
||||
|
||||
// Contact details section
|
||||
'location_title' => 'Lokasi',
|
||||
'location_address' => 'Jalan Pintu Air Raya No.11 B,D,E,F,G RT.8/RW.1, Ps. Baru, Kecamatan Sawah Besar, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10710',
|
||||
'location_link' => 'Petunjuk arah',
|
||||
|
||||
'phone_title' => 'Telepon',
|
||||
'phone_number' => '(021) 3500703',
|
||||
'phone_whatsapp' => '0818-4343-01',
|
||||
|
||||
'email_title' => 'Email',
|
||||
'email_address' => 'sales@asiagolf.id',
|
||||
|
||||
// Contact form
|
||||
'form_title' => 'Kirim pesan',
|
||||
'form_subtitle' => 'Kami biasanya merespons dalam 24 jam',
|
||||
|
||||
'name_label' => 'Nama',
|
||||
'name_placeholder' => 'Nama Anda',
|
||||
|
||||
'email_label' => 'Email',
|
||||
'email_placeholder' => 'email.anda@example.com',
|
||||
|
||||
'subject_label' => 'Subjek',
|
||||
'subject_placeholder' => 'Tentang apa ini?',
|
||||
|
||||
'message_label' => 'Pesan',
|
||||
'message_placeholder' => 'Ceritakan lebih lanjut tentang pertanyaan Anda...',
|
||||
|
||||
'submit_button' => 'Kirim pesan',
|
||||
|
||||
// Social media
|
||||
'social_title' => 'Ikuti kami',
|
||||
'social_instagram' => 'Instagram',
|
||||
'social_facebook' => 'Facebook',
|
||||
'social_twitter' => 'Twitter',
|
||||
|
||||
// Success messages
|
||||
'success_title' => 'Terima kasih atas pesan Anda!',
|
||||
'success_message' => 'Kami telah menerima pesan Anda dan akan segera menghubungi Anda kembali.',
|
||||
|
||||
// Error messages
|
||||
'error_title' => 'Terjadi kesalahan',
|
||||
'error_message' => 'Silakan coba lagi nanti atau hubungi kami langsung.',
|
||||
|
||||
// Working hours
|
||||
'working_hours_title' => 'Jam operasional',
|
||||
'working_hours_mon_fri' => 'Sen - Jum 08:00 - 18:00',
|
||||
'working_hours_sat_sun' => 'Sab - Min 10:00 - 16:00',
|
||||
|
||||
// Support section
|
||||
'support_title' => 'Mencari bantuan?',
|
||||
'support_message' => 'Kami mungkin sudah memiliki apa yang Anda cari. Lihat FAQ kami atau kunjungi ke Pusat Bantuan kami.',
|
||||
'help_center_button' => 'Pusat bantuan',
|
||||
|
||||
// FAQ
|
||||
'faq_delivery_question' => 'Berapa lama pengiriman akan berlangsung?',
|
||||
'faq_delivery_answer' => 'Waktu pengiriman bervariasi tergantung pada lokasi Anda dan metode pengiriman yang dipilih. Umumnya, pengiriman standar kami memakan waktu hingga 5 hari, sementara Pengiriman Ekspres memastikan pesanan Anda sampai dalam 1 hari. Harap dicatat bahwa waktu ini dapat berubah karena keadaan yang tidak terduga, tetapi kami melakukan yang terbaik untuk memenuhi perkiraan ini.',
|
||||
];
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -14,6 +14,7 @@
|
|||
"vite": "^6.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"bootstrap": "^5.3.8",
|
||||
"chart.js": "^4.5.0",
|
||||
"choices.js": "^11.1.0",
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 179 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 158 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
|
|
@ -6,9 +6,18 @@
|
|||
export default (() => {
|
||||
const htmlElement = document.documentElement
|
||||
|
||||
// Check the 'data-pwa' attribute of the HTML element
|
||||
// Check if Bootstrap is loaded
|
||||
const checkBootstrapLoaded = () => {
|
||||
if (typeof bootstrap === 'undefined') {
|
||||
console.error('Bootstrap is not loaded');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// Check 'data-pwa' attribute of HTML element
|
||||
if (htmlElement.getAttribute('data-pwa') !== 'true') {
|
||||
// Unregister the service worker if it's registered and 'data-pwa' is not 'true'
|
||||
// Unregister service worker if it's registered and 'data-pwa' is not 'true'
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.getRegistrations().then((registrations) => {
|
||||
for (let registration of registrations) {
|
||||
|
|
@ -19,6 +28,11 @@ export default (() => {
|
|||
return // Stop further execution to prevent PWA setup when not specified
|
||||
}
|
||||
|
||||
// Check Bootstrap before proceeding with any Bootstrap-dependent code
|
||||
if (!checkBootstrapLoaded()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Settings
|
||||
const SETTINGS = {
|
||||
appName: 'AsiaGolf',
|
||||
|
|
@ -171,9 +185,16 @@ export default (() => {
|
|||
|
||||
// Get prompt instance
|
||||
const promptElement = document.getElementById(promptId)
|
||||
|
||||
// Check if Bootstrap is loaded before using it
|
||||
if (!checkBootstrapLoaded()) {
|
||||
console.error('Cannot create PWA prompt: Bootstrap is not loaded');
|
||||
return;
|
||||
}
|
||||
|
||||
/* eslint-disable no-undef */
|
||||
const promptInstance = new bootstrap.Modal(promptElement, {
|
||||
backdrop: 'static', // Optional: makes prompt not close when clicking outside
|
||||
backdrop: false, // Disable backdrop to prevent layering issues
|
||||
keyboard: false, // Optional: makes prompt not close when pressing escape key
|
||||
})
|
||||
/* eslint-enable no-undef */
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
* @author Coderthemes
|
||||
* @version 1.0.0
|
||||
*/
|
||||
import 'bootstrap'
|
||||
|
||||
import 'img-comparison-slider'
|
||||
import 'simplebar'
|
||||
|
||||
|
|
|
|||
|
|
@ -101,6 +101,32 @@
|
|||
<div class="alert alert-danger d-none new-address-form-message" role="alert"></div>
|
||||
<div class="alert alert-success d-none new-address-form-success" role="alert"></div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.label') }}</label>
|
||||
<input type="text" class="form-control new-label" id="new-label" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_label') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.name') }}</label>
|
||||
<input type="text" class="form-control new-name" id="new-name" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_name') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.phone') }}</label>
|
||||
<input type="tel" class="form-control new-phone" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_phone') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.province') }}</label>
|
||||
|
|
@ -140,17 +166,33 @@
|
|||
<div class="invalid-feedback">{{ __('addresses.please_select_village') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label for="new-zip" class="form-label">{{ __('addresses.zip_code') }}</label>
|
||||
<input type="text" class="form-control" id="new-zip" required>
|
||||
<label class="form-label">{{ __('addresses.zip_code') }}</label>
|
||||
<input type="text" class="form-control new-zip" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_zip_code') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.latitude') }}</label>
|
||||
<input type="text" class="form-control new-latitude" step="0.000001" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_latitude') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.longitude') }}</label>
|
||||
<input type="text" class="form-control new-longitude" step="0.000001" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_longitude') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<div class="position-relative">
|
||||
<label for="new-address" class="form-label">{{ __('addresses.address') }}</label>
|
||||
<input type="text" class="form-control" id="new-address" required>
|
||||
<textarea class="form-control" id="new-address" rows="3" required></textarea>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_address') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -315,6 +357,7 @@
|
|||
<ul class="list-unstyled fs-sm m-0">
|
||||
<li>${address.location}</li>
|
||||
<li>${address.address}</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<div class="collapse primary-address-${address.id}" id="primaryAddressEdit${address.id}">
|
||||
|
|
@ -325,6 +368,32 @@
|
|||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="_token" value="${document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''}">
|
||||
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.label') }}</label>
|
||||
<input type="text" class="form-control edit-label" value="${address.label}" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_address') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.name') }}</label>
|
||||
<input type="text" class="form-control edit-name" value="${address.name ?? ''}" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_name') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.phone') }}</label>
|
||||
<input type="tel" class="form-control edit-phone" value="${address.phone ?? ''}" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_phone') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.province') }}</label>
|
||||
|
|
@ -370,25 +439,41 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.zip_code') }}</label>
|
||||
<input type="text" class="form-control postal_code" value="${address.postal_code}" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_zip_code') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.latitude') }}</label>
|
||||
<input type="text" class="form-control latitude" value="${address.latitude ?? ''}" step="0.000001" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_latitude') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.longitude') }}</label>
|
||||
<input type="text" class="form-control longitude" value="${address.longitude ?? ''}" step="0.000001" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_longitude') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<div class="position-relative">
|
||||
<label class="form-label">{{ __('addresses.address') }}</label>
|
||||
<input type="text" class="form-control zip_code" value="${address.address}" required>
|
||||
<input type="text" class="form-control address-input" value="${address.address}" required>
|
||||
<div class="invalid-feedback">{{ __('addresses.please_enter_address') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="form-check mb-0">
|
||||
<input type="checkbox" class="form-check-input" ${address.is_primary ? 'checked' : ''}>
|
||||
<input type="checkbox" class="form-check-input " id="set-primary-${address.id}" ${address.is_primary ? 'checked' : ''}>
|
||||
<label class="form-check-label">{{ __('addresses.set_as_primary_address') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -942,6 +1027,22 @@
|
|||
// Get CSRF token
|
||||
const tokenInput = form.querySelector('input[name="_token"]');
|
||||
if (tokenInput) submitData._token = tokenInput.value;
|
||||
|
||||
|
||||
// Get Name
|
||||
const nameInput = isNewAddress ?
|
||||
form.querySelector('#new-name') : form.querySelector('.edit-name');
|
||||
if (nameInput) submitData.name = nameInput.value;
|
||||
|
||||
// Get Phone
|
||||
const phoneInput = isNewAddress ?
|
||||
form.querySelector('.new-phone') : form.querySelector('.edit-phone');
|
||||
if (phoneInput) submitData.phone = phoneInput.value;
|
||||
|
||||
// Get Label
|
||||
const labelInput = isNewAddress ?
|
||||
form.querySelector('#new-label') : form.querySelector('.edit-label');
|
||||
if (labelInput) submitData.label = labelInput.value;
|
||||
|
||||
// Get province ID
|
||||
const provinceSelect = isNewAddress ?
|
||||
|
|
@ -968,9 +1069,19 @@
|
|||
form.querySelector('#new-zip') : form.querySelector('.postal_code');
|
||||
if (zipInput) submitData.postal_code = zipInput.value;
|
||||
|
||||
// Get address
|
||||
// Get latitude
|
||||
const latitudeInput = isNewAddress ?
|
||||
form.querySelector('.new-latitude') : form.querySelector('.latitude');
|
||||
if (latitudeInput) submitData.latitude = latitudeInput.value;
|
||||
|
||||
// Get longitude
|
||||
const longitudeInput = isNewAddress ?
|
||||
form.querySelector('.new-longitude') : form.querySelector('.longitude');
|
||||
if (longitudeInput) submitData.longitude = longitudeInput.value;
|
||||
|
||||
// Get address
|
||||
const addressInput = isNewAddress ?
|
||||
form.querySelector('#new-address') : form.querySelector('.zip_code');
|
||||
form.querySelector('#new-address') : form.querySelector('.address-input');
|
||||
if (addressInput) submitData.address = addressInput.value;
|
||||
|
||||
// Get primary checkbox
|
||||
|
|
|
|||
|
|
@ -38,8 +38,9 @@
|
|||
<div class="position-relative">
|
||||
|
||||
<div class="avatar avatar-lg" style="aspect-ratio: 1/1; overflow: hidden; max-width: 300px; width: 100%; height: auto;">
|
||||
|
||||
@if(auth()->user()->photo)
|
||||
<img src="{{ asset('storage/' . auth()->user()->photo) }}" alt="{{ auth()->user()->name }}" class="avatar-img rounded-circle" style="width: 100%; height: 100%; object-fit: cover;" onerror="this.src='{{ asset('img/photo-placeholder.png') }}'">
|
||||
<img src="{{ auth()->user()->photo_url }}" alt="{{ auth()->user()->name }}" class="avatar-img rounded-circle" style="width: 100%; height: 100%; object-fit: cover;" onerror="this.src='{{ asset('img/photo-placeholder.png') }}'">
|
||||
@else
|
||||
<img src="{{ asset('img/photo-placeholder.png') }}" alt="{{ auth()->user()->name }}" class="avatar-img rounded-circle" style="width: 100%; height: 100%; object-fit: cover;">
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
<div class="position-relative mb-4">
|
||||
<label for="otp" class="form-label">{{ __('otp.enter_code') }}</label>
|
||||
<input class="form-control form-control-lg" type="text" placeholder="000000" maxlength="6"
|
||||
<input class="form-control form-control-lg" type="text" placeholder="{{ __('otp.enter_code') }}" maxlength="6"
|
||||
pattern="[0-9]{6}" required="" name="otp" id="otp" autocomplete="one-time-code" />
|
||||
<div class="invalid-tooltip bg-transparent py-0">{{ __('otp.invalid_code') }}</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -47,8 +47,7 @@
|
|||
<tr>
|
||||
<th scope="col" class="fs-sm fw-normal py-3 ps-0"><span
|
||||
class="text-body">Product</span></th>
|
||||
<th scope="col" class="text-body fs-sm fw-normal py-3 d-none d-xl-table-cell"><span
|
||||
class="text-body">Price</span></th>
|
||||
|
||||
<th scope="col" class="text-body fs-sm fw-normal py-3 d-none d-md-table-cell"><span
|
||||
class="text-body">Quantity</span></th>
|
||||
<th scope="col" class="text-body fs-sm fw-normal py-3 d-none d-md-table-cell"><span
|
||||
|
|
@ -86,8 +85,10 @@
|
|||
<a class="flex-shrink-0"
|
||||
href="{{ route('product.detail', $cart->itemVariant->item->slug) }}">
|
||||
<img src="{{ $cart->itemReference->item->image_url ?? '' }}"
|
||||
width="110" alt="{{ $cart->name ?? 'Product' }}">
|
||||
width="80" alt="{{ $cart->name ?? 'Product' }}">
|
||||
</a>
|
||||
|
||||
|
||||
<div class="w-100 min-w-0 ps-2 ps-xl-3">
|
||||
<h5 class="d-flex animate-underline mb-2">
|
||||
<a class="d-block fs-sm fw-medium text-truncate animate-target"
|
||||
|
|
@ -103,6 +104,11 @@
|
|||
<span class="text-dark-emphasis fw-medium">${{ number_format($cart->itemReference->display_price ?? 0, 2) }}</span>
|
||||
</li>
|
||||
</ul> --}}
|
||||
|
||||
<input type="hidden" id="price_{{ $cart->id }}"
|
||||
value="{{ $cart->itemVariant->display_price ?? 0 }}">
|
||||
Rp {{ number_format($cart->itemVariant->display_price ?? 0, 0, ',', '.') }}
|
||||
|
||||
<div class="count-input rounded-2 d-md-none mt-3">
|
||||
<button type="button" class="btn btn-sm btn-icon"
|
||||
data-decrement aria-label="Decrement quantity">
|
||||
|
|
@ -118,11 +124,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="h6 py-3 d-none d-xl-table-cell">
|
||||
<input type="hidden" id="price_{{ $cart->id }}"
|
||||
value="{{ $cart->itemVariant->display_price ?? 0 }}">
|
||||
Rp {{ number_format($cart->itemVariant->display_price ?? 0, 0, ',', '.') }}
|
||||
</td>
|
||||
|
||||
<td class="py-3 d-none d-md-table-cell">
|
||||
<div class="count-input">
|
||||
<button type="button" class="btn btn-icon" data-decrement
|
||||
|
|
@ -215,34 +217,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion bg-body-tertiary rounded-5 p-4">
|
||||
<div class="accordion-item border-0">
|
||||
<h3 class="accordion-header" id="promoCodeHeading">
|
||||
<button type="button"
|
||||
class="accordion-button animate-underline collapsed py-0 ps-sm-2 ps-lg-0 ps-xl-2"
|
||||
data-bs-toggle="collapse" data-bs-target="#promoCode" aria-expanded="false"
|
||||
aria-controls="promoCode">
|
||||
<i class="ci-percent fs-xl me-2"></i>
|
||||
<span class="animate-target me-2">Apply promo code</span>
|
||||
</button>
|
||||
</h3>
|
||||
<div class="accordion-collapse collapse" id="promoCode"
|
||||
aria-labelledby="promoCodeHeading">
|
||||
<div class="accordion-body pt-3 pb-2 ps-sm-2 px-lg-0 px-xl-2">
|
||||
<form class="needs-validation d-flex gap-2" novalidate>
|
||||
<div class="position-relative w-100">
|
||||
<input type="text" class="form-control"
|
||||
placeholder="Enter promo code" required>
|
||||
<div class="invalid-tooltip bg-transparent py-0">Enter a valid promo
|
||||
code!
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-dark">Apply</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<x-checkout.promo-code />
|
||||
</div>
|
||||
</aside>
|
||||
@endif
|
||||
|
|
@ -251,7 +226,7 @@
|
|||
|
||||
|
||||
<!-- Trending products (Carousel) -->
|
||||
<section class="container pb-4 pb-md-5 mb-2 mb-sm-0 mb-lg-2 mb-xl-4">
|
||||
{{-- <section class="container pb-4 pb-md-5 mb-2 mb-sm-0 mb-lg-2 mb-xl-4">
|
||||
<h2 class="h3 border-bottom pb-4 mb-0">Trending products</h2>
|
||||
|
||||
<!-- Product carousel -->
|
||||
|
|
@ -681,11 +656,11 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section> --}}
|
||||
|
||||
|
||||
<!-- Subscription form + Vlog -->
|
||||
<section class="bg-body-tertiary py-5">
|
||||
{{-- <section class="bg-body-tertiary py-5">
|
||||
<div class="container pt-sm-2 pt-md-3 pt-lg-4 pt-xl-5">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-lg-5 mb-5 mb-md-0">
|
||||
|
|
@ -753,7 +728,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section> --}}
|
||||
</main>
|
||||
|
||||
<!-- Clear Cart Confirmation Modal -->
|
||||
|
|
@ -804,7 +779,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
@include('layouts.partials/footer')
|
||||
@include('layouts.partials/footer2')
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,264 @@
|
|||
<div class="accordion bg-body-tertiary rounded-5 p-4">
|
||||
<div class="accordion-item border-0">
|
||||
<h3 class="accordion-header" id="promoCodeHeading">
|
||||
<button type="button"
|
||||
class="accordion-button animate-underline collapsed py-0 ps-sm-2 ps-lg-0 ps-xl-2"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#promoCode"
|
||||
aria-expanded="false"
|
||||
aria-controls="promoCode">
|
||||
<i class="ci-percent fs-xl me-2"></i>
|
||||
<span class="animate-target me-2">
|
||||
{{ __('checkout.apply_promo_code') }}
|
||||
</span>
|
||||
</button>
|
||||
</h3>
|
||||
|
||||
<div class="accordion-collapse collapse"
|
||||
id="promoCode"
|
||||
aria-labelledby="promoCodeHeading">
|
||||
|
||||
<div class="accordion-body pt-3 pb-2 ps-sm-2 px-lg-0 px-xl-2">
|
||||
|
||||
{{-- Promo Code Form --}}
|
||||
<form class="needs-validation d-flex gap-2" novalidate>
|
||||
<div class="position-relative w-100">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ __('checkout.enter_promo_code') }}"
|
||||
required>
|
||||
|
||||
<div class="invalid-tooltip bg-transparent py-0">
|
||||
{{ __('checkout.enter_valid_promo_code') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-dark">
|
||||
{{ __('checkout.apply') }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
|
||||
{{-- List Voucher --}}
|
||||
@if($vouchers && count($vouchers) > 0)
|
||||
<div class="mt-3">
|
||||
<h6 class="mb-2">
|
||||
{{ __('checkout.available_vouchers') }}
|
||||
</h6>
|
||||
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
@foreach($vouchers as $voucher)
|
||||
<span class="badge bg-light text-dark px-3 py-2">
|
||||
{{ $voucher->code }}
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
{{-- List Voucher Events --}}
|
||||
@if($voucher_events && count($voucher_events) > 0)
|
||||
<div class="mt-3">
|
||||
<h6 class="mb-2">
|
||||
{{ __('checkout.available_voucher_events') }}
|
||||
</h6>
|
||||
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
@foreach($voucher_events as $voucher_event)
|
||||
<span class="badge bg-primary text-white px-3 py-2"
|
||||
style="cursor:pointer"
|
||||
data-id="{{ $voucher_event->id }}"
|
||||
data-name="{{ $voucher_event->name }}"
|
||||
data-description="{{ $voucher_event->description }}"
|
||||
data-point="{{ $voucher_event->redeem_point }}"
|
||||
data-start="{{ $voucher_event->start_date }}"
|
||||
data-end="{{ $voucher_event->end_date }}"
|
||||
data-terms="{{ $voucher_event->terms_and_conditions }}"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#voucherEventModal">
|
||||
{{ $voucher_event->name ?? '-' }}
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{{-- SINGLE REUSABLE MODAL --}}
|
||||
<div class="modal fade" id="voucherEventModal" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content rounded-4">
|
||||
<div class="modal-header border-0">
|
||||
<h5 class="modal-title fw-semibold">
|
||||
Voucher Event
|
||||
</h5>
|
||||
<button type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal">
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body pt-0">
|
||||
<div id="voucherEventContent"></div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer border-0">
|
||||
<button type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal">
|
||||
{{ __('checkout.close') }}
|
||||
</button>
|
||||
|
||||
<button type="button"
|
||||
class="btn btn-primary"
|
||||
id="redeemVoucherBtn"
|
||||
data-voucher-event-id="">
|
||||
{{ __('checkout.redeem') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
const modal = document.getElementById('voucherEventModal');
|
||||
|
||||
modal.addEventListener('show.bs.modal', function (event) {
|
||||
|
||||
const button = event.relatedTarget;
|
||||
|
||||
const name = button.getAttribute('data-name');
|
||||
const description = button.getAttribute('data-description');
|
||||
const point = button.getAttribute('data-point');
|
||||
const start = button.getAttribute('data-start');
|
||||
const end = button.getAttribute('data-end');
|
||||
const terms = button.getAttribute('data-terms');
|
||||
|
||||
let content = '';
|
||||
|
||||
if (description) {
|
||||
content += `<p>${description}</p>`;
|
||||
}
|
||||
|
||||
if (point) {
|
||||
content += `
|
||||
<div class="mb-2">
|
||||
<strong>{{ __('checkout.points_required') }}:</strong>
|
||||
${point}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
if (start && end) {
|
||||
content += `
|
||||
<div class="mb-2">
|
||||
<strong>{{ __('checkout.valid_period') }}:</strong><br>
|
||||
${start} - ${end}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
if (terms) {
|
||||
content += `
|
||||
<div class="mt-3 small text-muted">
|
||||
<strong>{{ __('checkout.terms_and_conditions') }}:</strong>
|
||||
<p>${terms}</p>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
modal.querySelector('.modal-title').textContent = name;
|
||||
document.getElementById('voucherEventContent').innerHTML = content;
|
||||
|
||||
// Set voucher event ID for redeem button
|
||||
const redeemBtn = document.getElementById('redeemVoucherBtn');
|
||||
redeemBtn.setAttribute('data-voucher-event-id', button.getAttribute('data-id'));
|
||||
|
||||
});
|
||||
|
||||
// Handle redeem button click
|
||||
document.getElementById('redeemVoucherBtn').addEventListener('click', function() {
|
||||
const voucherEventId = this.getAttribute('data-voucher-event-id');
|
||||
|
||||
if (!voucherEventId) {
|
||||
console.error('No voucher event ID found');
|
||||
return;
|
||||
}
|
||||
|
||||
// Disable button during processing
|
||||
this.disabled = true;
|
||||
this.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>Processing...';
|
||||
|
||||
// Make AJAX call to redeem voucher
|
||||
fetch(`/voucher-events/${voucherEventId}/redeem`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''
|
||||
},
|
||||
body: JSON.stringify({})
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
// Show success message
|
||||
alert('Voucher redeemed successfully!');
|
||||
|
||||
// Close modal
|
||||
const modal = bootstrap.Modal.getInstance(document.getElementById('voucherEventModal'));
|
||||
modal.hide();
|
||||
|
||||
// Reload page to update cart
|
||||
setTimeout(() => {
|
||||
window.location.reload();
|
||||
}, 1000);
|
||||
} else {
|
||||
// Show error message
|
||||
alert(data.message || 'Failed to redeem voucher');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('An error occurred while redeeming the voucher');
|
||||
})
|
||||
.finally(() => {
|
||||
// Re-enable button
|
||||
this.disabled = false;
|
||||
this.innerHTML = '{{ __('checkout.redeem') }}';
|
||||
});
|
||||
});
|
||||
|
||||
// Custom modal handler to prevent backdrop issues
|
||||
const voucherBadges = document.querySelectorAll('[data-bs-toggle="modal"][data-bs-target="#voucherEventModal"]');
|
||||
voucherBadges.forEach(function(badge) {
|
||||
badge.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
// Remove any existing backdrop
|
||||
const existingBackdrop = document.querySelector('.modal-backdrop');
|
||||
if (existingBackdrop) {
|
||||
existingBackdrop.remove();
|
||||
}
|
||||
|
||||
// Show modal without backdrop
|
||||
const modalInstance = new bootstrap.Modal(modal, {
|
||||
backdrop: false
|
||||
});
|
||||
modalInstance.show();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
@if($brands && $brands->count() > 0)
|
||||
<ul class="nav flex-column gap-2 pt-sm-3 pb-3 pb-sm-0 mt-n1 mb-1 mb-sm-0">
|
||||
|
||||
@foreach($brands as $index => $brand)
|
||||
<li class="d-flex w-100 pt-1">
|
||||
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="{{ route('product.index',['filter[brand_id]'=>$brand->id]) }}">{{ $brand->name }}</a>
|
||||
</li>
|
||||
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
|
@ -71,8 +71,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
// Show loading spinner
|
||||
loadingSpinner.classList.remove('d-none');
|
||||
|
||||
// Make AJAX request for brands
|
||||
fetch('{{ route("product.ajax.brands") }}')
|
||||
// Make AJAX request for brands with images
|
||||
fetch('{{ route("product.ajax.brands-with-images") }}')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success && data.brands) {
|
||||
|
|
|
|||
|
|
@ -113,16 +113,12 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
}
|
||||
|
||||
// Make AJAX request for popular products
|
||||
fetch('{{ route("product.ajax.populers") }}?type=best_sellers&limit=6')
|
||||
fetch('{{ route("product.ajax.populers-json") }}?type=best_sellers&limit=6')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success && data.products) {
|
||||
// Parse the HTML to extract individual product cards
|
||||
const tempDiv = document.createElement('div');
|
||||
tempDiv.innerHTML = data.products;
|
||||
|
||||
const productCards = tempDiv.querySelectorAll('.col');
|
||||
const productsArray = Array.from(productCards);
|
||||
if ( data.data) {
|
||||
// Handle JSON response directly
|
||||
const productsArray = data.data;
|
||||
|
||||
// Split products into two slides (3 products each)
|
||||
const slide1 = productsArray.slice(0, 3);
|
||||
|
|
@ -139,16 +135,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
listDiv.className = 'd-flex flex-column gap-3 gap-lg-4';
|
||||
|
||||
slide.forEach(product => {
|
||||
// Convert product card to list item format
|
||||
const productImg = product.querySelector('img');
|
||||
const productLink = product.querySelector('a');
|
||||
const productPrice = product.querySelector('.h6, .price');
|
||||
// Convert product object to list item format
|
||||
const productImg = product.image_url;
|
||||
const productLink = product.name;
|
||||
const productPrice = product.unit_price;
|
||||
|
||||
const listItem = document.createElement('div');
|
||||
listItem.className = 'd-flex align-items-center position-relative bg-body-tertiary rounded overflow-hidden animate-underline';
|
||||
|
||||
const img = document.createElement('img');
|
||||
img.src = productImg ? productImg.src : '/img/shop/fashion/thumbs/0' + (index * 3 + slide.indexOf(product) + 1) + '.png';
|
||||
img.src = productImg ? productImg : '/img/shop/fashion/thumbs/0' + (index * 3 + slide.indexOf(product) + 1) + '.png';
|
||||
img.width = 110;
|
||||
img.alt = 'Thumbnail';
|
||||
|
||||
|
|
@ -157,23 +153,22 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
|
||||
const link = document.createElement('a');
|
||||
link.className = 'nav-link text-dark-emphasis stretched-link w-100 min-w-0 p-0';
|
||||
link.href = productLink ? productLink.href : '#';
|
||||
link.href = product.slug ? '/product/' + product.slug : '#';
|
||||
|
||||
const span = document.createElement('span');
|
||||
span.className = 'animate-target text-truncate';
|
||||
span.textContent = productLink ? productLink.textContent.trim() : 'Product Name';
|
||||
span.textContent = productLink ? productLink : 'Product Name';
|
||||
|
||||
const price = document.createElement('div');
|
||||
price.className = 'h6 mb-0';
|
||||
price.textContent = productPrice ? productPrice.textContent : '$0.00';
|
||||
price.textContent = productPrice ? Number(productPrice).toLocaleString('id-ID', { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }) : '$0.00';
|
||||
|
||||
const name = document.createElement('div');
|
||||
name.className = 'text-truncate mb-1';
|
||||
name.textContent = productLink ? productLink.textContent.trim() : 'Product Name';
|
||||
name.textContent = productLink ? productLink : 'Product Name';
|
||||
|
||||
link.appendChild(span);
|
||||
navDiv.appendChild(link);
|
||||
navDiv.appendChild(name);
|
||||
navDiv.appendChild(price);
|
||||
listItem.appendChild(img);
|
||||
listItem.appendChild(navDiv);
|
||||
|
|
|
|||
|
|
@ -11,53 +11,53 @@
|
|||
<div class="overflow-x-auto pb-3 mb-n3" data-simplebar>
|
||||
<div class="d-flex gap-2 gap-md-3 gap-lg-4" style="min-width: 700px">
|
||||
<a class="hover-effect-scale hover-effect-opacity position-relative w-100 overflow-hidden"
|
||||
href="#!">
|
||||
href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<span
|
||||
class="hover-effect-target position-absolute top-0 start-0 w-100 h-100 bg-black bg-opacity-25 opacity-0 z-1"></span>
|
||||
<i
|
||||
class="ci-instagram hover-effect-target fs-4 text-white position-absolute top-50 start-50 translate-middle opacity-0 z-2"></i>
|
||||
<div class="hover-effect-target ratio ratio-1x1">
|
||||
<img src="https://dev.smgdev.top/api/storage/thumbnail_demo.png?id=40144" alt="Instagram image">
|
||||
<img src="{{ asset('ig/627126351_868515585958098_5234946979031253180_n.jpg') }}" alt="Instagram image" class="object-fit-cover">
|
||||
</div>
|
||||
</a>
|
||||
<a class="hover-effect-scale hover-effect-opacity position-relative w-100 overflow-hidden"
|
||||
href="#!">
|
||||
href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<span
|
||||
class="hover-effect-target position-absolute top-0 start-0 w-100 h-100 bg-black bg-opacity-25 opacity-0 z-1"></span>
|
||||
<i
|
||||
class="ci-instagram hover-effect-target fs-4 text-white position-absolute top-50 start-50 translate-middle opacity-0 z-2"></i>
|
||||
<div class="hover-effect-target ratio ratio-1x1">
|
||||
<img src="https://dev.smgdev.top/api/storage/thumbnail_demo.png?id=40144" alt="Instagram image">
|
||||
<img src="{{ asset('ig/607467049_3991986004432775_3154614208824352862_n.jpg') }}" alt="Instagram image" class="object-fit-cover">
|
||||
</div>
|
||||
</a>
|
||||
<a class="hover-effect-scale hover-effect-opacity position-relative w-100 overflow-hidden"
|
||||
href="#!">
|
||||
href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<span
|
||||
class="hover-effect-target position-absolute top-0 start-0 w-100 h-100 bg-black bg-opacity-25 opacity-0 z-1"></span>
|
||||
<i
|
||||
class="ci-instagram hover-effect-target fs-4 text-white position-absolute top-50 start-50 translate-middle opacity-0 z-2"></i>
|
||||
<div class="hover-effect-target ratio ratio-1x1">
|
||||
<img src="https://dev.smgdev.top/api/storage/thumbnail_demo.png?id=40144" alt="Instagram image">
|
||||
<img src="{{ asset('ig/637072850_18450267685100713_2841227512989064742_n.jpg') }}" alt="Instagram image" class="object-fit-cover">
|
||||
</div>
|
||||
</a>
|
||||
<a class="hover-effect-scale hover-effect-opacity position-relative w-100 overflow-hidden"
|
||||
href="#!">
|
||||
href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<span
|
||||
class="hover-effect-target position-absolute top-0 start-0 w-100 h-100 bg-black bg-opacity-25 opacity-0 z-1"></span>
|
||||
<i
|
||||
class="ci-instagram hover-effect-target fs-4 text-white position-absolute top-50 start-50 translate-middle opacity-0 z-2"></i>
|
||||
<div class="hover-effect-target ratio ratio-1x1">
|
||||
<img src="https://dev.smgdev.top/api/storage/thumbnail_demo.png?id=40144" alt="Instagram image">
|
||||
<img src="{{ asset('ig/637270426_18450238369100713_2695956505063029899_n.jpg') }}" alt="Instagram image" class="object-fit-cover">
|
||||
</div>
|
||||
</a>
|
||||
<a class="hover-effect-scale hover-effect-opacity position-relative w-100 overflow-hidden"
|
||||
href="#!">
|
||||
href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<span
|
||||
class="hover-effect-target position-absolute top-0 start-0 w-100 h-100 bg-black bg-opacity-25 opacity-0 z-1"></span>
|
||||
<i
|
||||
class="ci-instagram hover-effect-target fs-4 text-white position-absolute top-50 start-50 translate-middle opacity-0 z-2"></i>
|
||||
<div class="hover-effect-target ratio ratio-1x1">
|
||||
<img src="https://dev.smgdev.top/api/storage/thumbnail_demo.png?id=40144" alt="Instagram image">
|
||||
<img src="{{ asset('ig/639478537_1665736817945005_7744756753154487865_n.jpg') }}" alt="Instagram image" class="object-fit-cover">
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,20 +16,6 @@
|
|||
<img src="{{ $product->image_url }}" loading="lazy" class="w-100 h-100 object-cover">
|
||||
</div>
|
||||
</a>
|
||||
{{-- <div
|
||||
class="hover-effect-target position-absolute start-0 bottom-0 w-100 z-2 opacity-0 pb-2 pb-sm-3 px-2 px-sm-3">
|
||||
<div
|
||||
class="d-flex align-items-center justify-content-center gap-2 gap-xl-3 bg-body rounded-2 p-2">
|
||||
<span class="fs-xs fw-medium text-secondary-emphasis py-1 px-sm-2">XS</span>
|
||||
<span class="fs-xs fw-medium text-secondary-emphasis py-1 px-sm-2">S</span>
|
||||
<span class="fs-xs fw-medium text-secondary-emphasis py-1 px-sm-2">M</span>
|
||||
<span class="fs-xs fw-medium text-secondary-emphasis py-1 px-sm-2">L</span>
|
||||
<div class="nav">
|
||||
<a class="nav-link fs-xs text-body-tertiary py-1 px-2"
|
||||
href="{{ route('second', ['shop', 'product-fashion']) }}">+3</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
<div class="nav mb-2">
|
||||
<a class="nav-link animate-target min-w-0 text-dark-emphasis p-0"
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@
|
|||
<i class="ci-shopping-bag animate-target me-1"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Main navigation that turns into offcanvas on screens < 992px wide (lg breakpoint) -->
|
||||
<div class="collapse navbar-stuck-hide" id="stuckNav">
|
||||
|
|
@ -312,7 +312,7 @@
|
|||
<!-- Account and Wishlist buttons visible on screens < 768px wide (md breakpoint) -->
|
||||
<div class="offcanvas-header border-top px-0 py-3 mt-3 d-md-none">
|
||||
<div class="nav nav-justified w-100">
|
||||
<a class="nav-link border-end" href="{{ route('login') }}">
|
||||
<a class="nav-link border-end" href="{{ route('profile') }}">
|
||||
<i class="ci-user fs-lg opacity-60 me-2"></i>
|
||||
{{ __('header.account') }}
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -9,15 +9,33 @@
|
|||
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-underline justify-content-lg-center mt-n2 mt-lg-0 mb-4" role="tablist">
|
||||
@foreach ($genders as $key => $gender)
|
||||
|
||||
<li class="nav-item" role="presentation">
|
||||
<button type="button" class="nav-link text-uppercase {{ $key == 0 ? 'active' : '' }}" id="gender-{{ $gender->id }}-tab"
|
||||
data-bs-toggle="tab" data-bs-target="#gender-{{ $gender->id }}-tab-pane" role="tab"
|
||||
aria-controls="gender-{{ $gender->id }}-tab-pane" aria-selected="true">
|
||||
{{ $gender->name }}
|
||||
<button type="button" class="nav-link text-uppercase active" id="category-tab"
|
||||
data-bs-toggle="tab" data-bs-target="#category-tab-pane" role="tab"
|
||||
aria-controls="category-tab-pane" aria-selected="true">
|
||||
Category
|
||||
</button>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
|
||||
<li class="nav-item" role="presentation">
|
||||
<button type="button" class="nav-link text-uppercase" id="brand-tab"
|
||||
data-bs-toggle="tab" data-bs-target="#brand-tab-pane" role="tab"
|
||||
aria-controls="brand-tab-pane" aria-selected="true">
|
||||
Brand
|
||||
</button>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="nav-item" role="presentation">
|
||||
<button type="button" class="nav-link text-uppercase" id="gender-tab"
|
||||
data-bs-toggle="tab" data-bs-target="#gender-tab-pane" role="tab"
|
||||
aria-controls="gender-tab-pane" aria-selected="true">
|
||||
Gender
|
||||
</button>
|
||||
</li>
|
||||
|
||||
{{-- <li class="nav-item" role="presentation">
|
||||
<button type="button" class="nav-link text-uppercase active" id="womens-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#womens-tab-pane" role="tab" aria-controls="womens-tab-pane"
|
||||
|
|
@ -44,48 +62,76 @@
|
|||
<!-- Tab panes -->
|
||||
<div class="tab-content pb-xl-4">
|
||||
|
||||
@foreach ($genders as $key => $gender)
|
||||
<div class="tab-pane fade show {{ $key == 0 ? 'active' : '' }}" id="gender-{{ $gender->id }}-tab-pane" role="tabpanel"
|
||||
aria-labelledby="gender-{{ $gender->id }}-tab">
|
||||
<div class="row g-4">
|
||||
|
||||
<div class="tab-pane fade show active" id="category-tab-pane" role="tabpanel"
|
||||
aria-labelledby="category-tab">
|
||||
<div class="row g-4">
|
||||
|
||||
@foreach ($categories as $chunks)
|
||||
|
||||
<div class="col-lg-2">
|
||||
|
||||
<ul class="nav flex-column gap-2 mt-0">
|
||||
@foreach ($chunks as $chunk)
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="{{ route('product.index', ['filter[category]' => $chunk->id, 'filter[gender]' => $gender->id]) }}">{{ $chunk->name }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
|
||||
<div class="col-lg-4 d-none d-lg-block" data-bs-theme="light">
|
||||
<div class="position-relative d-flex flex-column h-100 rounded-4 overflow-hidden p-4">
|
||||
<div
|
||||
class="position-relative d-flex flex-column justify-content-between h-100 z-2 pt-xl-2 ps-xl-2">
|
||||
<div class="h4 lh-base">Women's<br>Heels<br>Collection</div>
|
||||
<div>
|
||||
<a class="btn btn-sm btn-dark stretched-link"
|
||||
href="{{ route('second', ['shop', 'catalog-fashion']) }}"
|
||||
data-bs-theme="light">Shop now</a>
|
||||
</div>
|
||||
</div>
|
||||
<img src="/img/mega-menu/fashion/01.jpg"
|
||||
class="position-absolute top-0 start-0 w-100 h-100 object-fit-cover rtl-flip"
|
||||
alt="Image">
|
||||
@foreach ($categories as $chunks)
|
||||
|
||||
<div class="col-lg-2">
|
||||
|
||||
<ul class="nav flex-column gap-2 mt-0">
|
||||
@foreach ($chunks as $chunk)
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="{{ route('product.index', ['filter[category_id]' => $chunk->id]) }}">{{ $chunk->name }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="tab-pane fade show" id="brand-tab-pane" role="tabpanel"
|
||||
aria-labelledby="brand-tab">
|
||||
<div class="row g-4">
|
||||
|
||||
@foreach ($brands as $chunks)
|
||||
|
||||
<div class="col-lg-2">
|
||||
|
||||
<ul class="nav flex-column gap-2 mt-0">
|
||||
@foreach ($chunks as $chunk)
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="{{ route('product.index', ['filter[category_id]' => $chunk->id]) }}">{{ $chunk->name }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade show" id="gender-tab-pane" role="tabpanel"
|
||||
aria-labelledby="gender-tab">
|
||||
<div class="row g-4">
|
||||
|
||||
@foreach ($genders as $chunks)
|
||||
|
||||
<div class="col-lg-2">
|
||||
|
||||
<ul class="nav flex-column gap-2 mt-0">
|
||||
@foreach ($chunks as $chunk)
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="{{ route('product.index', ['filter[gender_id]' => $chunk->id]) }}">{{ $chunk->name }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -144,7 +144,9 @@
|
|||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-trigger="hover" aria-expanded="false">{{ __('navbar.contact') }}</a>
|
||||
<ul class="dropdown-menu" style="--cz-dropdown-spacer: .75rem">
|
||||
|
||||
<li><a class="dropdown-item" href="{{ route('any', 'terms-and-conditions')}}">{{ __('navbar.terms_conditions') }}</a></li>
|
||||
<li><a class="dropdown-item" href="{{ route('terms-and-conditions')}}">{{ __('navbar.terms_conditions') }}</a></li>
|
||||
|
||||
<li><a class="dropdown-item" href="{{ route('contact')}}">{{ __('navbar.contact') }}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -5,6 +5,7 @@
|
|||
@include('layouts.partials/title-meta')
|
||||
|
||||
@vite(['resources/js/theme-switcher.js'])
|
||||
|
||||
|
||||
@include('layouts.partials/head-css')
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,23 @@
|
|||
<!-- Sidebar navigation that turns into offcanvas on screens < 992px wide (lg breakpoint) -->
|
||||
<aside class="col-lg-3">
|
||||
@if (auth()->check())
|
||||
<div class="offcanvas-lg offcanvas-start pe-lg-0 pe-xl-4" id="accountSidebar">
|
||||
|
||||
<!-- Header -->
|
||||
<div class="offcanvas-header d-lg-block py-3 p-lg-0">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-shrink-0 ms-3">
|
||||
@if(auth()->user()->photo)
|
||||
@if(auth()->user()?->photo != null)
|
||||
<img src="{{ asset('storage/' . auth()->user()->photo) }}" alt="{{ auth()->user()->name }}"
|
||||
class="rounded-circle" style="width: 3rem; height: 3rem; object-fit: cover;"
|
||||
onerror="this.src='{{ asset('img/photo-placeholder.png') }}'">
|
||||
@else
|
||||
<div class="h5 d-flex justify-content-center align-items-center text-primary bg-primary-subtle lh-1 rounded-circle mb-0"
|
||||
style="width: 3rem; height: 3rem;">{{ auth()->user()->name ? substr(auth()->user()->name, 0, 1) : 'S' }}</div>
|
||||
style="width: 3rem; height: 3rem;">{{ auth()->user()?->name ? substr(auth()->user()?->name, 0, 1) : 'S' }}</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="min-w-0 ps-3">
|
||||
<h5 class="h6 mb-1">{{ auth()->user()->name }}</h5>
|
||||
<h5 class="h6 mb-1">{{ auth()->user()?->name }}</h5>
|
||||
<div class="nav flex-nowrap text-nowrap min-w-0">
|
||||
<a class="nav-link animate-underline text-body p-0" href="#bonusesModal" data-bs-toggle="modal">
|
||||
{{-- <svg class="text-warning flex-shrink-0 me-2" xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -107,4 +108,5 @@
|
|||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</aside>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="container pb-md-3">
|
||||
|
||||
<!-- Features -->
|
||||
<div class="border-bottom py-5">
|
||||
{{-- <div class="border-bottom py-5">
|
||||
<div class="row row-cols-2 row-cols-md-4 g-4 gx-sm-5 py-sm-1 py-md-2 py-lg-3 mb-n2 mb-md-0">
|
||||
<div class="col mb-2 mb-md-0">
|
||||
<i class="ci-layers-2 fs-xl text-dark-emphasis mb-3"></i>
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
<p class="fs-sm text-body mb-0">Spend less time searching and more time creating.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
|
||||
<!-- Subscription + Links -->
|
||||
<div class="py-5">
|
||||
|
|
@ -75,31 +75,14 @@
|
|||
</div>
|
||||
<div class="accordion-item col-sm-4 border-0">
|
||||
<h6 class="accordion-header" id="membersHeading">
|
||||
<span class="text-dark-emphasis d-none d-sm-block">For members</span>
|
||||
<span class="text-dark-emphasis d-none d-sm-block">Brands</span>
|
||||
<button type="button" class="accordion-button collapsed py-3 d-sm-none"
|
||||
data-bs-toggle="collapse" data-bs-target="#membersLinks" aria-expanded="false"
|
||||
aria-controls="membersLinks">For members</button>
|
||||
aria-controls="membersLinks">Brands</button>
|
||||
</h6>
|
||||
<div class="accordion-collapse collapse d-sm-block" id="membersLinks"
|
||||
aria-labelledby="membersHeading" data-bs-parent="#footerLinks">
|
||||
<ul class="nav flex-column gap-2 pt-sm-3 pb-3 pb-sm-0 mt-n1 mb-1 mb-sm-0">
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="#!">Licenses</a>
|
||||
</li>
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="#!">Return policy</a>
|
||||
</li>
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="#!">Payment methods</a>
|
||||
</li>
|
||||
<li class="d-flex w-100 pt-1">
|
||||
<a class="nav-link animate-underline animate-target d-inline fw-normal text-truncate p-0"
|
||||
href="#!">Become a vendor</a>
|
||||
</li>
|
||||
</ul>
|
||||
<x-footer-brands />
|
||||
</div>
|
||||
<hr class="d-sm-none my-0">
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
@vite(['node_modules/choices.js/public/assets/styles/choices.min.css', 'node_modules/swiper/swiper-bundle.min.css', 'node_modules/glightbox/dist/css/glightbox.min.css', 'node_modules/simplebar/dist/simplebar.min.css', 'node_modules/flatpickr/dist/flatpickr.min.css', 'node_modules/nouislider/dist/nouislider.min.css', 'node_modules/img-comparison-slider/dist/styles.css'])
|
||||
@vite(['node_modules/choices.js/public/assets/styles/choices.min.css', 'node_modules/swiper/swiper-bundle.min.css', 'node_modules/glightbox/dist/css/glightbox.min.css', 'node_modules/simplebar/dist/simplebar.min.css', 'node_modules/flatpickr/dist/flatpickr.min.css', 'node_modules/nouislider/dist/nouislider.min.css', 'node_modules/img-comparison-slider/dist/styles.css', 'node_modules/bootstrap/dist/css/bootstrap.min.css'])
|
||||
|
||||
@vite(['resources/icons/cartzilla-icons.min.css'])
|
||||
@vite(['resources/scss/theme.scss'])
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@
|
|||
</div>
|
||||
|
||||
<!-- Price -->
|
||||
<div class="accordion-item border-0 pb-1 pb-xl-2">
|
||||
{{-- <div class="accordion-item border-0 pb-1 pb-xl-2">
|
||||
<h4 class="accordion-header" id="headingPrice">
|
||||
<button type="button" class="accordion-button p-0 pb-3" data-bs-toggle="collapse"
|
||||
data-bs-target="#price" aria-expanded="true" aria-controls="price">
|
||||
|
|
@ -127,7 +127,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
|
||||
<!-- Brands -->
|
||||
{{-- <div class="accordion-item border-0 pb-1 pb-xl-2">
|
||||
|
|
|
|||
|
|
@ -52,25 +52,41 @@
|
|||
<p>{{ __('tnc.contact_content') }}</p>
|
||||
<ul class="list-unstyled pb-1">
|
||||
<li class="nav pt-1">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="tel:+15053753082">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="tel:0213500703">
|
||||
<i class="ci-phone fs-xl mt-1 me-2"></i>
|
||||
+1 50 537 53 082
|
||||
(021) 3500703
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav pt-1">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="mailto:contact@catzillastore.com">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="https://wa.me/62818434301">
|
||||
<i class="ci-whatsapp fs-xl mt-1 me-2"></i>
|
||||
0818-4343-01
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="nav pt-1">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="https://www.instagram.com/asiagolfindonesia/">
|
||||
<i class="ci-instagram fs-xl mt-1 me-2"></i>
|
||||
@asiagolfindonesia
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav pt-1">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="mailto:sales@asiagolf.id">
|
||||
<i class="ci-mail fs-xl mt-1 me-2"></i>
|
||||
contact@catzillastore.com
|
||||
sales@asiagolf.id
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav pt-1">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="#!">
|
||||
<a class="nav-link align-items-start fs-base p-0" href="https://maps.google.com/?q=Jalan+Pintu+Air+Raya+No.11+B,D,E,F,G+RT.8/RW.1,+Ps.+Baru,+Kecamatan+Sawah+Besar,+Kota+Jakarta+Pusat,+Daerah+Khusus+Ibukota+Jakarta+10710" target="_blank">
|
||||
<i class="ci-map-pin fs-xl mt-1 me-2"></i>
|
||||
12 Beale St. Suite 600 San Francisco, California 94105
|
||||
Jalan Pintu Air Raya No.11 B,D,E,F,G RT.8/RW.1, Ps. Baru, Kecamatan Sawah Besar, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10710
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="pb-3 mb-0">{{ __('tnc.help_text') }} <a class="fw-medium" href="{{ route('second', ['help', 'topics-v1'])}}">{{ __('tnc.help_link') }}</a></p>
|
||||
<p class="pb-3 mb-0">{{ __('tnc.help_text') }} <a class="fw-medium" href="{{ route('help')}}">{{ __('tnc.help_link') }}</a></p>
|
||||
|
||||
<hr class="my-3 my-lg-4">
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ use App\Http\Controllers\RoutingController;
|
|||
use App\Http\Controllers\SearchController;
|
||||
use App\Http\Controllers\TncController;
|
||||
use App\Http\Controllers\HelpController;
|
||||
use App\Http\Controllers\VoucherEventController;
|
||||
use App\Http\Controllers\ContactController;
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::group(['prefix' => '/dummy'], function () {
|
||||
|
|
@ -38,8 +41,10 @@ Route::get('/', [HomeController::class, 'index'])->name('home');
|
|||
Route::get('/products', [ProductController::class, 'index'])->name('product.index');
|
||||
Route::get('/products/ajax', [ProductController::class, 'ajax'])->name('product.ajax');
|
||||
Route::get('/products/ajax/populers', [ProductController::class, 'populers'])->name('product.ajax.populers');
|
||||
Route::get('/products/ajax/populers-json', [ProductController::class, 'populersJson'])->name('product.ajax.populers-json');
|
||||
Route::get('/products/ajax/highlights', [ProductController::class, 'highlights'])->name('product.ajax.highlights');
|
||||
Route::get('/products/ajax/brands', [ProductController::class, 'brands'])->name('product.ajax.brands');
|
||||
Route::get('/products/ajax/brands-with-images', [ProductController::class, 'brandsWithImages'])->name('product.ajax.brands-with-images');
|
||||
Route::get('/products/ajax/categories', [ProductController::class, 'categories'])->name('product.ajax.categories');
|
||||
Route::get('/products/ajax/genders', [ProductController::class, 'genders'])->name('product.ajax.genders');
|
||||
Route::get('/products/ajax/announcements', [ProductController::class, 'announcements'])->name('product.ajax.announcements');
|
||||
|
|
@ -111,6 +116,10 @@ Route::middleware(['auth'])->prefix('/checkout')->group(function () {
|
|||
|
||||
});
|
||||
|
||||
Route::middleware(['auth'])->prefix('/voucher-events')->group(function () {
|
||||
Route::post('/{voucherEvent}/redeem', [VoucherEventController::class, 'redeem'])->name('voucher-events.redeem');
|
||||
});
|
||||
|
||||
Route::middleware(['auth'])->prefix('/orders')->group(function () {
|
||||
|
||||
Route::get('/', [OrderController::class, 'index'])->name('orders');
|
||||
|
|
@ -118,3 +127,4 @@ Route::middleware(['auth'])->prefix('/orders')->group(function () {
|
|||
});
|
||||
Route::get('/terms-and-conditions', [TncController::class, 'index'])->name('terms-and-conditions');
|
||||
Route::get('/help', [HelpController::class, 'index'])->name('help');
|
||||
Route::get('/contact', [ContactController::class, 'index'])->name('contact');
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export default defineConfig({
|
|||
"node_modules/simplebar/dist/simplebar.min.css",
|
||||
'node_modules/flatpickr/dist/flatpickr.min.css',
|
||||
"node_modules/nouislider/dist/nouislider.min.css",
|
||||
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
||||
|
||||
//js
|
||||
"resources/js/theme-switcher.js",
|
||||
|
|
|
|||
452
yarn.lock
452
yarn.lock
|
|
@ -2,271 +2,51 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@esbuild/aix-ppc64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c"
|
||||
integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==
|
||||
|
||||
"@esbuild/android-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752"
|
||||
integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==
|
||||
|
||||
"@esbuild/android-arm@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a"
|
||||
integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==
|
||||
|
||||
"@esbuild/android-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16"
|
||||
integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==
|
||||
|
||||
"@esbuild/darwin-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd"
|
||||
integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==
|
||||
|
||||
"@esbuild/darwin-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e"
|
||||
integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe"
|
||||
integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==
|
||||
|
||||
"@esbuild/freebsd-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3"
|
||||
integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977"
|
||||
integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==
|
||||
|
||||
"@esbuild/linux-arm@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9"
|
||||
integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==
|
||||
|
||||
"@esbuild/linux-ia32@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0"
|
||||
integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==
|
||||
|
||||
"@esbuild/linux-loong64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0"
|
||||
integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==
|
||||
|
||||
"@esbuild/linux-mips64el@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd"
|
||||
integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==
|
||||
|
||||
"@esbuild/linux-ppc64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869"
|
||||
integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==
|
||||
|
||||
"@esbuild/linux-riscv64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6"
|
||||
integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==
|
||||
|
||||
"@esbuild/linux-s390x@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663"
|
||||
integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==
|
||||
|
||||
"@esbuild/linux-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306"
|
||||
integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==
|
||||
|
||||
"@esbuild/netbsd-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4"
|
||||
integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==
|
||||
|
||||
"@esbuild/netbsd-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076"
|
||||
integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==
|
||||
|
||||
"@esbuild/openbsd-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd"
|
||||
integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==
|
||||
|
||||
"@esbuild/openbsd-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679"
|
||||
integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==
|
||||
|
||||
"@esbuild/openharmony-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d"
|
||||
integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==
|
||||
|
||||
"@esbuild/sunos-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6"
|
||||
integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==
|
||||
|
||||
"@esbuild/win32-arm64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323"
|
||||
integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==
|
||||
|
||||
"@esbuild/win32-ia32@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267"
|
||||
integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==
|
||||
|
||||
"@esbuild/win32-x64@0.25.12":
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5"
|
||||
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz"
|
||||
integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==
|
||||
|
||||
"@kurkle/color@^0.3.0":
|
||||
version "0.3.4"
|
||||
resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.4.tgz#4d4ff677e1609214fc71c580125ddddd86abcabf"
|
||||
resolved "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz"
|
||||
integrity sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==
|
||||
|
||||
"@rollup/rollup-android-arm-eabi@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz#7131f3d364805067fd5596302aad9ebef1434b32"
|
||||
integrity sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==
|
||||
|
||||
"@rollup/rollup-android-arm64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz#7ede14d7fcf7c57821a2731c04b29ccc03145d82"
|
||||
integrity sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==
|
||||
|
||||
"@rollup/rollup-darwin-arm64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz#d59bf9ed582b38838e86a17f91720c17db6575b9"
|
||||
integrity sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==
|
||||
|
||||
"@rollup/rollup-darwin-x64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz#a76278d9b9da9f84ea7909a14d93b915d5bbe01e"
|
||||
integrity sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==
|
||||
|
||||
"@rollup/rollup-freebsd-arm64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz#1a94821a1f565b9eaa74187632d482e4c59a1707"
|
||||
integrity sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==
|
||||
|
||||
"@rollup/rollup-freebsd-x64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz#aad2274680106b2b6549b1e35e5d3a7a9f1f16af"
|
||||
integrity sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz#100fe4306399ffeec47318a3c9b8c0e5e8b07ddb"
|
||||
integrity sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz#b84634952604b950e18fa11fddebde898c5928d8"
|
||||
integrity sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz#dad6f2fb41c2485f29a98e40e9bd78253255dbf3"
|
||||
integrity sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz#0f3f77c8ce9fbf982f8a8378b70a73dc6704a706"
|
||||
integrity sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==
|
||||
|
||||
"@rollup/rollup-linux-loong64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz#870bb94e9dad28bb3124ba49bd733deaa6aa2635"
|
||||
integrity sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==
|
||||
|
||||
"@rollup/rollup-linux-ppc64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz#188427d11abefc6c9926e3870b3e032170f5577c"
|
||||
integrity sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz#9dec6eadbbb5abd3b76fe624dc4f006913ff4a7f"
|
||||
integrity sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==
|
||||
|
||||
"@rollup/rollup-linux-riscv64-musl@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz#b26ba1c80b6f104dc5bd83ed83181fc0411a0c38"
|
||||
integrity sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz#dc83647189b68ad8d56a956a6fcaa4ee9c728190"
|
||||
integrity sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz#42c3b8c94e9de37bd103cb2e26fb715118ef6459"
|
||||
integrity sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==
|
||||
|
||||
"@rollup/rollup-linux-x64-musl@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz#d0e216ee1ea16bfafe35681b899b6a05258988e5"
|
||||
integrity sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==
|
||||
|
||||
"@rollup/rollup-openharmony-arm64@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz#3acd0157cb8976f659442bfd8a99aca46f8a2931"
|
||||
integrity sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz#3eb9e7d4d0e1d2e0850c4ee9aa2d0ddf89a8effa"
|
||||
integrity sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz#d69280bc6680fe19e0956e965811946d542f6365"
|
||||
integrity sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==
|
||||
"@popperjs/core@^2.11.8":
|
||||
version "2.11.8"
|
||||
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
|
||||
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
||||
|
||||
"@rollup/rollup-win32-x64-gnu@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz#d182ce91e342bad9cbb8b284cf33ac542b126ead"
|
||||
resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz"
|
||||
integrity sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@4.53.2":
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz#d9ab606437fd072b2cb7df7e54bcdc7f1ccbe8b4"
|
||||
resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz"
|
||||
integrity sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==
|
||||
|
||||
"@types/estree@1.0.8":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
|
||||
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz"
|
||||
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
|
||||
|
||||
ansi-regex@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
|
||||
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||
|
||||
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
||||
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
|
||||
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
|
||||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
|
||||
resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
|
||||
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
|
|
@ -274,12 +54,12 @@ anymatch@~3.1.2:
|
|||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
|
||||
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
|
||||
|
||||
axios@^1.8.2:
|
||||
version "1.13.2"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687"
|
||||
resolved "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz"
|
||||
integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.6"
|
||||
|
|
@ -288,24 +68,24 @@ axios@^1.8.2:
|
|||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
|
||||
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
|
||||
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
|
||||
|
||||
bootstrap@^5.3.8:
|
||||
version "5.3.8"
|
||||
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed"
|
||||
resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz"
|
||||
integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==
|
||||
|
||||
braces@~3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
||||
resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
|
||||
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
||||
dependencies:
|
||||
fill-range "^7.1.1"
|
||||
|
||||
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
|
||||
resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
|
||||
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
|
|
@ -313,7 +93,7 @@ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
|
|||
|
||||
chalk@4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
|
||||
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
||||
dependencies:
|
||||
ansi-styles "^4.1.0"
|
||||
|
|
@ -321,21 +101,21 @@ chalk@4.1.2:
|
|||
|
||||
chart.js@^4.5.0:
|
||||
version "4.5.1"
|
||||
resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.5.1.tgz#19dd1a9a386a3f6397691672231cb5fc9c052c35"
|
||||
resolved "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz"
|
||||
integrity sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==
|
||||
dependencies:
|
||||
"@kurkle/color" "^0.3.0"
|
||||
|
||||
choices.js@^11.1.0:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/choices.js/-/choices.js-11.1.0.tgz#4fcfb5834fdf0c7d1959f0261d1bbe526a7c9222"
|
||||
resolved "https://registry.npmjs.org/choices.js/-/choices.js-11.1.0.tgz"
|
||||
integrity sha512-mIt0uLhedHg2ea/K2PACrVpt391vRGHuOoctPAiHcyemezwzNMxj7jOzNEk8e7EbjLh0S0sspDkSCADOKz9kcw==
|
||||
dependencies:
|
||||
fuse.js "^7.0.0"
|
||||
|
||||
"chokidar@>=3.0.0 <4.0.0":
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
|
||||
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
|
||||
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
|
|
@ -350,12 +130,12 @@ choices.js@^11.1.0:
|
|||
|
||||
cleave.js@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/cleave.js/-/cleave.js-1.6.0.tgz#0e4e011943bdd70c67c9dcf4ff800ce710529171"
|
||||
resolved "https://registry.npmjs.org/cleave.js/-/cleave.js-1.6.0.tgz"
|
||||
integrity sha512-ivqesy3j5hQVG3gywPfwKPbi/7ZSftY/UNp5uphnqjr25yI2CP8FS2ODQPzuLXXnNLi29e2+PgPkkiKUXLs/Nw==
|
||||
|
||||
cliui@^8.0.1:
|
||||
version "8.0.1"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
|
||||
resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
|
||||
integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
|
||||
dependencies:
|
||||
string-width "^4.2.0"
|
||||
|
|
@ -364,26 +144,26 @@ cliui@^8.0.1:
|
|||
|
||||
color-convert@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
|
||||
resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
|
||||
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
|
||||
dependencies:
|
||||
color-name "~1.1.4"
|
||||
|
||||
color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
|
||||
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
concurrently@^9.0.1:
|
||||
version "9.2.1"
|
||||
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.2.1.tgz#248ea21b95754947be2dad9c3e4b60f18ca4e44f"
|
||||
resolved "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz"
|
||||
integrity sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==
|
||||
dependencies:
|
||||
chalk "4.1.2"
|
||||
|
|
@ -395,17 +175,17 @@ concurrently@^9.0.1:
|
|||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||
|
||||
drift-zoom@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/drift-zoom/-/drift-zoom-1.5.1.tgz#1f815c34590f4c8adda31a437d681c5b62f5d70d"
|
||||
resolved "https://registry.npmjs.org/drift-zoom/-/drift-zoom-1.5.1.tgz"
|
||||
integrity sha512-GNLWl0ydTkgyFxfPouKvAZXvJhTt2dqUGkXCqENe+Y1OlQuQ+nUNKgvSpNvjp3nrbcij75GbJR/iMf/qdZbgPw==
|
||||
|
||||
dunder-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
|
||||
resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
|
||||
integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.1"
|
||||
|
|
@ -414,29 +194,29 @@ dunder-proto@^1.0.1:
|
|||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
|
||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||
|
||||
es-define-property@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
|
||||
resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
|
||||
integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
|
||||
|
||||
es-errors@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
|
||||
resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
|
||||
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
||||
|
||||
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
|
||||
resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
|
||||
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
|
||||
es-set-tostringtag@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
|
||||
resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz"
|
||||
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
|
|
@ -446,7 +226,7 @@ es-set-tostringtag@^2.1.0:
|
|||
|
||||
esbuild@^0.25.0:
|
||||
version "0.25.12"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5"
|
||||
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz"
|
||||
integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==
|
||||
optionalDependencies:
|
||||
"@esbuild/aix-ppc64" "0.25.12"
|
||||
|
|
@ -478,34 +258,34 @@ esbuild@^0.25.0:
|
|||
|
||||
escalade@^3.1.1:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
|
||||
resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
|
||||
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
|
||||
|
||||
fdir@^6.4.4, fdir@^6.5.0:
|
||||
version "6.5.0"
|
||||
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
|
||||
resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz"
|
||||
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
|
||||
|
||||
fill-range@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
||||
resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
|
||||
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
flatpickr@^4.6.13:
|
||||
version "4.6.13"
|
||||
resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94"
|
||||
resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz"
|
||||
integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==
|
||||
|
||||
follow-redirects@^1.15.6:
|
||||
version "1.15.11"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
|
||||
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz"
|
||||
integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
|
||||
|
||||
form-data@^4.0.4:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053"
|
||||
resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz"
|
||||
integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
|
|
@ -514,29 +294,24 @@ form-data@^4.0.4:
|
|||
hasown "^2.0.2"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fsevents@~2.3.2, fsevents@~2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||
|
||||
function-bind@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
|
||||
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
|
||||
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
|
||||
|
||||
fuse.js@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.1.0.tgz#306228b4befeee11e05b027087c2744158527d09"
|
||||
resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz"
|
||||
integrity sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==
|
||||
|
||||
get-caller-file@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-intrinsic@^1.2.6:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
|
||||
resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
|
||||
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.2"
|
||||
|
|
@ -552,7 +327,7 @@ get-intrinsic@^1.2.6:
|
|||
|
||||
get-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
|
||||
resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
|
||||
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
|
||||
dependencies:
|
||||
dunder-proto "^1.0.1"
|
||||
|
|
@ -560,87 +335,87 @@ get-proto@^1.0.1:
|
|||
|
||||
glightbox@^3.3.1:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/glightbox/-/glightbox-3.3.1.tgz#01d4c01394e437ac61792dc88fadca2e3f433eae"
|
||||
resolved "https://registry.npmjs.org/glightbox/-/glightbox-3.3.1.tgz"
|
||||
integrity sha512-nXoKfJRnQTDaAFAw5799hjpfAAHx5aLvOLG0SIGudeMCwtHgO3P2/avNYapJ+SL4UEZxO2YNBPtq6pzMhSx42g==
|
||||
|
||||
glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
gopd@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
|
||||
resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
|
||||
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
|
||||
|
||||
has-flag@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
|
||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||
|
||||
has-symbols@^1.0.3, has-symbols@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
|
||||
resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
|
||||
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
|
||||
|
||||
has-tostringtag@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
|
||||
resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
|
||||
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
|
||||
dependencies:
|
||||
has-symbols "^1.0.3"
|
||||
|
||||
hasown@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
|
||||
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
|
||||
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
|
||||
dependencies:
|
||||
function-bind "^1.1.2"
|
||||
|
||||
img-comparison-slider@^8.0.6:
|
||||
version "8.0.6"
|
||||
resolved "https://registry.yarnpkg.com/img-comparison-slider/-/img-comparison-slider-8.0.6.tgz#a94385e49ee630903f8a6a4f9959658078668c87"
|
||||
resolved "https://registry.npmjs.org/img-comparison-slider/-/img-comparison-slider-8.0.6.tgz"
|
||||
integrity sha512-ej4de7mWyjcXZvDgHq8K2a/dG8Vv+qYTdUjZa3cVILf316rLtDrHyGbh9fPvixmAFgbs30zTLfmaRDa7abjtzw==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.3.7"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381"
|
||||
resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz"
|
||||
integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||
resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
|
||||
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||
resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
|
||||
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
||||
|
||||
is-fullwidth-code-point@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
|
||||
resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
|
||||
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
|
||||
|
||||
is-glob@^4.0.1, is-glob@~4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
||||
resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
|
||||
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
laravel-vite-plugin@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/laravel-vite-plugin/-/laravel-vite-plugin-2.0.1.tgz#6708acd1db21e626b300b528c0447c935ce30d84"
|
||||
resolved "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-2.0.1.tgz"
|
||||
integrity sha512-zQuvzWfUKQu9oNVi1o0RZAJCwhGsdhx4NEOyrVQwJHaWDseGP9tl7XUPLY2T8Cj6+IrZ6lmyxlR1KC8unf3RLA==
|
||||
dependencies:
|
||||
picocolors "^1.0.0"
|
||||
|
|
@ -648,71 +423,76 @@ laravel-vite-plugin@^2.0.0:
|
|||
|
||||
list.js@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/list.js/-/list.js-2.3.1.tgz#48961989ffe52b0505e352f7a521f819f51df7e7"
|
||||
resolved "https://registry.npmjs.org/list.js/-/list.js-2.3.1.tgz"
|
||||
integrity sha512-jnmm7DYpKtH3DxtO1E2VNCC9Gp7Wrp/FWA2JxQrZUhVJ2RCQBd57pCN6W5w6jpsfWZV0PCAbTX2NOPgyFeeZZg==
|
||||
dependencies:
|
||||
string-natural-compare "^2.0.2"
|
||||
|
||||
lodash-es@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||
resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
|
||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||
|
||||
lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
math-intrinsics@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
|
||||
resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
|
||||
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
|
||||
|
||||
mime-db@1.52.0:
|
||||
version "1.52.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
|
||||
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||
|
||||
mime-types@^2.1.12:
|
||||
version "2.1.35"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
|
||||
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||
dependencies:
|
||||
mime-db "1.52.0"
|
||||
|
||||
nanoid@^3.3.11:
|
||||
version "3.3.11"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
|
||||
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
|
||||
integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
nouislider@^15.8.1:
|
||||
version "15.8.1"
|
||||
resolved "https://registry.yarnpkg.com/nouislider/-/nouislider-15.8.1.tgz#18729ed29738d2d328a1b5e0429d38eb8be8a696"
|
||||
resolved "https://registry.npmjs.org/nouislider/-/nouislider-15.8.1.tgz"
|
||||
integrity sha512-93TweAi8kqntHJSPiSWQ1o/uZ29VWOmal9YKb6KKGGlCkugaNfAupT7o1qTHqdJvNQ7S0su5rO6qRFCjP8fxtw==
|
||||
|
||||
picocolors@^1.0.0, picocolors@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
||||
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
|
||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
picomatch@^4.0.2, picomatch@^4.0.3:
|
||||
picomatch@^4.0.2:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
|
||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz"
|
||||
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
|
||||
|
||||
picomatch@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz"
|
||||
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
|
||||
|
||||
postcss@^8.5.3:
|
||||
version "8.5.6"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
|
||||
resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
|
||||
integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
|
||||
dependencies:
|
||||
nanoid "^3.3.11"
|
||||
|
|
@ -721,24 +501,24 @@ postcss@^8.5.3:
|
|||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
|
||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||
resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
|
||||
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
require-directory@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
||||
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
|
||||
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
||||
|
||||
rollup@^4.34.9:
|
||||
version "4.53.2"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.53.2.tgz#98e73ee51e119cb9d88b07d026c959522416420a"
|
||||
resolved "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz"
|
||||
integrity sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==
|
||||
dependencies:
|
||||
"@types/estree" "1.0.8"
|
||||
|
|
@ -769,14 +549,14 @@ rollup@^4.34.9:
|
|||
|
||||
rxjs@7.8.2:
|
||||
version "7.8.2"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
|
||||
resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz"
|
||||
integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
sass@1.77.6:
|
||||
version "1.77.6"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.6.tgz#898845c1348078c2e6d1b64f9ee06b3f8bd489e4"
|
||||
resolved "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz"
|
||||
integrity sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
|
|
@ -785,12 +565,12 @@ sass@1.77.6:
|
|||
|
||||
shell-quote@1.8.3:
|
||||
version "1.8.3"
|
||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b"
|
||||
resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz"
|
||||
integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==
|
||||
|
||||
simplebar-core@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/simplebar-core/-/simplebar-core-1.3.2.tgz#e249caf38625afb7c316b2d219b66afd6227e301"
|
||||
resolved "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.3.2.tgz"
|
||||
integrity sha512-qKgTTuTqapjsFGkNhCjyPhysnbZGpQqNmjk0nOYjFN5ordC/Wjvg+RbYCyMSnW60l/Z0ZS82GbNltly6PMUH1w==
|
||||
dependencies:
|
||||
lodash "^4.17.21"
|
||||
|
|
@ -798,24 +578,24 @@ simplebar-core@^1.3.2:
|
|||
|
||||
simplebar@^6.3.2:
|
||||
version "6.3.3"
|
||||
resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-6.3.3.tgz#08b4763e2a8e2b121f444fba613797a82ac33481"
|
||||
resolved "https://registry.npmjs.org/simplebar/-/simplebar-6.3.3.tgz"
|
||||
integrity sha512-ni9cIiA8GRitiaenV7A/gh8nTStiVqO3gLxrfCMmq6CSy/pB+fz+QxqvJLo142QHb2Tvgvr8ILwZxf3qzAq7pg==
|
||||
dependencies:
|
||||
simplebar-core "^1.3.2"
|
||||
|
||||
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1:
|
||||
source-map-js@^1.2.1, "source-map-js@>=0.6.2 <2.0.0":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
|
||||
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
|
||||
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
|
||||
|
||||
string-natural-compare@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-2.0.3.tgz#9dbe1dd65490a5fe14f7a5c9bc686fc67cb9c6e4"
|
||||
resolved "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.3.tgz"
|
||||
integrity sha512-4Kcl12rNjc+6EKhY8QyDVuQTAlMWwRiNbsxnVwBUKFr7dYPQuXVrtNU4sEkjF9LHY0AY6uVbB3ktbkIH4LC+BQ==
|
||||
|
||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
|
|
@ -824,38 +604,38 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|||
|
||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
dependencies:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
supports-color@8.1.1:
|
||||
version "8.1.1"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
||||
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
||||
supports-color@^7.1.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
|
||||
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^7.1.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
||||
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
||||
supports-color@8.1.1:
|
||||
version "8.1.1"
|
||||
resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
|
||||
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
swiper@^11.2.10:
|
||||
version "11.2.10"
|
||||
resolved "https://registry.yarnpkg.com/swiper/-/swiper-11.2.10.tgz#ed0b17286b56f7fe8d4b46ed61e6e0bd8daaccad"
|
||||
resolved "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz"
|
||||
integrity sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==
|
||||
|
||||
timezz@^9.0.2:
|
||||
version "9.0.2"
|
||||
resolved "https://registry.yarnpkg.com/timezz/-/timezz-9.0.2.tgz#c075e2f097950d34a34d71a6a3ce0f562d24ab75"
|
||||
resolved "https://registry.npmjs.org/timezz/-/timezz-9.0.2.tgz"
|
||||
integrity sha512-oZrPwr4MJtzuD1R+2zy1rLaorF2c1urprqLI39IUj9et8b5xW2Zylbye0V1UbqMLGal/Z8bnoBNxyLZ9qnXhXQ==
|
||||
|
||||
tinyglobby@^0.2.13:
|
||||
version "0.2.15"
|
||||
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2"
|
||||
resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz"
|
||||
integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==
|
||||
dependencies:
|
||||
fdir "^6.5.0"
|
||||
|
|
@ -863,24 +643,24 @@ tinyglobby@^0.2.13:
|
|||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
|
||||
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
tree-kill@1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
||||
resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz"
|
||||
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
|
||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||
|
||||
vite-plugin-full-reload@^1.1.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz#bc4bfdc842abb4d24309ca802be8b955fce1c0c6"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz"
|
||||
integrity sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==
|
||||
dependencies:
|
||||
picocolors "^1.0.0"
|
||||
|
|
@ -888,7 +668,7 @@ vite-plugin-full-reload@^1.1.0:
|
|||
|
||||
vite@^6.2.4:
|
||||
version "6.4.1"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.1.tgz#afbe14518cdd6887e240a4b0221ab6d0ce733f96"
|
||||
resolved "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz"
|
||||
integrity sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==
|
||||
dependencies:
|
||||
esbuild "^0.25.0"
|
||||
|
|
@ -902,7 +682,7 @@ vite@^6.2.4:
|
|||
|
||||
wrap-ansi@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
|
||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
|
|
@ -911,17 +691,17 @@ wrap-ansi@^7.0.0:
|
|||
|
||||
y18n@^5.0.5:
|
||||
version "5.0.8"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
|
||||
resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
|
||||
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
|
||||
|
||||
yargs-parser@^21.1.1:
|
||||
version "21.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
||||
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
|
||||
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
||||
|
||||
yargs@17.7.2:
|
||||
version "17.7.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
|
||||
resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
|
||||
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
|
||||
dependencies:
|
||||
cliui "^8.0.1"
|
||||
|
|
|
|||
Loading…
Reference in New Issue