mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
Compare commits
86 Commits
6.0.5
...
dark-divid
| Author | SHA1 | Date | |
|---|---|---|---|
| df19a55ff7 | |||
| 5504aa1c41 | |||
| c5acf1343e | |||
| 0321ca5515 | |||
| bd345949e5 | |||
| b4b00ebdd6 | |||
| 43316dae28 | |||
| 80e2548b38 | |||
| e8d92cd641 | |||
| 2c8bb38531 | |||
| 04c7ae39a2 | |||
| af2482a69c | |||
| cac35826c2 | |||
| 18b5705372 | |||
| c61fbad5ce | |||
| 15f3f566e3 | |||
| 2e93082282 | |||
| ca55221c4f | |||
| 98196194e2 | |||
| 7447cc24f9 | |||
| 889d22d92c | |||
| bc8f2cd484 | |||
| 4e47f58bad | |||
| d8c429912e | |||
| df04fd9e53 | |||
| 0aaf0e7e75 | |||
| 3d0b89bb4d | |||
| 38c4b9ebce | |||
| 7be59e78e0 | |||
| 189c51cdf4 | |||
| 204483836a | |||
| 33bc9ded65 | |||
| 4271ef451e | |||
| 6eb44fba93 | |||
| 96e7300583 | |||
| a479d966d1 | |||
| bca2794c4c | |||
| cb88c19059 | |||
| 946c7efab4 | |||
| d7b1d15f93 | |||
| 94e1efe115 | |||
| b0e38b74e9 | |||
| bd5f0fe5cf | |||
| 787619b907 | |||
| fd70ab9a99 | |||
| 33315638df | |||
| 157559cc05 | |||
| bba14bf51a | |||
| 9d1484d62d | |||
| 654dd9e64d | |||
| ea41989034 | |||
| 3f3f83a00a | |||
| adc5962071 | |||
| c4c00002d7 | |||
| a7c1e12db6 | |||
| 32949d1eec | |||
| 7718f77f3d | |||
| 7cde971f8b | |||
| 4e7441a5cf | |||
| b714833b06 | |||
| 88035ea490 | |||
| a9e54981bf | |||
| ef35293f8a | |||
| 5c63770b6b | |||
| 80847529fa | |||
| d130e20c92 | |||
| 586fb1ae10 | |||
| 20c2502e31 | |||
| 0e31f85c18 | |||
| e7301eb7a3 | |||
| 18507ddb6f | |||
| 7275f3dd47 | |||
| e31f947aba | |||
| 7ba120db31 | |||
| bc73ed8c9e | |||
| b1689dd2c6 | |||
| f6c59b7423 | |||
| 2cadcad485 | |||
| 04deade111 | |||
| ee0632f0d3 | |||
| f6771dafd3 | |||
| fadef0ea07 | |||
| c07e44520a | |||
| 6552c4edd6 | |||
| 5183a825e6 | |||
| 83a7c97e9e |
162
.github/workflows/uffizzi-build.yml
vendored
Normal file
162
.github/workflows/uffizzi-build.yml
vendored
Normal file
@ -0,0 +1,162 @@
|
||||
name: Build PR Image
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened,synchronize,reopened,closed]
|
||||
|
||||
jobs:
|
||||
|
||||
build-application:
|
||||
name: Build and Push `application`
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
|
||||
outputs:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Generate UUID image name
|
||||
id: uuid
|
||||
run: echo "UUID_TAG_APP=$(uuidgen)" >> $GITHUB_ENV
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: registry.uffizzi.com/${{ env.UUID_TAG_APP }}
|
||||
tags: type=raw,value=60d
|
||||
- name: Build and Push Image to registry.uffizzi.com ephemeral registry
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
context: ./
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
file: ./uffizzi/Dockerfile
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
|
||||
build-nginx:
|
||||
name: Build and Push `nginx`
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
|
||||
outputs:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Generate UUID image name
|
||||
id: uuid
|
||||
run: echo "UUID_TAG_NGINX=$(uuidgen)" >> $GITHUB_ENV
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: registry.uffizzi.com/${{ env.UUID_TAG_NGINX }}
|
||||
tags: type=raw,value=60d
|
||||
- name: Build and Push Image to Uffizzi ephemeral registry
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
context: ./
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
file: ./uffizzi/nginx/Dockerfile
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
|
||||
build-crond:
|
||||
name: Build and Push `crond`
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
|
||||
outputs:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Generate UUID image name
|
||||
id: uuid
|
||||
run: echo "UUID_TAG_CROND=$(uuidgen)" >> $GITHUB_ENV
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: registry.uffizzi.com/${{ env.UUID_TAG_CROND }}
|
||||
tags: type=raw,value=60d
|
||||
- name: Build and Push Image to registry.uffizzi.com ephemeral registry
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
context: ./
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
file: ./uffizzi/crond/Dockerfile
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
|
||||
|
||||
render-compose-file:
|
||||
name: Render Docker Compose File
|
||||
# Pass output of this workflow to another triggered by `workflow_run` event.
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
compose-file-cache-key: ${{ steps.hash.outputs.hash }}
|
||||
needs:
|
||||
- build-application
|
||||
- build-nginx
|
||||
- build-crond
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v3
|
||||
- name: Render Compose File
|
||||
run: |
|
||||
APP_IMAGE=$(echo ${{ needs.build-application.outputs.tags }})
|
||||
export APP_IMAGE
|
||||
NGINX_IMAGE=$(echo ${{ needs.build-nginx.outputs.tags }})
|
||||
export NGINX_IMAGE
|
||||
CROND_IMAGE=$(echo ${{ needs.build-crond.outputs.tags }})
|
||||
export CROND_IMAGE
|
||||
# Render simple template from environment variables.
|
||||
envsubst < ./uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml
|
||||
cat docker-compose.rendered.yml
|
||||
- name: Upload Rendered Compose File as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: docker-compose.rendered.yml
|
||||
retention-days: 2
|
||||
- name: Serialize PR Event to File
|
||||
run: |
|
||||
cat << EOF > event.json
|
||||
${{ toJSON(github.event) }}
|
||||
|
||||
EOF
|
||||
- name: Upload PR Event as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: event.json
|
||||
retention-days: 2
|
||||
|
||||
delete-preview:
|
||||
name: Call for Preview Deletion
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.action == 'closed' }}
|
||||
steps:
|
||||
# If this PR is closing, we will not render a compose file nor pass it to the next workflow.
|
||||
- name: Serialize PR Event to File
|
||||
run: echo '${{ toJSON(github.event) }}' > event.json
|
||||
- name: Upload PR Event as Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: preview-spec
|
||||
path: event.json
|
||||
retention-days: 2
|
||||
|
||||
84
.github/workflows/uffizzi-preview.yml
vendored
Normal file
84
.github/workflows/uffizzi-preview.yml
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
name: Deploy Uffizzi Preview
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows:
|
||||
- "Build PR Image"
|
||||
types:
|
||||
- completed
|
||||
|
||||
|
||||
jobs:
|
||||
cache-compose-file:
|
||||
name: Cache Compose File
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }}
|
||||
pr-number: ${{ env.PR_NUMBER }}
|
||||
steps:
|
||||
- name: 'Download artifacts'
|
||||
# Fetch output (zip archive) from the workflow run that triggered this workflow.
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: context.payload.workflow_run.id,
|
||||
});
|
||||
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
|
||||
return artifact.name == "preview-spec"
|
||||
})[0];
|
||||
let download = await github.rest.actions.downloadArtifact({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
artifact_id: matchArtifact.id,
|
||||
archive_format: 'zip',
|
||||
});
|
||||
let fs = require('fs');
|
||||
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data));
|
||||
- name: 'Unzip artifact'
|
||||
run: unzip preview-spec.zip
|
||||
- name: Read Event into ENV
|
||||
run: |
|
||||
echo 'EVENT_JSON<<EOF' >> $GITHUB_ENV
|
||||
cat event.json >> $GITHUB_ENV
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
- name: Hash Rendered Compose File
|
||||
id: hash
|
||||
# If the previous workflow was triggered by a PR close event, we will not have a compose file artifact.
|
||||
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
|
||||
run: echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV
|
||||
- name: Cache Rendered Compose File
|
||||
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: docker-compose.rendered.yml
|
||||
key: ${{ env.COMPOSE_FILE_HASH }}
|
||||
|
||||
- name: Read PR Number From Event Object
|
||||
id: pr
|
||||
run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV
|
||||
|
||||
- name: DEBUG - Print Job Outputs
|
||||
if: ${{ runner.debug }}
|
||||
run: |
|
||||
echo "PR number: ${{ env.PR_NUMBER }}"
|
||||
echo "Compose file hash: ${{ env.COMPOSE_FILE_HASH }}"
|
||||
cat event.json
|
||||
deploy-uffizzi-preview:
|
||||
name: Use Remote Workflow to Preview on Uffizzi
|
||||
needs:
|
||||
- cache-compose-file
|
||||
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2.6.1
|
||||
with:
|
||||
# If this workflow was triggered by a PR close event, cache-key will be an empty string
|
||||
# and this reusable workflow will delete the preview deployment.
|
||||
compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }}
|
||||
compose-file-cache-path: docker-compose.rendered.yml
|
||||
server: https://app.uffizzi.com/
|
||||
pr-number: ${{ needs.cache-compose-file.outputs.pr-number }}
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
id-token: write
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -16,3 +16,4 @@ Homestead.yaml
|
||||
.gitkeep
|
||||
/public/docs
|
||||
/.scribe
|
||||
!storage/fonts/.gitkeep
|
||||
@ -1,4 +1,4 @@
|
||||
FROM php:7.4-fpm
|
||||
FROM php:8.1-fpm
|
||||
|
||||
# Arguments defined in docker-compose.yml
|
||||
ARG user
|
||||
|
||||
@ -103,6 +103,7 @@ class CustomerStatsController extends Controller
|
||||
)
|
||||
->whereCompany()
|
||||
->whereCustomer($customer->id)
|
||||
->where('status', '<>', Invoice::STATUS_DRAFT)
|
||||
->sum('total');
|
||||
$totalReceipts = Payment::whereBetween(
|
||||
'payment_date',
|
||||
|
||||
@ -104,6 +104,7 @@ class DashboardController extends Controller
|
||||
'invoice_date',
|
||||
[$startDate->format('Y-m-d'), $start->format('Y-m-d')]
|
||||
)
|
||||
->where('status', '<>', Invoice::STATUS_DRAFT)
|
||||
->whereCompany()
|
||||
->sum('base_total');
|
||||
|
||||
@ -141,6 +142,7 @@ class DashboardController extends Controller
|
||||
$recent_due_invoices = Invoice::with('customer')
|
||||
->whereCompany()
|
||||
->where('base_due_amount', '>', 0)
|
||||
->where('status', '<>', Invoice::STATUS_DRAFT)
|
||||
->take(5)
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
@ -24,6 +24,7 @@ class InvoicesController extends Controller
|
||||
$limit = $request->has('limit') ? $request->limit : 10;
|
||||
|
||||
$invoices = Invoice::whereCompany()
|
||||
->whereTabFilters($request->tab_status)
|
||||
->join('customers', 'customers.id', '=', 'invoices.customer_id')
|
||||
->applyFilters($request->all())
|
||||
->select('invoices.*', 'customers.name')
|
||||
|
||||
@ -3,18 +3,18 @@
|
||||
namespace Crater\Http\Controllers\V1\Admin\Modules;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Http\Requests\UnzipUpdateRequest;
|
||||
use Crater\Space\ModuleInstaller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UnzipModuleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Crater\Http\Requests\UnzipUpdateRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
public function __invoke(UnzipUpdateRequest $request)
|
||||
{
|
||||
$this->authorize('manage modules');
|
||||
|
||||
|
||||
@ -3,18 +3,18 @@
|
||||
namespace Crater\Http\Controllers\V1\Admin\Modules;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Http\Requests\UploadModuleRequest;
|
||||
use Crater\Space\ModuleInstaller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UploadModuleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Crater\Http\Requests\UploadModuleRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
public function __invoke(UploadModuleRequest $request)
|
||||
{
|
||||
$this->authorize('manage modules');
|
||||
|
||||
|
||||
@ -2,24 +2,25 @@
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Admin\Report;
|
||||
|
||||
use PDF;
|
||||
use Carbon\Carbon;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\Currency;
|
||||
use Crater\Models\Customer;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use PDF;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
|
||||
class CustomerSalesReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request, $hash)
|
||||
{
|
||||
$company = Company::where('unique_hash', $hash)->first();
|
||||
@ -56,6 +57,7 @@ class CustomerSalesReportController extends Controller
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id);
|
||||
$from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat);
|
||||
$to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat);
|
||||
$currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id));
|
||||
|
||||
$colors = [
|
||||
'primary_text_color',
|
||||
@ -80,6 +82,7 @@ class CustomerSalesReportController extends Controller
|
||||
'company' => $company,
|
||||
'from_date' => $from_date,
|
||||
'to_date' => $to_date,
|
||||
'currency' => $currency,
|
||||
]);
|
||||
|
||||
$pdf = PDF::loadView('app.pdf.reports.sales-customers');
|
||||
|
||||
@ -2,24 +2,25 @@
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Admin\Report;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\Expense;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use PDF;
|
||||
use Carbon\Carbon;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\Expense;
|
||||
use Crater\Models\Currency;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
|
||||
class ExpensesReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request, $hash)
|
||||
{
|
||||
$company = Company::where('unique_hash', $hash)->first();
|
||||
@ -43,6 +44,7 @@ class ExpensesReportController extends Controller
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id);
|
||||
$from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat);
|
||||
$to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat);
|
||||
$currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id));
|
||||
|
||||
$colors = [
|
||||
'primary_text_color',
|
||||
@ -66,6 +68,7 @@ class ExpensesReportController extends Controller
|
||||
'company' => $company,
|
||||
'from_date' => $from_date,
|
||||
'to_date' => $to_date,
|
||||
'currency' => $currency,
|
||||
]);
|
||||
$pdf = PDF::loadView('app.pdf.reports.expenses');
|
||||
|
||||
|
||||
@ -2,24 +2,25 @@
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Admin\Report;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\InvoiceItem;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use PDF;
|
||||
use Carbon\Carbon;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\Currency;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\InvoiceItem;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
|
||||
class ItemSalesReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request, $hash)
|
||||
{
|
||||
$company = Company::where('unique_hash', $hash)->first();
|
||||
@ -43,6 +44,7 @@ class ItemSalesReportController extends Controller
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id);
|
||||
$from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat);
|
||||
$to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat);
|
||||
$currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id));
|
||||
|
||||
$colors = [
|
||||
'primary_text_color',
|
||||
@ -66,6 +68,7 @@ class ItemSalesReportController extends Controller
|
||||
'company' => $company,
|
||||
'from_date' => $from_date,
|
||||
'to_date' => $to_date,
|
||||
'currency' => $currency,
|
||||
]);
|
||||
$pdf = PDF::loadView('app.pdf.reports.sales-items');
|
||||
|
||||
|
||||
@ -2,25 +2,26 @@
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Admin\Report;
|
||||
|
||||
use PDF;
|
||||
use Carbon\Carbon;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\Expense;
|
||||
use Crater\Models\Payment;
|
||||
use Crater\Models\Currency;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use PDF;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
|
||||
class ProfitLossReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request, $hash)
|
||||
{
|
||||
$company = Company::where('unique_hash', $hash)->first();
|
||||
@ -49,6 +50,8 @@ class ProfitLossReportController extends Controller
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id);
|
||||
$from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat);
|
||||
$to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat);
|
||||
$currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id));
|
||||
|
||||
|
||||
$colors = [
|
||||
'primary_text_color',
|
||||
@ -74,6 +77,7 @@ class ProfitLossReportController extends Controller
|
||||
'company' => $company,
|
||||
'from_date' => $from_date,
|
||||
'to_date' => $to_date,
|
||||
'currency' => $currency,
|
||||
]);
|
||||
$pdf = PDF::loadView('app.pdf.reports.profit-loss');
|
||||
|
||||
|
||||
@ -2,24 +2,25 @@
|
||||
|
||||
namespace Crater\Http\Controllers\V1\Admin\Report;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\Tax;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use PDF;
|
||||
use Carbon\Carbon;
|
||||
use Crater\Models\Tax;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\Currency;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
|
||||
class TaxSummaryReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $hash
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request, $hash)
|
||||
{
|
||||
$company = Company::where('unique_hash', $hash)->first();
|
||||
@ -44,6 +45,8 @@ class TaxSummaryReportController extends Controller
|
||||
$dateFormat = CompanySetting::getSetting('carbon_date_format', $company->id);
|
||||
$from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat);
|
||||
$to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat);
|
||||
$currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id));
|
||||
|
||||
|
||||
$colors = [
|
||||
'primary_text_color',
|
||||
@ -68,6 +71,7 @@ class TaxSummaryReportController extends Controller
|
||||
'company' => $company,
|
||||
'from_date' => $from_date,
|
||||
'to_date' => $to_date,
|
||||
'currency' => $currency,
|
||||
]);
|
||||
|
||||
$pdf = PDF::loadView('app.pdf.reports.tax-summary');
|
||||
|
||||
@ -6,6 +6,7 @@ use Crater\Http\Controllers\Controller;
|
||||
use Crater\Http\Requests\UpdateSettingsRequest;
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class UpdateCompanySettingsController extends Controller
|
||||
{
|
||||
@ -20,10 +21,13 @@ class UpdateCompanySettingsController extends Controller
|
||||
$company = Company::find($request->header('company'));
|
||||
$this->authorize('manage company', $company);
|
||||
|
||||
$companyCurrency = CompanySetting::getSetting('currency', $request->header('company'));
|
||||
$data = $request->settings;
|
||||
|
||||
if ($companyCurrency !== $data['currency'] && $company->hasTransactions()) {
|
||||
if (
|
||||
Arr::exists($data, 'currency') &&
|
||||
(CompanySetting::getSetting('currency', $company->id) !== $data['currency']) &&
|
||||
$company->hasTransactions()
|
||||
) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Cannot update company currency after transactions are created.'
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
namespace Crater\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class CompaniesRequest extends FormRequest
|
||||
@ -34,6 +33,10 @@ class CompaniesRequest extends FormRequest
|
||||
'currency' => [
|
||||
'required'
|
||||
],
|
||||
'slug' => [
|
||||
'required',
|
||||
Rule::unique('companies')
|
||||
],
|
||||
'address.name' => [
|
||||
'nullable',
|
||||
],
|
||||
@ -68,11 +71,11 @@ class CompaniesRequest extends FormRequest
|
||||
{
|
||||
return collect($this->validated())
|
||||
->only([
|
||||
'name'
|
||||
'name',
|
||||
'slug'
|
||||
])
|
||||
->merge([
|
||||
'owner_id' => $this->user()->id,
|
||||
'slug' => Str::slug($this->name)
|
||||
'owner_id' => $this->user()->id
|
||||
])
|
||||
->toArray();
|
||||
}
|
||||
|
||||
@ -30,7 +30,8 @@ class CompanyRequest extends FormRequest
|
||||
Rule::unique('companies')->ignore($this->header('company'), 'id'),
|
||||
],
|
||||
'slug' => [
|
||||
'nullable'
|
||||
'required',
|
||||
Rule::unique('companies')->ignore($this->header('company'), 'id'),
|
||||
],
|
||||
'address.country_id' => [
|
||||
'required',
|
||||
|
||||
37
app/Http/Requests/UnzipUpdateRequest.php
Normal file
37
app/Http/Requests/UnzipUpdateRequest.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UnzipUpdateRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'path' => [
|
||||
'required',
|
||||
'regex:/^[\.\/\w\-]+$/'
|
||||
],
|
||||
'module' => [
|
||||
'required',
|
||||
'string'
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -25,7 +25,7 @@ class UploadExpenseReceiptRequest extends FormRequest
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'upload_receipt' => [
|
||||
'attachment_receipt' => [
|
||||
'nullable',
|
||||
new Base64Mime(['gif', 'jpg', 'png'])
|
||||
]
|
||||
|
||||
40
app/Http/Requests/UploadModuleRequest.php
Normal file
40
app/Http/Requests/UploadModuleRequest.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UploadModuleRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'avatar' => [
|
||||
'required',
|
||||
'file',
|
||||
'mimes:zip',
|
||||
'max:20000'
|
||||
],
|
||||
'module' => [
|
||||
'required',
|
||||
'string',
|
||||
'max:100'
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -23,7 +23,7 @@ class EstimateResource extends JsonResource
|
||||
'reference_number' => $this->reference_number,
|
||||
'tax_per_item' => $this->tax_per_item,
|
||||
'discount_per_item' => $this->discount_per_item,
|
||||
'notes' => $this->getNotes(),
|
||||
'notes' => $this->notes,
|
||||
'discount' => $this->discount,
|
||||
'discount_type' => $this->discount_type,
|
||||
'discount_val' => $this->discount_val,
|
||||
|
||||
@ -18,7 +18,7 @@ class PaymentResource extends JsonResource
|
||||
'id' => $this->id,
|
||||
'payment_number' => $this->payment_number,
|
||||
'payment_date' => $this->payment_date,
|
||||
'notes' => $this->getNotes(),
|
||||
'notes' => $this->notes,
|
||||
'amount' => $this->amount,
|
||||
'unique_hash' => $this->unique_hash,
|
||||
'invoice_id' => $this->invoice_id,
|
||||
|
||||
@ -483,7 +483,8 @@ class Estimate extends Model implements HasMedia
|
||||
'{ESTIMATE_DATE}' => $this->formattedEstimateDate,
|
||||
'{ESTIMATE_EXPIRY_DATE}' => $this->formattedExpiryDate,
|
||||
'{ESTIMATE_NUMBER}' => $this->estimate_number,
|
||||
'{ESTIMATE_REF_NUMBER}' => $this->reference_number,
|
||||
'{PDF_LINK}' => $this->estimatePdfUrl,
|
||||
'{TOTAL_AMOUNT}' => format_money_pdf($this->total, $this->customer->currency)
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -240,7 +240,7 @@ class Expense extends Model implements HasMedia
|
||||
}
|
||||
|
||||
if ($request->hasFile('attachment_receipt')) {
|
||||
$expense->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
|
||||
$expense->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts', 'local');
|
||||
}
|
||||
|
||||
if ($request->customFields) {
|
||||
@ -262,12 +262,12 @@ class Expense extends Model implements HasMedia
|
||||
ExchangeRateLog::addExchangeRateLog($this);
|
||||
}
|
||||
|
||||
if (isset($request->is_attachment_receipt_removed) && (bool) $request->is_attachment_receipt_removed) {
|
||||
if (isset($request->is_attachment_receipt_removed) && $request->is_attachment_receipt_removed == "true") {
|
||||
$this->clearMediaCollection('receipts');
|
||||
}
|
||||
if ($request->hasFile('attachment_receipt')) {
|
||||
$this->clearMediaCollection('receipts');
|
||||
$this->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts');
|
||||
$this->addMediaFromRequest('attachment_receipt')->toMediaCollection('receipts', 'local');
|
||||
}
|
||||
|
||||
if ($request->customFields) {
|
||||
|
||||
@ -187,16 +187,6 @@ class Invoice extends Model implements HasMedia
|
||||
return Carbon::parse($this->invoice_date)->format($dateFormat);
|
||||
}
|
||||
|
||||
public function scopeWhereStatus($query, $status)
|
||||
{
|
||||
return $query->where('invoices.status', $status);
|
||||
}
|
||||
|
||||
public function scopeWherePaidStatus($query, $status)
|
||||
{
|
||||
return $query->where('invoices.paid_status', $status);
|
||||
}
|
||||
|
||||
public function scopeWhereDueStatus($query, $status)
|
||||
{
|
||||
return $query->whereIn('invoices.paid_status', [
|
||||
@ -234,6 +224,40 @@ class Invoice extends Model implements HasMedia
|
||||
$query->orderBy($orderByField, $orderBy);
|
||||
}
|
||||
|
||||
public function scopeWhereStatus($query, $status)
|
||||
{
|
||||
return $query->where('invoices.status', $status);
|
||||
}
|
||||
|
||||
public function scopeWherePaidStatus($query, $status)
|
||||
{
|
||||
return $query->where('invoices.paid_status', $status);
|
||||
}
|
||||
|
||||
public function scopeWhereTabFilters($query, $status)
|
||||
{
|
||||
if ($status == "DRAFT") {
|
||||
return $query->where('invoices.status', $status);
|
||||
}
|
||||
|
||||
if ($status == "SENT") {
|
||||
return $query->whereIn('invoices.status', [
|
||||
self::STATUS_SENT,
|
||||
self::STATUS_VIEWED,
|
||||
self::STATUS_COMPLETED
|
||||
]);
|
||||
}
|
||||
|
||||
if ($status == 'DUE') {
|
||||
return $query->whereIn('invoices.paid_status', [
|
||||
self::STATUS_UNPAID,
|
||||
self::STATUS_PARTIALLY_PAID,
|
||||
]);
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
public function scopeApplyFilters($query, array $filters)
|
||||
{
|
||||
$filters = collect($filters);
|
||||
@ -249,17 +273,11 @@ class Invoice extends Model implements HasMedia
|
||||
$filters->get('status') == self::STATUS_PAID
|
||||
) {
|
||||
$query->wherePaidStatus($filters->get('status'));
|
||||
} elseif ($filters->get('status') == 'DUE') {
|
||||
$query->whereDueStatus($filters->get('status'));
|
||||
} else {
|
||||
$query->whereStatus($filters->get('status'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($filters->get('paid_status')) {
|
||||
$query->wherePaidStatus($filters->get('status'));
|
||||
}
|
||||
|
||||
if ($filters->get('invoice_id')) {
|
||||
$query->whereInvoice($filters->get('invoice_id'));
|
||||
}
|
||||
@ -443,7 +461,8 @@ class Invoice extends Model implements HasMedia
|
||||
$data['invoice'] = $this->toArray();
|
||||
$data['customer'] = $this->customer->toArray();
|
||||
$data['company'] = Company::find($this->company_id);
|
||||
$data['body'] = $this->getEmailBody($data['body']);
|
||||
$data['subject'] = $this->getEmailString($data['subject']);
|
||||
$data['body'] = $this->getEmailString($data['body']);
|
||||
$data['attach']['data'] = ($this->getEmailAttachmentSetting()) ? $this->getPDFData() : null;
|
||||
|
||||
return $data;
|
||||
@ -498,6 +517,10 @@ class Invoice extends Model implements HasMedia
|
||||
if (array_key_exists('taxes', $invoiceItem) && $invoiceItem['taxes']) {
|
||||
foreach ($invoiceItem['taxes'] as $tax) {
|
||||
$tax['company_id'] = $invoice->company_id;
|
||||
$tax['exchange_rate'] = $invoice->exchange_rate;
|
||||
$tax['base_amount'] = $tax['amount'] * $exchange_rate;
|
||||
$tax['currency_id'] = $invoice->currency_id;
|
||||
|
||||
if (gettype($tax['amount']) !== "NULL") {
|
||||
if (array_key_exists('recurring_invoice_id', $invoiceItem)) {
|
||||
unset($invoiceItem['recurring_invoice_id']);
|
||||
@ -520,7 +543,7 @@ class Invoice extends Model implements HasMedia
|
||||
|
||||
foreach ($taxes as $tax) {
|
||||
$tax['company_id'] = $invoice->company_id;
|
||||
$tax['exchnage_rate'] = $invoice->exchange_rate;
|
||||
$tax['exchange_rate'] = $invoice->exchange_rate;
|
||||
$tax['base_amount'] = $tax['amount'] * $exchange_rate;
|
||||
$tax['currency_id'] = $invoice->currency_id;
|
||||
|
||||
@ -631,7 +654,7 @@ class Invoice extends Model implements HasMedia
|
||||
return $this->getFormattedString($this->notes);
|
||||
}
|
||||
|
||||
public function getEmailBody($body)
|
||||
public function getEmailString($body)
|
||||
{
|
||||
$values = array_merge($this->getFieldsArray(), $this->getExtraFields());
|
||||
|
||||
@ -646,7 +669,9 @@ class Invoice extends Model implements HasMedia
|
||||
'{INVOICE_DATE}' => $this->formattedInvoiceDate,
|
||||
'{INVOICE_DUE_DATE}' => $this->formattedDueDate,
|
||||
'{INVOICE_NUMBER}' => $this->invoice_number,
|
||||
'{INVOICE_REF_NUMBER}' => $this->reference_number,
|
||||
'{PDF_LINK}' => $this->invoicePdfUrl,
|
||||
'{DUE_AMOUNT}' => format_money_pdf($this->due_amount, $this->customer->currency),
|
||||
'{TOTAL_AMOUNT}' => format_money_pdf($this->total, $this->customer->currency)
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -435,7 +435,8 @@ class Payment extends Model implements HasMedia
|
||||
'{PAYMENT_DATE}' => $this->formattedPaymentDate,
|
||||
'{PAYMENT_MODE}' => $this->paymentMethod ? $this->paymentMethod->name : null,
|
||||
'{PAYMENT_NUMBER}' => $this->payment_number,
|
||||
'{PAYMENT_AMOUNT}' => $this->reference_number,
|
||||
'{PDF_LINK}' => $this->paymentPdfUrl,
|
||||
'{PAYMENT_AMOUNT}' => format_money_pdf($this->amount, $this->customer->currency)
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -38,15 +38,15 @@
|
||||
"barryvdh/laravel-ide-helper": "^2.6",
|
||||
"beyondcode/laravel-dump-server": "^1.0",
|
||||
"facade/ignition": "^2.3.6",
|
||||
"friendsofphp/php-cs-fixer": "^3.0",
|
||||
"fzaninotto/faker": "^1.9.1",
|
||||
"friendsofphp/php-cs-fixer": "^3.8",
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
"mockery/mockery": "^1.3.1",
|
||||
"nunomaduro/collision": "^5.0",
|
||||
"pestphp/pest": "^1.0",
|
||||
"pestphp/pest-plugin-faker": "^1.0",
|
||||
"pestphp/pest-plugin-laravel": "^1.0",
|
||||
"pestphp/pest-plugin-parallel": "^0.2.1",
|
||||
"phpunit/phpunit": "^9.0"
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
@ -81,11 +81,14 @@
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true
|
||||
"sort-packages": true,
|
||||
"allow-plugins": {
|
||||
"pestphp/pest-plugin": true
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"dont-discover": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2347
composer.lock
generated
2347
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -71,6 +71,7 @@ return [
|
||||
["code" => "cs", "name" => "Czech"],
|
||||
["code" => "el", "name" => "Greek"],
|
||||
["code" => "hr", "name" => "Crotian"],
|
||||
["code" => "th", "name" => "ไทย"],
|
||||
],
|
||||
|
||||
/*
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\InvoiceItem;
|
||||
use Crater\Models\Tax;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CalculateBaseValuesForInvoiceItems extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
$taxes = Tax::whereRelation('invoiceItem', 'base_amount', null)->get();
|
||||
|
||||
if ($taxes) {
|
||||
$taxes->map(function ($tax) {
|
||||
$invoiceItem = InvoiceItem::find($tax->invoice_item_id);
|
||||
$exchange_rate = $invoiceItem->exchange_rate;
|
||||
$tax->exchange_rate = $exchange_rate;
|
||||
$tax->base_amount = $tax->amount * $exchange_rate;
|
||||
$tax->save();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Setting;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class UpdateCraterVersion606 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Setting::setSetting('version', '6.0.6');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -170,7 +170,7 @@ class CountriesTableSeeder extends Seeder
|
||||
['id' => 152,'code' => 'NR','name' => "Nauru",'phonecode' => 674],
|
||||
['id' => 153,'code' => 'NP','name' => "Nepal",'phonecode' => 977],
|
||||
['id' => 154,'code' => 'AN','name' => "Netherlands Antilles",'phonecode' => 599],
|
||||
['id' => 155,'code' => 'NL','name' => "Netherlands The",'phonecode' => 31],
|
||||
['id' => 155,'code' => 'NL','name' => "Netherlands",'phonecode' => 31],
|
||||
['id' => 156,'code' => 'NC','name' => "New Caledonia",'phonecode' => 687],
|
||||
['id' => 157,'code' => 'NZ','name' => "New Zealand",'phonecode' => 64],
|
||||
['id' => 158,'code' => 'NI','name' => "Nicaragua",'phonecode' => 505],
|
||||
|
||||
@ -275,6 +275,14 @@ class CurrenciesTableSeeder extends Seeder
|
||||
'thousand_separator' => '.',
|
||||
'decimal_separator' => ',',
|
||||
],
|
||||
[
|
||||
'name' => 'Central African Franc',
|
||||
'code' => 'XAF',
|
||||
'symbol' => 'CFA ',
|
||||
'precision' => '2',
|
||||
'thousand_separator' => ',',
|
||||
'decimal_separator' => '.',
|
||||
],
|
||||
[
|
||||
'name' => 'West African Franc',
|
||||
'code' => 'XOF',
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
FROM php:7.4-fpm-alpine
|
||||
FROM php:8.0-fpm-alpine
|
||||
|
||||
RUN apk add --no-cache \
|
||||
php7-bcmath
|
||||
php8-bcmath
|
||||
|
||||
RUN docker-php-ext-install pdo pdo_mysql bcmath
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
"vite": "^2.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@headlessui/vue": "^1.4.0",
|
||||
"@headlessui/vue": "^1.5.0",
|
||||
"@heroicons/vue": "^1.0.1",
|
||||
"@popperjs/core": "^2.9.2",
|
||||
"@stripe/stripe-js": "^1.21.2",
|
||||
@ -48,7 +48,8 @@
|
||||
"mini-svg-data-uri": "^1.3.3",
|
||||
"moment": "^2.29.1",
|
||||
"pinia": "^2.0.4",
|
||||
"v-money3": "^3.13.5",
|
||||
"v-calendar": "3.0.0-alpha.8",
|
||||
"v-money3": "3.16.1",
|
||||
"v-tooltip": "^4.0.0-alpha.1",
|
||||
"vue": "^3.2.0-beta.5",
|
||||
"vue-flatpickr-component": "^9.0.3",
|
||||
|
||||
@ -1 +0,0 @@
|
||||
var L=Object.defineProperty,P=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable;var U=(u,s,i)=>s in u?L(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,S=(u,s)=>{for(var i in s||(s={}))z.call(s,i)&&U(u,i,s[i]);if(V)for(var i of V(s))E.call(s,i)&&U(u,i,s[i]);return u},I=(u,s)=>P(u,T(s));import{J,B,k as y,L as _,M as C,Q,N as H,P as K,a0 as O,T as W,r as m,o as M,e as X,f as r,w as d,u as e,x as Y,l as Z,m as x,j as ee,i as ae,t as se,U as te,h as ne}from"./vendor.d12b5734.js";import{e as oe,d as re,b as le}from"./main.c7bd6c0e.js";const ie=["onSubmit"],ue=ne("span",null,null,-1),ce={setup(u){const s=oe(),i=re(),F=le(),{t:v}=J();let p=B(!1),c=B(null),f=B([]);const $=B(!1);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const q=y(()=>({name:{required:_.withMessage(v("validation.required"),C)},email:{required:_.withMessage(v("validation.required"),C),email:_.withMessage(v("validation.email_incorrect"),Q)},password:{minLength:_.withMessage(v("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:_.withMessage(v("validation.password_incorrect"),K(t.password))}})),t=O({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||F.selectedCompanySettings.language,password:"",confirm_password:""}),o=W(q,y(()=>t));function k(l,a){c.value=a}function N(){c.value=null,$.value=!0}async function A(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=I(S({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,c.value||$.value){let w=new FormData;c.value&&w.append("admin_avatar",c.value),w.append("is_admin_avatar_removed",$.value),await s.uploadAvatar(w),c.value=null,$.value=!1}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const w=m("BaseFileUploader"),g=m("BaseInputGroup"),b=m("BaseInput"),G=m("BaseMultiselect"),D=m("BaseInputGrid"),R=m("BaseIcon"),h=m("BaseButton"),j=m("BaseSettingCard");return M(),X("form",{class:"relative",onSubmit:te(A,["prevent"])},[r(j,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(D,null,{default:d(()=>[r(g,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r(w,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>Y(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:k,onRemove:N},null,8,["modelValue"])]),_:1},8,["label"]),ue,r(g,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(b,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(b,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(b,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(g,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(b,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.language")},{default:d(()=>[r(G,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"code","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(h,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?ee("",!0):(M(),Z(R,{key:0,name:"SaveIcon",class:x(n.class)},null,8,["class"]))]),default:d(()=>[ae(" "+se(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,ie)}}};export{ce as default};
|
||||
1
public/build/assets/AccountSetting.7f3b69b7.js
Normal file
1
public/build/assets/AccountSetting.7f3b69b7.js
Normal file
@ -0,0 +1 @@
|
||||
var L=Object.defineProperty,P=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable;var U=(u,s,i)=>s in u?L(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,S=(u,s)=>{for(var i in s||(s={}))z.call(s,i)&&U(u,i,s[i]);if(V)for(var i of V(s))E.call(s,i)&&U(u,i,s[i]);return u},I=(u,s)=>P(u,T(s));import{J,B as b,k as y,L as _,M as C,Q,N as H,P as K,a0 as O,T as W,r as m,o as M,e as X,f as r,w as d,u as e,x as Y,l as Z,m as x,j as ee,i as ae,t as se,U as te,h as ne}from"./vendor.d12b5734.js";import{e as oe,d as re,b as le}from"./main.465728e1.js";const ie=["onSubmit"],ue=ne("span",null,null,-1),ce={setup(u){const s=oe(),i=re(),F=le(),{t:v}=J();let p=b(!1),c=b(null),f=b([]);const $=b(!1);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const q=y(()=>({name:{required:_.withMessage(v("validation.required"),C)},email:{required:_.withMessage(v("validation.required"),C),email:_.withMessage(v("validation.email_incorrect"),Q)},password:{minLength:_.withMessage(v("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:_.withMessage(v("validation.password_incorrect"),K(t.password))}})),t=O({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||F.selectedCompanySettings.language,password:"",confirm_password:""}),o=W(q,y(()=>t));function k(l,a){c.value=a}function N(){c.value=null,$.value=!0}async function A(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=I(S({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,c.value||$.value){let w=new FormData;c.value&&w.append("admin_avatar",c.value),w.append("is_admin_avatar_removed",$.value),await s.uploadAvatar(w),c.value=null,$.value=!1}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const w=m("BaseFileUploader"),g=m("BaseInputGroup"),B=m("BaseInput"),G=m("BaseMultiselect"),D=m("BaseInputGrid"),R=m("BaseIcon"),h=m("BaseButton"),j=m("BaseSettingCard");return M(),X("form",{class:"relative",onSubmit:te(A,["prevent"])},[r(j,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(D,null,{default:d(()=>[r(g,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r(w,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>Y(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:k,onRemove:N},null,8,["modelValue"])]),_:1},8,["label"]),ue,r(g,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(B,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(B,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(B,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(g,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(B,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.language")},{default:d(()=>[r(G,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"name","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(h,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?ee("",!0):(M(),Z(R,{key:0,name:"SaveIcon",class:x(n.class)},null,8,["class"]))]),default:d(()=>[ae(" "+se(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,ie)}}};export{ce as default};
|
||||
File diff suppressed because one or more lines are too long
1
public/build/assets/BackupSetting.135768cd.js
Normal file
1
public/build/assets/BackupSetting.135768cd.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/build/assets/BaseListItem.3b6ffe7a.js
Normal file
1
public/build/assets/BaseListItem.3b6ffe7a.js
Normal file
@ -0,0 +1 @@
|
||||
import{_ as o}from"./main.465728e1.js";import{o as n,e as i,g as l,k as c,r as d,l as m,w as _,j as f,h as $,t as h,s as B}from"./vendor.d12b5734.js";const k={name:"List"},v={class:"list-none"};function x(e,r,t,s,a,p){return n(),i("div",v,[l(e.$slots,"default")])}var L=o(k,[["render",x]]);const y={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(e,{slots:r}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=c(()=>!!r.icon),a=c(()=>e.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:a}}},g={key:0,class:"mr-3"};function C(e,r,t,s,a,p){const u=d("router-link");return n(),m(u,B(e.$attrs,{class:s.containerClass}),{default:_(()=>[s.hasIconSlot?(n(),i("span",g,[l(e.$slots,"icon")])):f("",!0),$("span",null,h(t.title),1)]),_:3},16,["class"])}var b=o(y,[["render",C]]);export{b as B,L as a};
|
||||
@ -1 +0,0 @@
|
||||
import{_ as o}from"./main.c7bd6c0e.js";import{o as n,e as c,g as i,k as l,r as u,l as m,w as _,j as f,h as $,t as h,s as B}from"./vendor.d12b5734.js";const k={name:"List"},v={class:"list-none"};function x(e,r,t,s,a,d){return n(),c("div",v,[i(e.$slots,"default")])}var I=o(k,[["render",x]]);const y={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(e,{slots:r}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=l(()=>!!r.icon),a=l(()=>e.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:a}}},g={key:0,class:"mr-3"};function C(e,r,t,s,a,d){const p=u("router-link");return n(),m(p,B(e.$attrs,{class:s.containerClass}),{default:_(()=>[s.hasIconSlot?(n(),c("span",g,[i(e.$slots,"icon")])):f("",!0),$("span",null,h(t.title),1)]),_:3},16,["class"])}var L=o(y,[["render",C]]);export{L as B,I as a};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{J as j,B as k,k as g,L as y,M as N,N as L,S as T,T as q,r as i,o as B,l as b,w as r,h as m,i as f,t as C,u as e,f as n,m as D,j as G,U}from"./vendor.d12b5734.js";import{u as z}from"./category.970a47d6.js";import{c as E}from"./main.c7bd6c0e.js";const A={class:"flex justify-between w-full"},J=["onSubmit"],X={class:"p-8 sm:p-6"},F={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},Q={setup(H){const t=z(),u=E(),{t:p}=j();let c=k(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),L(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),T(255))}}})),o=q(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(o.value.currentCategory.$touch(),o.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),o.value.$reset()},300)}return(s,a)=>{const v=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),M=i("BaseTextarea"),V=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",A,[f(C(e(u).title)+" ",1),n(v,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:U(I,["prevent"])},[m("div",X,[n(V,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(o).currentCategory.name.$error&&e(o).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":a[0]||(a[0]=l=>e(t).currentCategory.name=l),invalid:e(o).currentCategory.name.$error,type:"text",onInput:a[1]||(a[1]=l=>e(o).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(o).currentCategory.description.$error&&e(o).currentCategory.description.$errors[0].$message},{default:r(()=>[n(M,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":a[2]||(a[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:a[3]||(a[3]=l=>e(o).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",F,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[f(C(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?G("",!0):(B(),b(v,{key:0,name:"SaveIcon",class:D(l.class)},null,8,["class"]))]),default:r(()=>[f(" "+C(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Q as _};
|
||||
import{J as j,B as k,k as g,L as y,M as N,N as L,S as T,T as q,r as i,o as B,l as b,w as r,h as m,i as f,t as C,u as e,f as n,m as D,j as G,U}from"./vendor.d12b5734.js";import{u as z}from"./category.c88b90cd.js";import{c as E}from"./main.465728e1.js";const A={class:"flex justify-between w-full"},J=["onSubmit"],X={class:"p-8 sm:p-6"},F={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},Q={setup(H){const t=z(),u=E(),{t:p}=j();let c=k(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),L(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),T(255))}}})),o=q(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(o.value.currentCategory.$touch(),o.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),o.value.$reset()},300)}return(s,a)=>{const v=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),M=i("BaseTextarea"),V=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",A,[f(C(e(u).title)+" ",1),n(v,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:U(I,["prevent"])},[m("div",X,[n(V,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(o).currentCategory.name.$error&&e(o).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":a[0]||(a[0]=l=>e(t).currentCategory.name=l),invalid:e(o).currentCategory.name.$error,type:"text",onInput:a[1]||(a[1]=l=>e(o).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(o).currentCategory.description.$error&&e(o).currentCategory.description.$errors[0].$message},{default:r(()=>[n(M,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":a[2]||(a[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:a[3]||(a[3]=l=>e(o).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",F,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[f(C(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?G("",!0):(B(),b(v,{key:0,name:"SaveIcon",class:D(l.class)},null,8,["class"]))]),default:r(()=>[f(" "+C(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Q as _};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
var I=Object.defineProperty,b=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>b(e,g(t));import{J as j,L as w,O as V,T as L,k as T,aE as F,r as E,o as n,l as m,w as P,aj as O,u as c,_ as S,C as x,e as D,f as A,F as R,y as k,j as B,I as C}from"./vendor.d12b5734.js";import{o as i,m as Y}from"./main.c7bd6c0e.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.6886ff98.js"),["assets/DateTimeType.6886ff98.js","assets/vendor.d12b5734.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.12fc8765.js"),["assets/DateType.12fc8765.js","assets/vendor.d12b5734.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.2d01b840.js"),["assets/DropdownType.2d01b840.js","assets/vendor.d12b5734.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.cf0dfc7c.js"),["assets/InputType.cf0dfc7c.js","assets/vendor.d12b5734.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.7b73360f.js"),["assets/NumberType.7b73360f.js","assets/vendor.d12b5734.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.29ae66c8.js"),["assets/PhoneType.29ae66c8.js","assets/vendor.d12b5734.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.591a8b07.js"),["assets/SwitchType.591a8b07.js","assets/vendor.d12b5734.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.27565abe.js"),["assets/TextAreaType.27565abe.js","assets/vendor.d12b5734.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.8ac8afd1.js"),["assets/TimeType.8ac8afd1.js","assets/vendor.d12b5734.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.d123ab64.js"),["assets/UrlType.d123ab64.js","assets/vendor.d12b5734.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=j(),d={value:{required:w.withMessage(r("validation.required"),V(t.field.is_required))}},a=L(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?F(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(O(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},N={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),D("div",N,[A(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),D(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _};
|
||||
var I=Object.defineProperty,b=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>b(e,g(t));import{J as j,L as w,O as V,T as L,k as T,aE as F,r as E,o as n,l as m,w as P,aj as O,u as c,_ as S,C as x,e as D,f as A,F as R,y as k,j as B,I as C}from"./vendor.d12b5734.js";import{o as i,m as Y}from"./main.465728e1.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.6886ff98.js"),["assets/DateTimeType.6886ff98.js","assets/vendor.d12b5734.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.12fc8765.js"),["assets/DateType.12fc8765.js","assets/vendor.d12b5734.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.2d01b840.js"),["assets/DropdownType.2d01b840.js","assets/vendor.d12b5734.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.cf0dfc7c.js"),["assets/InputType.cf0dfc7c.js","assets/vendor.d12b5734.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.7b73360f.js"),["assets/NumberType.7b73360f.js","assets/vendor.d12b5734.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.29ae66c8.js"),["assets/PhoneType.29ae66c8.js","assets/vendor.d12b5734.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.591a8b07.js"),["assets/SwitchType.591a8b07.js","assets/vendor.d12b5734.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.27565abe.js"),["assets/TextAreaType.27565abe.js","assets/vendor.d12b5734.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.8ac8afd1.js"),["assets/TimeType.8ac8afd1.js","assets/vendor.d12b5734.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.d123ab64.js"),["assets/UrlType.d123ab64.js","assets/vendor.d12b5734.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=j(),d={value:{required:w.withMessage(r("validation.required"),V(t.field.is_required))}},a=L(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?F(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(O(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},N={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),D("div",N,[A(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),D(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{l as k,u as S,j as C,e as x,g}from"./main.c7bd6c0e.js";import{J as E,G as j,aN as T,ah as N,r as l,o as a,l as s,w as t,u as e,f as n,i as p,t as f,j as y}from"./vendor.d12b5734.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(i){const w=i,_=k();S();const v=C(),m=x(),{t:u}=E(),h=j();T(),N("utils");function B(r){v.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=l("BaseIcon"),I=l("BaseButton"),d=l("BaseDropdownItem"),D=l("router-link"),b=l("BaseDropdown");return a(),s(b,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(I,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(D,{key:0,to:`/admin/customers/${i.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(D,{key:1,to:`customers/${i.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=$=>B(i.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _};
|
||||
import{l as S,u as b,j as C,e as x,g}from"./main.465728e1.js";import{J as E,G as j,aN as T,ah as N,r as l,o as a,l as s,w as t,u as e,f as n,i as p,t as f,j as y}from"./vendor.d12b5734.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(i){const w=i,_=S();b();const v=C(),m=x(),{t:u}=E(),h=j();T(),N("utils");function B(r){v.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=l("BaseIcon"),I=l("BaseButton"),d=l("BaseDropdownItem"),D=l("router-link"),k=l("BaseDropdown");return a(),s(k,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(I,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(D,{key:0,to:`/admin/customers/${i.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(D,{key:1,to:`customers/${i.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=$=>B(i.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{aU as $r,aV as Br,aQ as Kr,aW as Hr,o as Wr,e as Xr,h as Yr}from"./vendor.d12b5734.js";import{_ as Vr}from"./main.c7bd6c0e.js";var gr={exports:{}};/**!
|
||||
import{aU as $r,aV as Br,aQ as Kr,aW as Hr,o as Wr,e as Xr,h as Yr}from"./vendor.d12b5734.js";import{_ as Vr}from"./main.465728e1.js";var gr={exports:{}};/**!
|
||||
* Sortable 1.14.0
|
||||
* @author RubaXa <trash@rubaxa.org>
|
||||
* @author owenm <owen23355@gmail.com>
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{_ as r}from"./main.c7bd6c0e.js";import{o as s,e as o,h as C,m as l}from"./vendor.d12b5734.js";const n={},i={width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_=C("circle",{cx:"25",cy:"25",r:"25",fill:"#FDE4E5"},null,-1),a=C("path",{d:"M27.2031 23.6016C28.349 23.9401 29.2083 24.6562 29.7812 25.75C30.3802 26.8438 30.4714 27.9766 30.0547 29.1484C29.7422 30.0078 29.2083 30.6979 28.4531 31.2188C27.6979 31.7135 26.8516 31.974 25.9141 32V33.875C25.9141 34.0573 25.849 34.2005 25.7188 34.3047C25.6146 34.4349 25.4714 34.5 25.2891 34.5H24.0391C23.8568 34.5 23.7005 34.4349 23.5703 34.3047C23.4661 34.2005 23.4141 34.0573 23.4141 33.875V32C22.1641 32 21.0443 31.6094 20.0547 30.8281C19.8984 30.6979 19.8073 30.5417 19.7812 30.3594C19.7552 30.1771 19.8203 30.0208 19.9766 29.8906L21.3047 28.5625C21.5651 28.3281 21.8255 28.3021 22.0859 28.4844C22.4766 28.7448 22.9193 28.875 23.4141 28.875H25.9922C26.3307 28.875 26.6042 28.7708 26.8125 28.5625C27.0469 28.3281 27.1641 28.0417 27.1641 27.7031C27.1641 27.1302 26.8906 26.7656 26.3438 26.6094L22.3203 25.4375C21.4349 25.1771 20.6927 24.7083 20.0938 24.0312C19.4948 23.3542 19.1432 22.5729 19.0391 21.6875C18.9349 20.4115 19.2995 19.3177 20.1328 18.4062C20.9922 17.4688 22.0599 17 23.3359 17H23.4141V15.125C23.4141 14.9427 23.4661 14.7995 23.5703 14.6953C23.7005 14.5651 23.8568 14.5 24.0391 14.5H25.2891C25.4714 14.5 25.6146 14.5651 25.7188 14.6953C25.849 14.7995 25.9141 14.9427 25.9141 15.125V17C27.1641 17 28.2839 17.3906 29.2734 18.1719C29.4297 18.3021 29.5208 18.4583 29.5469 18.6406C29.5729 18.8229 29.5078 18.9792 29.3516 19.1094L28.0234 20.4375C27.763 20.6719 27.5026 20.6979 27.2422 20.5156C26.8516 20.2552 26.4089 20.125 25.9141 20.125H23.3359C22.9974 20.125 22.7109 20.2422 22.4766 20.4766C22.2682 20.6849 22.1641 20.9583 22.1641 21.2969C22.1641 21.5312 22.2422 21.7526 22.3984 21.9609C22.5547 22.1693 22.75 22.3125 22.9844 22.3906L27.2031 23.6016Z",fill:"#FB7178"},null,-1),h=[_,a];function H(t,e){return s(),o("svg",i,h)}var g=r(n,[["render",H]]);const V=C("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),d=C("path",{d:"M28.25 24.5V27H20.75V24.5H28.25ZM31.7266 18.6016C31.9089 18.7839 32 19.0052 32 19.2656V19.5H27V14.5H27.2344C27.4948 14.5 27.7161 14.5911 27.8984 14.7734L31.7266 18.6016ZM25.75 19.8125C25.75 20.0729 25.8411 20.2943 26.0234 20.4766C26.2057 20.6589 26.4271 20.75 26.6875 20.75H32V33.5625C32 33.8229 31.9089 34.0443 31.7266 34.2266C31.5443 34.4089 31.3229 34.5 31.0625 34.5H17.9375C17.6771 34.5 17.4557 34.4089 17.2734 34.2266C17.0911 34.0443 17 33.8229 17 33.5625V15.4375C17 15.1771 17.0911 14.9557 17.2734 14.7734C17.4557 14.5911 17.6771 14.5 17.9375 14.5H25.75V19.8125ZM19.5 17.3125V17.9375C19.5 18.1458 19.6042 18.25 19.8125 18.25H22.9375C23.1458 18.25 23.25 18.1458 23.25 17.9375V17.3125C23.25 17.1042 23.1458 17 22.9375 17H19.8125C19.6042 17 19.5 17.1042 19.5 17.3125ZM19.5 19.8125V20.4375C19.5 20.6458 19.6042 20.75 19.8125 20.75H22.9375C23.1458 20.75 23.25 20.6458 23.25 20.4375V19.8125C23.25 19.6042 23.1458 19.5 22.9375 19.5H19.8125C19.6042 19.5 19.5 19.6042 19.5 19.8125ZM29.5 31.6875V31.0625C29.5 30.8542 29.3958 30.75 29.1875 30.75H26.0625C25.8542 30.75 25.75 30.8542 25.75 31.0625V31.6875C25.75 31.8958 25.8542 32 26.0625 32H29.1875C29.3958 32 29.5 31.8958 29.5 31.6875ZM29.5 23.875C29.5 23.6927 29.4349 23.5495 29.3047 23.4453C29.2005 23.3151 29.0573 23.25 28.875 23.25H20.125C19.9427 23.25 19.7865 23.3151 19.6562 23.4453C19.5521 23.5495 19.5 23.6927 19.5 23.875V27.625C19.5 27.8073 19.5521 27.9635 19.6562 28.0938C19.7865 28.1979 19.9427 28.25 20.125 28.25H28.875C29.0573 28.25 29.2005 28.1979 29.3047 28.0938C29.4349 27.9635 29.5 27.8073 29.5 27.625V23.875Z",fill:"currentColor"},null,-1),p=[V,d],v={props:{colorClass:{type:String,default:"text-primary-500"}},setup(t){return(e,c)=>(s(),o("svg",{width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:l(t.colorClass)},p,2))}},f=C("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),u=C("path",{d:"M26.75 19.8125C26.75 20.0729 26.8411 20.2943 27.0234 20.4766C27.2057 20.6589 27.4271 20.75 27.6875 20.75H33V33.5625C33 33.8229 32.9089 34.0443 32.7266 34.2266C32.5443 34.4089 32.3229 34.5 32.0625 34.5H18.9375C18.6771 34.5 18.4557 34.4089 18.2734 34.2266C18.0911 34.0443 18 33.8229 18 33.5625V15.4375C18 15.1771 18.0911 14.9557 18.2734 14.7734C18.4557 14.5911 18.6771 14.5 18.9375 14.5H26.75V19.8125ZM33 19.2656V19.5H28V14.5H28.2344C28.4948 14.5 28.7161 14.5911 28.8984 14.7734L32.7266 18.6016C32.9089 18.7839 33 19.0052 33 19.2656Z",fill:"currentColor"},null,-1),w=[f,u],M={props:{colorClass:{type:String,default:"text-primary-500"}},setup(t){return(e,c)=>(s(),o("svg",{width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:l(t.colorClass)},w,2))}};export{g as D,v as _,M as a};
|
||||
import{_ as r}from"./main.465728e1.js";import{o as s,e as o,h as C,m as l}from"./vendor.d12b5734.js";const n={},i={width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_=C("circle",{cx:"25",cy:"25",r:"25",fill:"#FDE4E5"},null,-1),a=C("path",{d:"M27.2031 23.6016C28.349 23.9401 29.2083 24.6562 29.7812 25.75C30.3802 26.8438 30.4714 27.9766 30.0547 29.1484C29.7422 30.0078 29.2083 30.6979 28.4531 31.2188C27.6979 31.7135 26.8516 31.974 25.9141 32V33.875C25.9141 34.0573 25.849 34.2005 25.7188 34.3047C25.6146 34.4349 25.4714 34.5 25.2891 34.5H24.0391C23.8568 34.5 23.7005 34.4349 23.5703 34.3047C23.4661 34.2005 23.4141 34.0573 23.4141 33.875V32C22.1641 32 21.0443 31.6094 20.0547 30.8281C19.8984 30.6979 19.8073 30.5417 19.7812 30.3594C19.7552 30.1771 19.8203 30.0208 19.9766 29.8906L21.3047 28.5625C21.5651 28.3281 21.8255 28.3021 22.0859 28.4844C22.4766 28.7448 22.9193 28.875 23.4141 28.875H25.9922C26.3307 28.875 26.6042 28.7708 26.8125 28.5625C27.0469 28.3281 27.1641 28.0417 27.1641 27.7031C27.1641 27.1302 26.8906 26.7656 26.3438 26.6094L22.3203 25.4375C21.4349 25.1771 20.6927 24.7083 20.0938 24.0312C19.4948 23.3542 19.1432 22.5729 19.0391 21.6875C18.9349 20.4115 19.2995 19.3177 20.1328 18.4062C20.9922 17.4688 22.0599 17 23.3359 17H23.4141V15.125C23.4141 14.9427 23.4661 14.7995 23.5703 14.6953C23.7005 14.5651 23.8568 14.5 24.0391 14.5H25.2891C25.4714 14.5 25.6146 14.5651 25.7188 14.6953C25.849 14.7995 25.9141 14.9427 25.9141 15.125V17C27.1641 17 28.2839 17.3906 29.2734 18.1719C29.4297 18.3021 29.5208 18.4583 29.5469 18.6406C29.5729 18.8229 29.5078 18.9792 29.3516 19.1094L28.0234 20.4375C27.763 20.6719 27.5026 20.6979 27.2422 20.5156C26.8516 20.2552 26.4089 20.125 25.9141 20.125H23.3359C22.9974 20.125 22.7109 20.2422 22.4766 20.4766C22.2682 20.6849 22.1641 20.9583 22.1641 21.2969C22.1641 21.5312 22.2422 21.7526 22.3984 21.9609C22.5547 22.1693 22.75 22.3125 22.9844 22.3906L27.2031 23.6016Z",fill:"#FB7178"},null,-1),h=[_,a];function H(t,e){return s(),o("svg",i,h)}var g=r(n,[["render",H]]);const V=C("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),d=C("path",{d:"M28.25 24.5V27H20.75V24.5H28.25ZM31.7266 18.6016C31.9089 18.7839 32 19.0052 32 19.2656V19.5H27V14.5H27.2344C27.4948 14.5 27.7161 14.5911 27.8984 14.7734L31.7266 18.6016ZM25.75 19.8125C25.75 20.0729 25.8411 20.2943 26.0234 20.4766C26.2057 20.6589 26.4271 20.75 26.6875 20.75H32V33.5625C32 33.8229 31.9089 34.0443 31.7266 34.2266C31.5443 34.4089 31.3229 34.5 31.0625 34.5H17.9375C17.6771 34.5 17.4557 34.4089 17.2734 34.2266C17.0911 34.0443 17 33.8229 17 33.5625V15.4375C17 15.1771 17.0911 14.9557 17.2734 14.7734C17.4557 14.5911 17.6771 14.5 17.9375 14.5H25.75V19.8125ZM19.5 17.3125V17.9375C19.5 18.1458 19.6042 18.25 19.8125 18.25H22.9375C23.1458 18.25 23.25 18.1458 23.25 17.9375V17.3125C23.25 17.1042 23.1458 17 22.9375 17H19.8125C19.6042 17 19.5 17.1042 19.5 17.3125ZM19.5 19.8125V20.4375C19.5 20.6458 19.6042 20.75 19.8125 20.75H22.9375C23.1458 20.75 23.25 20.6458 23.25 20.4375V19.8125C23.25 19.6042 23.1458 19.5 22.9375 19.5H19.8125C19.6042 19.5 19.5 19.6042 19.5 19.8125ZM29.5 31.6875V31.0625C29.5 30.8542 29.3958 30.75 29.1875 30.75H26.0625C25.8542 30.75 25.75 30.8542 25.75 31.0625V31.6875C25.75 31.8958 25.8542 32 26.0625 32H29.1875C29.3958 32 29.5 31.8958 29.5 31.6875ZM29.5 23.875C29.5 23.6927 29.4349 23.5495 29.3047 23.4453C29.2005 23.3151 29.0573 23.25 28.875 23.25H20.125C19.9427 23.25 19.7865 23.3151 19.6562 23.4453C19.5521 23.5495 19.5 23.6927 19.5 23.875V27.625C19.5 27.8073 19.5521 27.9635 19.6562 28.0938C19.7865 28.1979 19.9427 28.25 20.125 28.25H28.875C29.0573 28.25 29.2005 28.1979 29.3047 28.0938C29.4349 27.9635 29.5 27.8073 29.5 27.625V23.875Z",fill:"currentColor"},null,-1),p=[V,d],v={props:{colorClass:{type:String,default:"text-primary-500"}},setup(t){return(e,c)=>(s(),o("svg",{width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:l(t.colorClass)},p,2))}},f=C("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),u=C("path",{d:"M26.75 19.8125C26.75 20.0729 26.8411 20.2943 27.0234 20.4766C27.2057 20.6589 27.4271 20.75 27.6875 20.75H33V33.5625C33 33.8229 32.9089 34.0443 32.7266 34.2266C32.5443 34.4089 32.3229 34.5 32.0625 34.5H18.9375C18.6771 34.5 18.4557 34.4089 18.2734 34.2266C18.0911 34.0443 18 33.8229 18 33.5625V15.4375C18 15.1771 18.0911 14.9557 18.2734 14.7734C18.4557 14.5911 18.6771 14.5 18.9375 14.5H26.75V19.8125ZM33 19.2656V19.5H28V14.5H28.2344C28.4948 14.5 28.7161 14.5911 28.8984 14.7734L32.7266 18.6016C32.9089 18.7839 33 19.0052 33 19.2656Z",fill:"currentColor"},null,-1),w=[f,u],M={props:{colorClass:{type:String,default:"text-primary-500"}},setup(t){return(e,c)=>(s(),o("svg",{width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:l(t.colorClass)},w,2))}};export{g as D,v as _,M as a};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{d as V,b as _}from"./main.c7bd6c0e.js";import{u as D}from"./exchange-rate.70a72e5f.js";import{B as p,k as u,C as l,b1 as F,r as d,K as N,u as n,o as x,l as A,w as h,e as G,q,f as v,m as L,j as C,h as b,t as E}from"./vendor.d12b5734.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},z={class:"text-gray-400 text-xs mt-2 font-light"},M={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,m=V(),B=_(),g=D(),f=p(!1);let a=p(!1);m.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>m.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(o=>{o.data&&!o.data.error?e.store[e.storeProp].exchange_rate=o.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(o=>{a.value=!1})}return F(()=>{e.store.showExchangeRate=!1}),(t,o)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),j=N("tooltip");return r.store.showExchangeRate&&n(c)?(x(),A(I,{key:0,"content-loading":n(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:h(()=>[f.value&&r.isEdit?(x(),G("div",O,[q(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${n(a)?" animate-spin rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:o[0]||(o[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[j,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:h(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":o[1]||(o[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":n(a)&&!r.isEdit,addon:`1 ${n(c).code} =`,disabled:n(a),onInput:o[2]||(o[2]=i=>r.v.exchange_rate.$touch())},{right:h(()=>[b("span",U,E(n(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),b("span",z,E(t.$t("settings.exchange_rate.exchange_help_text",{currency:n(c).code,baseCurrency:n(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{M as _};
|
||||
import{d as V,b as _}from"./main.465728e1.js";import{u as D}from"./exchange-rate.85b564e2.js";import{B as p,k as u,C as l,b1 as F,r as d,K as N,u as n,o as x,l as A,w as h,e as G,q,f as v,m as L,j as C,h as b,t as E}from"./vendor.d12b5734.js";const O={key:0},U={class:"text-gray-500 sm:text-sm"},z={class:"text-gray-400 text-xs mt-2 font-light"},M={props:{v:{type:Object,default:null},isLoading:{type:Boolean,default:!1},store:{type:Object,default:null},storeProp:{type:String,default:""},isEdit:{type:Boolean,default:!1},customerCurrency:{type:[String,Number],default:null}},setup(r){const e=r,m=V(),B=_(),g=D(),f=p(!1);let a=p(!1);m.fetchCurrencies();const s=u(()=>B.selectedCompanyCurrency),c=u(()=>m.currencies.find(t=>t.id===e.store[e.storeProp].currency_id)),P=u(()=>s.value.id!==e.customerCurrency);l(()=>e.store[e.storeProp].customer,t=>{R(t)},{deep:!0}),l(()=>e.store[e.storeProp].currency_id,t=>{$(t)},{immediate:!0}),l(()=>e.customerCurrency,t=>{t&&e.isEdit&&w()},{immediate:!0});function w(){P.value&&g.checkForActiveProvider(e.customerCurrency).then(t=>{t.data.success&&(f.value=!0)})}function R(t){t?e.store[e.storeProp].currency_id=t.currency.id:e.store[e.storeProp].currency_id=s.value.id}async function $(t){t!==s.value.id?(!e.isEdit&&t&&await y(t),e.store.showExchangeRate=!0):e.store.showExchangeRate=!1}function y(t){a.value=!0,g.getCurrentExchangeRate(t).then(o=>{o.data&&!o.data.error?e.store[e.storeProp].exchange_rate=o.data.exchangeRate[0]:e.store[e.storeProp].exchange_rate="",a.value=!1}).catch(o=>{a.value=!1})}return F(()=>{e.store.showExchangeRate=!1}),(t,o)=>{const k=d("BaseIcon"),S=d("BaseInput"),I=d("BaseInputGroup"),j=N("tooltip");return r.store.showExchangeRate&&n(c)?(x(),A(I,{key:0,"content-loading":n(a)&&!r.isEdit,label:t.$t("settings.exchange_rate.exchange_rate"),error:r.v.exchange_rate.$error&&r.v.exchange_rate.$errors[0].$message,required:""},{labelRight:h(()=>[f.value&&r.isEdit?(x(),G("div",O,[q(v(k,{name:"RefreshIcon",class:L(`h-4 w-4 text-primary-500 cursor-pointer outline-none ${n(a)?" animate-spin rotate-180 cursor-not-allowed pointer-events-none ":""}`),onClick:o[0]||(o[0]=i=>y(r.customerCurrency))},null,8,["class"]),[[j,{content:"Fetch Latest Exchange rate"}]])])):C("",!0)]),default:h(()=>[v(S,{modelValue:r.store[r.storeProp].exchange_rate,"onUpdate:modelValue":o[1]||(o[1]=i=>r.store[r.storeProp].exchange_rate=i),"content-loading":n(a)&&!r.isEdit,addon:`1 ${n(c).code} =`,disabled:n(a),onInput:o[2]||(o[2]=i=>r.v.exchange_rate.$touch())},{right:h(()=>[b("span",U,E(n(s).code),1)]),_:1},8,["modelValue","content-loading","addon","disabled"]),b("span",z,E(t.$t("settings.exchange_rate.exchange_help_text",{currency:n(c).code,baseCurrency:n(s).code})),1)]),_:1},8,["content-loading","label","error"])):C("",!0)}}};export{M as _};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{j as v,u as $,e as M,c as S,g as k}from"./main.c7bd6c0e.js";import{u as E}from"./category.970a47d6.js";import{J as I,G as T,ah as z,r as i,o as m,l as p,w as e,u as g,f as n,i as w,t as C,j as N,B as P,k as F,e as V,m as L,h as j,F as A}from"./vendor.d12b5734.js";import{_ as H}from"./CategoryModal.dc91de33.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=v();$();const{t:o}=I(),s=E(),h=T(),_=M(),x=S();z("utils");function b(l){s.fetchCategory(l),x.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(h).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(k).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>b(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),w(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(k).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),w(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},G={class:"truncate"},K={setup(y){const d=E();v();const B=S(),{t:o}=I(),s=P(null),h=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function x(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function b(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(A,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:x},{left:e(a=>[n(t,{class:L(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[w(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(h),class:"mt-16"},{"cell-description":e(({row:a})=>[j("div",X,[j("p",G,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":b},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{K as default};
|
||||
import{j as v,u as $,e as M,c as S,g as k}from"./main.465728e1.js";import{u as E}from"./category.c88b90cd.js";import{J as I,G as T,ah as z,r as i,o as m,l as p,w as e,u as g,f as n,i as w,t as C,j as N,B as P,k as F,e as V,m as L,h as j,F as A}from"./vendor.d12b5734.js";import{_ as H}from"./CategoryModal.6fabb0b3.js";const O={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(y){const d=y,B=v();$();const{t:o}=I(),s=E(),h=T(),_=M(),b=S();z("utils");function x(l){s.fetchCategory(l),b.openModal({title:o("settings.expense_category.edit_category"),componentName:"CategoryModal",refreshData:d.loadData,size:"sm"})}function r(l){B.openDialog({title:o("general.are_you_sure"),message:o("settings.expense_category.confirm_delete"),yesLabel:o("general.ok"),noLabel:o("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{if((await s.deleteCategory(l)).data.success)return d.loadData&&d.loadData(),!0;d.loadData&&d.loadData()})}return(l,t)=>{const c=i("BaseIcon"),u=i("BaseButton"),f=i("BaseDropdownItem"),a=i("BaseDropdown");return m(),p(a,null,{activator:e(()=>[g(h).name==="expenseCategorys.view"?(m(),p(u,{key:0,variant:"primary"},{default:e(()=>[n(c,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(m(),p(c,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:e(()=>[g(_).hasAbilities(g(k).EDIT_EXPENSE)?(m(),p(f,{key:0,onClick:t[0]||(t[0]=D=>x(y.row.id))},{default:e(()=>[n(c,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),w(" "+C(l.$t("general.edit")),1)]),_:1})):N("",!0),g(_).hasAbilities(g(k).DELETE_EXPENSE)?(m(),p(f,{key:1,onClick:t[1]||(t[1]=D=>r(y.row.id))},{default:e(()=>[n(c,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),w(" "+C(l.$t("general.delete")),1)]),_:1})):N("",!0)]),_:1})}}},X={class:"w-64"},G={class:"truncate"},K={setup(y){const d=E();v();const B=S(),{t:o}=I(),s=P(null),h=F(()=>[{key:"name",label:o("settings.expense_category.category_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"description",label:o("settings.expense_category.category_description"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function _({page:r,filter:l,sort:t}){let c={orderByField:t.fieldName||"created_at",orderBy:t.order||"desc",page:r},u=await d.fetchCategories(c);return{data:u.data.data,pagination:{totalPages:u.data.meta.last_page,currentPage:r,totalCount:u.data.meta.total,limit:5}}}function b(){B.openModal({title:o("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm",refreshData:s.value&&s.value.refresh})}async function x(){s.value&&s.value.refresh()}return(r,l)=>{const t=i("BaseIcon"),c=i("BaseButton"),u=i("BaseTable"),f=i("BaseSettingCard");return m(),V(A,null,[n(H),n(f,{title:r.$t("settings.expense_category.title"),description:r.$t("settings.expense_category.description")},{action:e(()=>[n(c,{variant:"primary-outline",type:"button",onClick:b},{left:e(a=>[n(t,{class:L(a.class),name:"PlusIcon"},null,8,["class"])]),default:e(()=>[w(" "+C(r.$t("settings.expense_category.add_new_category")),1)]),_:1})]),default:e(()=>[n(u,{ref:(a,D)=>{D.table=a,s.value=a},data:_,columns:g(h),class:"mt-16"},{"cell-description":e(({row:a})=>[j("div",X,[j("p",G,C(a.data.description),1)])]),"cell-actions":e(({row:a})=>[n(O,{row:a.data,table:s.value,"load-data":x},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{K as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
var M=Object.defineProperty,j=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var b=(a,e,t)=>e in a?M(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,B=(a,e)=>{for(var t in e||(e={}))N.call(e,t)&&b(a,t,e[t]);if(h)for(var t of h(e))C.call(e,t)&&b(a,t,e[t]);return a},$=(a,e)=>j(a,G(e));import{J as D,G as L,a0 as T,B as y,k as U,L as k,M as A,Q as E,T as F,r as u,o as c,e as p,f as m,w as v,u as r,t as _,h as J,i as P,U as Q}from"./vendor.d12b5734.js";import{u as R}from"./auth.a07e0850.js";import"./main.c7bd6c0e.js";const z=["onSubmit"],H={key:0},K={key:1},O={class:"mt-4 mb-4 text-sm"},ee={setup(a){const e=R(),{t}=D(),S=L(),l=T({email:"",company:""}),f=y(!1),n=y(!1),V=U(()=>({email:{required:k.withMessage(t("validation.required"),A),email:k.withMessage(t("validation.email_incorrect"),E)}})),o=F(V,l);function w(i){if(o.value.$touch(),o.value.$invalid)return!0;n.value=!0;let s=$(B({},l),{company:S.params.company});e.forgotPassword(s).then(d=>{n.value=!1}).catch(d=>{n.value=!1}),f.value=!0}return(i,s)=>{const d=u("BaseInput"),I=u("BaseInputGroup"),q=u("BaseButton"),x=u("router-link");return c(),p("form",{id:"loginForm",onSubmit:Q(w,["prevent"])},[m(I,{error:r(o).email.$error&&r(o).email.$errors[0].$message,label:i.$t("login.enter_email"),class:"mb-4",required:""},{default:v(()=>[m(d,{modelValue:r(l).email,"onUpdate:modelValue":s[0]||(s[0]=g=>r(l).email=g),type:"email",name:"email",invalid:r(o).email.$error,onInput:s[1]||(s[1]=g=>r(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),m(q,{loading:n.value,disabled:n.value,type:"submit",variant:"primary"},{default:v(()=>[f.value?(c(),p("div",K,_(i.$t("validation.not_yet")),1)):(c(),p("div",H,_(i.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),J("div",O,[m(x,{to:"login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:v(()=>[P(_(i.$t("general.back_to_login")),1)]),_:1})])],40,z)}}};export{ee as default};
|
||||
var M=Object.defineProperty,j=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var b=(a,e,t)=>e in a?M(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,B=(a,e)=>{for(var t in e||(e={}))N.call(e,t)&&b(a,t,e[t]);if(h)for(var t of h(e))C.call(e,t)&&b(a,t,e[t]);return a},$=(a,e)=>j(a,G(e));import{J as D,G as L,a0 as T,B as y,k as U,L as k,M as A,Q as E,T as F,r as u,o as c,e as p,f as m,w as v,u as r,t as _,h as J,i as P,U as Q}from"./vendor.d12b5734.js";import{u as R}from"./auth.c88ceb4c.js";import"./main.465728e1.js";const z=["onSubmit"],H={key:0},K={key:1},O={class:"mt-4 mb-4 text-sm"},ee={setup(a){const e=R(),{t}=D(),S=L(),l=T({email:"",company:""}),f=y(!1),n=y(!1),V=U(()=>({email:{required:k.withMessage(t("validation.required"),A),email:k.withMessage(t("validation.email_incorrect"),E)}})),o=F(V,l);function w(i){if(o.value.$touch(),o.value.$invalid)return!0;n.value=!0;let s=$(B({},l),{company:S.params.company});e.forgotPassword(s).then(d=>{n.value=!1}).catch(d=>{n.value=!1}),f.value=!0}return(i,s)=>{const d=u("BaseInput"),I=u("BaseInputGroup"),q=u("BaseButton"),x=u("router-link");return c(),p("form",{id:"loginForm",onSubmit:Q(w,["prevent"])},[m(I,{error:r(o).email.$error&&r(o).email.$errors[0].$message,label:i.$t("login.enter_email"),class:"mb-4",required:""},{default:v(()=>[m(d,{modelValue:r(l).email,"onUpdate:modelValue":s[0]||(s[0]=g=>r(l).email=g),type:"email",name:"email",invalid:r(o).email.$error,onInput:s[1]||(s[1]=g=>r(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),m(q,{loading:n.value,disabled:n.value,type:"submit",variant:"primary"},{default:v(()=>[f.value?(c(),p("div",K,_(i.$t("validation.not_yet")),1)):(c(),p("div",H,_(i.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),J("div",O,[m(x,{to:"login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:v(()=>[P(_(i.$t("general.back_to_login")),1)]),_:1})])],40,z)}}};export{ee as default};
|
||||
@ -1 +1 @@
|
||||
import{J as w,a0 as S,B as _,L as f,M as V,Q as I,T as x,r as n,o as l,e as u,f as r,w as m,u as t,t as d,h as M,i as N,U as q,a as j}from"./vendor.d12b5734.js";import{u as C,h as D}from"./main.c7bd6c0e.js";const E=["onSubmit"],G={key:0},L={key:1},T={class:"mt-4 mb-4 text-sm"},Q={setup(U){const g=C(),{t:c}=w(),i=S({email:""}),p=_(!1),o=_(!1),h={email:{required:f.withMessage(c("validation.required"),V),email:f.withMessage(c("validation.email_incorrect"),I)}},a=x(h,i);async function b(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const y=n("BaseInput"),$=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:q(b,["prevent"])},[r($,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r(y,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",L,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),M("div",T,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{Q as default};
|
||||
import{J as w,a0 as S,B as _,L as f,M as V,Q as I,T as x,r as n,o as l,e as u,f as r,w as m,u as t,t as d,h as M,i as N,U as q,a as j}from"./vendor.d12b5734.js";import{u as C,h as D}from"./main.465728e1.js";const E=["onSubmit"],G={key:0},L={key:1},T={class:"mt-4 mb-4 text-sm"},Q={setup(U){const g=C(),{t:c}=w(),i=S({email:""}),p=_(!1),o=_(!1),h={email:{required:f.withMessage(c("validation.required"),V),email:f.withMessage(c("validation.email_incorrect"),I)}},a=x(h,i);async function y(s){if(a.value.$touch(),!a.value.$invalid)try{o.value=!0,(await j.post("/api/v1/auth/password/email",i)).data&&g.showNotification({type:"success",message:"Mail sent successfully"}),p.value=!0,o.value=!1}catch(e){D(e),o.value=!1}}return(s,e)=>{const $=n("BaseInput"),b=n("BaseInputGroup"),B=n("BaseButton"),k=n("router-link");return l(),u("form",{id:"loginForm",onSubmit:q(y,["prevent"])},[r(b,{error:t(a).email.$error&&t(a).email.$errors[0].$message,label:s.$t("login.enter_email"),class:"mb-4",required:""},{default:m(()=>[r($,{modelValue:t(i).email,"onUpdate:modelValue":e[0]||(e[0]=v=>t(i).email=v),invalid:t(a).email.$error,focus:"",type:"email",name:"email",onInput:e[1]||(e[1]=v=>t(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),r(B,{loading:o.value,disabled:o.value,type:"submit",variant:"primary"},{default:m(()=>[p.value?(l(),u("div",L,d(s.$t("validation.not_yet")),1)):(l(),u("div",G,d(s.$t("validation.send_reset_link")),1))]),_:1},8,["loading","disabled"]),M("div",T,[r(k,{to:"/login",class:"text-sm text-primary-400 hover:text-gray-700"},{default:m(()=>[N(d(s.$t("general.back_to_login")),1)]),_:1})])],40,E)}}};export{Q as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{J as A,B as b,a0 as K,ah as O,G as Q,k as I,aR as Y,r as o,o as B,l as h,w as t,f as n,q as P,ag as C,u as l,m as M,i as v,t as c,j as Z,h as g,x as ee}from"./vendor.d12b5734.js";import te from"./BaseTable.d75a6388.js";import{_ as ae}from"./CapsuleIcon.37dfa933.js";import{x as ne,w as le}from"./main.c7bd6c0e.js";import{u as oe}from"./payment.03dd8d5c.js";import{u as se}from"./global.1ac91de5.js";import"./auth.a07e0850.js";const me={class:"relative table-container"},re=["innerHTML"],Be={setup(ce){const{tm:ue,t:u}=A();let i=b(!1);b("created_at");let $=b(!0),y=b(null);const s=K({payment_mode:"",payment_number:""}),D=O("utils");Q();const d=oe(),_=se(),w=I(()=>!d.totalPayments&&!$.value),H=I(()=>_.currency),N=I(()=>[{key:"payment_date",label:u("payments.date"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"payment_number",label:u("payments.payment_number")},{key:"payment_mode",label:u("payments.payment_mode")},{key:"invoice_number",label:u("invoices.invoice_number")},{key:"amount",label:u("payments.amount")},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);Y(s,()=>{R()},{debounce:500});async function T(a){return(await d.fetchPaymentModes(a,_.companySlug)).data.data}async function E({page:a,filter:r,sort:p}){let k={payment_method_id:s.payment_mode!==null?s.payment_mode:"",payment_number:s.payment_number,orderByField:p.fieldName||"created_at",orderBy:p.order||"desc",page:a};$.value=!0;let m=await d.fetchPayments(k,_.companySlug);return $.value=!1,{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:a,totalCount:m.data.meta.total,limit:10}}}function G(){y.value.refresh()}function R(){G()}function S(){s.customer="",s.payment_mode="",s.payment_number=""}function W(){i.value&&S(),i.value=!i.value}return(a,r)=>{const p=o("BaseBreadcrumbItem"),k=o("BaseBreadcrumb"),m=o("BaseIcon"),x=o("BaseButton"),z=o("BasePageHeader"),L=o("BaseInput"),V=o("BaseInputGroup"),U=o("BaseMultiselect"),q=o("BaseFilterWrapper"),J=o("BaseEmptyPlaceholder"),j=o("router-link"),X=o("BasePage");return B(),h(X,null,{default:t(()=>[n(z,{title:a.$t("payments.title")},{actions:t(()=>[P(n(x,{variant:"primary-outline",onClick:W},{right:t(e=>[l(i)?(B(),h(m,{key:1,class:M(e.class),name:"XIcon"},null,8,["class"])):(B(),h(m,{key:0,class:M(e.class),name:"FilterIcon"},null,8,["class"]))]),default:t(()=>[v(c(a.$t("general.filter"))+" ",1)]),_:1},512),[[C,l(d).totalPayments]])]),default:t(()=>[n(k,{slot:"breadcrumbs"},{default:t(()=>[n(p,{title:a.$t("general.home"),to:`/${l(_).companySlug}/customer/dashboard`},null,8,["title","to"]),n(p,{title:a.$tc("payments.payment",2),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),P(n(q,{onClear:S},{default:t(()=>[n(V,{label:a.$t("payments.payment_number"),class:"px-3"},{default:t(()=>[n(L,{modelValue:l(s).payment_number,"onUpdate:modelValue":r[0]||(r[0]=e=>l(s).payment_number=e),placeholder:a.$t("payments.payment_number")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),n(V,{label:a.$t("payments.payment_mode"),class:"px-3"},{default:t(()=>[n(U,{modelValue:l(s).payment_mode,"onUpdate:modelValue":r[1]||(r[1]=e=>l(s).payment_mode=e),"value-prop":"id","track-by":"name","filter-results":!1,label:"name","resolve-on-load":"",delay:100,searchable:"",options:T,placeholder:a.$t("payments.payment_mode")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},512),[[C,l(i)]]),l(w)?(B(),h(J,{key:0,title:a.$t("payments.no_payments"),description:a.$t("payments.list_of_payments")},{default:t(()=>[n(ae,{class:"mt-5 mb-4"})]),_:1},8,["title","description"])):Z("",!0),P(g("div",me,[n(te,{ref:(e,f)=>{f.table=e,ee(y)?y.value=e:y=e},data:E,columns:l(N),"placeholder-count":l(d).totalPayments>=20?10:5,class:"mt-10"},{"cell-payment_date":t(({row:e})=>[v(c(e.data.formatted_payment_date),1)]),"cell-payment_number":t(({row:e})=>[n(j,{to:{path:`payments/${e.data.id}/view`},class:"font-medium text-primary-500"},{default:t(()=>[v(c(e.data.payment_number),1)]),_:2},1032,["to"])]),"cell-payment_mode":t(({row:e})=>[g("span",null,c(e.data.payment_method?e.data.payment_method.name:a.$t("payments.not_selected")),1)]),"cell-invoice_number":t(({row:e})=>{var f,F;return[g("span",null,c(((f=e.data.invoice)==null?void 0:f.invoice_number)?(F=e.data.invoice)==null?void 0:F.invoice_number:a.$t("payments.no_invoice")),1)]}),"cell-amount":t(({row:e})=>[g("div",{innerHTML:l(D).formatMoney(e.data.amount,l(H))},null,8,re)]),"cell-actions":t(({row:e})=>[n(ne,null,{activator:t(()=>[n(m,{name:"DotsHorizontalIcon",class:"w-5 text-gray-500"})]),default:t(()=>[n(j,{to:`payments/${e.data.id}/view`},{default:t(()=>[n(le,null,{default:t(()=>[n(m,{name:"EyeIcon",class:"h-5 mr-3 text-gray-600"}),v(" "+c(a.$t("general.view")),1)]),_:1})]),_:2},1032,["to"])]),_:2},1024)]),_:1},8,["columns","placeholder-count"])],512),[[C,!l(w)]])]),_:1})}}};export{Be as default};
|
||||
import{J as A,B as b,a0 as K,ah as O,G as Q,k as I,aR as Y,r as o,o as B,l as h,w as t,f as n,q as P,ag as C,u as l,m as M,i as v,t as c,j as Z,h as g,x as ee}from"./vendor.d12b5734.js";import te from"./BaseTable.ec8995dc.js";import{_ as ae}from"./CapsuleIcon.37dfa933.js";import{x as ne,w as le}from"./main.465728e1.js";import{u as oe}from"./payment.e5b74251.js";import{u as se}from"./global.dc565c4e.js";import"./auth.c88ceb4c.js";const me={class:"relative table-container"},re=["innerHTML"],Be={setup(ce){const{tm:ue,t:u}=A();let i=b(!1);b("created_at");let $=b(!0),y=b(null);const s=K({payment_mode:"",payment_number:""}),D=O("utils");Q();const p=oe(),_=se(),w=I(()=>!p.totalPayments&&!$.value),H=I(()=>_.currency),N=I(()=>[{key:"payment_date",label:u("payments.date"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"payment_number",label:u("payments.payment_number")},{key:"payment_mode",label:u("payments.payment_mode")},{key:"invoice_number",label:u("invoices.invoice_number")},{key:"amount",label:u("payments.amount")},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);Y(s,()=>{R()},{debounce:500});async function T(a){return(await p.fetchPaymentModes(a,_.companySlug)).data.data}async function E({page:a,filter:r,sort:d}){let k={payment_method_id:s.payment_mode!==null?s.payment_mode:"",payment_number:s.payment_number,orderByField:d.fieldName||"created_at",orderBy:d.order||"desc",page:a};$.value=!0;let m=await p.fetchPayments(k,_.companySlug);return $.value=!1,{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:a,totalCount:m.data.meta.total,limit:10}}}function G(){y.value.refresh()}function R(){G()}function S(){s.customer="",s.payment_mode="",s.payment_number=""}function W(){i.value&&S(),i.value=!i.value}return(a,r)=>{const d=o("BaseBreadcrumbItem"),k=o("BaseBreadcrumb"),m=o("BaseIcon"),x=o("BaseButton"),z=o("BasePageHeader"),L=o("BaseInput"),V=o("BaseInputGroup"),U=o("BaseMultiselect"),q=o("BaseFilterWrapper"),J=o("BaseEmptyPlaceholder"),j=o("router-link"),X=o("BasePage");return B(),h(X,null,{default:t(()=>[n(z,{title:a.$t("payments.title")},{actions:t(()=>[P(n(x,{variant:"primary-outline",onClick:W},{right:t(e=>[l(i)?(B(),h(m,{key:1,class:M(e.class),name:"XIcon"},null,8,["class"])):(B(),h(m,{key:0,class:M(e.class),name:"FilterIcon"},null,8,["class"]))]),default:t(()=>[v(c(a.$t("general.filter"))+" ",1)]),_:1},512),[[C,l(p).totalPayments]])]),default:t(()=>[n(k,{slot:"breadcrumbs"},{default:t(()=>[n(d,{title:a.$t("general.home"),to:`/${l(_).companySlug}/customer/dashboard`},null,8,["title","to"]),n(d,{title:a.$tc("payments.payment",2),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),P(n(q,{onClear:S},{default:t(()=>[n(V,{label:a.$t("payments.payment_number"),class:"px-3"},{default:t(()=>[n(L,{modelValue:l(s).payment_number,"onUpdate:modelValue":r[0]||(r[0]=e=>l(s).payment_number=e),placeholder:a.$t("payments.payment_number")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),n(V,{label:a.$t("payments.payment_mode"),class:"px-3"},{default:t(()=>[n(U,{modelValue:l(s).payment_mode,"onUpdate:modelValue":r[1]||(r[1]=e=>l(s).payment_mode=e),"value-prop":"id","track-by":"name","filter-results":!1,label:"name","resolve-on-load":"",delay:100,searchable:"",options:T,placeholder:a.$t("payments.payment_mode")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},512),[[C,l(i)]]),l(w)?(B(),h(J,{key:0,title:a.$t("payments.no_payments"),description:a.$t("payments.list_of_payments")},{default:t(()=>[n(ae,{class:"mt-5 mb-4"})]),_:1},8,["title","description"])):Z("",!0),P(g("div",me,[n(te,{ref:(e,f)=>{f.table=e,ee(y)?y.value=e:y=e},data:E,columns:l(N),"placeholder-count":l(p).totalPayments>=20?10:5,class:"mt-10"},{"cell-payment_date":t(({row:e})=>[v(c(e.data.formatted_payment_date),1)]),"cell-payment_number":t(({row:e})=>[n(j,{to:{path:`payments/${e.data.id}/view`},class:"font-medium text-primary-500"},{default:t(()=>[v(c(e.data.payment_number),1)]),_:2},1032,["to"])]),"cell-payment_mode":t(({row:e})=>[g("span",null,c(e.data.payment_method?e.data.payment_method.name:a.$t("payments.not_selected")),1)]),"cell-invoice_number":t(({row:e})=>{var f,F;return[g("span",null,c(((f=e.data.invoice)==null?void 0:f.invoice_number)?(F=e.data.invoice)==null?void 0:F.invoice_number:a.$t("payments.no_invoice")),1)]}),"cell-amount":t(({row:e})=>[g("div",{innerHTML:l(D).formatMoney(e.data.amount,l(H))},null,8,re)]),"cell-actions":t(({row:e})=>[n(ne,null,{activator:t(()=>[n(m,{name:"DotsHorizontalIcon",class:"w-5 text-gray-500"})]),default:t(()=>[n(j,{to:`payments/${e.data.id}/view`},{default:t(()=>[n(le,null,{default:t(()=>[n(m,{name:"EyeIcon",class:"h-5 mr-3 text-gray-600"}),v(" "+c(a.$t("general.view")),1)]),_:1})]),_:2},1032,["to"])]),_:2},1024)]),_:1},8,["columns","placeholder-count"])],512),[[C,!l(w)]])]),_:1})}}};export{Be as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{J as O,G as j,aN as z,ah as R,r as I,o as r,l,w as o,u as c,f as s,q as M,ag as P,i as d,t as m,j as v}from"./vendor.d12b5734.js";import{i as F,c as U,u as q,j as H,e as W,g as y}from"./main.c7bd6c0e.js";const K={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const f=a,p=F(),N=U(),$=q(),b=H(),g=W(),{t:i}=O(),w=j(),C=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&g.hasAbilities(y.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&w.name!=="invoices.view"&&g.hasAbilities(y.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(C.push("/admin/invoices"),f.table&&f.table.refresh(),p.$patch(h=>{h.selectedInvoices=[],h.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{C.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(h=>{f.table&&f.table.refresh()})})}async function E(e){N.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${f.row.unique_hash}`;x.copyTextToClipboard(e),$.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=I("BaseIcon"),h=I("BaseButton"),u=I("BaseDropdownItem"),S=I("router-link"),L=I("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(w).name==="invoices.view"?(r(),l(h,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(y).EDIT_INVOICE)?(r(),l(S,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):v("",!0),c(w).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.copy_pdf_url")),1)]),_:1})):v("",!0),c(w).name!=="invoices.view"&&c(g).hasAbilities(c(y).VIEW_INVOICE)?(r(),l(S,{key:2,to:`/admin/invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):v("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.send_invoice")),1)]),_:1})):v("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.resend_invoice")),1)]),_:1})):v("",!0),s(S,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(w).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.record_payment")),1)]),_:1})):v("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.mark_as_sent")),1)]),_:1})):v("",!0),c(g).hasAbilities(c(y).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.clone_invoice")),1)]),_:1})):v("",!0),c(g).hasAbilities(c(y).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.delete")),1)]),_:1})):v("",!0)]),_:1})}}};export{K as _};
|
||||
import{J as O,G as j,aN as z,ah as R,r as I,o as r,l,w as o,u as c,f as s,q as M,ag as P,i as d,t as m,j as v}from"./vendor.d12b5734.js";import{i as F,c as U,u as q,j as H,e as W,g as y}from"./main.465728e1.js";const K={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(a){const f=a,p=F(),N=U(),$=q(),b=H(),g=W(),{t:i}=O(),w=j(),C=z(),x=R("utils");function _(e){return(e.status=="SENT"||e.status=="VIEWED")&&g.hasAbilities(y.SEND_INVOICE)}function D(e){return e.status=="DRAFT"&&w.name!=="invoices.view"&&g.hasAbilities(y.SEND_INVOICE)}async function B(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(n=>{e=e,n&&p.deleteInvoice({ids:[e]}).then(t=>{t.data.success&&(C.push("/admin/invoices"),f.table&&f.table.refresh(),p.$patch(h=>{h.selectedInvoices=[],h.selectAllField=!1}))})})}async function A(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.confirm_clone"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{n&&p.cloneInvoice(e).then(t=>{C.push(`/admin/invoices/${t.data.data.id}/edit`)})})}async function T(e){b.openDialog({title:i("general.are_you_sure"),message:i("invoices.invoice_mark_as_sent"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"primary",hideNoButton:!1,size:"lg"}).then(n=>{const t={id:e,status:"SENT"};n&&p.markAsSent(t).then(h=>{f.table&&f.table.refresh()})})}async function E(e){N.openModal({title:i("invoices.send_invoice"),componentName:"SendInvoiceModal",id:e.id,data:e,variant:"sm"})}function V(){let e=`${window.location.origin}/invoices/pdf/${f.row.unique_hash}`;x.copyTextToClipboard(e),$.showNotification({type:"success",message:i("general.copied_pdf_url_clipboard")})}return(e,n)=>{const t=I("BaseIcon"),h=I("BaseButton"),u=I("BaseDropdownItem"),S=I("router-link"),L=I("BaseDropdown");return r(),l(L,null,{activator:o(()=>[c(w).name==="invoices.view"?(r(),l(h,{key:0,variant:"primary"},{default:o(()=>[s(t,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(r(),l(t,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:o(()=>[c(g).hasAbilities(c(y).EDIT_INVOICE)?(r(),l(S,{key:0,to:`/admin/invoices/${a.row.id}/edit`},{default:o(()=>[M(s(u,null,{default:o(()=>[s(t,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.edit")),1)]),_:1},512),[[P,a.row.allow_edit]])]),_:1},8,["to"])):v("",!0),c(w).name==="invoices.view"?(r(),l(u,{key:1,onClick:V},{default:o(()=>[s(t,{name:"LinkIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.copy_pdf_url")),1)]),_:1})):v("",!0),c(w).name!=="invoices.view"&&c(g).hasAbilities(c(y).VIEW_INVOICE)?(r(),l(S,{key:2,to:`/admin/invoices/${a.row.id}/view`},{default:o(()=>[s(u,null,{default:o(()=>[s(t,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):v("",!0),D(a.row)?(r(),l(u,{key:3,onClick:n[0]||(n[0]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.send_invoice")),1)]),_:1})):v("",!0),_(a.row)?(r(),l(u,{key:4,onClick:n[1]||(n[1]=k=>E(a.row))},{default:o(()=>[s(t,{name:"PaperAirplaneIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.resend_invoice")),1)]),_:1})):v("",!0),s(S,{to:`/admin/payments/${a.row.id}/create`},{default:o(()=>[a.row.status=="SENT"&&c(w).name!=="invoices.view"?(r(),l(u,{key:0},{default:o(()=>[s(t,{name:"CreditCardIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.record_payment")),1)]),_:1})):v("",!0)]),_:1},8,["to"]),D(a.row)?(r(),l(u,{key:5,onClick:n[2]||(n[2]=k=>T(a.row.id))},{default:o(()=>[s(t,{name:"CheckCircleIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.mark_as_sent")),1)]),_:1})):v("",!0),c(g).hasAbilities(c(y).CREATE_INVOICE)?(r(),l(u,{key:6,onClick:n[3]||(n[3]=k=>A(a.row))},{default:o(()=>[s(t,{name:"DocumentTextIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("invoices.clone_invoice")),1)]),_:1})):v("",!0),c(g).hasAbilities(c(y).DELETE_INVOICE)?(r(),l(u,{key:7,onClick:n[4]||(n[4]=k=>B(a.row.id))},{default:o(()=>[s(t,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),d(" "+m(e.$t("general.delete")),1)]),_:1})):v("",!0)]),_:1})}}};export{K as _};
|
||||
@ -1 +1 @@
|
||||
import{J as S,B as V,k as h,L as b,M as C,N as k,T as N,r as i,o as g,l as B,w as r,h as d,i as p,t as f,u as e,f as l,m as j,j as x,U as q}from"./vendor.d12b5734.js";import{p as z,c as D}from"./main.c7bd6c0e.js";const L={class:"flex justify-between w-full"},T=["onSubmit"],E={class:"p-8 sm:p-6"},G={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},F={setup(J){const t=z(),a=D(),{t:v}=S();let s=V(!1);const $=h(()=>({name:{required:b.withMessage(v("validation.required"),C),minLength:b.withMessage(v("validation.name_min_length",{count:3}),k(3))}})),n=N($,h(()=>t.currentItemUnit));async function U(){if(n.value.$touch(),n.value.$invalid)return!0;try{const o=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;s.value=!0,await o(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),s.value=!1}catch{return s.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(o,m)=>{const _=i("BaseIcon"),y=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return g(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[d("div",L,[p(f(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[d("form",{action:"",onSubmit:q(U,["prevent"])},[d("div",E,[l(w,{label:o.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(y,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=c=>e(t).currentItemUnit.name=c),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=c=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),d("div",G,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(f(o.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(s),disabled:e(s),variant:"primary",type:"submit"},{left:r(c=>[e(s)?x("",!0):(g(),B(_,{key:0,name:"SaveIcon",class:j(c.class)},null,8,["class"]))]),default:r(()=>[p(" "+f(e(t).isItemUnitEdit?o.$t("general.update"):o.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,T)]),_:1},8,["show"])}}};export{F as _};
|
||||
import{J as S,B as V,k as h,L as g,M as C,N as k,T as N,r as i,o as b,l as B,w as r,h as c,i as p,t as f,u as e,f as l,m as j,j as x,U as q}from"./vendor.d12b5734.js";import{p as z,c as D}from"./main.465728e1.js";const L={class:"flex justify-between w-full"},T=["onSubmit"],E={class:"p-8 sm:p-6"},G={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},F={setup(J){const t=z(),a=D(),{t:v}=S();let s=V(!1);const $=h(()=>({name:{required:g.withMessage(v("validation.required"),C),minLength:g.withMessage(v("validation.name_min_length",{count:3}),k(3))}})),n=N($,h(()=>t.currentItemUnit));async function U(){if(n.value.$touch(),n.value.$invalid)return!0;try{const o=t.isItemUnitEdit?t.updateItemUnit:t.addItemUnit;s.value=!0,await o(t.currentItemUnit),a.refreshData&&a.refreshData(),u(),s.value=!1}catch{return s.value=!1,!0}}function u(){a.closeModal(),setTimeout(()=>{t.currentItemUnit={id:null,name:""},a.$reset(),n.value.$reset()},300)}return(o,m)=>{const _=i("BaseIcon"),y=i("BaseInput"),w=i("BaseInputGroup"),I=i("BaseButton"),M=i("BaseModal");return b(),B(M,{show:e(a).active&&e(a).componentName==="ItemUnitModal",onClose:u},{header:r(()=>[c("div",L,[p(f(e(a).title)+" ",1),l(_,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:u})])]),default:r(()=>[c("form",{action:"",onSubmit:q(U,["prevent"])},[c("div",E,[l(w,{label:o.$t("settings.customization.items.unit_name"),error:e(n).name.$error&&e(n).name.$errors[0].$message,variant:"horizontal",required:""},{default:r(()=>[l(y,{modelValue:e(t).currentItemUnit.name,"onUpdate:modelValue":m[0]||(m[0]=d=>e(t).currentItemUnit.name=d),invalid:e(n).name.$error,type:"text",onInput:m[1]||(m[1]=d=>e(n).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),c("div",G,[l(I,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:u},{default:r(()=>[p(f(o.$t("general.cancel")),1)]),_:1}),l(I,{loading:e(s),disabled:e(s),variant:"primary",type:"submit"},{left:r(d=>[e(s)?x("",!0):(b(),B(_,{key:0,name:"SaveIcon",class:j(d.class)},null,8,["class"]))]),default:r(()=>[p(" "+f(e(t).isItemUnitEdit?o.$t("general.update"):o.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,T)]),_:1},8,["show"])}}};export{F as _};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/build/assets/LayoutInstallation.356e17fb.js
Normal file
1
public/build/assets/LayoutInstallation.356e17fb.js
Normal file
@ -0,0 +1 @@
|
||||
import{N as t}from"./NotificationRoot.5fd2c2c8.js";import{r as s,o as r,e as a,f as o,h as c}from"./vendor.d12b5734.js";import"./main.465728e1.js";const n={class:"h-screen overflow-y-auto text-base"},i={class:"container mx-auto px-4"},u={setup(_){return(m,p)=>{const e=s("router-view");return r(),a("div",n,[o(t),c("div",i,[o(e)])])}}};export{u as default};
|
||||
@ -1 +0,0 @@
|
||||
import{N as t}from"./NotificationRoot.b2aa5501.js";import{r as s,o as a,e as r,f as o,h as c}from"./vendor.d12b5734.js";import"./main.c7bd6c0e.js";const n={class:"h-screen overflow-y-auto text-base"},i={class:"container mx-auto px-4"},u={setup(_){return(m,p)=>{const e=s("router-view");return a(),r("div",n,[o(t),c("div",i,[o(e)])])}}};export{u as default};
|
||||
@ -1 +1 @@
|
||||
import{N as r}from"./NotificationRoot.b2aa5501.js";import{f as l}from"./main.c7bd6c0e.js";import{k as i,r as n,o,e,f as a,h as s,u as c,l as u}from"./vendor.d12b5734.js";const d={class:"min-h-screen bg-gray-200 flex flex-col justify-center py-12 sm:px-6 lg:px-8"},p={class:"sm:mx-auto sm:w-full sm:max-w-md px-4 sm:px-0"},_=["src"],x={class:"mt-8 sm:mx-auto sm:w-full sm:max-w-md px-4 sm:px-0"},f={class:"bg-white py-8 px-4 shadow rounded-lg sm:px-10"},b={setup(w){const t=i(()=>window.customer_logo?window.customer_logo:!1);return(h,g)=>{const m=n("router-view");return o(),e("div",d,[a(r),s("div",p,[c(t)?(o(),e("img",{key:1,src:c(t),class:"block w-48 h-auto max-w-full text-primary-400 mx-auto"},null,8,_)):(o(),u(l,{key:0,class:"block w-48 h-auto max-w-full text-primary-400 mx-auto"}))]),s("div",x,[s("div",f,[a(m)])])])}}};export{b as default};
|
||||
import{N as r}from"./NotificationRoot.5fd2c2c8.js";import{f as l}from"./main.465728e1.js";import{k as i,r as n,o,e,f as a,h as s,u as c,l as u}from"./vendor.d12b5734.js";const d={class:"min-h-screen bg-gray-200 flex flex-col justify-center py-12 sm:px-6 lg:px-8"},p={class:"sm:mx-auto sm:w-full sm:max-w-md px-4 sm:px-0"},_=["src"],x={class:"mt-8 sm:mx-auto sm:w-full sm:max-w-md px-4 sm:px-0"},f={class:"bg-white py-8 px-4 shadow rounded-lg sm:px-10"},b={setup(w){const t=i(()=>window.customer_logo?window.customer_logo:!1);return(h,g)=>{const m=n("router-view");return o(),e("div",d,[a(r),s("div",p,[c(t)?(o(),e("img",{key:1,src:c(t),class:"block w-48 h-auto max-w-full text-primary-400 mx-auto"},null,8,_)):(o(),u(l,{key:0,class:"block w-48 h-auto max-w-full text-primary-400 mx-auto"}))]),s("div",x,[s("div",f,[a(m)])])])}}};export{b as default};
|
||||
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{aQ as Zi,ah as Ji,B as Qi,k as eo,a7 as to,D as ro,a0 as ea,o as ao,e as no,h as io}from"./vendor.d12b5734.js";import{b as oo}from"./main.c7bd6c0e.js";var ta={exports:{}};/*!
|
||||
import{aQ as Zi,ah as Ji,B as Qi,k as eo,a7 as to,D as ro,a0 as ea,o as ao,e as no,h as io}from"./vendor.d12b5734.js";import{b as oo}from"./main.465728e1.js";var ta={exports:{}};/*!
|
||||
* Chart.js v2.9.4
|
||||
* https://www.chartjs.org
|
||||
* (c) 2020 Chart.js Contributors
|
||||
@ -1 +1 @@
|
||||
import{_ as e}from"./main.c7bd6c0e.js";import{o as c,e as s,h as o}from"./vendor.d12b5734.js";const t={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return c(),s("svg",r,l)}var p=e(t,[["render",i]]);export{p as L};
|
||||
import{_ as e}from"./main.465728e1.js";import{o as s,e as t,h as o}from"./vendor.d12b5734.js";const c={},r={xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},n=o("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),a=o("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),l=[n,a];function i(_,d){return s(),t("svg",r,l)}var p=e(c,[["render",i]]);export{p as L};
|
||||
@ -1 +1 @@
|
||||
import{J as C,aN as M,B as w,L as p,M as $,Q as E,T as L,k as y,r as l,o as c,e as T,f as n,w as u,u as e,l as b,x as B,h as _,i as h,t as I,U,a as j}from"./vendor.d12b5734.js";import{u as G,a as R}from"./main.c7bd6c0e.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},J={class:"mb-4"},z={setup(O){const k=G(),s=R(),{t:m}=C(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},a=L(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(j.defaults.withCredentials=!0,a.value.$touch(),a.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,t)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),N=l("BaseButton");return c(),T("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:U(q,["prevent"])},[n(f,{error:e(a).email.$error&&e(a).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":t[0]||(t[0]=r=>e(s).loginData.email=r),invalid:e(a).email.$error,focus:"",type:"email",name:"email",onInput:t[1]||(t[1]=r=>e(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(a).password.$error&&e(a).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":t[4]||(t[4]=r=>e(s).loginData.password=r),invalid:e(a).password.$error,type:e(S),name:"password",onInput:t[5]||(t[5]=r=>e(a).password.$touch())},{right:u(()=>[e(o)?(c(),b(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[2]||(t[2]=r=>B(o)?o.value=!e(o):o=!e(o))})):(c(),b(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[3]||(t[3]=r=>B(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),_("div",F,[_("div",J,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(N,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{z as default};
|
||||
import{J as C,aN as M,B as w,L as p,M as $,Q as E,T as L,k as y,r as l,o as c,e as T,f as n,w as u,u as e,l as B,x as _,h as b,i as h,t as I,U,a as j}from"./vendor.d12b5734.js";import{u as G,a as R}from"./main.465728e1.js";const A=["onSubmit"],F={class:"mt-5 mb-8"},J={class:"mb-4"},z={setup(O){const k=G(),s=R(),{t:m}=C(),V=M(),d=w(!1);let o=w(!1);const x={email:{required:p.withMessage(m("validation.required"),$),email:p.withMessage(m("validation.email_incorrect"),E)},password:{required:p.withMessage(m("validation.required"),$)}},a=L(x,y(()=>s.loginData)),S=y(()=>o.value?"text":"password");async function q(){if(j.defaults.withCredentials=!0,a.value.$touch(),a.value.$invalid)return!0;d.value=!0;try{d.value=!0,await s.login(s.loginData),V.push("/admin/dashboard"),k.showNotification({type:"success",message:"Logged in successfully."})}catch{d.value=!1}}return(i,t)=>{const g=l("BaseInput"),f=l("BaseInputGroup"),v=l("BaseIcon"),D=l("router-link"),N=l("BaseButton");return c(),T("form",{id:"loginForm",class:"mt-12 text-left",onSubmit:U(q,["prevent"])},[n(f,{error:e(a).email.$error&&e(a).email.$errors[0].$message,label:i.$t("login.email"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.email,"onUpdate:modelValue":t[0]||(t[0]=r=>e(s).loginData.email=r),invalid:e(a).email.$error,focus:"",type:"email",name:"email",onInput:t[1]||(t[1]=r=>e(a).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),n(f,{error:e(a).password.$error&&e(a).password.$errors[0].$message,label:i.$t("login.password"),class:"mb-4",required:""},{default:u(()=>[n(g,{modelValue:e(s).loginData.password,"onUpdate:modelValue":t[4]||(t[4]=r=>e(s).loginData.password=r),invalid:e(a).password.$error,type:e(S),name:"password",onInput:t[5]||(t[5]=r=>e(a).password.$touch())},{right:u(()=>[e(o)?(c(),B(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[2]||(t[2]=r=>_(o)?o.value=!e(o):o=!e(o))})):(c(),B(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[3]||(t[3]=r=>_(o)?o.value=!e(o):o=!e(o))}))]),_:1},8,["modelValue","invalid","type"])]),_:1},8,["error","label"]),b("div",F,[b("div",J,[n(D,{to:"forgot-password",class:"text-sm text-primary-400 hover:text-gray-700"},{default:u(()=>[h(I(i.$t("login.forgot_password")),1)]),_:1})])]),n(N,{loading:d.value,type:"submit"},{default:u(()=>[h(I(i.$t("login.login")),1)]),_:1},8,["loading"])],40,A)}}};export{z as default};
|
||||
@ -1 +1 @@
|
||||
var E=Object.defineProperty,G=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var b=(s,a,t)=>a in s?E(s,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[a]=t,B=(s,a)=>{for(var t in a||(a={}))U.call(a,t)&&b(s,t,a[t]);if(D)for(var t of D(a))O.call(a,t)&&b(s,t,a[t]);return s},I=(s,a)=>G(s,L(a));import{aN as P,G as R,J as z,B as _,k as h,L as f,M as k,Q as A,T as F,r as c,o as w,e as J,f as i,w as m,u as e,l as V,h as S,i as q,t as x,m as Q,U as H}from"./vendor.d12b5734.js";import{u as K}from"./auth.a07e0850.js";import"./main.c7bd6c0e.js";const W=["onSubmit"],X={class:"flex items-center justify-between"},oe={setup(s){const a=P(),t=R(),l=K(),{t:g}=z();let p=_(!1);const u=_(!1),C=h(()=>u.value?"text":"password"),j=h(()=>({loginData:{email:{required:f.withMessage(g("validation.required"),k),email:f.withMessage(g("validation.email_incorrect"),A)},password:{required:f.withMessage(g("validation.required"),k)}}})),r=F(j,l);async function M(){if(r.value.loginData.$touch(),r.value.loginData.$invalid)return!0;p.value=!0;let d=I(B({},l.loginData),{company:t.params.company});try{return await l.login(d),p.value=!1,a.push({name:"customer.dashboard"});l.$reset()}catch{p.value=!1}}return(d,o)=>{const $=c("BaseInput"),y=c("BaseInputGroup"),v=c("BaseIcon"),N=c("router-link"),T=c("BaseButton");return w(),J("form",{id:"loginForm",class:"space-y-6",action:"#",method:"POST",onSubmit:H(M,["prevent"])},[i(y,{error:e(r).loginData.email.$error&&e(r).loginData.email.$errors[0].$message,label:d.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[i($,{modelValue:e(l).loginData.email,"onUpdate:modelValue":o[0]||(o[0]=n=>e(l).loginData.email=n),type:"email",invalid:e(r).loginData.email.$error,onInput:o[1]||(o[1]=n=>e(r).loginData.email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),i(y,{error:e(r).loginData.password.$error&&e(r).loginData.password.$errors[0].$message,label:d.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[i($,{modelValue:e(l).loginData.password,"onUpdate:modelValue":o[4]||(o[4]=n=>e(l).loginData.password=n),type:e(C),invalid:e(r).loginData.password.$error,onInput:o[5]||(o[5]=n=>e(r).loginData.password.$touch())},{right:m(()=>[u.value?(w(),V(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:o[2]||(o[2]=n=>u.value=!u.value)})):(w(),V(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:o[3]||(o[3]=n=>u.value=!u.value)}))]),_:1},8,["modelValue","type","invalid"])]),_:1},8,["error","label"]),S("div",X,[i(N,{to:{name:"customer.forgot-password"},class:"text-sm text-primary-600 hover:text-gray-500"},{default:m(()=>[q(x(d.$t("login.forgot_password")),1)]),_:1},8,["to"])]),S("div",null,[i(T,{loading:e(p),disabled:e(p),type:"submit",class:"w-full justify-center"},{left:m(n=>[i(v,{name:"LockClosedIcon",class:Q(n.class)},null,8,["class"])]),default:m(()=>[q(" "+x(d.$t("login.login")),1)]),_:1},8,["loading","disabled"])])],40,W)}}};export{oe as default};
|
||||
var E=Object.defineProperty,G=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var b=(s,a,t)=>a in s?E(s,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[a]=t,B=(s,a)=>{for(var t in a||(a={}))U.call(a,t)&&b(s,t,a[t]);if(D)for(var t of D(a))O.call(a,t)&&b(s,t,a[t]);return s},I=(s,a)=>G(s,L(a));import{aN as P,G as R,J as z,B as _,k as h,L as f,M as k,Q as A,T as F,r as c,o as w,e as J,f as i,w as m,u as e,l as V,h as S,i as q,t as x,m as Q,U as H}from"./vendor.d12b5734.js";import{u as K}from"./auth.c88ceb4c.js";import"./main.465728e1.js";const W=["onSubmit"],X={class:"flex items-center justify-between"},oe={setup(s){const a=P(),t=R(),l=K(),{t:g}=z();let p=_(!1);const u=_(!1),C=h(()=>u.value?"text":"password"),j=h(()=>({loginData:{email:{required:f.withMessage(g("validation.required"),k),email:f.withMessage(g("validation.email_incorrect"),A)},password:{required:f.withMessage(g("validation.required"),k)}}})),r=F(j,l);async function M(){if(r.value.loginData.$touch(),r.value.loginData.$invalid)return!0;p.value=!0;let d=I(B({},l.loginData),{company:t.params.company});try{return await l.login(d),p.value=!1,a.push({name:"customer.dashboard"});l.$reset()}catch{p.value=!1}}return(d,o)=>{const $=c("BaseInput"),y=c("BaseInputGroup"),v=c("BaseIcon"),N=c("router-link"),T=c("BaseButton");return w(),J("form",{id:"loginForm",class:"space-y-6",action:"#",method:"POST",onSubmit:H(M,["prevent"])},[i(y,{error:e(r).loginData.email.$error&&e(r).loginData.email.$errors[0].$message,label:d.$t("login.email"),class:"mb-4",required:""},{default:m(()=>[i($,{modelValue:e(l).loginData.email,"onUpdate:modelValue":o[0]||(o[0]=n=>e(l).loginData.email=n),type:"email",invalid:e(r).loginData.email.$error,onInput:o[1]||(o[1]=n=>e(r).loginData.email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["error","label"]),i(y,{error:e(r).loginData.password.$error&&e(r).loginData.password.$errors[0].$message,label:d.$t("login.password"),class:"mb-4",required:""},{default:m(()=>[i($,{modelValue:e(l).loginData.password,"onUpdate:modelValue":o[4]||(o[4]=n=>e(l).loginData.password=n),type:e(C),invalid:e(r).loginData.password.$error,onInput:o[5]||(o[5]=n=>e(r).loginData.password.$touch())},{right:m(()=>[u.value?(w(),V(v,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:o[2]||(o[2]=n=>u.value=!u.value)})):(w(),V(v,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:o[3]||(o[3]=n=>u.value=!u.value)}))]),_:1},8,["modelValue","type","invalid"])]),_:1},8,["error","label"]),S("div",X,[i(N,{to:{name:"customer.forgot-password"},class:"text-sm text-primary-600 hover:text-gray-500"},{default:m(()=>[q(x(d.$t("login.forgot_password")),1)]),_:1},8,["to"])]),S("div",null,[i(T,{loading:e(p),disabled:e(p),type:"submit",class:"w-full justify-center"},{left:m(n=>[i(v,{name:"LockClosedIcon",class:Q(n.class)},null,8,["class"])]),default:m(()=>[q(" "+x(d.$t("login.login")),1)]),_:1},8,["loading","disabled"])])],40,W)}}};export{oe as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{J as k,G as $,ah as T,r,o as p,l as f,w as t,u as c,f as u,i as S,t as z,j as C,B as E,k as O,e as F,m as G,F as P,a0 as V}from"./vendor.d12b5734.js";import{j as x,u as I,e as M,c as j,g as D}from"./main.c7bd6c0e.js";import{u as A,_ as H}from"./NoteModal.c9605dba.js";import"./payment.2b6f850e.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,h=x(),_=I(),{t:a}=k(),o=A(),N=$(),y=M(),b=j();T("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){h.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return p(),f(l,null,{activator:t(()=>[c(N).name==="notes.view"?(p(),f(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),f(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),S(" "+z(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),S(" "+z(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},K={setup(g){const{t:d}=k(),h=j();x();const _=A();I();const a=M(),o=E(""),N=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await h.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return p(),F(P,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:G(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[S(" "+z(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(N),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{K as default};
|
||||
import{J as k,G as $,ah as T,r,o as p,l as f,w as t,u as c,f as u,i as S,t as z,j as C,B as E,k as O,e as F,m as G,F as P,a0 as V}from"./vendor.d12b5734.js";import{j as x,u as I,e as M,c as j,g as D}from"./main.465728e1.js";import{u as A,_ as H}from"./NoteModal.ebe10cf0.js";import"./payment.93619753.js";const L={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(g){const d=g,h=x(),_=I(),{t:a}=k(),o=A(),N=$(),y=M(),b=j();T("utils");function w(n){o.fetchNote(n),b.openModal({title:a("settings.customization.notes.edit_note"),componentName:"NoteModal",size:"md",refreshData:d.loadData})}function s(n){h.openDialog({title:a("general.are_you_sure"),message:a("settings.customization.notes.note_confirm_delete"),yesLabel:a("general.yes"),noLabel:a("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async()=>{(await o.deleteNote(n)).data.success?_.showNotification({type:"success",message:a("settings.customization.notes.deleted_message")}):_.showNotification({type:"error",message:a("settings.customization.notes.already_in_use")}),d.loadData&&d.loadData()})}return(n,e)=>{const i=r("BaseIcon"),m=r("BaseButton"),B=r("BaseDropdownItem"),l=r("BaseDropdown");return p(),f(l,null,{activator:t(()=>[c(N).name==="notes.view"?(p(),f(m,{key:0,variant:"primary"},{default:t(()=>[u(i,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(p(),f(i,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:0,onClick:e[0]||(e[0]=v=>w(g.row.id))},{default:t(()=>[u(i,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),S(" "+z(n.$t("general.edit")),1)]),_:1})):C("",!0),c(y).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(B,{key:1,onClick:e[1]||(e[1]=v=>s(g.row.id))},{default:t(()=>[u(i,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),S(" "+z(n.$t("general.delete")),1)]),_:1})):C("",!0)]),_:1})}}},K={setup(g){const{t:d}=k(),h=j();x();const _=A();I();const a=M(),o=E(""),N=O(()=>[{key:"name",label:d("settings.customization.notes.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"type",label:d("settings.customization.notes.type"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function y({page:s,filter:n,sort:e}){let i=V({orderByField:e.fieldName||"created_at",orderBy:e.order||"desc",page:s}),m=await _.fetchNotes(i);return{data:m.data.data,pagination:{totalPages:m.data.meta.last_page,currentPage:s,totalCount:m.data.meta.total,limit:5}}}async function b(){await h.openModal({title:d("settings.customization.notes.add_note"),componentName:"NoteModal",size:"md",refreshData:o.value&&o.value.refresh})}async function w(){o.value&&o.value.refresh()}return(s,n)=>{const e=r("BaseIcon"),i=r("BaseButton"),m=r("BaseTable"),B=r("BaseSettingCard");return p(),F(P,null,[u(H),u(B,{title:s.$t("settings.customization.notes.title"),description:s.$t("settings.customization.notes.description")},{action:t(()=>[c(a).hasAbilities(c(D).MANAGE_NOTE)?(p(),f(i,{key:0,variant:"primary-outline",onClick:b},{left:t(l=>[u(e,{class:G(l.class),name:"PlusIcon"},null,8,["class"])]),default:t(()=>[S(" "+z(s.$t("settings.customization.notes.add_note")),1)]),_:1})):C("",!0)]),default:t(()=>[u(m,{ref:(l,v)=>{v.table=l,o.value=l},data:y,columns:c(N),class:"mt-14"},{"cell-actions":t(({row:l})=>[u(L,{row:l.data,table:o.value,"load-data":w},null,8,["row","table"])]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{K as default};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user