1
0
Fork 0

WIP: added ACL to project

- need fixing balde file comptable ACl
main
A1Gard 12 months ago
parent 69fbe25a09
commit 806d382186

@ -4,7 +4,7 @@
/** /**
* A helper file for Laravel, to provide autocomplete information to your IDE * A helper file for Laravel, to provide autocomplete information to your IDE
* Generated for Laravel 9.46.0. * Generated for Laravel 9.52.8.
* *
* This file should not be included in your code, only analyzed by your IDE! * This file should not be included in your code, only analyzed by your IDE!
* *
@ -1577,7 +1577,7 @@
$instance->terminate($input, $status); $instance->terminate($input, $status);
} }
/** /**
* Register a callback to be invoked when the command lifecyle duration exceeds a given amount of time. * Register a callback to be invoked when the command lifecycle duration exceeds a given amount of time.
* *
* @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold * @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold
* @param callable $handler * @param callable $handler
@ -2529,7 +2529,7 @@
* Check the result of a condition. * Check the result of a condition.
* *
* @param string $name * @param string $name
* @param array $parameters * @param mixed $parameters
* @return bool * @return bool
* @static * @static
*/ */
@ -3294,7 +3294,7 @@
/** /**
* Assert if a job was pushed a number of times. * Assert if a job was pushed a number of times.
* *
* @param string $command * @param string|\Closure $command
* @param int $times * @param int $times
* @return void * @return void
* @static * @static
@ -3344,7 +3344,7 @@
/** /**
* Assert if a job was pushed synchronously a number of times. * Assert if a job was pushed synchronously a number of times.
* *
* @param string $command * @param string|\Closure $command
* @param int $times * @param int $times
* @return void * @return void
* @static * @static
@ -3383,7 +3383,7 @@
/** /**
* Assert if a job was pushed after the response was sent a number of times. * Assert if a job was pushed after the response was sent a number of times.
* *
* @param string $command * @param string|\Closure $command
* @param int $times * @param int $times
* @return void * @return void
* @static * @static
@ -4181,6 +4181,33 @@
{ {
/** @var \Illuminate\Cache\Repository $instance */ /** @var \Illuminate\Cache\Repository $instance */
return $instance->macroCall($method, $parameters); return $instance->macroCall($method, $parameters);
}
/**
* Get a lock instance.
*
* @param string $name
* @param int $seconds
* @param string|null $owner
* @return \Illuminate\Contracts\Cache\Lock
* @static
*/
public static function lock($name, $seconds = 0, $owner = null)
{
/** @var \Illuminate\Cache\FileStore $instance */
return $instance->lock($name, $seconds, $owner);
}
/**
* Restore a lock instance using the owner identifier.
*
* @param string $name
* @param string $owner
* @return \Illuminate\Contracts\Cache\Lock
* @static
*/
public static function restoreLock($name, $owner)
{
/** @var \Illuminate\Cache\FileStore $instance */
return $instance->restoreLock($name, $owner);
} }
/** /**
* Remove all items from the cache. * Remove all items from the cache.
@ -4225,33 +4252,6 @@
{ {
/** @var \Illuminate\Cache\FileStore $instance */ /** @var \Illuminate\Cache\FileStore $instance */
return $instance->getPrefix(); return $instance->getPrefix();
}
/**
* Get a lock instance.
*
* @param string $name
* @param int $seconds
* @param string|null $owner
* @return \Illuminate\Contracts\Cache\Lock
* @static
*/
public static function lock($name, $seconds = 0, $owner = null)
{
/** @var \Illuminate\Cache\FileStore $instance */
return $instance->lock($name, $seconds, $owner);
}
/**
* Restore a lock instance using the owner identifier.
*
* @param string $name
* @param string $owner
* @return \Illuminate\Contracts\Cache\Lock
* @static
*/
public static function restoreLock($name, $owner)
{
/** @var \Illuminate\Cache\FileStore $instance */
return $instance->restoreLock($name, $owner);
} }
} }
@ -4534,7 +4534,7 @@
/** /**
* Queue a cookie to send with the next response. * Queue a cookie to send with the next response.
* *
* @param array $parameters * @param mixed $parameters
* @return void * @return void
* @static * @static
*/ */
@ -4574,8 +4574,8 @@
* Set the default path and domain for the jar. * Set the default path and domain for the jar.
* *
* @param string $path * @param string $path
* @param string $domain * @param string|null $domain
* @param bool $secure * @param bool|null $secure
* @param string|null $sameSite * @param string|null $sameSite
* @return \Illuminate\Cookie\CookieJar * @return \Illuminate\Cookie\CookieJar
* @static * @static
@ -4766,18 +4766,18 @@
* @method static \Illuminate\Support\Carbon createFromTimestampUTC($timestamp) * @method static \Illuminate\Support\Carbon createFromTimestampUTC($timestamp)
* @method static \Illuminate\Support\Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null) * @method static \Illuminate\Support\Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null)
* @method static \Illuminate\Support\Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) * @method static \Illuminate\Support\Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)
* @method static \Illuminate\Support\Carbon disableHumanDiffOption($humanDiffOption) * @method static void disableHumanDiffOption($humanDiffOption)
* @method static \Illuminate\Support\Carbon enableHumanDiffOption($humanDiffOption) * @method static void enableHumanDiffOption($humanDiffOption)
* @method static mixed executeWithLocale($locale, $func) * @method static mixed executeWithLocale($locale, $func)
* @method static \Illuminate\Support\Carbon fromSerialized($value) * @method static \Illuminate\Support\Carbon fromSerialized($value)
* @method static array getAvailableLocales() * @method static array getAvailableLocales()
* @method static array getDays() * @method static array getDays()
* @method static int getHumanDiffOptions() * @method static int getHumanDiffOptions()
* @method static array getIsoUnits() * @method static array getIsoUnits()
* @method static \Illuminate\Support\Carbon getLastErrors() * @method static array getLastErrors()
* @method static string getLocale() * @method static string getLocale()
* @method static int getMidDayAt() * @method static int getMidDayAt()
* @method static \Illuminate\Support\Carbon getTestNow() * @method static \Illuminate\Support\Carbon|null getTestNow()
* @method static \Symfony\Component\Translation\TranslatorInterface getTranslator() * @method static \Symfony\Component\Translation\TranslatorInterface getTranslator()
* @method static int getWeekEndsAt() * @method static int getWeekEndsAt()
* @method static int getWeekStartsAt() * @method static int getWeekStartsAt()
@ -4789,7 +4789,7 @@
* @method static \Illuminate\Support\Carbon instance($date) * @method static \Illuminate\Support\Carbon instance($date)
* @method static bool isImmutable() * @method static bool isImmutable()
* @method static bool isModifiableUnit($unit) * @method static bool isModifiableUnit($unit)
* @method static \Illuminate\Support\Carbon isMutable() * @method static bool isMutable()
* @method static bool isStrictModeEnabled() * @method static bool isStrictModeEnabled()
* @method static bool localeHasDiffOneDayWords($locale) * @method static bool localeHasDiffOneDayWords($locale)
* @method static bool localeHasDiffSyntax($locale) * @method static bool localeHasDiffSyntax($locale)
@ -4808,13 +4808,13 @@
* @method static void resetToStringFormat() * @method static void resetToStringFormat()
* @method static void resetYearsOverflow() * @method static void resetYearsOverflow()
* @method static void serializeUsing($callback) * @method static void serializeUsing($callback)
* @method static \Illuminate\Support\Carbon setHumanDiffOptions($humanDiffOptions) * @method static void setHumanDiffOptions($humanDiffOptions)
* @method static bool setLocale($locale) * @method static bool setLocale($locale)
* @method static void setMidDayAt($hour) * @method static void setMidDayAt($hour)
* @method static void setTestNow($testNow = null) * @method static void setTestNow($testNow = null)
* @method static void setToStringFormat($format) * @method static void setToStringFormat($format)
* @method static void setTranslator(\Symfony\Component\Translation\TranslatorInterface $translator) * @method static void setTranslator(\Symfony\Component\Translation\TranslatorInterface $translator)
* @method static \Illuminate\Support\Carbon setUtf8($utf8) * @method static void setUtf8($utf8)
* @method static void setWeekEndsAt($day) * @method static void setWeekEndsAt($day)
* @method static void setWeekStartsAt($day) * @method static void setWeekStartsAt($day)
* @method static void setWeekendDays($days) * @method static void setWeekendDays($days)
@ -4824,7 +4824,7 @@
* @method static \Illuminate\Support\Carbon today($tz = null) * @method static \Illuminate\Support\Carbon today($tz = null)
* @method static \Illuminate\Support\Carbon tomorrow($tz = null) * @method static \Illuminate\Support\Carbon tomorrow($tz = null)
* @method static void useMonthsOverflow($monthsOverflow = true) * @method static void useMonthsOverflow($monthsOverflow = true)
* @method static \Illuminate\Support\Carbon useStrictMode($strictModeEnabled = true) * @method static void useStrictMode($strictModeEnabled = true)
* @method static void useYearsOverflow($yearsOverflow = true) * @method static void useYearsOverflow($yearsOverflow = true)
* @method static \Illuminate\Support\Carbon yesterday($tz = null) * @method static \Illuminate\Support\Carbon yesterday($tz = null)
* @see \Illuminate\Support\DateFactory * @see \Illuminate\Support\DateFactory
@ -4890,7 +4890,6 @@
/** /**
* *
* *
* @method static array<string, \Illuminate\Database\Connection> getConnections()
* @see \Illuminate\Database\DatabaseManager * @see \Illuminate\Database\DatabaseManager
*/ */
class DB { class DB {
@ -6567,13 +6566,14 @@
* *
* @param string $path * @param string $path
* @param string $content * @param string $content
* @param int|null $mode
* @return void * @return void
* @static * @static
*/ */
public static function replace($path, $content) public static function replace($path, $content, $mode = null)
{ {
/** @var \Illuminate\Filesystem\Filesystem $instance */ /** @var \Illuminate\Filesystem\Filesystem $instance */
$instance->replace($path, $content); $instance->replace($path, $content, $mode);
} }
/** /**
* Replace a given string within a given file. * Replace a given string within a given file.
@ -7028,7 +7028,7 @@
* *
* @template TWhenParameter * @template TWhenParameter
* @template TWhenReturnType * @template TWhenReturnType
* @param \Illuminate\Filesystem\(\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param \Illuminate\Filesystem\(\Closure($this): TWhenParameter)|TWhenParameter|null $value
* @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $callback
* @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $default * @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $default
* @return $this|\Illuminate\Filesystem\TWhenReturnType * @return $this|\Illuminate\Filesystem\TWhenReturnType
@ -7409,8 +7409,8 @@
* Deny with a HTTP status code. * Deny with a HTTP status code.
* *
* @param int $status * @param int $status
* @param \Illuminate\Auth\Access\?string $message * @param string|null $message
* @param \Illuminate\Auth\Access\?int $code * @param int|null $code
* @return \Illuminate\Auth\Access\Response * @return \Illuminate\Auth\Access\Response
* @static * @static
*/ */
@ -7422,8 +7422,8 @@
/** /**
* Deny with a 404 HTTP status code. * Deny with a 404 HTTP status code.
* *
* @param \Illuminate\Auth\Access\?string $message * @param string|null $message
* @param \Illuminate\Auth\Access\?int $code * @param int|null $code
* @return \Illuminate\Auth\Access\Response * @return \Illuminate\Auth\Access\Response
* @static * @static
*/ */
@ -7628,6 +7628,7 @@
* @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password) * @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password)
* @method static \Illuminate\Http\Client\PendingRequest withToken(string $token, string $type = 'Bearer') * @method static \Illuminate\Http\Client\PendingRequest withToken(string $token, string $type = 'Bearer')
* @method static \Illuminate\Http\Client\PendingRequest withUserAgent(string $userAgent) * @method static \Illuminate\Http\Client\PendingRequest withUserAgent(string $userAgent)
* @method static \Illuminate\Http\Client\PendingRequest withUrlParameters(array $parameters = [])
* @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain) * @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain)
* @method static \Illuminate\Http\Client\PendingRequest maxRedirects(int $max) * @method static \Illuminate\Http\Client\PendingRequest maxRedirects(int $max)
* @method static \Illuminate\Http\Client\PendingRequest withoutRedirecting() * @method static \Illuminate\Http\Client\PendingRequest withoutRedirecting()
@ -7667,8 +7668,8 @@
* @method static \Illuminate\Http\Client\PendingRequest setClient(\GuzzleHttp\Client $client) * @method static \Illuminate\Http\Client\PendingRequest setClient(\GuzzleHttp\Client $client)
* @method static \Illuminate\Http\Client\PendingRequest setHandler(callable $handler) * @method static \Illuminate\Http\Client\PendingRequest setHandler(callable $handler)
* @method static array getOptions() * @method static array getOptions()
* @method static \Illuminate\Http\Client\PendingRequest|mixed when((\Closure(\Illuminate\Http\Client\PendingRequest): mixed)|mixed $value = null, (callable(\Illuminate\Http\Client\PendingRequest, mixed): mixed)|null $callback = null, (callable(\Illuminate\Http\Client\PendingRequest, mixed): mixed)|null $default = null) * @method static \Illuminate\Http\Client\PendingRequest|mixed when(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)
* @method static \Illuminate\Http\Client\PendingRequest|mixed unless((\Closure(\Illuminate\Http\Client\PendingRequest): mixed)|mixed $value = null, (callable(\Illuminate\Http\Client\PendingRequest, mixed): mixed)|null $callback = null, (callable(\Illuminate\Http\Client\PendingRequest, mixed): mixed)|null $default = null) * @method static \Illuminate\Http\Client\PendingRequest|mixed unless(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)
* @see \Illuminate\Http\Client\Factory * @see \Illuminate\Http\Client\Factory
*/ */
class Http { class Http {
@ -8168,6 +8169,19 @@
{ {
/** @var \Illuminate\Translation\Translator $instance */ /** @var \Illuminate\Translation\Translator $instance */
$instance->setLoaded($loaded); $instance->setLoaded($loaded);
}
/**
* Add a handler to be executed in order to format a given class to a string during translation replacements.
*
* @param callable|string $class
* @param callable|null $handler
* @return void
* @static
*/
public static function stringable($class, $handler = null)
{
/** @var \Illuminate\Translation\Translator $instance */
$instance->stringable($class, $handler);
} }
/** /**
* Set the parsed value of a key. * Set the parsed value of a key.
@ -8377,13 +8391,13 @@
* Unset the given channel instance. * Unset the given channel instance.
* *
* @param string|null $driver * @param string|null $driver
* @return \Illuminate\Log\LogManager * @return void
* @static * @static
*/ */
public static function forgetChannel($driver = null) public static function forgetChannel($driver = null)
{ {
/** @var \Illuminate\Log\LogManager $instance */ /** @var \Illuminate\Log\LogManager $instance */
return $instance->forgetChannel($driver); $instance->forgetChannel($driver);
} }
/** /**
* Get all of the resolved log channels. * Get all of the resolved log channels.
@ -10688,12 +10702,12 @@
* Clones a request and overrides some of its parameters. * Clones a request and overrides some of its parameters.
* *
* @return static * @return static
* @param array $query The GET parameters * @param array|null $query The GET parameters
* @param array $request The POST parameters * @param array|null $request The POST parameters
* @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
* @param array $cookies The COOKIE parameters * @param array|null $cookies The COOKIE parameters
* @param array $files The FILES parameters * @param array|null $files The FILES parameters
* @param array $server The SERVER parameters * @param array|null $server The SERVER parameters
* @static * @static
*/ */
public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null)
@ -10942,12 +10956,13 @@
* @param array $files The FILES parameters * @param array $files The FILES parameters
* @param array $server The SERVER parameters * @param array $server The SERVER parameters
* @param string|resource|null $content The raw body data * @param string|resource|null $content The raw body data
* @return void
* @static * @static
*/ */
public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null) public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content); $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content);
} }
/** /**
* Creates a new request with values from PHP's super globals. * Creates a new request with values from PHP's super globals.
@ -10984,11 +10999,12 @@
* to keep BC with an existing system. It should not be used for any * to keep BC with an existing system. It should not be used for any
* other purpose. * other purpose.
* *
* @return void
* @static * @static
*/ */
public static function setFactory($callable) public static function setFactory($callable)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
return \Illuminate\Http\Request::setFactory($callable); \Illuminate\Http\Request::setFactory($callable);
} }
/** /**
* Overrides the PHP global variables according to this request instance. * Overrides the PHP global variables according to this request instance.
@ -10996,12 +11012,13 @@
* It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE. * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.
* $_FILES is never overridden, see rfc1867 * $_FILES is never overridden, see rfc1867
* *
* @return void
* @static * @static
*/ */
public static function overrideGlobals() public static function overrideGlobals()
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->overrideGlobals(); $instance->overrideGlobals();
} }
/** /**
* Sets a list of trusted proxies. * Sets a list of trusted proxies.
@ -11010,11 +11027,12 @@
* *
* @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR']
* @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies * @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies
* @return void
* @static * @static
*/ */
public static function setTrustedProxies($proxies, $trustedHeaderSet) public static function setTrustedProxies($proxies, $trustedHeaderSet)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
return \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet); \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet);
} }
/** /**
* Gets the list of trusted proxies. * Gets the list of trusted proxies.
@ -11042,11 +11060,12 @@
* You should only list the hosts you manage using regexs. * You should only list the hosts you manage using regexs.
* *
* @param array $hostPatterns A list of trusted host patterns * @param array $hostPatterns A list of trusted host patterns
* @return void
* @static * @static
*/ */
public static function setTrustedHosts($hostPatterns) public static function setTrustedHosts($hostPatterns)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
return \Illuminate\Http\Request::setTrustedHosts($hostPatterns); \Illuminate\Http\Request::setTrustedHosts($hostPatterns);
} }
/** /**
* Gets the list of trusted host patterns. * Gets the list of trusted host patterns.
@ -11081,11 +11100,12 @@
* *
* The HTTP method can only be overridden when the real HTTP method is POST. * The HTTP method can only be overridden when the real HTTP method is POST.
* *
* @return void
* @static * @static
*/ */
public static function enableHttpMethodParameterOverride() public static function enableHttpMethodParameterOverride()
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
return \Illuminate\Http\Request::enableHttpMethodParameterOverride(); \Illuminate\Http\Request::enableHttpMethodParameterOverride();
} }
/** /**
* Checks whether support for the _method request parameter is enabled. * Checks whether support for the _method request parameter is enabled.
@ -11110,12 +11130,13 @@
/** /**
* *
* *
* @return void
* @static * @static
*/ */
public static function setSession($session) public static function setSession($session)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setSession($session); $instance->setSession($session);
} }
/** /**
* *
@ -11416,12 +11437,13 @@
/** /**
* Sets the request method. * Sets the request method.
* *
* @return void
* @static * @static
*/ */
public static function setMethod($method) public static function setMethod($method)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setMethod($method); $instance->setMethod($method);
} }
/** /**
* Gets the request "intended" method. * Gets the request "intended" method.
@ -11487,12 +11509,13 @@
* Associates a format with mime types. * Associates a format with mime types.
* *
* @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type) * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)
* @return void
* @static * @static
*/ */
public static function setFormat($format, $mimeTypes) public static function setFormat($format, $mimeTypes)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setFormat($format, $mimeTypes); $instance->setFormat($format, $mimeTypes);
} }
/** /**
* Gets the request format. * Gets the request format.
@ -11514,12 +11537,13 @@
/** /**
* Sets the request format. * Sets the request format.
* *
* @return void
* @static * @static
*/ */
public static function setRequestFormat($format) public static function setRequestFormat($format)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setRequestFormat($format); $instance->setRequestFormat($format);
} }
/** /**
* Gets the usual name of the format associated with the request's media type (provided in the Content-Type header). * Gets the usual name of the format associated with the request's media type (provided in the Content-Type header).
@ -11546,12 +11570,13 @@
/** /**
* Sets the default locale. * Sets the default locale.
* *
* @return void
* @static * @static
*/ */
public static function setDefaultLocale($locale) public static function setDefaultLocale($locale)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setDefaultLocale($locale); $instance->setDefaultLocale($locale);
} }
/** /**
* Get the default locale. * Get the default locale.
@ -11566,12 +11591,13 @@
/** /**
* Sets the locale. * Sets the locale.
* *
* @return void
* @static * @static
*/ */
public static function setLocale($locale) public static function setLocale($locale)
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->setLocale($locale); $instance->setLocale($locale);
} }
/** /**
* Get the locale. * Get the locale.
@ -11654,6 +11680,16 @@
{ //Method inherited from \Symfony\Component\HttpFoundation\Request { //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */ /** @var \Illuminate\Http\Request $instance */
return $instance->getContent($asResource); return $instance->getContent($asResource);
}
/**
* Gets the decoded form or json request body.
*
* @static
*/
public static function getPayload()
{ //Method inherited from \Symfony\Component\HttpFoundation\Request
/** @var \Illuminate\Http\Request $instance */
return $instance->getPayload();
} }
/** /**
* Gets the Etags. * Gets the Etags.
@ -12632,7 +12668,7 @@
/** /**
* Create a new streamed response instance. * Create a new streamed response instance.
* *
* @param \Closure $callback * @param callable $callback
* @param int $status * @param int $status
* @param array $headers * @param array $headers
* @return \Symfony\Component\HttpFoundation\StreamedResponse * @return \Symfony\Component\HttpFoundation\StreamedResponse
@ -12646,7 +12682,7 @@
/** /**
* Create a new streamed response instance as a file download. * Create a new streamed response instance as a file download.
* *
* @param \Closure $callback * @param callable $callback
* @param string|null $name * @param string|null $name
* @param array $headers * @param array $headers
* @param string|null $disposition * @param string|null $disposition
@ -14156,6 +14192,18 @@
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->disableForeignKeyConstraints(); return $instance->disableForeignKeyConstraints();
}
/**
* Disable foreign key constraints during the execution of a callback.
*
* @param \Closure $callback
* @return mixed
* @static
*/
public static function withoutForeignKeyConstraints($callback)
{ //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->withoutForeignKeyConstraints($callback);
} }
/** /**
* Get the database connection instance. * Get the database connection instance.
@ -14726,7 +14774,7 @@
/** /**
* Set the session ID. * Set the session ID.
* *
* @param string $id * @param string|null $id
* @return void * @return void
* @static * @static
*/ */
@ -14738,7 +14786,7 @@
/** /**
* Determine if this is a valid session ID. * Determine if this is a valid session ID.
* *
* @param string $id * @param string|null $id
* @return bool * @return bool
* @static * @static
*/ */
@ -14830,13 +14878,13 @@
* Set the underlying session handler implementation. * Set the underlying session handler implementation.
* *
* @param \SessionHandlerInterface $handler * @param \SessionHandlerInterface $handler
* @return void * @return \SessionHandlerInterface
* @static * @static
*/ */
public static function setHandler($handler) public static function setHandler($handler)
{ {
/** @var \Illuminate\Session\Store $instance */ /** @var \Illuminate\Session\Store $instance */
$instance->setHandler($handler); return $instance->setHandler($handler);
} }
/** /**
* Determine if the session handler needs a request. * Determine if the session handler needs a request.
@ -14912,6 +14960,13 @@
/** /**
* *
* *
* @method static bool has(string $location)
* @method static string read(string $location)
* @method static \League\Flysystem\DirectoryListing listContents(string $location, bool $deep = false)
* @method static int fileSize(string $path)
* @method static string visibility(string $path)
* @method static void write(string $location, string $contents, array $config = [])
* @method static void createDirectory(string $location, array $config = [])
* @see \Illuminate\Filesystem\FilesystemManager * @see \Illuminate\Filesystem\FilesystemManager
*/ */
class Storage { class Storage {
@ -15515,6 +15570,21 @@
{ {
/** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
return $instance->temporaryUrl($path, $expiration, $options); return $instance->temporaryUrl($path, $expiration, $options);
}
/**
* Get a temporary upload URL for the file at the given path.
*
* @param string $path
* @param \DateTimeInterface $expiration
* @param array $options
* @return array
* @throws \RuntimeException
* @static
*/
public static function temporaryUploadUrl($path, $expiration, $options = [])
{
/** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
return $instance->temporaryUploadUrl($path, $expiration, $options);
} }
/** /**
* Get an array of all files in a directory. * Get an array of all files in a directory.
@ -15640,7 +15710,7 @@
* *
* @template TWhenParameter * @template TWhenParameter
* @template TWhenReturnType * @template TWhenReturnType
* @param \Illuminate\Filesystem\(\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param \Illuminate\Filesystem\(\Closure($this): TWhenParameter)|TWhenParameter|null $value
* @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $callback
* @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $default * @param \Illuminate\Filesystem\(callable($this, TWhenParameter): TWhenReturnType)|null $default
* @return $this|\Illuminate\Filesystem\TWhenReturnType * @return $this|\Illuminate\Filesystem\TWhenReturnType
@ -17423,7 +17493,7 @@
/** /**
* Generate or set a Content Security Policy nonce to apply to all generated tags. * Generate or set a Content Security Policy nonce to apply to all generated tags.
* *
* @param \Illuminate\Foundation\?string $nonce * @param string|null $nonce
* @return string * @return string
* @static * @static
*/ */
@ -17530,7 +17600,7 @@
/** /**
* Use the given callback to resolve attributes for preload tags. * Use the given callback to resolve attributes for preload tags.
* *
* @param \Illuminate\Foundation\(callable(string, string, ?array, ?array): array|false)|array|false $attributes * @param \Illuminate\Foundation\(callable(string, string, ?array, ?array): (array|false))|array|false $attributes
* @return \Illuminate\Foundation\Vite * @return \Illuminate\Foundation\Vite
* @static * @static
*/ */
@ -19134,7 +19204,7 @@
/** /**
* *
* *
* @param \Spatie\FlareClient\FlareMiddleware\FlareMiddleware|array<FlareMiddleware>|\Spatie\FlareClient\class-string<FlareMiddleware> $middleware * @param \Spatie\FlareClient\FlareMiddleware\FlareMiddleware|array<FlareMiddleware>|\Spatie\FlareClient\class-string<FlareMiddleware>|callable $middleware
* @return \Spatie\FlareClient\Flare * @return \Spatie\FlareClient\Flare
* @static * @static
*/ */
@ -20004,7 +20074,7 @@ namespace {
} }
/** /**
* Get an array with the values of a given column. * Get a collection with the values of a given column.
* *
* @param string|\Illuminate\Database\Query\Expression $column * @param string|\Illuminate\Database\Query\Expression $column
* @param string|null $key * @param string|null $key
@ -20538,7 +20608,7 @@ namespace {
* *
* @template TWhenParameter * @template TWhenParameter
* @template TWhenReturnType * @template TWhenReturnType
* @param \Illuminate\Database\Eloquent\(\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param \Illuminate\Database\Eloquent\(\Closure($this): TWhenParameter)|TWhenParameter|null $value
* @param \Illuminate\Database\Eloquent\(callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param \Illuminate\Database\Eloquent\(callable($this, TWhenParameter): TWhenReturnType)|null $callback
* @param \Illuminate\Database\Eloquent\(callable($this, TWhenParameter): TWhenReturnType)|null $default * @param \Illuminate\Database\Eloquent\(callable($this, TWhenParameter): TWhenReturnType)|null $default
* @return $this|\Illuminate\Database\Eloquent\TWhenReturnType * @return $this|\Illuminate\Database\Eloquent\TWhenReturnType
@ -21207,6 +21277,45 @@ namespace {
return $instance->from($table, $as); return $instance->from($table, $as);
} }
/**
* Add an index hint to suggest a query index.
*
* @param string $index
* @return \Illuminate\Database\Query\Builder
* @static
*/
public static function useIndex($index)
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->useIndex($index);
}
/**
* Add an index hint to force a query index.
*
* @param string $index
* @return \Illuminate\Database\Query\Builder
* @static
*/
public static function forceIndex($index)
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->forceIndex($index);
}
/**
* Add an index hint to ignore a query index.
*
* @param string $index
* @return \Illuminate\Database\Query\Builder
* @static
*/
public static function ignoreIndex($index)
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->ignoreIndex($index);
}
/** /**
* Add a join clause to the query. * Add a join clause to the query.
* *
@ -22987,6 +23096,36 @@ namespace {
return $instance->updateOrInsert($attributes, $values); return $instance->updateOrInsert($attributes, $values);
} }
/**
* Increment the given column's values by the given amounts.
*
* @param \Illuminate\Database\Query\array<string, float|int|numeric-string> $columns
* @param \Illuminate\Database\Query\array<string, mixed> $extra
* @return int
* @throws \InvalidArgumentException
* @static
*/
public static function incrementEach($columns, $extra = [])
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->incrementEach($columns, $extra);
}
/**
* Decrement the given column's values by the given amounts.
*
* @param \Illuminate\Database\Query\array<string, float|int|numeric-string> $columns
* @param \Illuminate\Database\Query\array<string, mixed> $extra
* @return int
* @throws \InvalidArgumentException
* @static
*/
public static function decrementEach($columns, $extra = [])
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->decrementEach($columns, $extra);
}
/** /**
* Run a truncate statement on the table. * Run a truncate statement on the table.
* *

@ -0,0 +1,138 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Access;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use function Xmen\StarterKit\Helpers\logAdmin;
use Xmen\StarterKit\Requests\UserSaveRequest;
class UserController extends Controller
{
private $name = 'User';
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::orderBy('name')->paginate(20);
return view('starter-kit::admin.user.userList', compact('users'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('starter-kit::admin.user.userForm');
}
public function createOrUpdate(User $user, UserSaveRequest $req)
{
$user->name = $req->input('name');
$user->email = $req->input('email');
if (trim($req->input('password')) != '') {
$user->password = bcrypt($req->input('password'));
}
$user->mobile = $req->input('mobile');
$user->syncRoles($req->input('role'));
$user->save();
$user->accesses()->delete();
foreach ($req->input('acl', []) as $route) {
$a = new Access();
$a->route = $route;
$a->user_id = $user->id;
$a->save();
$routes = explode('.', $route);
if ($routes[2] == 'store' || $routes[2] == 'update') {
$routes[2] = $routes[2] == 'store' ? 'create' : 'edit';
$a = new Access();
$a->route = implode('.', $routes);
$a->user_id = $user->id;
$a->save();
}
}
return $user;
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(UserSaveRequest $request)
{
$user = new User();
$user = $this->createOrUpdate($user, $request);
logAdmin(__METHOD__, User::class, $user->id);
return redirect()->route('admin.user.all')->with(['message' => $user->name . ' ' . __($this->name) . ' ' . __(' created')]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
}
public function edit(User $user)
{
$routes = [];
foreach (\Route::getRoutes()->getRoutes() as $route) {
$action = $route->getAction();
if (array_key_exists('as', $action)) {
$routeName = explode('.', $action['as']);
if (isset($routeName[2]) && $routeName[0] == 'admin') {
if (!isset($routes[$routeName[1]])) {
$routes[$routeName[1]] = [];
if ($routeName[2] != 'edit' && $routeName[2] != 'create')
$routes[$routeName[1]][] = $routeName[2];
} else {
if ($routeName[2] != 'edit' && $routeName[2] != 'create')
$routes[$routeName[1]][] = $routeName[2];
}
}
}
}
unset($routes['home'], $routes['user'], $routes['ckeditor']);
return view('starter-kit::admin.user.userForm', compact('user', 'routes'));
}
public function update(UserSaveRequest $request, User $user)
{
$this->createOrUpdate($user, $request);
logAdmin(__METHOD__, User::class, $user->id);
return redirect()->route('admin.user.all')->with(['message' => $user->name . ' ' . __($this->name) . ' ' . __(' edited')]);
}
/**
* Remove the specified resource from storage.
*
* @param int $user
* @return \Illuminate\Http\Response
*/
public function destroy(User $user)
{
if (auth()->user()->hasRole('super-admin')) {
$user->delete();
logAdmin(__METHOD__, User::class, $user->id);
return redirect()->back()->with(['message' => $user->name . ' ' . __($this->name) . ' ' . __(' deleted')]);
}
return redirect()->route('admin.user.all');
}
}

