Fixes
This commit is contained in:
parent
8d9e79c3bd
commit
22af78dcaa
@ -2,7 +2,7 @@ ARG BASE_IMAGE
|
||||
FROM ${BASE_IMAGE} as base
|
||||
|
||||
RUN apt update && apt install -y \
|
||||
sqlite3
|
||||
sqlite3 mariadb-client
|
||||
|
||||
FROM base as prod
|
||||
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,7 +3,7 @@
|
||||
.idea
|
||||
/phpstorm.yml
|
||||
.DS_Store
|
||||
|
||||
.php-cs-fixer.cache
|
||||
src/new/web/bundles/
|
||||
src/new/web/css/
|
||||
src/new/app/bootstrap.php.cache
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
define(function() {
|
||||
const Order_List_Detail = ({ uuid, basketField1, customerInfo, basketField2, pos, price, product, status, allNet }, orderUuid) => `
|
||||
const Order_List_Detail = ({ uuid, basketField1, customerInfo, basketField2, pos, price, product, status, allNet, reOrder, reOrderOrder, reOrderPos }, orderUuid) => `
|
||||
<div style="${psc.order.get_pos_bg_color(status)}" class="row ${psc.order.get_pos_bg_color_class(status)}" id="row-${uuid}">
|
||||
<div class="col-1 p-1">${pos}</div>
|
||||
<div class="col-4 p-1">
|
||||
@ -9,7 +9,7 @@ define(function() {
|
||||
<br/>ArtNr intern: ${product.nrIntern}<br/>
|
||||
${psc.order.get_special_product_options(product.specialProductTypeObject)}</div>
|
||||
<div class="col-1 p-1">Auflage: ${price.count}</div>
|
||||
<div class="col-1 p-1">Kunden Info: ${customerInfo}</div>
|
||||
<div class="col-1 p-1">Kunden Info: ${customerInfo}${(reOrder? `<br/><strong>Ist eine Nachbestellung</strong>`:``)}</div>
|
||||
<div class="col-1 p-1">${basketField1}</div>
|
||||
<div class="col-1 p-1">${basketField2}</div>
|
||||
<div class="col-1 p-1 text-end">${new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(price.allNet/100)} <strong>(${new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(price.allGross/100)})</strong></div>
|
||||
|
||||
1
src/new/assets/backend/login.d.ts
vendored
Normal file
1
src/new/assets/backend/login.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
import "./login/login.css";
|
||||
1
src/new/assets/backend/login.ts
Normal file
1
src/new/assets/backend/login.ts
Normal file
@ -0,0 +1 @@
|
||||
import "./login/login.css"
|
||||
21
src/new/assets/backend/login/login.css
Normal file
21
src/new/assets/backend/login/login.css
Normal file
@ -0,0 +1,21 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer components {
|
||||
.psc-login-page {
|
||||
@apply relative bg-no-repeat;
|
||||
background-image: radial-gradient(
|
||||
circle at top,
|
||||
theme('colors.psc.50'),
|
||||
theme('colors.white') 50%
|
||||
);
|
||||
}
|
||||
.psc-login-page form::before {
|
||||
@apply absolute inset-x-0 mx-auto h-px w-2/3 bg-gradient-to-r from-gray-200 via-psc-300 to-gray-200;
|
||||
content: '';
|
||||
z-index: 1;
|
||||
top: -1px;
|
||||
}
|
||||
|
||||
}
|
||||
BIN
src/new/assets/images/logo.png
Normal file
BIN
src/new/assets/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
3
src/new/assets/images/logo.png:Zone.Identifier
Normal file
3
src/new/assets/images/logo.png:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
HostUrl=https://gitlab.com/
|
||||
656
src/new/composer.lock
generated
656
src/new/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -2,12 +2,25 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use PSC\Shop\OrderBundle\Service\Order;
|
||||
use PSC\System\SettingsBundle\Service\Instance;
|
||||
use PSC\System\SettingsBundle\Service\Shop;
|
||||
use PSC\System\SettingsBundle\Service\Token;
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
|
||||
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
|
||||
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$containerConfigurator->extension('twig', ['default_path' => '%kernel.project_dir%/templates', 'form_themes' => ['bootstrap_5_layout.html.twig'], 'globals' => ['instanceService' => service(Instance::class), 'shopService' => service(Shop::class), 'tokenService' => service(Token::class)]]);
|
||||
$containerConfigurator->extension(
|
||||
'twig',
|
||||
['default_path' => '%kernel.project_dir%/templates',
|
||||
'form_themes' => ['bootstrap_5_layout.html.twig'],
|
||||
'globals' => [
|
||||
'instanceService' => service(Instance::class),
|
||||
'shopService' => service(Shop::class),
|
||||
'orderService' => service(Order::class),
|
||||
'tokenService' => service(Token::class)
|
||||
]
|
||||
]
|
||||
);
|
||||
};
|
||||
|
||||
2973
src/new/package-lock.json
generated
2973
src/new/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,24 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@babel/preset-react": "^7.24.7",
|
||||
"@hotwired/stimulus": "^3.2.2",
|
||||
"@symfony/stimulus-bridge": "^3.2.2",
|
||||
"@symfony/ux-autocomplete": "file:vendor/symfony/ux-autocomplete/assets",
|
||||
"@symfony/ux-chartjs": "file:vendor/symfony/ux-chartjs/assets",
|
||||
"@symfony/ux-live-component": "file:vendor/symfony/ux-live-component/assets",
|
||||
"@symfony/webpack-encore": "4.2.0",
|
||||
"@tailwindcss/aspect-ratio": "^0.4.2",
|
||||
"@tailwindcss/container-queries": "^0.1.1",
|
||||
"@tailwindcss/forms": "^0.5.9",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"@types/node": "^18.7.6",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"chart.js": "^3.4.1 || ^4.0",
|
||||
"core-js": "^3.0.0",
|
||||
"postcss": "^8.4.45",
|
||||
"regenerator-runtime": "^0.13.2",
|
||||
"sass": "^1.38.0",
|
||||
"tailwindcss": "^3.4.10",
|
||||
"tom-select": "^2.2.2",
|
||||
"typescript": "^4.7.4",
|
||||
"webpack-notifier": "^1.15.0"
|
||||
@ -37,6 +45,7 @@
|
||||
"morris.js": "^0.5.0",
|
||||
"multiselect": "^0.9.12",
|
||||
"multiselect-two-sides": "^2.5.7",
|
||||
"postcss-loader": "^7.0.0",
|
||||
"raphael": "^2.3.0",
|
||||
"summernote": "^0.8.20"
|
||||
}
|
||||
|
||||
7
src/new/postcss.config.js
Normal file
7
src/new/postcss.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
|
||||
@ -4,3 +4,7 @@ psc_backend_dashboard:
|
||||
Layout: Layout
|
||||
UID: UID
|
||||
UUID: UUID
|
||||
password: Passwort
|
||||
username: Benutzername
|
||||
login: Anmelden
|
||||
|
||||
|
||||
@ -4,3 +4,7 @@ psc_backend_dashboard:
|
||||
Layout: Layout
|
||||
UID: UID
|
||||
UUID: UUID
|
||||
password: Password
|
||||
username: Username
|
||||
login: Login
|
||||
|
||||
|
||||
@ -1,42 +1,21 @@
|
||||
{% extends 'backend_noauth.html.twig' %}
|
||||
|
||||
{% extends 'backend_login.html.twig' %}
|
||||
{% block body %}
|
||||
<div class="panel">
|
||||
<div class="body">
|
||||
<div class="p-8 space-y-4 bg-white/50 backdrop-blur-xl border border-gray-200 shadow-2xl rounded-2xl relative">
|
||||
{% if error %}
|
||||
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
<pre><img src="{{ asset('build/images/logo.png') }}" alt="Logo"></pre>
|
||||
<form method="post">
|
||||
<div class="container">
|
||||
<div class="row mb-3">
|
||||
<label class="col-md-1 form-control-label">
|
||||
Username:
|
||||
</label>
|
||||
<div class="col-md-11">
|
||||
<input type="text" class="form-control" id="username" name="username" value="{{ last_username }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<label class="col-md-1 form-control-label">
|
||||
Password:
|
||||
</label>
|
||||
<div class="col-md-11">
|
||||
<input type="password" class="form-control" id="password" name="password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-offset-1 col-md-11">
|
||||
<button type="submit" class="btn btn-primary btn-sm">login</button>
|
||||
</div>
|
||||
</div>
|
||||
<label class="text-sm font-medium leading-4 text-gray-700" for="username">{{ 'psc_backend_dashboard.username'|trans }}:</label>
|
||||
<input type="text" class="mt-1 block w-full rounded-lg shadow-sm outline-none border-gray-300 focus:border-psc-500 focus:ring-1 focus:ring-inset focus:ring-psc-500" id="username" name="username" value="{{ last_username }}" />
|
||||
<label class="text-sm font-medium leading-4 text-gray-700" for="password">{{ 'psc_backend_dashboard.password'|trans }}:</label>
|
||||
<input type="password" class="mt-1 block w-full rounded-lg shadow-sm outline-none border-gray-300 focus:border-psc-500 focus:ring-1 focus:ring-inset focus:ring-psc-500" id="password" name="password" />
|
||||
|
||||
<button type="submit" class="mt-4 inline-flex items-center justify-center font-medium rounded-lg transition-colors min-h-[2.25rem] px-4 text-sm text-white shadow w-full bg-psc-500">{{ 'psc_backend_dashboard.login'|trans }}</button>
|
||||
<input type="hidden" name="_csrf_token"
|
||||
value="{{ csrf_token('authenticate') }}"
|
||||
>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@ -26,17 +26,17 @@ class Position
|
||||
*/
|
||||
#[Id]
|
||||
protected $id;
|
||||
/**
|
||||
/**
|
||||
* @var string $uid
|
||||
*/
|
||||
#[Field(type: 'string')]
|
||||
protected $uid;
|
||||
/**
|
||||
/**
|
||||
* @var string $templatePrintId ;
|
||||
*/
|
||||
#[Field(type: 'string')]
|
||||
protected $templatePrintId;
|
||||
/**
|
||||
/**
|
||||
* @var string $layouterId ;
|
||||
*/
|
||||
#[Field(type: 'string')]
|
||||
@ -48,6 +48,15 @@ class Position
|
||||
#[Field(type: 'bool')]
|
||||
protected $downloadAllowed = false;
|
||||
|
||||
#[Field(type: 'bool')]
|
||||
protected $reOrder = false;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected $reOrderOrder;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected $reOrderPos;
|
||||
|
||||
#[Field(type: 'string')]
|
||||
protected $customerInfo;
|
||||
|
||||
@ -313,4 +322,34 @@ class Position
|
||||
{
|
||||
$this->downloadAllowed = $downloadAllowed;
|
||||
}
|
||||
|
||||
public function isReOrder(): bool
|
||||
{
|
||||
return (bool)$this->reOrder;
|
||||
}
|
||||
|
||||
public function setReOrder(bool $var): void
|
||||
{
|
||||
$this->reOrder = $var;
|
||||
}
|
||||
|
||||
public function getReOrderOrder(): string
|
||||
{
|
||||
return (string)$this->reOrderOrder;
|
||||
}
|
||||
|
||||
public function setReOrderOrder(string $var): void
|
||||
{
|
||||
$this->reOrderOrder = $var;
|
||||
}
|
||||
public function getReOrderPos(): string
|
||||
{
|
||||
return (string)$this->reOrderPos;
|
||||
}
|
||||
|
||||
public function setReOrderPos(string $var): void
|
||||
{
|
||||
$this->reOrderPos = $var;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ use OpenApi\Attributes as OA;
|
||||
|
||||
class Position
|
||||
{
|
||||
|
||||
#[OA\Property(type: 'integer')]
|
||||
private int $pos = 1;
|
||||
|
||||
@ -52,6 +51,15 @@ class Position
|
||||
#[OA\Property(type: 'boolean')]
|
||||
private bool $copyProduct = false;
|
||||
|
||||
#[OA\Property(type: 'boolean')]
|
||||
private bool $reOrder = false;
|
||||
|
||||
#[OA\Property(type: 'string')]
|
||||
private string $reOrderOrder = "";
|
||||
|
||||
#[OA\Property(type: 'string')]
|
||||
private string $reOrderPos = "";
|
||||
|
||||
#[OA\Property(type: 'boolean')]
|
||||
private bool $downloadAllowed = false;
|
||||
|
||||
@ -270,6 +278,36 @@ class Position
|
||||
$this->downloadAllowed = $downloadAllowed;
|
||||
}
|
||||
|
||||
public function isReOrder(): bool
|
||||
{
|
||||
return $this->reOrder;
|
||||
}
|
||||
|
||||
public function setReOrder(bool $var): void
|
||||
{
|
||||
$this->reOrder = $var;
|
||||
}
|
||||
|
||||
public function getReOrderOrder(): string
|
||||
{
|
||||
return $this->reOrderOrder;
|
||||
}
|
||||
|
||||
public function setReOrderOrder(string $var): void
|
||||
{
|
||||
$this->reOrderOrder = $var;
|
||||
}
|
||||
|
||||
public function getReOrderPos(): string
|
||||
{
|
||||
return $this->reOrderPos;
|
||||
}
|
||||
|
||||
public function setReOrderPos(string $var): void
|
||||
{
|
||||
$this->reOrderPos = $var;
|
||||
}
|
||||
|
||||
public function getLayouterMode(): int
|
||||
{
|
||||
return $this->layouterMode;
|
||||
@ -300,7 +338,7 @@ class Position
|
||||
$this->trackings = $trackings;
|
||||
}
|
||||
|
||||
public function addTracking(Tracking $tracking):void
|
||||
public function addTracking(Tracking $tracking): void
|
||||
{
|
||||
$this->trackings[] = $tracking;
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ span.row {
|
||||
{% endfor %}
|
||||
|
||||
</td>
|
||||
<td colspan="5"><div class="row"><div class="col-6">{{ form_start(pos.formProd) }}{{ form_widget(pos.formProd.printPartnerEmail) }}{{ form_rest(pos.formProd) }}</div><div class="col-6"><button class="btn btn-info btn-sm" type="submit">Printpartner benachrichtigen</button></div>{{ form_end(pos.formProd) }}<br /><br /><div class="col-6">{{ form_start(pos.formProdinfo) }}{{ form_widget(pos.formProdinfo.customerInfo) }}{{ form_rest(pos.formProdinfo) }}</div><div class="col-6"><button class="btn btn-info btn-sm" type="submit">Dem Kunden zeigen</button></div>{{ form_end(pos.formProdinfo) }}</td>
|
||||
<td colspan="5"><div class="row"><div class="col-6">{{ form_start(pos.formProd) }}{{ form_widget(pos.formProd.printPartnerEmail) }}{{ form_rest(pos.formProd) }}</div><div class="col-6"><button class="btn btn-info btn-sm" type="submit">Printpartner benachrichtigen</button></div>{{ form_end(pos.formProd) }}<br /><br /><div class="col-6">{{ form_start(pos.formProdinfo) }}{{ form_widget(pos.formProdinfo.customerInfo) }}{{ form_rest(pos.formProdinfo) }}</div><div class="col-6"><button class="btn btn-info btn-sm" type="submit">Dem Kunden zeigen</button></div>{{ form_end(pos.formProdinfo) }}{% if posModel.reOrder %}{% set reOrderModel = orderService.getOrderByUuid(posModel.reOrderOrder, true) %}<p><strong>Ist eine Nachbestellung vom Auftrag:<br/>{{ reOrderModel.alias }} vom: {{ reOrderModel.created|date("d.m.Y") }} </strong></p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10">
|
||||
|
||||
@ -73,16 +73,16 @@ class Order
|
||||
$this->calcService->calcOrder($order);
|
||||
if ($order->getUid() != 0) {
|
||||
$this->updateOrder($order);
|
||||
}elseif ($order->getUuid() != "" && $uid = $this->checkIfOrderUuidExists($order)) {
|
||||
} elseif ($order->getUuid() != "" && $uid = $this->checkIfOrderUuidExists($order)) {
|
||||
$order->setUid($uid);
|
||||
$this->updateOrder($order);
|
||||
} else {
|
||||
if($order->getAlias() != "") {
|
||||
if ($order->getAlias() != "") {
|
||||
$result = $this->checkIfOrderExists($order);
|
||||
if ($result === false) {
|
||||
$this->newOrder($order);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
$this->newOrder($order);
|
||||
}
|
||||
}
|
||||
@ -143,19 +143,19 @@ class Order
|
||||
$positionUsed = [];
|
||||
$i = 1;
|
||||
foreach ($order->getPositions() as $position) {
|
||||
if($position->getUuid()) {
|
||||
if ($position->getUuid()) {
|
||||
/**
|
||||
* @var Orderpos $positionEntity
|
||||
*/
|
||||
$positionEntity = $posRepo->findOneBy(array('uuid' => (string)$position->getUuid()));
|
||||
}else {
|
||||
} else {
|
||||
/**
|
||||
* @var Orderpos $positionEntity
|
||||
*/
|
||||
$positionEntity = $posRepo->findOneBy(array('id' => (string)$position->getUid()));
|
||||
}
|
||||
$position->setPos($i);
|
||||
if(!$positionEntity) {
|
||||
if (!$positionEntity) {
|
||||
$positionEntity = new Orderpos();
|
||||
$positionDoc = new \PSC\Shop\EntityBundle\Document\Position();
|
||||
$positionEntity->setOrder($orderEntity);
|
||||
@ -167,12 +167,12 @@ class Order
|
||||
$this->mongoManager->persist($positionDoc);
|
||||
|
||||
|
||||
}else{
|
||||
} else {
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Document\Position $positionDoc
|
||||
*/
|
||||
$positionDoc = $posDocRepo->findOneBy(array('uid' => (string)$positionEntity->getUid()));
|
||||
if(!$positionDoc) {
|
||||
if (!$positionDoc) {
|
||||
$positionDoc = new \PSC\Shop\EntityBundle\Document\Position();
|
||||
$positionDoc->setUid($positionEntity->getUid());
|
||||
}
|
||||
@ -188,14 +188,14 @@ class Order
|
||||
|
||||
$positions = $posRepo->findBy(array('order' => $orderEntity));
|
||||
|
||||
foreach($positions as $position) {
|
||||
if(!in_array($position->getUuid(), $positionUsed)) {
|
||||
foreach ($positions as $position) {
|
||||
if (!in_array($position->getUuid(), $positionUsed)) {
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Document\Position $positionDoc
|
||||
*/
|
||||
$positionDoc = $posDocRepo->findOneBy(array('uid' => (string)$position->getUid()));
|
||||
|
||||
if($positionDoc) {
|
||||
if ($positionDoc) {
|
||||
$this->mongoManager->remove($positionDoc);
|
||||
}
|
||||
$this->entityManager->remove($position);
|
||||
@ -254,10 +254,10 @@ class Order
|
||||
$order->setUuid(Uuid::uuid7());
|
||||
$order->setUid(0);
|
||||
$order->setAlias("");
|
||||
if($typ != 0) {
|
||||
if ($typ != 0) {
|
||||
$order->setType($typ);
|
||||
}
|
||||
foreach($order->getPositions() as $position) {
|
||||
foreach ($order->getPositions() as $position) {
|
||||
$position->setUuid(Uuid::uuid7());
|
||||
$position->setUid(0);
|
||||
}
|
||||
@ -295,7 +295,7 @@ class Order
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Order $orderEntity
|
||||
*/
|
||||
$orderEntity = $orderRepo->findOneBy(array('uuid' => $uuid));
|
||||
if($this->currentOrder && $this->currentOrder->getUuid() === $uuid) {
|
||||
if ($this->currentOrder && $this->currentOrder->getUuid() === $uuid) {
|
||||
return $this->currentOrder;
|
||||
}
|
||||
return $this->parseToModel($orderEntity);
|
||||
@ -385,7 +385,7 @@ class Order
|
||||
|
||||
if ($orderDoc) {
|
||||
$this->orderTransformer->fromDb($this->currentOrder, $orderEntity, $orderDoc);
|
||||
}else{
|
||||
} else {
|
||||
$this->orderTransformer->fromDb($this->currentOrder, $orderEntity, new \PSC\Shop\EntityBundle\Document\Order());
|
||||
}
|
||||
|
||||
@ -405,7 +405,7 @@ class Order
|
||||
->findOneBy(array('uid' => (string)$pos->getUid()));
|
||||
if ($positionDoc) {
|
||||
$this->positionTransformer->fromDb($position, $pos, $positionDoc);
|
||||
}else{
|
||||
} else {
|
||||
$this->positionTransformer->fromDb($position, $pos, new \PSC\Shop\EntityBundle\Document\Position());
|
||||
}
|
||||
|
||||
|
||||
@ -124,8 +124,9 @@ class Position extends Base
|
||||
$position->getPrice()->setAllVat($pos->getPriceAllSteuer() * 100);
|
||||
$position->getPrice()->setGross($pos->getPriceOneBrutto() * 100);
|
||||
$position->getPrice()->setAllGross($pos->getPriceAllBrutto() * 100);
|
||||
|
||||
|
||||
$position->setReOrder($positionDoc->isReOrder());
|
||||
$position->setReOrderOrder($positionDoc->getReOrderOrder());
|
||||
$position->setReOrderPos($positionDoc->getReOrderPos());
|
||||
$position->setStatus($pos->getStatus());
|
||||
$position->setData($pos->getData());
|
||||
$position->setDownloadAllowed($positionDoc->isDownloadAllowed());
|
||||
|
||||
34
src/new/tailwind.config.js
Normal file
34
src/new/tailwind.config.js
Normal file
@ -0,0 +1,34 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
darkMode: 'class',
|
||||
content: [
|
||||
"./assets/**/*.{js,ts}",
|
||||
"./templates/**/*.html.twig",
|
||||
"./src/PSC/**/**/Resources/views/**/*.html.twig"
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
psc: {
|
||||
DEFAULT: '#EA641b',
|
||||
50: '#eeb4af',
|
||||
100: '#e89a93',
|
||||
200: '#e28077',
|
||||
300: '#dc665b',
|
||||
400: '#d64c3f',
|
||||
500: '#EA641b',
|
||||
600: '#ac3025',
|
||||
700: '#90281f',
|
||||
800: '#742019',
|
||||
900: '#581913',
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
require('@tailwindcss/typography'),
|
||||
require('@tailwindcss/forms'),
|
||||
require('@tailwindcss/aspect-ratio'),
|
||||
require('@tailwindcss/container-queries'),
|
||||
],
|
||||
}
|
||||
27
src/new/templates/backend_login.html.twig
Normal file
27
src/new/templates/backend_login.html.twig
Normal file
@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de-DE">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>PSC Admin</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<base href="{{ app.request.getBaseURL() }}/"/>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
{% block stylesheets %}
|
||||
{{ encore_entry_link_tags('backend/login') }}
|
||||
{% endblock %}
|
||||
|
||||
</head>
|
||||
<body class="min-h-screen bg-gray-100 text-gray-900 overflow-y-auto">
|
||||
<div class="flex items-center justify-center min-h-screen bg-gray-100 text-gray-900 py-12 psc-login-page">
|
||||
{% block body %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block javascripts %}
|
||||
{{ encore_entry_script_tags('backend/login') }}
|
||||
{% endblock %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,7 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"jsx": "preserve",
|
||||
"module": "commonjs",
|
||||
"experimentalDecorators": true
|
||||
// "jsx": "preserve",
|
||||
// "module": "commonjs",
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"module": "esnext",
|
||||
"target": "es5",
|
||||
"lib": ["es6", "dom", "es2016", "es2017"],
|
||||
"jsx": "react",
|
||||
"declaration": false,
|
||||
"moduleResolution": "node",
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"esModuleInterop": true,
|
||||
"noImplicitReturns": true,
|
||||
"noImplicitThis": true,
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"suppressImplicitAnyIndexErrors": true,
|
||||
"sourceMap": false,
|
||||
"allowSyntheticDefaultImports": true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -39,6 +39,8 @@
|
||||
"zustand": "^4.5.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jquery": "^3.5.30",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"postcss": "^8.4.38",
|
||||
"tailwindcss": "^3.4.3"
|
||||
@ -489,6 +491,16 @@
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/jquery": {
|
||||
"version": "3.5.30",
|
||||
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz",
|
||||
"integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/sizzle": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/parse-json": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
|
||||
@ -524,6 +536,13 @@
|
||||
"@types/react": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/sizzle": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz",
|
||||
"integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/styled-components": {
|
||||
"version": "5.1.34",
|
||||
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz",
|
||||
@ -539,6 +558,13 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz",
|
||||
"integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw=="
|
||||
},
|
||||
"node_modules/@types/uuid": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
|
||||
"integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@vtaits/use-lazy-ref": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@vtaits/use-lazy-ref/-/use-lazy-ref-0.1.3.tgz",
|
||||
@ -3203,6 +3229,15 @@
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"@types/jquery": {
|
||||
"version": "3.5.30",
|
||||
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz",
|
||||
"integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/sizzle": "*"
|
||||
}
|
||||
},
|
||||
"@types/parse-json": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
|
||||
@ -3238,6 +3273,12 @@
|
||||
"@types/react": "*"
|
||||
}
|
||||
},
|
||||
"@types/sizzle": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz",
|
||||
"integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/styled-components": {
|
||||
"version": "5.1.34",
|
||||
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz",
|
||||
@ -3253,6 +3294,12 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz",
|
||||
"integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw=="
|
||||
},
|
||||
"@types/uuid": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
|
||||
"integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@vtaits/use-lazy-ref": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@vtaits/use-lazy-ref/-/use-lazy-ref-0.1.3.tgz",
|
||||
|
||||
@ -39,6 +39,8 @@
|
||||
"zustand": "^4.5.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jquery": "^3.5.30",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"postcss": "^8.4.38",
|
||||
"tailwindcss": "^3.4.3"
|
||||
|
||||
@ -14,6 +14,7 @@ export class App {
|
||||
|
||||
constructor(jwt: String) {
|
||||
let token = container.resolve(Token)
|
||||
console.log(jwt)
|
||||
token.currentToken = jwt
|
||||
token.init()
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import {v4 as uuidv4} from 'uuid'
|
||||
import {Shop} from "./shop"
|
||||
|
||||
export class LayouterData {
|
||||
|
||||
@ -12,7 +12,7 @@ import {container} from "tsyringe"
|
||||
import {OrderState} from "../../state/order"
|
||||
import {OrderService} from "../../services/order"
|
||||
import InfoFieldComponent from "../info/InfoFieldComponent"
|
||||
import React = require('react')
|
||||
import React from 'react'
|
||||
import OrderAliasComponent from '../order/OrderAliasComponent'
|
||||
|
||||
const BaseComponent = (props) => {
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
import { BsPlus } from "@react-icons/all-files/bs/BsPlus";
|
||||
import { BsPencil } from "@react-icons/all-files/bs/BsPencil";
|
||||
import { RiSaveFill } from "@react-icons/all-files/ri/RiSaveFill";
|
||||
import { RiDeleteBin2Line } from "@react-icons/all-files/ri/RiDeleteBin2Line";
|
||||
import { BsXCircle } from "@react-icons/all-files/bs/BsXCircle";
|
||||
import { Button as BaseButton } from "flowbite-react";
|
||||
const Button = ({ type, variant, onClick }) => {
|
||||
import { BsPlus } from "@react-icons/all-files/bs/BsPlus"
|
||||
import { BsPencil } from "@react-icons/all-files/bs/BsPencil"
|
||||
import { RiSaveFill } from "@react-icons/all-files/ri/RiSaveFill"
|
||||
import { RiDeleteBin2Line } from "@react-icons/all-files/ri/RiDeleteBin2Line"
|
||||
import { BsXCircle } from "@react-icons/all-files/bs/BsXCircle"
|
||||
import { Button as BaseButton } from "flowbite-react"
|
||||
import React from 'react'
|
||||
|
||||
const Button = ({ type: number, variant: string, onClick }) => {
|
||||
return (
|
||||
<BaseButton color={variant} pill onClick={onClick}>
|
||||
{ type == 1 && <BsPlus/> }
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import * as React from 'react'
|
||||
import React from 'react'
|
||||
|
||||
interface IProps {
|
||||
price: number;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import styled from "styled-components"
|
||||
import { components } from "react-select";
|
||||
import { components } from "react-select"
|
||||
import React from 'react'
|
||||
|
||||
export const SelectLabel = (props: any) => {
|
||||
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
import { OrderState } from '../../state/order'
|
||||
import {container} from "tsyringe"
|
||||
import { OrderService } from '../../services/order'
|
||||
import * as React from 'react'
|
||||
import { Component } from 'react'
|
||||
import {debounceTime} from "rxjs"
|
||||
import {Order} from "../../model/order"
|
||||
import { RiSaveFill } from "@react-icons/all-files/ri/RiSaveFill";
|
||||
import { RiPrinterFill } from "@react-icons/all-files/ri/RiPrinterFill";
|
||||
import { Button } from "flowbite-react";
|
||||
import { RiSaveFill } from "@react-icons/all-files/ri/RiSaveFill"
|
||||
import { RiPrinterFill } from "@react-icons/all-files/ri/RiPrinterFill"
|
||||
import { Button } from "flowbite-react"
|
||||
import React from 'react'
|
||||
|
||||
class ButtonComponent extends React.Component<{loadOrder},{disabled: boolean}> {
|
||||
class ButtonComponent extends Component<{loadOrder},{disabled: boolean}> {
|
||||
orderState: OrderState
|
||||
orderService: OrderService
|
||||
constructor(props) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import React from 'react'
|
||||
import * as PropTypes from "prop-types"
|
||||
import {Order} from "../../model/order"
|
||||
import * as React from 'react'
|
||||
import {container} from "tsyringe"
|
||||
import {OrderState} from "../../state/order"
|
||||
import { debounceTime } from 'rxjs'
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
import * as PropTypes from 'prop-types'
|
||||
import { Address } from '../../model/address'
|
||||
import * as React from 'react'
|
||||
|
||||
const AddressDetail = ({address}) => {
|
||||
import React from 'react'
|
||||
const AddressDetail = ({address: Address}) => {
|
||||
|
||||
return (
|
||||
<small>{address.company} {address.firstname} {address.lastname} {address.street} {address.houseNumber} {address.country} {address.zip} {address.city}</small>
|
||||
|
||||
@ -5,7 +5,8 @@ import {RJSFSchema} from "@rjsf/utils"
|
||||
import validator from "@rjsf/validator-ajv6"
|
||||
import Form from "@rjsf/core"
|
||||
import { CountryService } from '../../services/country'
|
||||
import { Modal } from "flowbite-react";
|
||||
import { Modal } from "flowbite-react"
|
||||
import React from 'react'
|
||||
|
||||
const Addressdiv = NiceModal.create(
|
||||
({ title, action, address, shop }) => {
|
||||
@ -37,7 +38,7 @@ const Addressdiv = NiceModal.create(
|
||||
|
||||
useEffect(() => {
|
||||
country_api.getCountry(shop).then(( data ) => {
|
||||
var countrys = [];
|
||||
var countrys: array = [];
|
||||
|
||||
data.forEach((item) => {
|
||||
countrys.push({'title': item.code, 'const': item.code})
|
||||
|
||||
@ -5,6 +5,7 @@ import { useCallback } from 'react'
|
||||
import { useModal } from '@ebay/nice-modal-react'
|
||||
import { Address } from "../../model/address"
|
||||
import { Shop } from "../../model/shop"
|
||||
import React from 'react'
|
||||
|
||||
const AddressModalComponent = ({handleAdd, handleEdit, address, shop}) => {
|
||||
const addressModal = useModal(AddressModal)
|
||||
|
||||
@ -10,6 +10,7 @@ import AddressModalComponent from "./AddressModalComponent"
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import AddressDetail from './AddressDetail'
|
||||
import { Shop } from '../../model/shop'
|
||||
import React from 'react'
|
||||
|
||||
const AddressSelect = ({address, contact, type, changeAddress, name, shop}) => {
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import * as React from 'react'
|
||||
import * as PropTypes from 'prop-types'
|
||||
import orderStore from '../../store/app'
|
||||
import ContactSelect from './ContactSelect'
|
||||
import AddressSelect from './AddressSelect'
|
||||
import {Contact} from '../../model/contact'
|
||||
@ -11,6 +10,7 @@ import {container} from "tsyringe"
|
||||
import AccountSelectComponent from '../account/AccountSelectComponent'
|
||||
import { Order } from '../../model/order'
|
||||
import { Shop } from '../../model/shop'
|
||||
import React from 'react'
|
||||
|
||||
const ContactComponent = ({order, shop}) => {
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ import validator from "@rjsf/validator-ajv6";
|
||||
import Form from "@rjsf/core";
|
||||
import {CountryService} from "../../services/country";
|
||||
import { Modal } from "flowbite-react";
|
||||
import React from 'react'
|
||||
|
||||
const ContactModal = NiceModal.create(
|
||||
({ title, action, contact, shop }) => {
|
||||
|
||||
@ -8,6 +8,7 @@ import { useModal } from '@ebay/nice-modal-react'
|
||||
import { ContactService } from "../../services/contact"
|
||||
import { Address } from "../../model/address"
|
||||
import { AddressService } from "../../services/address"
|
||||
import React from 'react'
|
||||
|
||||
const ContactModalComponent = ({shop, handleAdd, handleEdit, contact}) => {
|
||||
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
import * as PropTypes from 'prop-types';
|
||||
import { AsyncPaginate } from "react-select-async-paginate";
|
||||
import { Contact } from '../../model/contact';
|
||||
import {ContactService} from '../../services/contact';
|
||||
import { Shop } from '../../model/shop';
|
||||
import {useEffect, useState} from 'react';
|
||||
import { container } from 'tsyringe';
|
||||
import { OrderState } from '../../state/order';
|
||||
import ContactModalComponent from "./ContactModalComponent";
|
||||
import { Order } from '../../model/order';
|
||||
import { SelectLabel } from '../base/SelectLabel';
|
||||
|
||||
import * as PropTypes from 'prop-types'
|
||||
import { AsyncPaginate } from "react-select-async-paginate"
|
||||
import { Contact } from '../../model/contact'
|
||||
import {ContactService} from '../../services/contact'
|
||||
import { Shop } from '../../model/shop'
|
||||
import {useEffect, useState} from 'react'
|
||||
import { container } from 'tsyringe'
|
||||
import { OrderState } from '../../state/order'
|
||||
import ContactModalComponent from "./ContactModalComponent"
|
||||
import { Order } from '../../model/order'
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import React from 'react'
|
||||
|
||||
const ContactSelect = ({order, shop, onChange}) => {
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ import {useEffect, useState} from 'react'
|
||||
import { container } from 'tsyringe'
|
||||
import { OrderState } from '../../state/order'
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import React from 'react'
|
||||
|
||||
const DraftComponent = ({order}) => {
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
import * as React from 'react';
|
||||
import { AsyncPaginate } from "react-select-async-paginate";
|
||||
import {ShippingService} from "../../services/shipping";
|
||||
import * as PropTypes from "prop-types";
|
||||
import {Shop} from "../../model/shop";
|
||||
import {container} from "tsyringe";
|
||||
import {OrderState} from "../../state/order";
|
||||
import {Order} from "../../model/order";
|
||||
import {useEffect, useState} from "react";
|
||||
import { AsyncPaginate } from "react-select-async-paginate"
|
||||
import {ShippingService} from "../../services/shipping"
|
||||
import * as PropTypes from "prop-types"
|
||||
import {Shop} from "../../model/shop"
|
||||
import {container} from "tsyringe"
|
||||
import {OrderState} from "../../state/order"
|
||||
import {Order} from "../../model/order"
|
||||
import {useEffect, useState} from "react"
|
||||
import React from 'react'
|
||||
|
||||
const InfoFieldComponent = ({shop, order}) => {
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import {Order} from "../../model/order"
|
||||
import { Pos } from '../../model/pos'
|
||||
import Button from '../base/Button'
|
||||
import { Modal } from "flowbite-react";
|
||||
import React from 'react'
|
||||
|
||||
const AddPositionComponent = (props) => {
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import * as React from 'react'
|
||||
import {useEffect, useState} from 'react'
|
||||
import * as PropTypes from "prop-types"
|
||||
import { Shop } from '../../model/shop'
|
||||
@ -10,6 +9,7 @@ import { Pos } from '../../model/pos'
|
||||
import Button from '../base/Button'
|
||||
import ProductForm from '../product/ProductForm'
|
||||
import { Modal } from "flowbite-react";
|
||||
import React from 'react'
|
||||
|
||||
const EditPositionComponent = ({position, shop, changePos}) => {
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import * as React from 'react'
|
||||
import * as PropTypes from "prop-types"
|
||||
import PosComponent from "./PosComponent"
|
||||
import {useEffect} from "react"
|
||||
import {Order} from "../../model/order"
|
||||
import { Shop } from '../../model/shop'
|
||||
import React from 'react'
|
||||
|
||||
const ItemsComponent = ({positions, delPos, shop, changePos}) => {
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import * as React from 'react'
|
||||
import React from 'react'
|
||||
import * as PropTypes from "prop-types"
|
||||
import {Pos} from "../../model/pos"
|
||||
import Button from '../base/Button'
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import * as React from 'react'
|
||||
import React from 'react'
|
||||
import AddPositionComponent from "./AddPositionComponent"
|
||||
import ItemsComponent from "./ItemsComponent"
|
||||
import * as PropTypes from "prop-types"
|
||||
|
||||
@ -12,6 +12,7 @@ import {Pos} from "../../model/pos"
|
||||
import { useDebouncedCallback } from 'use-debounce'
|
||||
import Button from '../base/Button'
|
||||
import Currency from '../base/Currency'
|
||||
import React from 'react'
|
||||
|
||||
const ProductForm = ({shop, pos, handleClose, handleChange}) => {
|
||||
const product_api = new ProductService()
|
||||
|
||||
@ -5,6 +5,7 @@ import { OrderState } from '../../state/order';
|
||||
import {ProductGroup} from "../../model/productGroup";
|
||||
import {ProductGroupService} from "../../services/productgroup";
|
||||
import AsyncSelect , { useAsync } from 'react-select/async';
|
||||
import React from 'react'
|
||||
|
||||
const ProductGroupSelect = (props) => {
|
||||
const orderState: OrderState = container.resolve(OrderState);
|
||||
|
||||
@ -7,6 +7,7 @@ import {ProductGroup} from "../../model/productGroup";
|
||||
import AsyncSelect from "react-select/async";
|
||||
import {ProductService} from "../../services/product";
|
||||
import {useDebounce} from "use-debounce";
|
||||
import React from 'react'
|
||||
|
||||
const ProductSelect = (props) => {
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import * as React from 'react'
|
||||
import { AsyncPaginate } from "react-select-async-paginate"
|
||||
import {ShippingService} from "../../services/shipping"
|
||||
import * as PropTypes from "prop-types"
|
||||
@ -8,6 +7,7 @@ import {OrderState} from "../../state/order"
|
||||
import {Order} from "../../model/order"
|
||||
import {useEffect, useState} from "react"
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import React from 'react'
|
||||
|
||||
const ShippingComponent = ({shop, order}) => {
|
||||
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
import * as React from 'react'
|
||||
import { AsyncPaginate } from "react-select-async-paginate"
|
||||
import { ShopService } from '../../services/shop'
|
||||
import { container } from 'tsyringe'
|
||||
import { OrderState } from '../../state/order'
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import React from 'react'
|
||||
|
||||
const ShopSelectComponent = (props) => {
|
||||
|
||||
const orderState = container.resolve(OrderState)
|
||||
|
||||
const loadOptions = async (searchQuery, loadedOptions) => {
|
||||
const shop_service = container.resolve(ShopService)
|
||||
|
||||
const shop_service = new ShopService()
|
||||
const loadOptions = async (searchQuery, loadedOptions) => {
|
||||
|
||||
const data = await shop_service.getShops()
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ import {Shop} from "../../model/shop"
|
||||
import DraftComponent from "../draft/DraftComponent"
|
||||
import {Order} from "../../model/order"
|
||||
import CalcComponent from '../calc/CalcComponent'
|
||||
import React from 'react'
|
||||
|
||||
const TopBarComponent = ({shop, order, change}) => {
|
||||
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import Select from 'react-select';
|
||||
import {useEffect, useState} from 'react';
|
||||
import { container } from 'tsyringe';
|
||||
import { OrderState } from '../../state/order';
|
||||
import { SelectLabel } from '../base/SelectLabel';
|
||||
import Select from 'react-select'
|
||||
import {useEffect, useState} from 'react'
|
||||
import { container } from 'tsyringe'
|
||||
import { OrderState } from '../../state/order'
|
||||
import { SelectLabel } from '../base/SelectLabel'
|
||||
import React from 'react'
|
||||
|
||||
const TypeSelectComponent = ({order}) => {
|
||||
|
||||
|
||||
@ -13,10 +13,10 @@ export class AccountService {
|
||||
|
||||
return await axios.get('/apps/api/account/allbyshop/' + shop.uuid, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let account = new Account();
|
||||
account.uid = item.uid;
|
||||
account.title = item.title;
|
||||
|
||||
@ -12,7 +12,7 @@ export class AddressService {
|
||||
|
||||
return await axios.post('/apps/api/contact/address/create', {'address': address} ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data
|
||||
@ -23,7 +23,7 @@ export class AddressService {
|
||||
|
||||
return await axios.put('/apps/api/contact/address/update/' + address.uuid, {'address': address} ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data
|
||||
@ -33,10 +33,10 @@ export class AddressService {
|
||||
async getContactAddress(contact: String, type: Number): Promise<Address[]> {
|
||||
return await axios.get('/apps/api/contact/address/getallfortype/' + contact + '/' + type, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let address = new Address
|
||||
address.uid = item.uid
|
||||
address.firstname = item.firstname
|
||||
|
||||
@ -14,7 +14,7 @@ export class ContactService {
|
||||
|
||||
return await axios.post('/apps/api/contact/create', {'contact': contact} ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
@ -25,7 +25,7 @@ export class ContactService {
|
||||
|
||||
return await axios.put('/apps/api/contact/update/' + contact.uuid, {'contact': contact} ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
@ -36,10 +36,10 @@ export class ContactService {
|
||||
|
||||
return await axios.get('/apps/api/contact/allbyshop/' + shop.uuid + '?term=' + searchQuery + '&page=' + page, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let contact = new Contact;
|
||||
contact.parseFromJson({contact: item});
|
||||
return contact;
|
||||
|
||||
@ -10,7 +10,7 @@ export class CountryService {
|
||||
async getCountry(shop: Shop): Promise<Country[]> {
|
||||
|
||||
return await axios.get('/apps/api/country/by/shop/' + shop.uuid).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let country = new Country()
|
||||
country.parseFromJson(item)
|
||||
return country
|
||||
|
||||
@ -13,7 +13,7 @@ export class OrderService {
|
||||
|
||||
return await axios.post('/apps/api/order/getonebyuuid', {uuid: uuid} ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
|
||||
@ -28,7 +28,7 @@ export class OrderService {
|
||||
async saveOrder(order: Order): Promise<Order> {
|
||||
return await axios.post('/apps/api/order/create', order ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
@ -39,7 +39,7 @@ export class OrderService {
|
||||
|
||||
return await axios.post('/apps/api/order/calc', order ,{
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
|
||||
@ -13,10 +13,10 @@ export class PaymentService {
|
||||
|
||||
return await axios.get('/apps/api/payment/by/shop/' + shop.uuid, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let payment = new Payment()
|
||||
payment.uid = item.uid
|
||||
payment.title = item.title
|
||||
|
||||
@ -15,10 +15,10 @@ export class ProductService {
|
||||
|
||||
return await axios.get('/apps/api/product/getallbyterm/' + shop.uuid + '/' + term, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let p = new Product();
|
||||
p.id = item.id;
|
||||
p.title = item.title;
|
||||
@ -35,10 +35,10 @@ export class ProductService {
|
||||
|
||||
return await axios.get('/apps/api/product/getallbyproductgroup/' + productGroup.uuid, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let p = new Product();
|
||||
p.id = item.id;
|
||||
p.title = item.title;
|
||||
@ -51,10 +51,10 @@ export class ProductService {
|
||||
})
|
||||
}
|
||||
|
||||
async getAddProductSchema(product: Product, formData): Promise<JSONSchema7> {
|
||||
async getAddProductSchema(product: Product, formData: any): Promise<JSONSchema7> {
|
||||
return await axios.post('/apps/api/product/get/form/json/' + product.uuid, formData, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
@ -64,7 +64,7 @@ export class ProductService {
|
||||
async calcProduct(product: Product, formData): Promise<JSONSchema7> {
|
||||
return await axios.post('/apps/api/product/get/form/json/' + product.uuid, formData, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data;
|
||||
|
||||
@ -17,9 +17,9 @@ export class ProductGroupService {
|
||||
}
|
||||
}).then(( response ) => {
|
||||
|
||||
let temp = [];
|
||||
let temp: ProductGroup[] = [];
|
||||
|
||||
response.data.data.map((item) => {
|
||||
response.data.data.map((item: any) => {
|
||||
let pg = new ProductGroup;
|
||||
pg.id = item.id;
|
||||
pg.label = item.title;
|
||||
@ -27,7 +27,7 @@ export class ProductGroupService {
|
||||
|
||||
temp.push(pg);
|
||||
|
||||
item.children.map((sub) => {
|
||||
item.children.map((sub: any) => {
|
||||
let spg = new ProductGroup;
|
||||
spg.id = sub.id;
|
||||
spg.label = "-- " + sub.title;
|
||||
|
||||
@ -13,10 +13,10 @@ export class ShippingService {
|
||||
|
||||
return await axios.get('/apps/api/shipping/by/shop/' + shop.uuid, {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
'Authorization': 'Bearer ' + this.token?.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let shipment = new Shipping()
|
||||
shipment.uid = item.uid
|
||||
shipment.title = item.title
|
||||
|
||||
@ -6,16 +6,17 @@ import { Shop } from "../model/shop"
|
||||
@singleton()
|
||||
@autoInjectable()
|
||||
export class ShopService {
|
||||
constructor(private token?: Token) {}
|
||||
constructor(private token: Token) {}
|
||||
|
||||
async getShops(): Promise<Shop[]> {
|
||||
|
||||
console.log(this.token)
|
||||
return await axios.get('/apps/api/shops', {
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + this.token.currentToken
|
||||
}
|
||||
}).then(( response ) => {
|
||||
return response.data.data.map((item) => {
|
||||
return response.data.data.map((item: any) => {
|
||||
let shop = new Shop()
|
||||
shop.parseFromJson({shop: item})
|
||||
return shop
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
import { from, map, Observable, timer } from "rxjs"
|
||||
|
||||
import axios from "axios"
|
||||
import {singleton} from "tsyringe"
|
||||
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
import {singleton} from "tsyringe"
|
||||
|
||||
@singleton()
|
||||
export class App {
|
||||
|
||||
}
|
||||
@ -1,25 +0,0 @@
|
||||
import create from 'zustand'
|
||||
import { devtools, persist } from 'zustand/middleware'
|
||||
|
||||
interface OrderState {
|
||||
contact: number,
|
||||
payment: number,
|
||||
shippment: number,
|
||||
}
|
||||
|
||||
const orderStore = create<OrderState>()(
|
||||
devtools(
|
||||
persist(
|
||||
(set) => ({
|
||||
contact: null,
|
||||
payment: null,
|
||||
shippment: null
|
||||
}),
|
||||
{
|
||||
name: 'order-storage',
|
||||
}
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
export default orderStore
|
||||
@ -136,7 +136,7 @@
|
||||
resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz"
|
||||
integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==
|
||||
|
||||
"@emotion/unitless@0.8.1", "@emotion/unitless@^0.8.1":
|
||||
"@emotion/unitless@^0.8.1", "@emotion/unitless@0.8.1":
|
||||
version "0.8.1"
|
||||
resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz"
|
||||
integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
|
||||
@ -156,7 +156,7 @@
|
||||
resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz"
|
||||
integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
|
||||
|
||||
"@floating-ui/core@1.6.0", "@floating-ui/core@^1.3.1":
|
||||
"@floating-ui/core@^1.3.1", "@floating-ui/core@1.6.0":
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz"
|
||||
integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==
|
||||
@ -243,7 +243,7 @@
|
||||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
|
||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||
@ -287,7 +287,7 @@
|
||||
nanoid "^3.3.7"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@rjsf/utils@^5.18.3":
|
||||
"@rjsf/utils@^5.18.3", "@rjsf/utils@^5.18.x":
|
||||
version "5.18.3"
|
||||
resolved "https://registry.npmjs.org/@rjsf/utils/-/utils-5.18.3.tgz"
|
||||
integrity sha512-0TzjAKAlqXSCneVnHhcL3gAr4DlIPgwzkFdNEI4A+LFjLFlECPah2o3RhEgvqJnUXFviDGF1dqhkxa/Pr59ajw==
|
||||
@ -320,6 +320,13 @@
|
||||
"@types/react" "*"
|
||||
hoist-non-react-statics "^3.3.0"
|
||||
|
||||
"@types/jquery@^3.5.30":
|
||||
version "3.5.30"
|
||||
resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz"
|
||||
integrity sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==
|
||||
dependencies:
|
||||
"@types/sizzle" "*"
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
|
||||
@ -344,7 +351,7 @@
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react@*", "@types/react@^18.3.1":
|
||||
"@types/react@*", "@types/react@^18.3.1", "@types/react@>=16.8":
|
||||
version "18.3.1"
|
||||
resolved "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz"
|
||||
integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==
|
||||
@ -352,6 +359,11 @@
|
||||
"@types/prop-types" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/sizzle@*":
|
||||
version "2.3.8"
|
||||
resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz"
|
||||
integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==
|
||||
|
||||
"@types/styled-components@^5.1.34":
|
||||
version "5.1.34"
|
||||
resolved "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz"
|
||||
@ -366,6 +378,11 @@
|
||||
resolved "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz"
|
||||
integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==
|
||||
|
||||
"@types/uuid@^10.0.0":
|
||||
version "10.0.0"
|
||||
resolved "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz"
|
||||
integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==
|
||||
|
||||
"@vtaits/use-lazy-ref@^0.1.3":
|
||||
version "0.1.3"
|
||||
resolved "https://registry.npmjs.org/@vtaits/use-lazy-ref/-/use-lazy-ref-0.1.3.tgz"
|
||||
@ -487,7 +504,7 @@ braces@^3.0.2, braces@~3.0.2:
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^4.23.0:
|
||||
browserslist@^4.23.0, "browserslist@>= 4.21.0":
|
||||
version "4.23.0"
|
||||
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz"
|
||||
integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
|
||||
@ -560,16 +577,16 @@ color-convert@^2.0.1:
|
||||
dependencies:
|
||||
color-name "~1.1.4"
|
||||
|
||||
color-name@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
|
||||
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
||||
|
||||
color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-name@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
|
||||
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
|
||||
@ -645,7 +662,7 @@ cssesc@^3.0.0:
|
||||
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
|
||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
csstype@3.1.3, csstype@^3.0.2:
|
||||
csstype@^3.0.2, csstype@3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
|
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||
@ -783,7 +800,7 @@ flowbite-react@^0.9.0:
|
||||
react-icons "5.0.1"
|
||||
tailwind-merge "2.2.2"
|
||||
|
||||
flowbite@2.3.0, flowbite@^2.3.0:
|
||||
flowbite@^2.3.0, flowbite@2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.npmjs.org/flowbite/-/flowbite-2.3.0.tgz"
|
||||
integrity sha512-pm3JRo8OIJHGfFYWgaGpPv8E+UdWy0Z3gEAGufw+G/1dusaU/P1zoBLiQpf2/+bYAi+GBQtPVG86KYlV0W+AFQ==
|
||||
@ -818,17 +835,12 @@ fraction.js@^4.3.7:
|
||||
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
|
||||
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
|
||||
|
||||
fsevents@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
|
||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
|
||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||
|
||||
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||
glob-parent@^5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
@ -842,6 +854,13 @@ glob-parent@^6.0.2:
|
||||
dependencies:
|
||||
is-glob "^4.0.3"
|
||||
|
||||
glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
glob@^10.3.10:
|
||||
version "10.3.15"
|
||||
resolved "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz"
|
||||
@ -879,7 +898,7 @@ html-parse-stringify@^3.0.1:
|
||||
dependencies:
|
||||
void-elements "3.1.0"
|
||||
|
||||
i18next@^23.11.3:
|
||||
i18next@^23.11.3, "i18next@>= 23.2.3":
|
||||
version "23.11.3"
|
||||
resolved "https://registry.npmjs.org/i18next/-/i18next-23.11.3.tgz"
|
||||
integrity sha512-Pq/aSKowir7JM0rj+Wa23Kb6KKDUGno/HjG+wRQu0PxoTbpQ4N89MAT0rFGvXmLkRLNMb1BbBOKGozl01dabzg==
|
||||
@ -1227,7 +1246,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^
|
||||
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@8.4.38, postcss@^8.4.23, postcss@^8.4.38:
|
||||
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.38, postcss@>=8.0.9, postcss@8.4.38:
|
||||
version "8.4.38"
|
||||
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz"
|
||||
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
|
||||
@ -1260,7 +1279,7 @@ queue-microtask@^1.2.2:
|
||||
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
|
||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
react-dom@^18.3.1:
|
||||
"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18.3.1, "react-dom@>= 16.8.0", react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.0, react-dom@>=18, react-dom@>16.8.0:
|
||||
version "18.3.1"
|
||||
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
|
||||
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
|
||||
@ -1281,7 +1300,12 @@ react-icons@5.0.1:
|
||||
resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz"
|
||||
integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==
|
||||
|
||||
react-is@^16.13.1, react-is@^16.7.0:
|
||||
react-is@^16.13.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
react-is@^16.7.0:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
@ -1318,7 +1342,7 @@ react-select-async-paginate@^0.7.4:
|
||||
use-is-mounted-ref "^1.5.0"
|
||||
use-latest "^1.2.1"
|
||||
|
||||
react-select@^5.8.0:
|
||||
react-select@^5.0.0, react-select@^5.8.0:
|
||||
version "5.8.0"
|
||||
resolved "https://registry.npmjs.org/react-select/-/react-select-5.8.0.tgz"
|
||||
integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==
|
||||
@ -1343,7 +1367,7 @@ react-transition-group@^4.3.0:
|
||||
loose-envify "^1.4.0"
|
||||
prop-types "^15.6.2"
|
||||
|
||||
react@^18.3.1:
|
||||
react@*, "react@^16.14.0 || ^17.0.0 || ^18.0.0", "react@^16.14.0 || >=17", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.3.1, "react@>= 0.14.0", "react@>= 16.8.0", react@>=16.0.0, react@>=16.6.0, react@>=16.8, react@>=16.8.0, react@>=18, react@>16.8.0:
|
||||
version "18.3.1"
|
||||
resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
|
||||
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
|
||||
@ -1451,7 +1475,16 @@ source-map@^0.5.7:
|
||||
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
|
||||
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
|
||||
|
||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
|
||||
"string-width-cjs@npm:string-width@^4.2.0":
|
||||
version "4.2.3"
|
||||
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^4.1.0:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
@ -1469,7 +1502,14 @@ string-width@^5.0.1, string-width@^5.1.2:
|
||||
emoji-regex "^9.2.2"
|
||||
strip-ansi "^7.0.1"
|
||||
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
dependencies:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
@ -1545,7 +1585,7 @@ tailwind-merge@2.2.2:
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.24.0"
|
||||
|
||||
tailwindcss@^3.4.3:
|
||||
tailwindcss@^3, tailwindcss@^3.4.3:
|
||||
version "3.4.3"
|
||||
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz"
|
||||
integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==
|
||||
@ -1604,16 +1644,16 @@ ts-interface-checker@^0.1.9:
|
||||
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
|
||||
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
|
||||
|
||||
tslib@2.6.2, tslib@^2.1.0:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
|
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||
|
||||
tslib@^1.9.3:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.1.0, tslib@2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
|
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||
|
||||
tsyringe@^4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.npmjs.org/tsyringe/-/tsyringe-4.8.0.tgz"
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,85 +0,0 @@
|
||||
/*
|
||||
* @license
|
||||
*
|
||||
* Multiselect v2.5.6
|
||||
* http://crlcu.github.io/multiselect/
|
||||
*
|
||||
* Copyright (c) 2016-2020 Adrian Crisan
|
||||
* Licensed under the MIT license (https://github.com/crlcu/multiselect/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
/* @license
|
||||
morris.js v0.5.0
|
||||
Copyright 2014 Olly Smith All rights reserved.
|
||||
Licensed under the BSD-2-Clause License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Bootstrap v5.1.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
|
||||
/*!
|
||||
*
|
||||
* Super simple WYSIWYG editor v0.8.20
|
||||
* https://summernote.org
|
||||
*
|
||||
*
|
||||
* Copyright 2013- Alan Hong and contributors
|
||||
* Summernote may be freely distributed under the MIT license.
|
||||
*
|
||||
* Date: 2021-10-14T21:15Z
|
||||
*
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @kurkle/color v0.3.2
|
||||
* https://github.com/kurkle/color#readme
|
||||
* (c) 2023 Jukka Kurkela
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Chart.js v4.4.4
|
||||
* https://www.chartjs.org
|
||||
* (c) 2024 Chart.js Contributors
|
||||
* Released under the MIT License
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.6
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2021-02-16
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.6.0
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2021-03-02T17:08Z
|
||||
*/
|
||||
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
|
||||
/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */
|
||||
|
||||
/*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) */
|
||||
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,134 +0,0 @@
|
||||
/*!
|
||||
Copyright (c) 2018 Jed Watson.
|
||||
Licensed under the MIT License (MIT), see
|
||||
http://jedwatson.github.io/classnames
|
||||
*/
|
||||
|
||||
/*!
|
||||
* tabbable 6.2.0
|
||||
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (C) Microsoft. All rights reserved.
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
this file except in compliance with the License. You may obtain a copy of the
|
||||
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||
|
||||
See the Apache Version 2.0 License for specific language governing permissions
|
||||
and limitations under the License.
|
||||
***************************************************************************** */
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @remix-run/router v1.16.0
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/**
|
||||
* React Router DOM v6.23.0
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/**
|
||||
* React Router v6.23.0
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
|
||||
@ -1 +0,0 @@
|
||||
[data-loading=""],[data-loading="delay|show"],[data-loading=show]{display:none}.toggle-btn{cursor:pointer;margin:0}.toggle-btn__icon--show{display:inline-block}.toggle-btn--active .toggle-btn__icon--show,.toggle-btn__icon--hide{display:none}.toggle-btn--active .toggle-btn__icon--hide{display:inline-block}.toggle-item{height:0;overflow:hidden}.toggle-item--active{height:auto}body,html{background:#f0f3f4;height:100%}body>div,html>div{padding:0!important}body>#overlay_loading,html>#overlay_loading{background:#fff;color:#666;float:left;height:100%;left:0;opacity:.8;padding-top:25%;position:fixed;text-align:center;top:0;width:100%;z-index:5000}body>#overlay_loading>.spinner,html>#overlay_loading>.spinner{animation:rotate .8s linear infinite;border:5px solid #b22222;border-radius:50%;border-right-color:transparent;height:64px;margin:0 auto;width:64px}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}i.fa.fa-lg.fa-fw.fa-question-circle{color:#007bff;font-size:1.6em}.toast-container{z-index:999999}.toast-container .toast-body{background:#fff}body>header>.header{background:#ea641b;box-shadow:0 2px 2px rgba(0,0,0,.05),0 1px 0 rgba(0,0,0,.05);color:#fff;left:0;margin:0;padding:10px;position:fixed;right:0;top:0;z-index:990}body>header>.header #help a{color:#fff;font-size:1.5em}body>header>.header>h4{margin:0}body>header>.header .form-group{margin-bottom:0}body>header>.header .btnLogout{background:#343a40!important;border:1px solid #fff}body>header>.header .btnTicket,body>header>.header .btnWiki{background:#343a40!important;border-bottom:1px solid #fff;border-left:1px solid #fff;border-top:1px solid #fff}.sideMenu{bottom:0;color:#aeb1bc;left:0;overflow-x:hidden;overflow-y:auto;padding:60px 0 0;position:fixed;top:0;z-index:100}.sideMenu h5{color:#fff}.sideMenu .collapse-menu{float:right;margin-right:10px;margin-top:5px}.sideMenu .nav{flex-wrap:nowrap!important}.sideMenu .nav>li{cursor:pointer}.sideMenu .nav>li>a{display:block;padding:5px}.sideMenu .nav>li>a:hover{background:#555;color:#fff;text-decoration:none}.sideMenu .nav>li>a:hover i{color:#fff}.sideMenu .nav>li>ul{display:none;margin-left:10px}.sideMenu .nav>li.open>ul{display:block}.sideMenu .nav li.active a,.sideMenu .nav li.active a i{color:#fff}.sideMenu a{color:#b4b6bd}.sideMenu a i{color:#898ba3}.content{margin-top:50px;padding:0 10px}.content h3,.content h4{margin:0}.content .header{background:#f6f8f8;border-bottom:1px solid #dee5e7;color:#373a3c;padding:10px}.content .body{padding:10px}.content .body .btn-default{background-color:#fff;border-color:#ccc;color:#333}.content .body .searchForm{margin-bottom:10px}.content .body .panel{background:#fff;border:1px solid #dee5e7;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.05);margin-top:10px}.content .body .panel>.header{background:#f6f8f8;border-bottom:1px solid #edf1f2;color:#333;padding:10px}.content .body .panel>.body{padding:10px}.content .body .panel>.body .tab-content{margin-top:10px}.content .body .panel>.body .nav-tabs .nav-item.open .nav-link,.content .body .panel>.body .nav-tabs .nav-item.open .nav-link:focus,.content .body .panel>.body .nav-tabs .nav-item.open .nav-link:hover,.content .body .panel>.body .nav-tabs .nav-link.active,.content .body .panel>.body .nav-tabs .nav-link.active:focus,.content .body .panel>.body .nav-tabs .nav-link.active:hover{background-color:#0275d8;border:1px solid;border-radius:4px;color:#fff}.content .body .panel>.body .overlay{background:rgba(234,100,27,.75);color:#444;font-size:xx-large;height:100%;margin:-5px;padding-top:150px;position:absolute;text-align:center;vertical-align:middle;width:100%;z-index:1}.content .body .panel>.body .table>tbody>tr.divider>td{background:#ea641b;height:2px;padding:0}.content .body .panel>.body .table .thead-dark th{background-color:#343a40}.content .body .panel>.body .table .thead-dark a{color:#fff;text-decoration:underline}.ajax-modal__body{height:80vh;padding:0}.no-margin-top{margin-top:0}.modal-lg{max-width:none;width:90vw}.bg-lightdanger{background-color:#ffcece}.bg-lightsuccess{background-color:#dbffdb}.bg-lightdark{background-color:#d3d3d3}.form-check{margin-bottom:12px}.thead-dark{color:#fff}.btn-group-xs>.btn,.btn-xs{border-radius:3px;font-size:12px;line-height:1.5;padding:1px 5px}
|
||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||||
285
src/new/web/build/backend/dashboard.css
Normal file
285
src/new/web/build/backend/dashboard.css
Normal file
File diff suppressed because one or more lines are too long
8384
src/new/web/build/backend/dashboard.js
Normal file
8384
src/new/web/build/backend/dashboard.js
Normal file
File diff suppressed because one or more lines are too long
1098
src/new/web/build/backend/login.css
Normal file
1098
src/new/web/build/backend/login.css
Normal file
File diff suppressed because one or more lines are too long
35
src/new/web/build/backend/login.js
Normal file
35
src/new/web/build/backend/login.js
Normal file
@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
(self["webpackChunk"] = self["webpackChunk"] || []).push([["backend/login"],{
|
||||
|
||||
/***/ "./assets/backend/login.ts":
|
||||
/*!*********************************!*\
|
||||
!*** ./assets/backend/login.ts ***!
|
||||
\*********************************/
|
||||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||||
|
||||
|
||||
|
||||
exports.__esModule = true;
|
||||
__webpack_require__(/*! ./login/login.css */ "./assets/backend/login/login.css");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./assets/backend/login/login.css":
|
||||
/*!****************************************!*\
|
||||
!*** ./assets/backend/login/login.css ***!
|
||||
\****************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
},
|
||||
/******/ __webpack_require__ => { // webpackRuntimeModules
|
||||
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
||||
/******/ var __webpack_exports__ = (__webpack_exec__("./assets/backend/login.ts"));
|
||||
/******/ }
|
||||
]);
|
||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC9sb2dpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBYTs7QUFDYkEsa0JBQWtCLEdBQUcsSUFBSTtBQUN6QkUsbUJBQU8sQ0FBQywyREFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7QUNGNUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvYmFja2VuZC9sb2dpbi50cyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvYmFja2VuZC9sb2dpbi9sb2dpbi5jc3M/MDZmMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5yZXF1aXJlKFwiLi9sb2dpbi9sb2dpbi5jc3NcIik7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==
|
||||
@ -1,26 +1,35 @@
|
||||
{
|
||||
"entrypoints": {
|
||||
"backend/dashboard": {
|
||||
"backend/login": {
|
||||
"js": [
|
||||
"/apps/build/runtime.9f422cb9.js",
|
||||
"/apps/build/560.268023de.js",
|
||||
"/apps/build/251.0fbe017d.js",
|
||||
"/apps/build/backend/dashboard.7bf52039.js"
|
||||
"/apps/build/runtime.js",
|
||||
"/apps/build/backend/login.js"
|
||||
],
|
||||
"css": [
|
||||
"/apps/build/251.a1ac5c17.css",
|
||||
"/apps/build/backend/dashboard.1bdabc5b.css"
|
||||
"/apps/build/backend/login.css"
|
||||
]
|
||||
},
|
||||
"backend/dashboard": {
|
||||
"js": [
|
||||
"/apps/build/runtime.js",
|
||||
"/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
|
||||
"/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.js",
|
||||
"/apps/build/backend/dashboard.js"
|
||||
],
|
||||
"css": [
|
||||
"/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.css",
|
||||
"/apps/build/backend/dashboard.css"
|
||||
]
|
||||
},
|
||||
"plugins/system/psc/invoice": {
|
||||
"js": [
|
||||
"/apps/build/runtime.9f422cb9.js",
|
||||
"/apps/build/560.268023de.js",
|
||||
"/apps/build/881.53c3c8c3.js",
|
||||
"/apps/build/plugins/system/psc/invoice.18eac1b9.js"
|
||||
"/apps/build/runtime.js",
|
||||
"/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
|
||||
"/apps/build/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js",
|
||||
"/apps/build/plugins/system/psc/invoice.js"
|
||||
],
|
||||
"css": [
|
||||
"/apps/build/plugins/system/psc/invoice.19592370.css"
|
||||
"/apps/build/plugins/system/psc/invoice.css"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
BIN
src/new/web/build/images/logo.png
Normal file
BIN
src/new/web/build/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
3
src/new/web/build/images/logo.png:Zone.Identifier
Normal file
3
src/new/web/build/images/logo.png:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
HostUrl=https://gitlab.com/
|
||||
@ -1,15 +1,19 @@
|
||||
{
|
||||
"/apps/backend/dashboard.css": "/apps/build/backend/dashboard.1bdabc5b.css",
|
||||
"/apps/backend/dashboard.js": "/apps/build/backend/dashboard.7bf52039.js",
|
||||
"/apps/plugins/system/psc/invoice.css": "/apps/build/plugins/system/psc/invoice.19592370.css",
|
||||
"/apps/plugins/system/psc/invoice.js": "/apps/build/plugins/system/psc/invoice.18eac1b9.js",
|
||||
"/apps/runtime.js": "/apps/build/runtime.9f422cb9.js",
|
||||
"/apps/560.268023de.js": "/apps/build/560.268023de.js",
|
||||
"/apps/881.53c3c8c3.js": "/apps/build/881.53c3c8c3.js",
|
||||
"/apps/251.a1ac5c17.css": "/apps/build/251.a1ac5c17.css",
|
||||
"/apps/251.0fbe017d.js": "/apps/build/251.0fbe017d.js",
|
||||
"/apps/backend/login.css": "/apps/build/backend/login.css",
|
||||
"/apps/backend/login.js": "/apps/build/backend/login.js",
|
||||
"/apps/backend/dashboard.css": "/apps/build/backend/dashboard.css",
|
||||
"/apps/backend/dashboard.js": "/apps/build/backend/dashboard.js",
|
||||
"/apps/plugins/system/psc/invoice.css": "/apps/build/plugins/system/psc/invoice.css",
|
||||
"/apps/plugins/system/psc/invoice.js": "/apps/build/plugins/system/psc/invoice.js",
|
||||
"/apps/runtime.js": "/apps/build/runtime.js",
|
||||
"/apps/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js": "/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
|
||||
"/apps/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js": "/apps/build/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js",
|
||||
"/apps/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.css": "/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.css",
|
||||
"/apps/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.js": "/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-f31401.js",
|
||||
"/apps/fonts/summernote.eot": "/apps/build/fonts/summernote.7a3f9776.eot",
|
||||
"/apps/fonts/summernote.ttf": "/apps/build/fonts/summernote.eb23b6b7.ttf",
|
||||
"/apps/fonts/summernote.woff": "/apps/build/fonts/summernote.f2bec4f2.woff",
|
||||
"/apps/fonts/summernote.woff2": "/apps/build/fonts/summernote.f19578ae.woff2"
|
||||
"/apps/fonts/summernote.woff2": "/apps/build/fonts/summernote.f19578ae.woff2",
|
||||
"/apps/images/logo.png": "/apps/build/images/logo.png",
|
||||
"/apps/images/logo.png:Zone.Identifier": "/apps/build/images/logo.png:Zone.Identifier"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6022
src/new/web/build/plugins/system/psc/invoice.css
Normal file
6022
src/new/web/build/plugins/system/psc/invoice.css
Normal file
File diff suppressed because one or more lines are too long
7092
src/new/web/build/plugins/system/psc/invoice.js
Normal file
7092
src/new/web/build/plugins/system/psc/invoice.js
Normal file
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
(()=>{"use strict";var e,r,t,o={},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}i.m=o,i.amdD=function(){throw new Error("define cannot be used indirect")},e=[],i.O=(r,t,o,n)=>{if(!t){var f=1/0;for(c=0;c<e.length;c++){for(var[t,o,n]=e[c],a=!0,l=0;l<t.length;l++)(!1&n||f>=n)&&Object.keys(i.O).every((e=>i.O[e](t[l])))?t.splice(l--,1):(a=!1,n<f&&(f=n));if(a){e.splice(c--,1);var u=o();void 0!==u&&(r=u)}}return r}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[t,o,n]},i.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return i.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var n=Object.create(null);i.r(n);var f={};r=r||[null,t({}),t([]),t(t)];for(var a=2&o&&e;"object"==typeof a&&!~r.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((r=>f[r]=()=>e[r]));return f.default=()=>e,i.d(n,f),n},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={666:0};i.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,[f,a,l]=t,u=0;if(f.some((r=>0!==e[r]))){for(o in a)i.o(a,o)&&(i.m[o]=a[o]);if(l)var c=l(i)}for(r&&r(t);u<f.length;u++)n=f[u],i.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return i.O(c)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),i.nc=void 0})();
|
||||
234
src/new/web/build/runtime.js
Normal file
234
src/new/web/build/runtime.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
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
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user