@ -0,0 +1,50 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Acl
{
private $excepts = ['ckeditor', 'home'];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
$route = \Route::getCurrentRoute();
// check admin page & user is not super admin
if (auth()->check() && isset($route->action['as'])) {
// explode user request to process
$requestPath = explode('.', $route->action['as']);
// ignore admin and not admin page
if ($requestPath[0] == 'admin' && !auth()->user()->hasRole('super-admin')) {
// check excpet and has 3 routes and has user acceess
if (!in_array($requestPath[1], $this->excepts) &&
isset($requestPath[2]) &&
!auth()->user()->hasAccess($route->action['as'])) {
return abort(403, __("You dont't have acccess this acction"));
}
// check delete or destroy with bulk action
if ($requestPath[2] == 'bulk' && $request->input('bulk') == 'delete') {
$requestPath[2] = 'delete';
if (!auth()->user()->hasAccess(implode('.', $requestPath))) {
$requestPath[2] = 'destroy';
if (!auth()->user()->hasAccess(implode('.', $requestPath))) {
return abort(403, __("You dont't have acccess this acction"));
}
}
}
}
}
return $next($request);
}
}

@ -0,0 +1,36 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\Access
*
* @property int $id
* @property int $user_id
* @property string $route
* @property int $owner
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\User $user
* @method static \Illuminate\Database\Eloquent\Builder|Access newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Access newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Access query()
* @method static \Illuminate\Database\Eloquent\Builder|Access whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Access whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Access whereOwner($value)
* @method static \Illuminate\Database\Eloquent\Builder|Access whereRoute($value)
* @method static \Illuminate\Database\Eloquent\Builder|Access whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Access whereUserId($value)
* @mixin \Eloquent
*/
class Access extends Model
{
use HasFactory;
public function user(){
return $this->belongsTo(User::class);
}
}

@ -29,12 +29,12 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Eloquent\Builder|Discount whereProductId($value) * @method static \Illuminate\Database\Eloquent\Builder|Discount whereProductId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Discount whereType($value) * @method static \Illuminate\Database\Eloquent\Builder|Discount whereType($value)
* @method static \Illuminate\Database\Eloquent\Builder|Discount whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|Discount whereUpdatedAt($value)
* @mixin \Eloquent
* @property \Illuminate\Support\Carbon|null $deleted_at * @property \Illuminate\Support\Carbon|null $deleted_at
* @method static \Illuminate\Database\Query\Builder|Discount onlyTrashed() * @method static \Illuminate\Database\Query\Builder|Discount onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|Discount whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|Discount whereDeletedAt($value)
* @method static \Illuminate\Database\Query\Builder|Discount withTrashed() * @method static \Illuminate\Database\Query\Builder|Discount withTrashed()
* @method static \Illuminate\Database\Query\Builder|Discount withoutTrashed() * @method static \Illuminate\Database\Query\Builder|Discount withoutTrashed()
* @mixin \Eloquent
*/ */
class Discount extends Model class Discount extends Model
{ {

@ -28,7 +28,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Eloquent\Builder|Invoice whereStatus($value) * @method static \Illuminate\Database\Eloquent\Builder|Invoice whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|Invoice whereTotalPrice($value) * @method static \Illuminate\Database\Eloquent\Builder|Invoice whereTotalPrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|Invoice whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|Invoice whereUpdatedAt($value)
* @mixin \Eloquent
* @property int|null $discount_id * @property int|null $discount_id
* @property-read \App\Models\Discount|null $discount * @property-read \App\Models\Discount|null $discount
* @method static \Illuminate\Database\Eloquent\Builder|Invoice whereDiscountId($value) * @method static \Illuminate\Database\Eloquent\Builder|Invoice whereDiscountId($value)
@ -68,6 +67,8 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Query\Builder|Invoice withoutTrashed() * @method static \Illuminate\Database\Query\Builder|Invoice withoutTrashed()
* @property int|null $address_id * @property int|null $address_id
* @method static \Illuminate\Database\Eloquent\Builder|Invoice whereAddressId($value) * @method static \Illuminate\Database\Eloquent\Builder|Invoice whereAddressId($value)
* @property-read \App\Models\Address|null $address
* @mixin \Eloquent
*/ */
class Invoice extends Model class Invoice extends Model
{ {

@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens; use Laravel\Sanctum\HasApiTokens;
use Xmen\StarterKit\Models\Post;
use Xmen\StarterKit\Models\StarterKit; use Xmen\StarterKit\Models\StarterKit;
@ -49,6 +50,10 @@ use Xmen\StarterKit\Models\StarterKit;
* @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value) * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Access> $accesses
* @property-read int|null $accesses_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Product> $products
* @property-read int|null $products_count
* @mixin \Eloquent * @mixin \Eloquent
*/ */
class User extends Authenticatable class User extends Authenticatable
@ -84,4 +89,22 @@ class User extends Authenticatable
protected $casts = [ protected $casts = [
'email_verified_at' => 'datetime', 'email_verified_at' => 'datetime',
]; ];
public function posts(){
return $this->hasMany(Post::class);
}
public function products(){
return $this->hasMany(Product::class);
}
public function accesses(){
return $this->hasMany(Access::class);
}
public function hasAnyAccess($name){
return $this->accesses()->where('route','LIKE','%'.$name.'%')->count() > 0;
}
public function hasAccess($route){
return $this->accesses()->where('route',$route)->count() > 0;
}
} }

@ -2,6 +2,7 @@
namespace App\Providers; namespace App\Providers;
use App\Http\Middleware\Acl;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator; use Illuminate\Pagination\Paginator;
@ -27,6 +28,10 @@ class AppServiceProvider extends ServiceProvider
public function boot() public function boot()
{ {
// //
/** @var Router $router */
$router = $this->app['router'];
$router->pushMiddlewareToGroup('web', Acl::class);
Paginator::useBootstrap(); Paginator::useBootstrap();
Carbon::macro('jdate', function ($format, $tr_num = 'fa') { Carbon::macro('jdate', function ($format, $tr_num = 'fa') {
$dt = TDate::GetInstance(); $dt = TDate::GetInstance();

@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('accesses', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->string('route');
$table->boolean('owner')->default(false);
$table->timestamps();
$table->foreign('user_id')->references('id')
->on('users')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('accesses');
}
};

44
package-lock.json generated

@ -1,5 +1,5 @@
{ {
"name": "xShop10", "name": "xShop",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
@ -27,7 +27,7 @@
"devDependencies": { "devDependencies": {
"@popperjs/core": "^2.10.2", "@popperjs/core": "^2.10.2",
"axios": "^0.25", "axios": "^0.25",
"bootstrap": "^5.1.3", "bootstrap": "^5.3.0",
"laravel-mix": "^6.0.6", "laravel-mix": "^6.0.6",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"postcss": "^8.1.14", "postcss": "^8.1.14",
@ -1867,9 +1867,9 @@
} }
}, },
"node_modules/@popperjs/core": { "node_modules/@popperjs/core": {
"version": "2.11.5", "version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true, "dev": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -2929,16 +2929,22 @@
"dev": true "dev": true
}, },
"node_modules/bootstrap": { "node_modules/bootstrap": {
"version": "5.1.3", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==",
"dev": true, "dev": true,
"funding": { "funding": [
"type": "opencollective", {
"url": "https://opencollective.com/bootstrap" "type": "github",
}, "url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
}
],
"peerDependencies": { "peerDependencies": {
"@popperjs/core": "^2.10.2" "@popperjs/core": "^2.11.7"
} }
}, },
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
@ -11116,9 +11122,9 @@
} }
}, },
"@popperjs/core": { "@popperjs/core": {
"version": "2.11.5", "version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true "dev": true
}, },
"@trysound/sax": { "@trysound/sax": {
@ -12037,9 +12043,9 @@
"dev": true "dev": true
}, },
"bootstrap": { "bootstrap": {
"version": "5.1.3", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },

@ -12,7 +12,7 @@
"devDependencies": { "devDependencies": {
"@popperjs/core": "^2.10.2", "@popperjs/core": "^2.10.2",
"axios": "^0.25", "axios": "^0.25",
"bootstrap": "^5.1.3", "bootstrap": "^5.3.0",
"laravel-mix": "^6.0.6", "laravel-mix": "^6.0.6",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"postcss": "^8.1.14", "postcss": "^8.1.14",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -299,7 +299,7 @@ eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function mem
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurrencyInput.vue?vue&type=template&id=22dd315e&scoped=true& */ \"./resources/js/components/CurrencyInput.vue?vue&type=template&id=22dd315e&scoped=true&\");\n/* harmony import */ var _CurrencyInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurrencyInput.vue?vue&type=script&lang=js& */ \"./resources/js/components/CurrencyInput.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _CurrencyInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"22dd315e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/CurrencyInput.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9DdXJyZW5jeUlucHV0LnZ1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdHO0FBQ3ZDO0FBQ0w7OztBQUc1RDtBQUNBLENBQTZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSxpR0FBTTtBQUNSLEVBQUUsMEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvQ3VycmVuY3lJbnB1dC52dWU/MmM4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0N1cnJlbmN5SW5wdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIyZGQzMTVlJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0N1cnJlbmN5SW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DdXJyZW5jeUlucHV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjJkZDMxNWVcIixcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvaG9tZS9mcmVlbWFuL1Byb2plY3RzL2xhcmF2ZWwveFNob3AxMC9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCcyMmRkMzE1ZScpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCcyMmRkMzE1ZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCcyMmRkMzE1ZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQ3VycmVuY3lJbnB1dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjJkZDMxNWUmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMjJkZDMxNWUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInJlc291cmNlcy9qcy9jb21wb25lbnRzL0N1cnJlbmN5SW5wdXQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/components/CurrencyInput.vue\n"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurrencyInput.vue?vue&type=template&id=22dd315e&scoped=true& */ \"./resources/js/components/CurrencyInput.vue?vue&type=template&id=22dd315e&scoped=true&\");\n/* harmony import */ var _CurrencyInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurrencyInput.vue?vue&type=script&lang=js& */ \"./resources/js/components/CurrencyInput.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _CurrencyInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _CurrencyInput_vue_vue_type_template_id_22dd315e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"22dd315e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/CurrencyInput.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9DdXJyZW5jeUlucHV0LnZ1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdHO0FBQ3ZDO0FBQ0w7OztBQUc1RDtBQUNBLENBQTZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSxpR0FBTTtBQUNSLEVBQUUsMEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvQ3VycmVuY3lJbnB1dC52dWU/MmM4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0N1cnJlbmN5SW5wdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIyZGQzMTVlJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0N1cnJlbmN5SW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DdXJyZW5jeUlucHV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjJkZDMxNWVcIixcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvaG9tZS9mcmVlbWFuL1Byb2plY3RzL3hzdGFjay94U2hvcC9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCcyMmRkMzE1ZScpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCcyMmRkMzE1ZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCcyMmRkMzE1ZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQ3VycmVuY3lJbnB1dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjJkZDMxNWUmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMjJkZDMxNWUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInJlc291cmNlcy9qcy9jb21wb25lbnRzL0N1cnJlbmN5SW5wdXQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/components/CurrencyInput.vue\n");
/***/ }), /***/ }),
@ -310,7 +310,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExampleComponent.vue?vue&type=template&id=299e239e& */ \"./resources/js/components/ExampleComponent.vue?vue&type=template&id=299e239e&\");\n/* harmony import */ var _ExampleComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ExampleComponent.vue?vue&type=script&lang=js& */ \"./resources/js/components/ExampleComponent.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _ExampleComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__.render,\n _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/ExampleComponent.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9FeGFtcGxlQ29tcG9uZW50LnZ1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStGO0FBQzNCO0FBQ0w7OztBQUcvRDtBQUNBLENBQTZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx3RkFBTTtBQUNSLEVBQUUsaUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvRXhhbXBsZUNvbXBvbmVudC52dWU/ZTg1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5OWUyMzllJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9FeGFtcGxlQ29tcG9uZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy9sYXJhdmVsL3hTaG9wMTAvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMjk5ZTIzOWUnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMjk5ZTIzOWUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnMjk5ZTIzOWUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5OWUyMzllJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzI5OWUyMzllJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJyZXNvdXJjZXMvanMvY29tcG9uZW50cy9FeGFtcGxlQ29tcG9uZW50LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/components/ExampleComponent.vue\n"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExampleComponent.vue?vue&type=template&id=299e239e& */ \"./resources/js/components/ExampleComponent.vue?vue&type=template&id=299e239e&\");\n/* harmony import */ var _ExampleComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ExampleComponent.vue?vue&type=script&lang=js& */ \"./resources/js/components/ExampleComponent.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _ExampleComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__.render,\n _ExampleComponent_vue_vue_type_template_id_299e239e___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/ExampleComponent.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9FeGFtcGxlQ29tcG9uZW50LnZ1ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStGO0FBQzNCO0FBQ0w7OztBQUcvRDtBQUNBLENBQTZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx3RkFBTTtBQUNSLEVBQUUsaUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvRXhhbXBsZUNvbXBvbmVudC52dWU/ZTg1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5OWUyMzllJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9FeGFtcGxlQ29tcG9uZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy94c3RhY2sveFNob3Avbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMjk5ZTIzOWUnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMjk5ZTIzOWUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnMjk5ZTIzOWUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0V4YW1wbGVDb21wb25lbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI5OWUyMzllJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzI5OWUyMzllJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJyZXNvdXJjZXMvanMvY29tcG9uZW50cy9FeGFtcGxlQ29tcG9uZW50LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/components/ExampleComponent.vue\n");
/***/ }), /***/ }),
@ -321,7 +321,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=template&id=5a696ec8&scoped=true& */ \"./resources/js/components/MetaElement.vue?vue&type=template&id=5a696ec8&scoped=true&\");\n/* harmony import */ var _MetaElement_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=script&lang=js& */ \"./resources/js/components/MetaElement.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _MetaElement_vue_vue_type_style_index_0_id_5a696ec8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=style&index=0&id=5a696ec8&scoped=true&lang=css& */ \"./resources/js/components/MetaElement.vue?vue&type=style&index=0&id=5a696ec8&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _MetaElement_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"5a696ec8\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/MetaElement.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9NZXRhRWxlbWVudC52dWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0c7QUFDdkM7QUFDTDtBQUMxRCxDQUErRjs7O0FBRy9GO0FBQzZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLGlGQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvTWV0YUVsZW1lbnQudnVlP2ZhNjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9NZXRhRWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWE2OTZlYzgmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTWV0YUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9NZXRhRWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vTWV0YUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWE2OTZlYzgmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjVhNjk2ZWM4XCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy9sYXJhdmVsL3hTaG9wMTAvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNWE2OTZlYzgnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNWE2OTZlYzgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNWE2OTZlYzgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL01ldGFFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01YTY5NmVjOCZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1YTY5NmVjOCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvTWV0YUVsZW1lbnQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/components/MetaElement.vue\n"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=template&id=5a696ec8&scoped=true& */ \"./resources/js/components/MetaElement.vue?vue&type=template&id=5a696ec8&scoped=true&\");\n/* harmony import */ var _MetaElement_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=script&lang=js& */ \"./resources/js/components/MetaElement.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _MetaElement_vue_vue_type_style_index_0_id_5a696ec8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetaElement.vue?vue&type=style&index=0&id=5a696ec8&scoped=true&lang=css& */ \"./resources/js/components/MetaElement.vue?vue&type=style&index=0&id=5a696ec8&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _MetaElement_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _MetaElement_vue_vue_type_template_id_5a696ec8_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"5a696ec8\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/MetaElement.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9NZXRhRWxlbWVudC52dWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0c7QUFDdkM7QUFDTDtBQUMxRCxDQUErRjs7O0FBRy9GO0FBQzZGO0FBQzdGLGdCQUFnQix1R0FBVTtBQUMxQixFQUFFLGlGQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSSxLQUFVLEVBQUUsWUFpQmY7QUFDRDtBQUNBLGlFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvTWV0YUVsZW1lbnQudnVlP2ZhNjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9NZXRhRWxlbWVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWE2OTZlYzgmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTWV0YUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9NZXRhRWxlbWVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vTWV0YUVsZW1lbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWE2OTZlYzgmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjVhNjk2ZWM4XCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy94c3RhY2sveFNob3Avbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNWE2OTZlYzgnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNWE2OTZlYzgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNWE2OTZlYzgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL01ldGFFbGVtZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01YTY5NmVjOCZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1YTY5NmVjOCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicmVzb3VyY2VzL2pzL2NvbXBvbmVudHMvTWV0YUVsZW1lbnQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/components/MetaElement.vue\n");
/***/ }), /***/ }),
@ -332,7 +332,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=template&id=7664e32e&scoped=true& */ \"./resources/js/components/MetaPrice.vue?vue&type=template&id=7664e32e&scoped=true&\");\n/* harmony import */ var _MetaPrice_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=script&lang=js& */ \"./resources/js/components/MetaPrice.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _MetaPrice_vue_vue_type_style_index_0_id_7664e32e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=style&index=0&id=7664e32e&scoped=true&lang=css& */ \"./resources/js/components/MetaPrice.vue?vue&type=style&index=0&id=7664e32e&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _MetaPrice_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"7664e32e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/MetaPrice.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9NZXRhUHJpY2UudnVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW9HO0FBQ3ZDO0FBQ0w7QUFDeEQsQ0FBNkY7OztBQUc3RjtBQUM2RjtBQUM3RixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSwrRUFBTTtBQUNSLEVBQUUsNkZBQU07QUFDUixFQUFFLHNHQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSxpRUFBZSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL01ldGFQcmljZS52dWU/NDQ0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL01ldGFQcmljZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTWV0YVByaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vTWV0YVByaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9NZXRhUHJpY2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjc2NjRlMzJlXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy9sYXJhdmVsL3hTaG9wMTAvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNzY2NGUzMmUnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNzY2NGUzMmUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNzY2NGUzMmUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL01ldGFQcmljZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNzY2NGUzMmUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInJlc291cmNlcy9qcy9jb21wb25lbnRzL01ldGFQcmljZS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/components/MetaPrice.vue\n"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=template&id=7664e32e&scoped=true& */ \"./resources/js/components/MetaPrice.vue?vue&type=template&id=7664e32e&scoped=true&\");\n/* harmony import */ var _MetaPrice_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=script&lang=js& */ \"./resources/js/components/MetaPrice.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _MetaPrice_vue_vue_type_style_index_0_id_7664e32e_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetaPrice.vue?vue&type=style&index=0&id=7664e32e&scoped=true&lang=css& */ \"./resources/js/components/MetaPrice.vue?vue&type=style&index=0&id=7664e32e&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _MetaPrice_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _MetaPrice_vue_vue_type_template_id_7664e32e_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"7664e32e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"resources/js/components/MetaPrice.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY29tcG9uZW50cy9NZXRhUHJpY2UudnVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW9HO0FBQ3ZDO0FBQ0w7QUFDeEQsQ0FBNkY7OztBQUc3RjtBQUM2RjtBQUM3RixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSwrRUFBTTtBQUNSLEVBQUUsNkZBQU07QUFDUixFQUFFLHNHQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSxpRUFBZSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jb21wb25lbnRzL01ldGFQcmljZS52dWU/NDQ0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL01ldGFQcmljZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vTWV0YVByaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vTWV0YVByaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9NZXRhUHJpY2UudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjc2NjRlMzJlXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvZnJlZW1hbi9Qcm9qZWN0cy94c3RhY2sveFNob3Avbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNzY2NGUzMmUnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNzY2NGUzMmUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNzY2NGUzMmUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL01ldGFQcmljZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzY2NGUzMmUmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNzY2NGUzMmUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInJlc291cmNlcy9qcy9jb21wb25lbnRzL01ldGFQcmljZS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/components/MetaPrice.vue\n");
/***/ }), /***/ }),

File diff suppressed because one or more lines are too long

@ -379,8 +379,8 @@
"Properties meta": "ویژگی‌های متا", "Properties meta": "ویژگی‌های متا",
"Properties sort": "مرتب سازی ویژگی ها", "Properties sort": "مرتب سازی ویژگی ها",
"Props": "ویژگی متا", "Props": "ویژگی متا",
"Publish now": "منشتر کن", "Publish now": "منتشر کن",
"Published": "منشتر شده", "Published": "منتشر شده",
"Published at": "منتشر شده در", "Published at": "منتشر شده در",
"Quantity": "موجودی", "Quantity": "موجودی",
"Question": "سوال", "Question": "سوال",
@ -569,5 +569,30 @@
"transports deleted successfully": "روش ارسال با موفقیت حذف شد", "transports deleted successfully": "روش ارسال با موفقیت حذف شد",
"updated successfully": "به روز شد", "updated successfully": "به روز شد",
"weight": "وزن", "weight": "وزن",
"!show": "نمایش",
"!sortStore": "ذخیره ترتیب",
"!sort": "دیدن ترتیب",
"!delete": "حذف",
"!destroy": "حذف",
"!bulk": "کار گروهی",
"!store": "ایجاد کردن",
"!update": "ویرایش کردن",
"!manage": "مدیریت",
"!user": "کاربر",
"!statue": "تغییر وضعیت",
"!reply": "پاسخ",
"!updatetitle": "ویرایش عنوان",
"Show list": "دیدن فهرست",
"ACL": "سطح دسترسی",
"image": "تصاویر",
"menu": "منو",
"comment": "دیدگاه‌ها",
"logs": "لاگ کاربران",
"transport": "شیوه ارسال",
"question": "پرسش‌ها",
"ticket": "پشتیبانی",
"attachment": "پیوست",
"contact": "تماس با ما",
"setting": "تنظیمات",
"yesterday": "دیروز" "yesterday": "دیروز"
} }

@ -18,7 +18,7 @@
@import "fix-libs"; @import "fix-libs";
// Bootstrap // Bootstrap
//@import '~bootstrap/scss/bootstrap'; @import '~bootstrap/dist/css/bootstrap.rtl.min.css';
body { body {
@ -223,3 +223,9 @@ nav {
justify-content: space-between; justify-content: space-between;
} }
} }
.rule-title{
border-bottom: 1px solid dodgerblue;
padding: 4px 2rem;
background: rgba(30, 144, 255, 0.26);
}

@ -22,8 +22,8 @@
action="{{route('admin.user.update',$user->id)}}" action="{{route('admin.user.update',$user->id)}}"
@else @else
action="{{route('admin.user.store')}}" action="{{route('admin.user.store')}}"
@endif @endif
> >
@csrf @csrf
@if (isset($user)) @if (isset($user))
@ -55,9 +55,9 @@
</label> </label>
<select name="role" id="" class="form-control @error('role') is-invalid @enderror"> <select name="role" id="" class="form-control @error('role') is-invalid @enderror">
<option value="super-admin" <option value="super-admin"
@if (old('role',$user->role??null) == 'super-admin') selected @endif >{{__("Admin")}} </option> @if (old('role') == 'super-admin') selected @endif >{{__("Admin")}} </option>
<option value="manager" <option value="manager"
@if (old('role',$user->role??null) == 'manager' ) selected @endif >{{__("User")}} </option> @if (old('role',isset($user)?$user->hasRole('manager'):null) == 'manager' ) selected @endif >{{__("User")}} </option>
</select> </select>
</div> </div>
</div> </div>
@ -92,11 +92,87 @@
value="{{old('password_confirmation',$user->password_confirmation??null)}}"/> value="{{old('password_confirmation',$user->password_confirmation??null)}}"/>
</div> </div>
</div> </div>
@if(isset($user) && $user->hasRole('manager'))
<div class="col-12">
<br>
<button class="btn btn-secondary" type="button" data-toggle="collapse"
data-target="#collapseWidthExample" aria-expanded="false"
aria-controls="collapseWidthExample">
{{__("ACL")}}
({{$user->accesses()->count()}})
</button>
<div class="mt-2">
<div class="collapse width" id="collapseWidthExample">
<div class="card card-body">
@foreach($routes as $name => $route)
<div class="switches-holder">
<div class="rule-title">
<div class="form-check form-switch">
<input class="form-check-input main-switch" type="checkbox"
role="switch"
id="main{{$name}}">
<label class="form-check-label"
for="main{{$name}}"> {{__($name)}} </label>
</div>
</div>
<div class="row">
@foreach($route as $r)
<div class="col-md-3">
<div class="px-3 py-2">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox"
role="switch"
name="acl[]"
@if ($user->hasAccess("admin.{$name}.{$r}"))
checked
@endif
value="admin.{{$name}}.{{$r}}"
id="s{{$r}}">
<label class="form-check-label"
for="s{{$r}}">
@if($r == 'all' || $r == 'index' | $r == 'list')
{{__("Show list")}}
@else
{{__('!'.$r)}}
@endif
</label>
</div>
</div>
</div>
@endforeach
</div>
</div>
<hr>
@endforeach
</div>
</div>
</div>
<hr>
</div>
@endif
<div class="col-md-12"> <div class="col-md-12">
<label> &nbsp;</label> <label> &nbsp;</label>
<input name="" type="submit" class="btn btn-primary mt-2" value="{{__('Save')}}"/> <input name="" type="submit" class="btn btn-primary mt-2" value="{{__('Save')}}"/>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
@endsection @endsection
@section('js-content')
<script>
document.querySelectorAll('.main-switch').forEach(function (chk) {
chk.addEventListener('change', function () {
let state = this.checked;
this.closest('.switches-holder').querySelectorAll('.row input[type="checkbox"]').forEach(function (subCheck) {
subCheck.checked = state;
});
});
})
</script>
@endsection

@ -17,9 +17,20 @@ use Illuminate\Support\Facades\Route;
Route::prefix(config('starter-kit.uri'))->name('admin.')->group( Route::prefix(config('starter-kit.uri'))->name('admin.')->group(
function () { function () {
Route::group( Route::group(
['middleware' => ['auth', 'role:super-admin']], ['middleware' => ['auth']],
function () { function () {
Route::prefix('users')->name('user.')->group(
function () {
Route::get('/all', [\App\Http\Controllers\Admin\UserController::class,'index'])->name('all');
Route::get('/delete/{user}', [\App\Http\Controllers\Admin\UserController::class,'destroy'])->name('delete');
Route::get('/create', [\App\Http\Controllers\Admin\UserController::class,'create'])->name('create');
Route::post('/store', [\App\Http\Controllers\Admin\UserController::class,'store'])->name('store');
Route::get('/edit/{user}', [\App\Http\Controllers\Admin\UserController::class,'edit'])->name('edit');
Route::post('/update/{user}', [\App\Http\Controllers\Admin\UserController::class,'update'])->name('update');
});
Route::prefix('cat')->name('cat.')->group( Route::prefix('cat')->name('cat.')->group(
function () { function () {
Route::get('', [\App\Http\Controllers\Admin\CatController::class, "index"])->name('index'); Route::get('', [\App\Http\Controllers\Admin\CatController::class, "index"])->name('index');

Loading…
Cancel
Save