diff --git a/.gitignore b/.gitignore
index 7a47d39bab..5c4cbe56fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,7 @@ storage/ssl
storage/api/*
storage/data-sources/logs/*
storage/decision-tables/*
+storage/saved_search_advanced_configuration/*
npm.sh
laravel-echo-server.lock
public/.htaccess
@@ -51,4 +52,7 @@ devhub/pm-font/dist
test-db-snapshot.db
snapshot_*.db
storage/transitions
-.envrc
\ No newline at end of file
+.envrc
+**/caddy
+frankenphp
+frankenphp-worker.php
diff --git a/ProcessMaker/Http/Controllers/Api/TaskController.php b/ProcessMaker/Http/Controllers/Api/TaskController.php
index 28844fe451..965c7e19eb 100644
--- a/ProcessMaker/Http/Controllers/Api/TaskController.php
+++ b/ProcessMaker/Http/Controllers/Api/TaskController.php
@@ -16,6 +16,7 @@
use ProcessMaker\Events\ActivityReassignment;
use ProcessMaker\Facades\WorkflowManager;
use ProcessMaker\Filters\Filter;
+use ProcessMaker\Http\Controllers\Api\V1_1\TaskController as V1_1TaskController;
use ProcessMaker\Http\Controllers\Controller;
use ProcessMaker\Http\Resources\ApiResource;
use ProcessMaker\Http\Resources\Task as Resource;
@@ -126,6 +127,9 @@ class TaskController extends Controller
*/
public function index(Request $request, $getTotal = false, User $user = null)
{
+ if (config('app.processmaker_optimized_tasks_enabled')) {
+ return (new V1_1TaskController())->indexOptimized($request, $getTotal, $user);
+ }
// If a specific user is specified, use it; otherwise use the authorized user
// This is necessary to produce accurate counts for Saved Searches
if (!$user) {
diff --git a/ProcessMaker/Http/Controllers/Api/V1_1/TaskController.php b/ProcessMaker/Http/Controllers/Api/V1_1/TaskController.php
index 334c109077..7d0f388ab6 100644
--- a/ProcessMaker/Http/Controllers/Api/V1_1/TaskController.php
+++ b/ProcessMaker/Http/Controllers/Api/V1_1/TaskController.php
@@ -4,20 +4,33 @@
namespace ProcessMaker\Http\Controllers\Api\V1_1;
+use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Log;
use ProcessMaker\Cache\Screens\ScreenCacheFactory;
use ProcessMaker\Http\Controllers\Controller;
+use ProcessMaker\Http\Resources\TaskCollection;
use ProcessMaker\Http\Resources\V1_1\TaskInterstitialResource;
use ProcessMaker\Http\Resources\V1_1\TaskResource;
use ProcessMaker\Http\Resources\V1_1\TaskScreen;
use ProcessMaker\Models\ProcessRequest;
use ProcessMaker\Models\ProcessRequestToken;
+use ProcessMaker\Models\User;
use ProcessMaker\ProcessTranslations\TranslationManager;
+use ProcessMaker\Traits\TaskControllerIndexMethods;
class TaskController extends Controller
{
+ use TaskControllerIndexMethods;
+
+ public $doNotSanitize = [
+ 'data',
+ 'pmql',
+ ];
+
protected $defaultFields = [
'id',
'element_id',
@@ -29,6 +42,56 @@ class TaskController extends Controller
'process_request_id',
];
+ public function indexOptimized(Request $request, $getTotal = false, ?User $user = null)
+ {
+ if (!$user) {
+ $user = Auth::user();
+ }
+
+ $request->merge(['optimized' => true]);
+
+ $query = $this->indexOptimizedBaseQuery($request);
+ $this->applyIndexFieldSelection($query, $request);
+ $this->applyFilters($query, $request);
+ $this->excludeNonVisibleTasks($query, $request);
+ $this->applyColumnOrdering($query, $request);
+ $this->applyStatusFilter($query, $request);
+
+ if ($request->input('processesIManage') === 'true') {
+ $this->applyProcessManager($query, $user, $request);
+ } else {
+ $this->applyForCurrentUser($query, $user);
+ }
+
+ $this->applyPmql($query, $request, $user);
+ $this->applyAdvancedFilter($query, $request);
+ $query->overdue($request->input('overdue'));
+
+ if ($getTotal === true) {
+ return $query->count();
+ }
+
+ try {
+ $response = $query->paginate($request->input('per_page', 10));
+ } catch (QueryException $e) {
+ return $this->handleQueryException($e);
+ }
+
+ $response = $this->applyUserFilter($response, $request, $user);
+
+ if ($response->total() > 0 && $request->input('processesIManage') === 'true') {
+ $this->enableUserManager($user);
+ }
+
+ $inOverdueQuery = ProcessRequestToken::query()
+ ->whereIn('id', $response->pluck('id'))
+ ->where('due_at', '<', Carbon::now());
+
+ $response->inOverdue = $inOverdueQuery->count();
+
+ return new TaskCollection($response);
+ }
+
/**
* Display a listing of the resource.
*/
@@ -151,4 +214,23 @@ public function showInterstitial($taskId)
return $response;
}
+
+ private function handleQueryException(QueryException $e)
+ {
+ $regex = '~Column not found: 1054 Unknown column \'(.*?)\' in \'where clause\'~';
+
+ preg_match($regex, $e->getMessage(), $m);
+
+ $message = __('PMQL Is Invalid.');
+
+ if (count($m) > 1) {
+ $message .= ' ' . __('Column not found: ') . '"' . $m[1] . '"';
+ }
+
+ \Log::error($e->getMessage());
+
+ return response([
+ 'message' => $message,
+ ], 422);
+ }
}
diff --git a/ProcessMaker/Http/Controllers/TaskController.php b/ProcessMaker/Http/Controllers/TaskController.php
index 213d9374ab..afdd6d3441 100755
--- a/ProcessMaker/Http/Controllers/TaskController.php
+++ b/ProcessMaker/Http/Controllers/TaskController.php
@@ -108,13 +108,16 @@ public function edit(ProcessRequestToken $task, string $preview = '')
{
$task = $task->loadTokenInstance();
$dataManager = new DataManager();
- $userHasComments = Comment::where('commentable_type', ProcessRequestToken::class)
- ->where('commentable_id', $task->id)
- ->where('body', 'like', '%{{' . \Auth::user()->id . '}}%')
- ->count() > 0;
- if (!\Auth::user()->can('update', $task) && !$userHasComments) {
- $this->authorize('update', $task);
+ if (!\Auth::user()->can('update', $task)) {
+ $userHasComments = Comment::where('commentable_type', ProcessRequestToken::class)
+ ->where('commentable_id', $task->id)
+ ->where('body', 'like', '%{{' . \Auth::user()->id . '}}%')
+ ->count() > 0;
+
+ if (!$userHasComments) {
+ $this->authorize('update', $task);
+ }
}
//Mark notification as read
@@ -178,7 +181,9 @@ public function edit(ProcessRequestToken $task, string $preview = '')
]);
}
- UserResourceView::setViewed(Auth::user(), $task);
+ dispatch(function () use ($task) {
+ UserResourceView::setViewed(Auth::user(), $task);
+ })->afterResponse();
$currentUser = Auth::user()->only([
'id',
'username',
@@ -189,7 +194,8 @@ public function edit(ProcessRequestToken $task, string $preview = '')
'timezone',
'datetime_format',
]);
- $userConfiguration = (new UserConfigurationController())->index();
+ //$userConfiguration = (new UserConfigurationController())->index();
+ $userConfiguration = app(UserConfigurationController::class)->index();
$hitlEnabled = config('smart-extract.hitl_enabled', false) && $isSmartExtractTask;
// Build the iframe source
@@ -209,9 +215,11 @@ public function edit(ProcessRequestToken $task, string $preview = '')
$iframeSrc = $dashboardUrl . '?' . $queryParams;
}
}
+ $canUpdateTask = Auth::user()->can('update', $task);
return view('tasks.edit', [
'task' => $task,
+ 'canUpdateTask' => $canUpdateTask,
'dueLabels' => self::$dueLabels,
'manager' => $manager,
'submitUrl' => $submitUrl,
diff --git a/ProcessMaker/Http/Middleware/BrowserCache.php b/ProcessMaker/Http/Middleware/BrowserCache.php
index 4f632f86f2..39ebe90065 100644
--- a/ProcessMaker/Http/Middleware/BrowserCache.php
+++ b/ProcessMaker/Http/Middleware/BrowserCache.php
@@ -23,6 +23,10 @@ public function handle($request, Closure $next)
return $response;
}
+ if ($response->headers->has('ETag')) {
+ return $response;
+ }
+
$response->header('pragma', 'no-cache');
$response->header('Cache-Control', 'no-store');
diff --git a/ProcessMaker/Http/Middleware/Etag/TasksPageEtag.php b/ProcessMaker/Http/Middleware/Etag/TasksPageEtag.php
new file mode 100644
index 0000000000..4a43e3ed4d
--- /dev/null
+++ b/ProcessMaker/Http/Middleware/Etag/TasksPageEtag.php
@@ -0,0 +1,77 @@
+isMethod('GET') && !$request->isMethod('HEAD'))) {
+ return $next($request);
+ }
+
+ $etag = $this->tasksPageEtag->getEtag($request);
+
+ if ($this->buildResponseWithEtag($etag)->isNotModified($request)) {
+ return $this->withPrivateCacheHeaders($this->buildNotModifiedResponse($etag, $request));
+ }
+
+ $response = $next($request);
+ $response->setEtag($etag);
+
+ return $this->withPrivateCacheHeaders($response);
+ }
+
+ /**
+ * Build a framework-compatible 304 response for a matched Tasks page ETag.
+ */
+ private function buildNotModifiedResponse(string $etag, Request $request): Response
+ {
+ $response = $this->buildResponseWithEtag($etag);
+ $response->isNotModified($request);
+
+ return $response;
+ }
+
+ /**
+ * Create a response carrying the Tasks page validator.
+ *
+ * Weak ETags are used because the HTML may be transformed by gzip while the
+ * rendered representation remains equivalent for browser revalidation.
+ */
+ private function buildResponseWithEtag(string $etag): Response
+ {
+ $response = new Response();
+ $response->setEtag($etag, true);
+
+ return $response;
+ }
+
+ /**
+ * Apply browser-cache headers that allow private conditional revalidation.
+ */
+ private function withPrivateCacheHeaders(Response $response): Response
+ {
+ $response->headers->set('Cache-Control', 'private, must-revalidate');
+ $response->headers->remove('Pragma');
+ $response->headers->remove('Expires');
+
+ return $response;
+ }
+}
diff --git a/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php b/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php
index 96ade2bded..2a15e84a6d 100644
--- a/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php
+++ b/ProcessMaker/Http/Middleware/ServerTimingMiddleware.php
@@ -28,6 +28,8 @@ public function handle(Request $request, Closure $next): Response
return $next($request);
}
+ ProcessMakerServiceProvider::beginRequestTiming();
+
// Start time for controller execution
$startController = microtime(true);
diff --git a/ProcessMaker/Http/Resources/Caching/TasksPageEtag.php b/ProcessMaker/Http/Resources/Caching/TasksPageEtag.php
new file mode 100644
index 0000000000..298f8d0b81
--- /dev/null
+++ b/ProcessMaker/Http/Resources/Caching/TasksPageEtag.php
@@ -0,0 +1,373 @@
+hashAlgorithm(), json_encode($this->payload($request))) . '"';
+ }
+
+ /**
+ * Build the complete content-affecting context used to validate the page.
+ *
+ * Volatile values such as CSRF tokens, session ids, and randomized asset URLs are
+ * intentionally excluded because they would prevent useful conditional requests.
+ */
+ private function payload(Request $request): array
+ {
+ $user = $request->user();
+
+ return [
+ 'route' => [
+ 'name' => $request->route()?->getName(),
+ 'path' => $request->path(),
+ 'router' => $request->route('router'),
+ 'query' => $this->sorted($request->query()),
+ ],
+ 'user' => $this->userPayload($user),
+ 'tenant' => $this->tenantPayload(),
+ 'permissions_v' => $this->permissionsVersion($user),
+ 'session_content' => [
+ 'alert' => session('_alert'),
+ 'rememberme' => session('rememberme'),
+ ],
+ 'saved_search_v' => $this->savedSearchPayload($user),
+ 'locale' => app()->getLocale(),
+ 'task_context' => [
+ 'user_filter' => $user ? SaveSession::getConfigFilter('taskFilter', $user) : null,
+ 'user_configuration' => $this->userConfigurationPayload($user),
+ 'task_drafts_enabled' => TaskDraft::draftsEnabled(),
+ ],
+ 'features_v' => $this->featuresPayload(),
+ 'packages_v' => $this->packagesPayload(),
+ ];
+ }
+
+ /**
+ * Capture user fields emitted into the layout or used by Tasks page decisions.
+ */
+ private function userPayload(?User $user): ?array
+ {
+ if (!$user) {
+ return null;
+ }
+
+ return [
+ 'id' => $user->id,
+ 'uuid' => $user->uuid,
+ 'updated_at' => $this->dateValue($user->updated_at),
+ 'is_administrator' => $user->is_administrator,
+ 'status' => $user->status,
+ 'fullname' => $user->fullname,
+ 'avatar' => $user->avatar,
+ 'datetime_format' => $user->datetime_format,
+ 'timezone' => $user->timezone,
+ 'language' => $user->language,
+ ];
+ }
+
+ /**
+ * Include tenant identity because tenant config and assets can change the page shell.
+ */
+ private function tenantPayload(): ?array
+ {
+ $tenant = app()->bound('currentTenant') ? app('currentTenant') : null;
+
+ if (!$tenant) {
+ return null;
+ }
+
+ return [
+ 'id' => $tenant->id ?? null,
+ 'updated_at' => $this->dateValue($tenant->updated_at ?? null),
+ ];
+ }
+
+ /**
+ * Version the effective permission context used by Blade and frontend props.
+ *
+ * The full permission list can be expensive to rebuild, so this uses the session
+ * snapshot plus lightweight assignment/version markers that are enough to
+ * invalidate when direct user or direct group permission assignments change.
+ */
+ private function permissionsVersion(?User $user): ?array
+ {
+ if (!$user) {
+ return null;
+ }
+
+ $directGroups = $this->directGroupPayload($user);
+
+ return [
+ 'is_administrator' => $user->is_administrator,
+ 'session_permissions' => $this->sessionPermissions(),
+ 'permissions_table' => $this->tableVersion('permissions'),
+ 'direct_user_permissions' => $this->assignablePermissionVersion(User::class, [$user->id]),
+ 'direct_groups' => $directGroups['ids'],
+ 'direct_group_memberships' => $directGroups['version'],
+ 'direct_group_permissions' => $this->assignablePermissionVersion(
+ Group::class,
+ $directGroups['ids']
+ ),
+ ];
+ }
+
+ /**
+ * Include the current session permission snapshot used by legacy permission checks.
+ */
+ private function sessionPermissions(): array
+ {
+ $permissions = session('permissions', []);
+
+ if (!is_array($permissions)) {
+ return [];
+ }
+
+ sort($permissions);
+
+ return $permissions;
+ }
+
+ /**
+ * Include the default Tasks saved search when the Saved Search package is installed.
+ */
+ private function savedSearchPayload(?User $user): ?array
+ {
+ $class = 'ProcessMaker\\Package\\SavedSearch\\Models\\SavedSearch';
+ if (!$user || !class_exists($class)) {
+ return null;
+ }
+
+ $savedSearch = $class::firstSystemSearchFor($user, $class::KEY_TASKS);
+ if (!$savedSearch) {
+ return null;
+ }
+
+ return [
+ 'id' => $savedSearch->id,
+ 'updated_at' => $this->dateValue($savedSearch->updated_at),
+ 'columns_hash' => $this->hashValue($savedSearch->columns),
+ ];
+ }
+
+ /**
+ * Capture the user UI configuration rendered into Tasks page props.
+ */
+ private function userConfigurationPayload(?User $user): array
+ {
+ if (!$user) {
+ return UserConfigurationController::DEFAULT_USER_CONFIGURATION;
+ }
+
+ $configuration = UserConfiguration::select('updated_at', 'ui_configuration')
+ ->where('user_id', $user->id)
+ ->first();
+ if (!$configuration) {
+ return [
+ 'updated_at' => null,
+ 'ui_configuration_hash' => $this->hashValue(UserConfigurationController::DEFAULT_USER_CONFIGURATION),
+ ];
+ }
+
+ return [
+ 'updated_at' => $this->dateValue($configuration->updated_at),
+ 'ui_configuration_hash' => $this->hashValue($configuration->ui_configuration),
+ ];
+ }
+
+ /**
+ * Return direct group ids and their version marker without loading group models.
+ */
+ private function directGroupPayload(User $user): array
+ {
+ $memberships = DB::table('group_members')
+ ->where('member_type', User::class)
+ ->where('member_id', $user->id)
+ ->orderBy('group_id')
+ ->get(['group_id', 'updated_at']);
+
+ return [
+ 'ids' => $memberships->pluck('group_id')->all(),
+ 'version' => [
+ 'count' => $memberships->count(),
+ 'updated_at' => $this->dateValue($memberships->max('updated_at')),
+ ],
+ ];
+ }
+
+ /**
+ * Hash direct permission assignment ids for an assignable type.
+ */
+ private function assignablePermissionVersion(string $assignableType, array $assignableIds): array
+ {
+ if (empty($assignableIds)) {
+ return [
+ 'count' => 0,
+ 'permission_ids_hash' => $this->hashValue([]),
+ ];
+ }
+
+ $permissionIds = DB::table('assignables')
+ ->where('assignable_type', $assignableType)
+ ->whereIn('assignable_id', $assignableIds)
+ ->orderBy('permission_id')
+ ->pluck('permission_id')
+ ->all();
+
+ return [
+ 'count' => count($permissionIds),
+ 'permission_ids_hash' => $this->hashValue($permissionIds),
+ ];
+ }
+
+ /**
+ * Version a table with a compact count and updated_at marker.
+ */
+ private function tableVersion(string $table): array
+ {
+ $version = DB::table($table)
+ ->selectRaw('COUNT(*) as count, MAX(updated_at) as updated_at')
+ ->first();
+
+ return [
+ 'count' => (int) ($version->count ?? 0),
+ 'updated_at' => $this->dateValue($version->updated_at ?? null),
+ ];
+ }
+
+ /**
+ * Hash structured values before placing them in the ETag payload.
+ */
+ private function hashValue($value): string
+ {
+ return hash($this->hashAlgorithm(), json_encode($value));
+ }
+
+ /**
+ * Capture selected config values and frontend asset versions used by the page shell.
+ */
+ private function featuresPayload(): array
+ {
+ $features = [];
+ foreach (self::FEATURE_CONFIG_KEYS as $key) {
+ Arr::set($features, $key, config($key));
+ }
+
+ $features['mix_manifest'] = $this->fileVersion(public_path('mix-manifest.json'));
+
+ return $features;
+ }
+
+ /**
+ * Version installed package state so package-provided UI changes invalidate the page.
+ */
+ private function packagesPayload(): array
+ {
+ $packages = app(PackageManager::class)->listPackages();
+ sort($packages);
+
+ $manifest = app(PackageManifest::class);
+
+ return [
+ 'app_version' => $this->appVersion(),
+ 'registered' => $packages,
+ 'manifest' => method_exists($manifest, 'list') ? $manifest->list() : $manifest->providers(),
+ 'composer_lock' => $this->fileVersion(base_path('composer.lock')),
+ ];
+ }
+
+ /**
+ * Read the ProcessMaker application version from composer metadata.
+ */
+ private function appVersion(): ?string
+ {
+ $composer = json_decode(File::get(base_path('composer.json')), true);
+
+ return $composer['version'] ?? null;
+ }
+
+ /**
+ * Return a cheap version marker for files that affect rendered assets or packages.
+ */
+ private function fileVersion(string $path): ?array
+ {
+ if (!File::exists($path)) {
+ return null;
+ }
+
+ return [
+ 'mtime' => File::lastModified($path),
+ 'hash' => hash_file($this->hashAlgorithm(), $path),
+ ];
+ }
+
+ /**
+ * Prefer xxh128 when available and fall back for older runtimes.
+ */
+ private function hashAlgorithm(): string
+ {
+ return in_array('xxh128', hash_algos(), true) ? 'xxh128' : 'sha256';
+ }
+
+ /**
+ * Normalize nullable date values for deterministic JSON hashing.
+ */
+ private function dateValue($value): ?string
+ {
+ return $value ? (string) $value : null;
+ }
+
+ /**
+ * Recursively sort arrays so query-string order does not change the ETag.
+ */
+ private function sorted(array $value): array
+ {
+ ksort($value);
+
+ foreach ($value as $key => $item) {
+ if (is_array($item)) {
+ $value[$key] = $this->sorted($item);
+ }
+ }
+
+ return $value;
+ }
+}
diff --git a/ProcessMaker/Managers/TaskSchedulerManager.php b/ProcessMaker/Managers/TaskSchedulerManager.php
index 10e26e4fd4..a8c4763ca0 100644
--- a/ProcessMaker/Managers/TaskSchedulerManager.php
+++ b/ProcessMaker/Managers/TaskSchedulerManager.php
@@ -12,6 +12,7 @@
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
+use InvalidArgumentException;
use Illuminate\Support\Str;
use PDOException;
use ProcessMaker\Facades\WorkflowManager;
@@ -203,10 +204,11 @@ private function processTaskWithAtomicClaim(ScheduledTask $task, DateTime $today
{
try {
$config = json_decode($task->configuration);
- $lastExecution = new DateTime($task->last_execution, new DateTimeZone('UTC'));
- if ($lastExecution === null) {
- return;
+ // SCHEDULED_JOB rows use last_execution = null until first run; BPMN timers always set last_execution.
+ $lastExecution = null;
+ if ($task->last_execution !== null && $task->last_execution !== '') {
+ $lastExecution = new DateTime($task->last_execution, new DateTimeZone('UTC'));
}
$owner = $task->processRequestToken ?: $task->processRequest ?: $task->process;
@@ -888,6 +890,9 @@ public function scheduleCycle(
*/
public function scheduleCycleJob($interval, array $config): ScheduledTask
{
+ if (!isset($config['job'])) {
+ throw new InvalidArgumentException('$config["job"] is required');
+ }
$configuration = [
'type' => 'TimeCycle',
'interval' => $interval,
@@ -904,6 +909,36 @@ public function scheduleCycleJob($interval, array $config): ScheduledTask
return $scheduledTask;
}
+ /**
+ * Schedule a job for a specific datetime
+ *
+ * @param string $datetime in ISO-8601 format
+ * @param array $config configuration
+ *
+ * @return ScheduledTask
+ */
+ public function scheduleDateJob($datetime, array $config): ScheduledTask
+ {
+ if (!isset($config['job'])) {
+ throw new InvalidArgumentException('$config["job"] is required');
+ }
+
+ // Must use "interval" so nextDate(TimeDate) picks up the target datetime (same shape as BPMN timer tasks).
+ $configuration = [
+ 'type' => 'TimeDate',
+ ...$config,
+ 'interval' => $datetime,
+ ];
+
+ $scheduledTask = new ScheduledTask();
+ $scheduledTask->configuration = json_encode($configuration);
+ $scheduledTask->type = 'SCHEDULED_JOB';
+ $scheduledTask->last_execution = null;
+ $scheduledTask->save();
+
+ return $scheduledTask;
+ }
+
/**
* Schedule a job execution after a time duration for the given BPMN element,
* event definition and an optional Token object
diff --git a/ProcessMaker/Providers/ProcessMakerServiceProvider.php b/ProcessMaker/Providers/ProcessMakerServiceProvider.php
index c19ded9d5f..72c71c2a46 100644
--- a/ProcessMaker/Providers/ProcessMakerServiceProvider.php
+++ b/ProcessMaker/Providers/ProcessMakerServiceProvider.php
@@ -508,6 +508,14 @@ public static function getBootTime(): ?float
return self::$bootTime;
}
+ /**
+ * Reset per-request query timing metrics.
+ */
+ public static function beginRequestTiming(): void
+ {
+ self::$queryTime = 0;
+ }
+
/**
* Get the query time for the request.
*
diff --git a/ProcessMaker/Repositories/SettingsConfigRepository.php b/ProcessMaker/Repositories/SettingsConfigRepository.php
index 2f4cf6e0b2..f2707faf2f 100644
--- a/ProcessMaker/Repositories/SettingsConfigRepository.php
+++ b/ProcessMaker/Repositories/SettingsConfigRepository.php
@@ -39,7 +39,7 @@ public function get($key, $default = null)
if ($key === 'session.lifetime') {
$settingValue = $this->getFromSettings($key);
- return $settingValue ?? $default;
+ return $settingValue ?: Arr::get($this->items, $key) ?: $default ?: 120;
}
if (Arr::has($this->items, $key)) {
diff --git a/ProcessMaker/Traits/HideSystemResources.php b/ProcessMaker/Traits/HideSystemResources.php
index 6428fb930c..bd42d589e7 100644
--- a/ProcessMaker/Traits/HideSystemResources.php
+++ b/ProcessMaker/Traits/HideSystemResources.php
@@ -3,6 +3,7 @@
namespace ProcessMaker\Traits;
use Facades\ProcessMaker\Helpers\CachedSchema;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
use ProcessMaker\Models\Process;
@@ -57,7 +58,7 @@ public function scopeSystem($query)
}
}
- public function scopeNonSystem($query)
+ public function scopeNonSystem($query, $optimized = false)
{
if (substr(static::class, -8) === 'Category') {
return $query->where('is_system', false);
@@ -105,9 +106,25 @@ public function scopeNonSystem($query)
} elseif (static::class == User::class) {
return $query->where('is_system', false);
} elseif (static::class === ProcessRequestToken::class) {
- return $query->whereHas('process.categories', function ($query) {
- $query->where('is_system', false);
- });
+ // Direct EXISTS avoids Process global scopes (e.g. published/process_versions).
+ if (!$optimized) {
+ return $query->whereHas('process.categories', function ($query) {
+ $query->where('is_system', false);
+ });
+ } else {
+ return $query->whereExists(function ($sub) {
+ $sub->select(DB::raw(1))
+ ->from('processes')
+ ->join('category_assignments', function ($join) {
+ $join->on('category_assignments.assignable_id', '=', 'processes.id')
+ ->where('category_assignments.assignable_type', '=', Process::class);
+ })
+ ->join('process_categories', 'process_categories.id', '=', 'category_assignments.category_id')
+ ->whereColumn('processes.id', 'process_request_tokens.process_id')
+ ->whereNull('processes.deleted_at')
+ ->where('process_categories.is_system', false);
+ });
+ }
} elseif (static::class === ProcessTemplates::class) {
return $query->where('process_templates.is_system', false)
->when(CachedSchema::hasColumn('process_templates', 'asset_type'), function ($query) {
diff --git a/ProcessMaker/Traits/TaskControllerIndexMethods.php b/ProcessMaker/Traits/TaskControllerIndexMethods.php
index dcfa97bea0..febc176320 100644
--- a/ProcessMaker/Traits/TaskControllerIndexMethods.php
+++ b/ProcessMaker/Traits/TaskControllerIndexMethods.php
@@ -21,6 +21,21 @@ trait TaskControllerIndexMethods
{
private const SELF_SERVICE_STATUS = 'self service';
+ private const INDEX_JSON_COLUMNS = ['data', 'self_service_groups', 'token_properties'];
+
+ private const INDEX_COLUMN_FIELD_MAP = [
+ 'case_number' => ['process_request_id'],
+ 'case_title' => ['process_request_id'],
+ 'is_priority' => ['is_priority'],
+ 'element_name' => ['element_name', 'element_type'],
+ 'status' => ['status', 'is_self_service', 'due_at'],
+ 'due_at' => ['due_at'],
+ 'completed_at' => ['completed_at'],
+ 'process' => ['process_id'],
+ 'assignee' => ['user_id', 'is_self_service'],
+ 'request' => ['process_request_id', 'process_id'],
+ ];
+
private function indexBaseQuery($request)
{
// Parse the includes parameter
@@ -62,6 +77,122 @@ private function indexBaseQuery($request)
return $query;
}
+ private function indexOptimizedBaseQuery($request)
+ {
+ $includes = $request->has('include')
+ ? array_map('trim', explode(',', $request->input('include')))
+ : [];
+ $includeData = in_array('data', $includes, true);
+
+ $query = ProcessRequestToken::query();
+ $with = [];
+
+ if (in_array('processRequest', $includes, true)) {
+ $processRequestColumns = [
+ 'id',
+ 'uuid',
+ 'case_number',
+ 'case_title',
+ 'name',
+ 'status',
+ 'user_id',
+ 'process_id',
+ 'parent_id',
+ ];
+ $with['processRequest'] = function ($q) use ($includeData, $processRequestColumns) {
+ $q->select($processRequestColumns);
+ if (!$includeData) {
+ $q->exclude(['data']);
+ }
+ };
+ }
+
+ if (in_array('process', $includes, true)) {
+ $with['process'] = fn ($q) => $q->select(['id', 'name', 'uuid']);
+ }
+
+ if (in_array('user', $includes, true)) {
+ $with['user'] = fn ($q) => $q->select(['id', 'firstname', 'lastname', 'avatar', 'status']);
+ }
+
+ if (in_array('draft', $includes, true)) {
+ $with['draft'] = fn ($q) => $q->select(['id', 'uuid', 'process_request_token_id']);
+ }
+
+ $handledIncludes = ['data', 'processRequest', 'process', 'user', 'draft', 'processRequest.process'];
+ $additionalIncludes = array_values(array_diff($includes, $handledIncludes));
+
+ if (!empty($with)) {
+ $query->with($with);
+ }
+
+ if (!empty($additionalIncludes)) {
+ $query->with($additionalIncludes);
+ }
+
+ return $query;
+ }
+
+ private function resolveIndexFields($request): ?array
+ {
+ $fields = $request->input('fields', '');
+ if ($fields) {
+ $selectedFields = array_filter(array_map('trim', explode(',', $fields)));
+ } else {
+ $columns = $request->input('columns', '');
+ if (!$columns) {
+ return null;
+ }
+ $selectedFields = $this->mapColumnsToFields(array_map('trim', explode(',', $columns)));
+ }
+
+ if (!in_array('id', $selectedFields, true)) {
+ $selectedFields[] = 'id';
+ }
+
+ return array_values(array_unique($selectedFields));
+ }
+
+ private function mapColumnsToFields(array $columns): array
+ {
+ $fields = [];
+
+ foreach ($columns as $column) {
+ if (str_starts_with($column, 'data.')) {
+ continue;
+ }
+
+ if (isset(self::INDEX_COLUMN_FIELD_MAP[$column])) {
+ $fields = array_merge($fields, self::INDEX_COLUMN_FIELD_MAP[$column]);
+ continue;
+ }
+
+ if (in_array($column, ['draft', 'actions'], true)) {
+ continue;
+ }
+
+ $fields[] = $column;
+ }
+
+ return array_values(array_unique(array_merge(
+ $fields,
+ ['id', 'process_id', 'process_request_id']
+ )));
+ }
+
+ private function applyIndexFieldSelection($query, $request): void
+ {
+ $selectedFields = $this->resolveIndexFields($request);
+
+ if ($selectedFields !== null) {
+ $query->select($selectedFields);
+
+ return;
+ }
+
+ $query->exclude(self::INDEX_JSON_COLUMNS);
+ }
+
private function applyFilters($query, $request)
{
$filter = $request->input('filter', '');
@@ -160,6 +291,7 @@ private function addTaskData($response)
private function excludeNonVisibleTasks($query, $request)
{
$nonSystem = filter_var($request->input('non_system'), FILTER_VALIDATE_BOOLEAN);
+ $optimized = filter_var($request->input('optimized'), FILTER_VALIDATE_BOOLEAN);
$allTasks = filter_var($request->input('all_tasks'), FILTER_VALIDATE_BOOLEAN);
$hitlEnabled = filter_var(config('smart-extract.hitl_enabled'), FILTER_VALIDATE_BOOLEAN);
$includeScreen = filter_var($request->input('includeScreen'), FILTER_VALIDATE_BOOLEAN);
@@ -177,15 +309,15 @@ private function excludeNonVisibleTasks($query, $request)
});
});
})
- ->when($nonSystem, function ($query) use ($hitlEnabled) {
+ ->when($nonSystem, function ($query) use ($hitlEnabled, $optimized) {
if (!$hitlEnabled) {
- $query->nonSystem();
+ $query->nonSystem($optimized);
return;
}
- $query->where(function ($query) {
- $query->nonSystem();
+ $query->where(function ($query) use ($optimized) {
+ $query->nonSystem($optimized);
$query->orWhere(function ($query) {
$query->where('element_type', '=', 'task');
$query->where('element_name', '=', 'Manual Document Review');
diff --git a/bootstrap/app.php b/bootstrap/app.php
index d4f47576d4..7f9b9519a8 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -114,6 +114,7 @@
'admin' => ProcessMakerMiddleware\IsAdmin::class,
'manager' => ProcessMakerMiddleware\IsManager::class,
'etag' => ProcessMakerMiddleware\Etag\HandleEtag::class,
+ 'tasks-page-etag' => ProcessMakerMiddleware\Etag\TasksPageEtag::class,
'file_size_check' => ProcessMakerMiddleware\FileSizeCheck::class,
'auth.basic' => Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'throttle' => Illuminate\Routing\Middleware\ThrottleRequests::class,
diff --git a/composer.json b/composer.json
index d7d1c07728..32122e8ab2 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
{
"name": "processmaker/processmaker",
- "version": "2026.12.1-RC1",
+ "version": "2026.12.0+performance.2",
"description": "BPM PHP Software",
"keywords": [
"php bpm processmaker"
@@ -25,8 +25,9 @@
"guzzlehttp/psr7": "^2.12.3",
"igaster/laravel-theme": "^2.0",
"jenssegers/agent": "^2.6",
- "laravel/framework": "^13.13",
- "laravel/horizon": "^5.47",
+ "laravel/framework": "^13.0",
+ "laravel/horizon": "^5.45",
+ "laravel/octane": "^2.17",
"laravel/pail": "^1.2",
"laravel/passport": "^13.7",
"laravel/scout": "^11.1",
@@ -113,7 +114,7 @@
"Gmail"
],
"processmaker": {
- "build": "fbb6d999",
+ "build": "183d652c",
"cicd-enabled": true,
"custom": {
"package-ellucian-ethos": "1.19.10",
@@ -176,7 +177,7 @@
"package-product-analytics": "1.5.11",
"package-projects": "1.12.9",
"package-rpa": "1.1.2",
- "package-savedsearch": "1.43.13",
+ "package-savedsearch": "1.43.12-RC1",
"package-slideshow": "1.4.3",
"package-smart-extract": "1.0.0",
"package-signature": "1.15.5",
diff --git a/composer.lock b/composer.lock
index db1809dfb8..1ef5d1767f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "7be8d7f06a110182a85b4b60ec55e302",
+ "content-hash": "76500b7c1afb221780da95028f4e4fd2",
"packages": [
{
"name": "babenkoivan/elastic-adapter",
@@ -2745,6 +2745,94 @@
],
"time": "2020-06-13T08:05:20+00:00"
},
+ {
+ "name": "laminas/laminas-diactoros",
+ "version": "3.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-diactoros.git",
+ "reference": "60c182916b2749480895601649563970f3f12ec4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4",
+ "reference": "60c182916b2749480895601649563970f3f12ec4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
+ "psr/http-factory": "^1.1",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "conflict": {
+ "amphp/amp": "<2.6.4"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "^1.0",
+ "psr/http-message-implementation": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "ext-curl": "*",
+ "ext-dom": "*",
+ "ext-gd": "*",
+ "ext-libxml": "*",
+ "http-interop/http-factory-tests": "^2.2.0",
+ "laminas/laminas-coding-standard": "~3.1.0",
+ "php-http/psr7-integration-tests": "^1.4.0",
+ "phpunit/phpunit": "^10.5.36",
+ "psalm/plugin-phpunit": "^0.19.5",
+ "vimeo/psalm": "^6.13"
+ },
+ "type": "library",
+ "extra": {
+ "laminas": {
+ "module": "Laminas\\Diactoros",
+ "config-provider": "Laminas\\Diactoros\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions/create_uploaded_file.php",
+ "src/functions/marshal_headers_from_sapi.php",
+ "src/functions/marshal_method_from_sapi.php",
+ "src/functions/marshal_protocol_version_from_sapi.php",
+ "src/functions/normalize_server.php",
+ "src/functions/normalize_uploaded_files.php",
+ "src/functions/parse_cookie_header.php"
+ ],
+ "psr-4": {
+ "Laminas\\Diactoros\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR HTTP Message implementations",
+ "homepage": "https://laminas.dev",
+ "keywords": [
+ "http",
+ "laminas",
+ "psr",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "chat": "https://laminas.dev/chat",
+ "docs": "https://docs.laminas.dev/laminas-diactoros/",
+ "forum": "https://discourse.laminas.dev",
+ "issues": "https://github.com/laminas/laminas-diactoros/issues",
+ "rss": "https://github.com/laminas/laminas-diactoros/releases.atom",
+ "source": "https://github.com/laminas/laminas-diactoros"
+ },
+ "funding": [
+ {
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
+ }
+ ],
+ "time": "2025-10-12T15:31:36+00:00"
+ },
{
"name": "laravel/framework",
"version": "v13.13.0",
@@ -3049,6 +3137,95 @@
},
"time": "2026-06-03T15:11:37+00:00"
},
+ {
+ "name": "laravel/octane",
+ "version": "v2.17.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/octane.git",
+ "reference": "058ae4d7109eed40836dc42960f9388b9bf71f73"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/octane/zipball/058ae4d7109eed40836dc42960f9388b9bf71f73",
+ "reference": "058ae4d7109eed40836dc42960f9388b9bf71f73",
+ "shasum": ""
+ },
+ "require": {
+ "laminas/laminas-diactoros": "^3.0",
+ "laravel/framework": "^10.10.1|^11.0|^12.0|^13.0",
+ "laravel/prompts": "^0.1.24|^0.2.0|^0.3.0",
+ "laravel/serializable-closure": "^1.3|^2.0",
+ "nesbot/carbon": "^2.66.0|^3.0",
+ "php": "^8.1.0",
+ "symfony/console": "^6.0|^7.0|^8.0",
+ "symfony/psr-http-message-bridge": "^2.2.0|^6.4|^7.0|^8.0"
+ },
+ "conflict": {
+ "spiral/roadrunner": "<2023.1.0",
+ "spiral/roadrunner-cli": "<2.6.0",
+ "spiral/roadrunner-http": "<3.3.0"
+ },
+ "require-dev": {
+ "guzzlehttp/guzzle": "^7.6.1",
+ "inertiajs/inertia-laravel": "^1.3.2|^2.0",
+ "laravel/scout": "^10.2.1",
+ "laravel/socialite": "^5.6.1",
+ "livewire/livewire": "^2.12.3|^3.0",
+ "nunomaduro/collision": "^6.4.0|^7.5.2|^8.0",
+ "orchestra/testbench": "^8.21|^9.0|^10.0|^11.0",
+ "phpstan/phpstan": "^2.1.7",
+ "phpunit/phpunit": "^10.4|^11.5|^12.0|^13.0",
+ "spiral/roadrunner-cli": "^2.6.0",
+ "spiral/roadrunner-http": "^3.3.0"
+ },
+ "bin": [
+ "bin/roadrunner-worker",
+ "bin/swoole-server"
+ ],
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "aliases": {
+ "Octane": "Laravel\\Octane\\Facades\\Octane"
+ },
+ "providers": [
+ "Laravel\\Octane\\OctaneServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Octane\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Supercharge your Laravel application's performance.",
+ "keywords": [
+ "frankenphp",
+ "laravel",
+ "octane",
+ "roadrunner",
+ "swoole"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/octane/issues",
+ "source": "https://github.com/laravel/octane"
+ },
+ "time": "2026-06-04T09:05:08+00:00"
+ },
{
"name": "laravel/pail",
"version": "v1.2.6",
diff --git a/config/app.php b/config/app.php
index ea6d3bbfb5..243426354f 100644
--- a/config/app.php
+++ b/config/app.php
@@ -79,6 +79,9 @@
// System-level scripts timeout
'processmaker_system_scripts_timeout_seconds' => env('PROCESSMAKER_SYSTEM_SCRIPTS_TIMEOUT_SECONDS', 300),
+ // Enable optimized tasks
+ 'processmaker_optimized_tasks_enabled' => env('OPTIMIZED_TASKS_ENABLED', true),
+
// Since the task scheduler has a preset of one minute (crontab), the times
// must be rounded or truncated to the nearest HH:MM:00 before compare
'timer_events_seconds' => env('TIMER_EVENTS_SECONDS', 'truncate'),
diff --git a/config/filesystems.php b/config/filesystems.php
index 809b4718f7..3fa45d5637 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -136,6 +136,13 @@
// Others declared in packages
// - translations - package-translations
// - 'filesystems.disks.install' configured on the fly
+
+ 'saved_search_advanced_configuration' => [
+ 'driver' => 'local',
+ 'root' => storage_path('saved_search_advanced_configuration'),
+ 'url' => env('APP_URL') . '/storage/saved_search_advanced_configuration',
+ 'visibility' => 'private',
+ ],
],
/*
diff --git a/docs/tasks-page-etag-sequence.md b/docs/tasks-page-etag-sequence.md
new file mode 100644
index 0000000000..68efe9c5cc
--- /dev/null
+++ b/docs/tasks-page-etag-sequence.md
@@ -0,0 +1,95 @@
+# Tasks Page ETag Sequence
+
+This diagram captures the current request flow for the Tasks page shell (`/tasks`). The route-specific middleware computes a stable Tasks page ETag before rendering, short-circuits matching conditional requests with `304 Not Modified`, and sets private revalidation headers. The legacy inbox route (`/inbox/{router?}`) remains on the original `no-cache` middleware path and does not use this ETag flow. The global browser-cache middleware preserves ETag-enabled responses instead of applying `no-store`.
+
+
+
+```mermaid
+sequenceDiagram
+ autonumber
+ participant Browser as Browser
+ participant BrowserCache as BrowserCache
ProcessMaker\Http\Middleware\BrowserCache
+ participant Router as Laravel Router
+ participant TasksPageEtagMw as TasksPageEtag middleware
ProcessMaker\Http\Middleware\Etag\TasksPageEtag
+ participant Payload as TasksPageEtag payload
ProcessMaker\Http\Resources\Caching\TasksPageEtag
+ participant SymfonyResponse as Response
Symfony\Component\HttpFoundation\Response
+ participant Controller as TaskController@index
ProcessMaker\Http\Controllers\TaskController
+
+ Browser->>BrowserCache: GET /tasks
Cookie + optional If-None-Match
+ BrowserCache->>Router: pass request through global middleware stack
+ Router->>TasksPageEtagMw: dispatch route with tasks-page-etag middleware
+
+ alt ETags disabled or method is not GET/HEAD
+ TasksPageEtagMw->>Controller: bypass ETag logic
+ Controller-->>TasksPageEtagMw: normal page response
+ TasksPageEtagMw-->>BrowserCache: response without Tasks page ETag handling
+ else ETags enabled and method is GET/HEAD
+ TasksPageEtagMw->>Payload: getEtag(request)
+ Payload->>Payload: collect route name/path/router/query
+ Payload->>Payload: collect user and tenant version markers
+ Payload->>Payload: collect permission table/session/direct assignment markers
+ Payload->>Payload: collect saved search id/updated_at/columns hash
+ Payload->>Payload: collect user config hash and task drafts flag
+ Payload->>Payload: collect feature config, package list, manifest, asset versions
+ Payload->>Payload: exclude CSRF, session id, randomized favicon URL
+ Payload-->>TasksPageEtagMw: quoted stable hash
+ TasksPageEtagMw->>SymfonyResponse: create empty response + set weak ETag
+ TasksPageEtagMw->>SymfonyResponse: isNotModified(request)
+
+ alt If-None-Match matches weak ETag
+ SymfonyResponse-->>TasksPageEtagMw: true
+ TasksPageEtagMw->>SymfonyResponse: build 304 response with same weak ETag
+ TasksPageEtagMw->>TasksPageEtagMw: Cache-Control: private, must-revalidate
+ TasksPageEtagMw->>TasksPageEtagMw: remove Pragma and Expires
+ TasksPageEtagMw-->>BrowserCache: 304 Not Modified
+ else Missing/stale If-None-Match
+ SymfonyResponse-->>TasksPageEtagMw: false
+ TasksPageEtagMw->>Controller: render Tasks page shell
+ Controller->>Controller: resolve title, router mode, mobile check
+ Controller->>Controller: load ScreenBuilderManager scripts
+ Controller->>Controller: load task filter, default columns, drafts flag
+ Controller->>Controller: load user configuration and default saved search
+ Controller-->>TasksPageEtagMw: tasks.index response
+ TasksPageEtagMw->>TasksPageEtagMw: attach weak ETag to 200 response
+ TasksPageEtagMw->>TasksPageEtagMw: Cache-Control: private, must-revalidate
+ TasksPageEtagMw->>TasksPageEtagMw: remove Pragma and Expires
+ TasksPageEtagMw-->>BrowserCache: 200 OK with weak ETag
+ end
+ end
+
+ alt Response has ETag
+ BrowserCache->>BrowserCache: preserve response headers
+ BrowserCache->>BrowserCache: skip no-store / Pragma override
+ else No ETag and BROWSER_CACHE=false
+ BrowserCache->>BrowserCache: add Pragma: no-cache
+ BrowserCache->>BrowserCache: add Cache-Control: no-store
+ end
+
+ BrowserCache-->>Browser: 200 OK + ETag or 304 Not Modified
+ Browser->>Browser: Store private validator and send If-None-Match on later reload
+```
+
+## ETag Context
+
+The payload intentionally includes content-affecting values:
+
+- Route path/query/router state.
+- Authenticated user id, update timestamp, locale, timezone, display fields, and admin status.
+- Tenant id and tenant update timestamp when present.
+- Permission table version, session permission snapshot, direct user/group assignment hashes, and direct group membership version.
+- Task filter cache, user configuration hash, task draft flag, and saved search defaults hash.
+- Page-relevant feature config, registered package list, package manifest, app version, `composer.lock`, and `mix-manifest.json`.
+
+The payload intentionally excludes volatile values that do not define the rendered page, such as CSRF token, session id, and randomized favicon URLs.
+
+## Header Outcome
+
+Successful Tasks page responses should use private revalidation rather than storage blocking:
+
+```http
+Cache-Control: private, must-revalidate
+ETag: W/"..."
+Vary: Accept-Encoding
+```
+
+They should not include `no-store` or `Pragma: no-cache`; otherwise the browser will not keep the validator and will not send `If-None-Match`.
diff --git a/package-lock.json b/package-lock.json
index fd7b4580e3..ee472566b4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@processmaker/processmaker",
- "version": "2026.12.1-RC1",
+ "version": "2026.12.0-performance.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@processmaker/processmaker",
- "version": "2026.12.1-RC1",
+ "version": "2026.12.0-performance.2",
"hasInstallScript": true,
"license": "ISC",
"dependencies": {
@@ -20,10 +20,10 @@
"@fortawesome/free-solid-svg-icons": "^5.15.1",
"@fortawesome/vue-fontawesome": "^0.1.9",
"@panter/vue-i18next": "^0.15.2",
- "@processmaker/modeler": "1.69.41",
+ "@processmaker/modeler": "^1.69.41-branch-cad10797",
"@processmaker/processmaker-bpmn-moddle": "0.16.1",
- "@processmaker/screen-builder": "3.8.35",
- "@processmaker/vue-form-elements": "0.65.8",
+ "@processmaker/screen-builder": "^3.8.35-branch-c02e435a",
+ "@processmaker/vue-form-elements": "^0.65.8-branch-ad97b37",
"@processmaker/vue-multiselect": "2.3.2",
"@tinymce/tinymce-vue": "2.0.0",
"axios": "^0.27.2",
@@ -3748,9 +3748,9 @@
"license": "MIT"
},
"node_modules/@processmaker/modeler": {
- "version": "1.69.41",
- "resolved": "https://registry.npmjs.org/@processmaker/modeler/-/modeler-1.69.41.tgz",
- "integrity": "sha512-L6TzphnNUAHwW5N9KRZKgtLZUZNrBW1IHWPNzC/7gmfO37E36ewu+TJKDA5f/SUDfWRtuyUXXi41TOUwYJU2Nw==",
+ "version": "1.69.41-branch-cad10797",
+ "resolved": "https://registry.npmjs.org/@processmaker/modeler/-/modeler-1.69.41-branch-cad10797.tgz",
+ "integrity": "sha512-T9jPI1AoHnzYX3OhaBD68wI+h70exs8ASwOVK55TgEnz/q2/RWE2zE28xY0Wy4TOt5a7PzBBpiiDm5Z0+wWW5A==",
"dependencies": {
"@babel/plugin-proposal-private-methods": "^7.12.1",
"@fortawesome/fontawesome-free": "^5.11.2",
@@ -3758,8 +3758,8 @@
"@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^5.11.2",
"@fortawesome/vue-fontawesome": "^0.1.8",
- "@processmaker/screen-builder": "3.8.35",
- "@processmaker/vue-form-elements": "0.65.8",
+ "@processmaker/screen-builder": "3.8.35-branch-c02e435a",
+ "@processmaker/vue-form-elements": "0.65.8-branch-ad97b37",
"@processmaker/vue-multiselect": "2.3.2",
"bootstrap": "^4.3.1",
"bootstrap-vue": "^2.0.4",
@@ -3932,9 +3932,9 @@
}
},
"node_modules/@processmaker/screen-builder": {
- "version": "3.8.35",
- "resolved": "https://registry.npmjs.org/@processmaker/screen-builder/-/screen-builder-3.8.35.tgz",
- "integrity": "sha512-2SsnosokNpdtLb0DaIZy6RZeEJBQ+gBNZ11D9C5Mkp1/bCXd+i7mwCGvKvZchVHCKwf8YzMI6ZqfqqPOTkCqzA==",
+ "version": "3.8.35-branch-c02e435a",
+ "resolved": "https://registry.npmjs.org/@processmaker/screen-builder/-/screen-builder-3.8.35-branch-c02e435a.tgz",
+ "integrity": "sha512-jYUuxDrYvfJ0hEdybO7UTDFrt8Tr49Aq2FxRT4B5iW/dFATdQ2fIh7UmsyzVRBeZ7l+5iquvX1G6UVZJxnyBXA==",
"dependencies": {
"@chantouchsek/validatorjs": "1.2.3",
"@storybook/addon-docs": "^7.6.13",
@@ -3959,7 +3959,7 @@
},
"peerDependencies": {
"@panter/vue-i18next": "^0.15.0",
- "@processmaker/vue-form-elements": "0.65.8",
+ "@processmaker/vue-form-elements": "0.65.8-branch-ad97b37",
"i18next": "^15.0.8",
"vue": "^2.6.12",
"vuex": "^3.1.1"
@@ -4008,9 +4008,9 @@
"license": "MIT"
},
"node_modules/@processmaker/vue-form-elements": {
- "version": "0.65.8",
- "resolved": "https://registry.npmjs.org/@processmaker/vue-form-elements/-/vue-form-elements-0.65.8.tgz",
- "integrity": "sha512-Iwew8oNVrZX5NENNOHntrbT1wJK4GpoCaNgdTkzzH7f0YOhM7IwluTch4ED5hsWuRqy2NOYfXL/qg8MH91AQFA==",
+ "version": "0.65.8-branch-ad97b37",
+ "resolved": "https://registry.npmjs.org/@processmaker/vue-form-elements/-/vue-form-elements-0.65.8-branch-ad97b37.tgz",
+ "integrity": "sha512-9WGGd1Z9aipHqHNgCLrbpvn9A8rxUIT8LZOMu2KR+xr7VjK/RcYokZJ/eSzFtrduLeR+V1Oy1+sltCzLQieWqw==",
"license": "MIT",
"dependencies": {
"@chantouchsek/validatorjs": "1.2.3",
@@ -4412,18 +4412,18 @@
}
},
"node_modules/@radix-ui/react-toolbar": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz",
- "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.15.tgz",
+ "integrity": "sha512-t/iEuVjUnXXtrsGK40AA43uIx37sn3AqZ7oAVnPICK6lFJP6dzMzWR3U9b6eCfFjb6wtSEqkJ9Rn9xDjiOx20g==",
"license": "MIT",
"dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@radix-ui/react-separator": "1.1.7",
- "@radix-ui/react-toggle-group": "1.1.11"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-roving-focus": "1.1.15",
+ "@radix-ui/react-separator": "1.1.11",
+ "@radix-ui/react-toggle-group": "1.1.15"
},
"peerDependencies": {
"@types/react": "*",
@@ -4441,15 +4441,15 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/primitive": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
- "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.5.tgz",
+ "integrity": "sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==",
"license": "MIT"
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-compose-refs": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
- "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz",
+ "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4462,9 +4462,9 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-context": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
- "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.0.tgz",
+ "integrity": "sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4477,9 +4477,9 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-direction": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
- "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz",
+ "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4492,12 +4492,12 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-id": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
- "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz",
+ "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"peerDependencies": {
"@types/react": "*",
@@ -4510,12 +4510,12 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-primitive": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.7.tgz",
+ "integrity": "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-slot": "1.2.3"
+ "@radix-ui/react-slot": "1.3.0"
},
"peerDependencies": {
"@types/react": "*",
@@ -4533,20 +4533,22 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-roving-focus": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz",
- "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.15.tgz",
+ "integrity": "sha512-40svmmugfM3mUN7VUDGVE1tQGOhyi8enlGD0CNJEcMM36C1f71PKM21DFgNHUfem0XnA+d8H8oN3Z9ZpJjSslg==",
"license": "MIT",
"dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-collection": "1.1.7",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-use-callback-ref": "1.1.1",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-collection": "1.1.12",
+ "@radix-ui/react-compose-refs": "1.1.3",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-id": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-use-callback-ref": "1.1.2",
+ "@radix-ui/react-use-controllable-state": "1.2.3",
+ "@radix-ui/react-use-is-hydrated": "0.1.1",
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"peerDependencies": {
"@types/react": "*",
@@ -4564,15 +4566,15 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-collection": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
- "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.12.tgz",
+ "integrity": "sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-slot": "1.2.3"
+ "@radix-ui/react-compose-refs": "1.1.3",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-slot": "1.3.0"
},
"peerDependencies": {
"@types/react": "*",
@@ -4590,12 +4592,12 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-separator": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz",
- "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.11.tgz",
+ "integrity": "sha512-jRhe86+8PF7VZ1u14eOWVOuh2BuAhALg/FT1VcMC4OHedMTRUazDnDlKTt+yxo5cRNKHMfmvZ4sSQtWDeMV4CQ==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-primitive": "2.1.3"
+ "@radix-ui/react-primitive": "2.1.7"
},
"peerDependencies": {
"@types/react": "*",
@@ -4613,12 +4615,12 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-slot": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
- "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz",
+ "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-compose-refs": "1.1.2"
+ "@radix-ui/react-compose-refs": "1.1.3"
},
"peerDependencies": {
"@types/react": "*",
@@ -4631,18 +4633,18 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-toggle-group": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz",
- "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.15.tgz",
+ "integrity": "sha512-gIC5Q+Xljg7lmUdzSuDoy0t97yZn1sZl00Ra37ZvKrYdWnQLU6sWLd09yG8cIB9jUAlQfHgJ2ACAG00MFwsqSQ==",
"license": "MIT",
"dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@radix-ui/react-toggle": "1.1.10",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-roving-focus": "1.1.15",
+ "@radix-ui/react-toggle": "1.1.14",
+ "@radix-ui/react-use-controllable-state": "1.2.3"
},
"peerDependencies": {
"@types/react": "*",
@@ -4660,14 +4662,14 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-toggle-group/node_modules/@radix-ui/react-toggle": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz",
- "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.14.tgz",
+ "integrity": "sha512-QI/hB65XKWACA66P64A+aHxtLUgHJeJLkaQa+awUNXT6T3swndtY5DojeHA+vldrTspMTtFBd7HfZ9QGbM1Qrw==",
"license": "MIT",
"dependencies": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-use-controllable-state": "1.2.3"
},
"peerDependencies": {
"@types/react": "*",
@@ -4685,9 +4687,9 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-use-callback-ref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
- "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz",
+ "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4700,13 +4702,13 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-use-controllable-state": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
- "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz",
+ "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-use-effect-event": "0.0.2",
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-effect-event": "0.0.3",
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"peerDependencies": {
"@types/react": "*",
@@ -4719,9 +4721,9 @@
}
},
"node_modules/@radix-ui/react-toolbar/node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4771,12 +4773,12 @@
}
},
"node_modules/@radix-ui/react-use-effect-event": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
- "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz",
+ "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==",
"license": "MIT",
"dependencies": {
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"peerDependencies": {
"@types/react": "*",
@@ -4789,9 +4791,9 @@
}
},
"node_modules/@radix-ui/react-use-effect-event/node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -4822,6 +4824,21 @@
}
}
},
+ "node_modules/@radix-ui/react-use-is-hydrated": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.1.tgz",
+ "integrity": "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@radix-ui/react-use-layout-effect": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz",
@@ -5347,9 +5364,9 @@
}
},
"node_modules/@storybook/core-common/node_modules/brace-expansion": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
- "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz",
+ "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
@@ -6086,9 +6103,9 @@
"license": "MIT"
},
"node_modules/@types/mdx": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz",
+ "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==",
"license": "MIT"
},
"node_modules/@types/mime": {
@@ -6147,9 +6164,9 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"node_modules/@types/react": {
- "version": "18.3.29",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.29.tgz",
- "integrity": "sha512-ch0qJdr2JY0r04NXSprbK6TXOgnaJ1Tz23fm5W+z0/CBah6BSBc3n96h7K9GOtwh0HrilNWHIBzE1Ko4Dcw/Wg==",
+ "version": "18.3.31",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz",
+ "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==",
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
@@ -18750,9 +18767,9 @@
}
},
"node_modules/recast": {
- "version": "0.23.11",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
- "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
+ "version": "0.23.12",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.12.tgz",
+ "integrity": "sha512-dEWRjcINDu/F4l2dYx57ugBtD7HV9KXESyxhzw/MqWLeglJrsjJKqACPyUPg+6AF8mIgm+Zi0dZ3ACoIg+QtpA==",
"license": "MIT",
"dependencies": {
"ast-types": "^0.16.1",
@@ -21356,9 +21373,9 @@
}
},
"node_modules/ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.3.0.tgz",
+ "integrity": "sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==",
"license": "MIT",
"engines": {
"node": ">=6.10"
@@ -25990,9 +26007,9 @@
"dev": true
},
"@processmaker/modeler": {
- "version": "1.69.41",
- "resolved": "https://registry.npmjs.org/@processmaker/modeler/-/modeler-1.69.41.tgz",
- "integrity": "sha512-L6TzphnNUAHwW5N9KRZKgtLZUZNrBW1IHWPNzC/7gmfO37E36ewu+TJKDA5f/SUDfWRtuyUXXi41TOUwYJU2Nw==",
+ "version": "1.69.41-branch-cad10797",
+ "resolved": "https://registry.npmjs.org/@processmaker/modeler/-/modeler-1.69.41-branch-cad10797.tgz",
+ "integrity": "sha512-T9jPI1AoHnzYX3OhaBD68wI+h70exs8ASwOVK55TgEnz/q2/RWE2zE28xY0Wy4TOt5a7PzBBpiiDm5Z0+wWW5A==",
"requires": {
"@babel/plugin-proposal-private-methods": "^7.12.1",
"@fortawesome/fontawesome-free": "^5.11.2",
@@ -26000,8 +26017,8 @@
"@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^5.11.2",
"@fortawesome/vue-fontawesome": "^0.1.8",
- "@processmaker/screen-builder": "3.8.35",
- "@processmaker/vue-form-elements": "0.65.8",
+ "@processmaker/screen-builder": "3.8.35-branch-c02e435a",
+ "@processmaker/vue-form-elements": "0.65.8-branch-ad97b37",
"@processmaker/vue-multiselect": "2.3.2",
"bootstrap": "^4.3.1",
"bootstrap-vue": "^2.0.4",
@@ -26116,9 +26133,9 @@
}
},
"@processmaker/screen-builder": {
- "version": "3.8.35",
- "resolved": "https://registry.npmjs.org/@processmaker/screen-builder/-/screen-builder-3.8.35.tgz",
- "integrity": "sha512-2SsnosokNpdtLb0DaIZy6RZeEJBQ+gBNZ11D9C5Mkp1/bCXd+i7mwCGvKvZchVHCKwf8YzMI6ZqfqqPOTkCqzA==",
+ "version": "3.8.35-branch-c02e435a",
+ "resolved": "https://registry.npmjs.org/@processmaker/screen-builder/-/screen-builder-3.8.35-branch-c02e435a.tgz",
+ "integrity": "sha512-jYUuxDrYvfJ0hEdybO7UTDFrt8Tr49Aq2FxRT4B5iW/dFATdQ2fIh7UmsyzVRBeZ7l+5iquvX1G6UVZJxnyBXA==",
"requires": {
"@chantouchsek/validatorjs": "1.2.3",
"@storybook/addon-docs": "^7.6.13",
@@ -26172,9 +26189,9 @@
}
},
"@processmaker/vue-form-elements": {
- "version": "0.65.8",
- "resolved": "https://registry.npmjs.org/@processmaker/vue-form-elements/-/vue-form-elements-0.65.8.tgz",
- "integrity": "sha512-Iwew8oNVrZX5NENNOHntrbT1wJK4GpoCaNgdTkzzH7f0YOhM7IwluTch4ED5hsWuRqy2NOYfXL/qg8MH91AQFA==",
+ "version": "0.65.8-branch-ad97b37",
+ "resolved": "https://registry.npmjs.org/@processmaker/vue-form-elements/-/vue-form-elements-0.65.8-branch-ad97b37.tgz",
+ "integrity": "sha512-9WGGd1Z9aipHqHNgCLrbpvn9A8rxUIT8LZOMu2KR+xr7VjK/RcYokZJ/eSzFtrduLeR+V1Oy1+sltCzLQieWqw==",
"requires": {
"@chantouchsek/validatorjs": "1.2.3",
"@tinymce/tinymce-vue": "2.0.0",
@@ -26384,148 +26401,150 @@
}
},
"@radix-ui/react-toolbar": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz",
- "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.15.tgz",
+ "integrity": "sha512-t/iEuVjUnXXtrsGK40AA43uIx37sn3AqZ7oAVnPICK6lFJP6dzMzWR3U9b6eCfFjb6wtSEqkJ9Rn9xDjiOx20g==",
"requires": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@radix-ui/react-separator": "1.1.7",
- "@radix-ui/react-toggle-group": "1.1.11"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-roving-focus": "1.1.15",
+ "@radix-ui/react-separator": "1.1.11",
+ "@radix-ui/react-toggle-group": "1.1.15"
},
"dependencies": {
"@radix-ui/primitive": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
- "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.5.tgz",
+ "integrity": "sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg=="
},
"@radix-ui/react-compose-refs": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
- "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz",
+ "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==",
"requires": {}
},
"@radix-ui/react-context": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
- "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.0.tgz",
+ "integrity": "sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==",
"requires": {}
},
"@radix-ui/react-direction": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
- "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz",
+ "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==",
"requires": {}
},
"@radix-ui/react-id": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
- "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz",
+ "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==",
"requires": {
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-layout-effect": "1.1.2"
}
},
"@radix-ui/react-primitive": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.7.tgz",
+ "integrity": "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==",
"requires": {
- "@radix-ui/react-slot": "1.2.3"
+ "@radix-ui/react-slot": "1.3.0"
}
},
"@radix-ui/react-roving-focus": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz",
- "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==",
- "requires": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-collection": "1.1.7",
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-id": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-use-callback-ref": "1.1.1",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.15.tgz",
+ "integrity": "sha512-40svmmugfM3mUN7VUDGVE1tQGOhyi8enlGD0CNJEcMM36C1f71PKM21DFgNHUfem0XnA+d8H8oN3Z9ZpJjSslg==",
+ "requires": {
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-collection": "1.1.12",
+ "@radix-ui/react-compose-refs": "1.1.3",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-id": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-use-callback-ref": "1.1.2",
+ "@radix-ui/react-use-controllable-state": "1.2.3",
+ "@radix-ui/react-use-is-hydrated": "0.1.1",
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"dependencies": {
"@radix-ui/react-collection": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
- "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.12.tgz",
+ "integrity": "sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==",
"requires": {
- "@radix-ui/react-compose-refs": "1.1.2",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-slot": "1.2.3"
+ "@radix-ui/react-compose-refs": "1.1.3",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-slot": "1.3.0"
}
}
}
},
"@radix-ui/react-separator": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz",
- "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.11.tgz",
+ "integrity": "sha512-jRhe86+8PF7VZ1u14eOWVOuh2BuAhALg/FT1VcMC4OHedMTRUazDnDlKTt+yxo5cRNKHMfmvZ4sSQtWDeMV4CQ==",
"requires": {
- "@radix-ui/react-primitive": "2.1.3"
+ "@radix-ui/react-primitive": "2.1.7"
}
},
"@radix-ui/react-slot": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
- "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz",
+ "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==",
"requires": {
- "@radix-ui/react-compose-refs": "1.1.2"
+ "@radix-ui/react-compose-refs": "1.1.3"
}
},
"@radix-ui/react-toggle-group": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz",
- "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==",
- "requires": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-context": "1.1.2",
- "@radix-ui/react-direction": "1.1.1",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-roving-focus": "1.1.11",
- "@radix-ui/react-toggle": "1.1.10",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.15.tgz",
+ "integrity": "sha512-gIC5Q+Xljg7lmUdzSuDoy0t97yZn1sZl00Ra37ZvKrYdWnQLU6sWLd09yG8cIB9jUAlQfHgJ2ACAG00MFwsqSQ==",
+ "requires": {
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-context": "1.2.0",
+ "@radix-ui/react-direction": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-roving-focus": "1.1.15",
+ "@radix-ui/react-toggle": "1.1.14",
+ "@radix-ui/react-use-controllable-state": "1.2.3"
},
"dependencies": {
"@radix-ui/react-toggle": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz",
- "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.14.tgz",
+ "integrity": "sha512-QI/hB65XKWACA66P64A+aHxtLUgHJeJLkaQa+awUNXT6T3swndtY5DojeHA+vldrTspMTtFBd7HfZ9QGbM1Qrw==",
"requires": {
- "@radix-ui/primitive": "1.1.3",
- "@radix-ui/react-primitive": "2.1.3",
- "@radix-ui/react-use-controllable-state": "1.2.2"
+ "@radix-ui/primitive": "1.1.5",
+ "@radix-ui/react-primitive": "2.1.7",
+ "@radix-ui/react-use-controllable-state": "1.2.3"
}
}
}
},
"@radix-ui/react-use-callback-ref": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
- "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz",
+ "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==",
"requires": {}
},
"@radix-ui/react-use-controllable-state": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
- "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz",
+ "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==",
"requires": {
- "@radix-ui/react-use-effect-event": "0.0.2",
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-effect-event": "0.0.3",
+ "@radix-ui/react-use-layout-effect": "1.1.2"
}
},
"@radix-ui/react-use-layout-effect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
"requires": {}
}
}
@@ -26548,17 +26567,17 @@
}
},
"@radix-ui/react-use-effect-event": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
- "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz",
+ "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==",
"requires": {
- "@radix-ui/react-use-layout-effect": "1.1.1"
+ "@radix-ui/react-use-layout-effect": "1.1.2"
},
"dependencies": {
"@radix-ui/react-use-layout-effect": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
"requires": {}
}
}
@@ -26572,6 +26591,12 @@
"@radix-ui/react-use-callback-ref": "1.0.1"
}
},
+ "@radix-ui/react-use-is-hydrated": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.1.tgz",
+ "integrity": "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==",
+ "requires": {}
+ },
"@radix-ui/react-use-layout-effect": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz",
@@ -26872,9 +26897,9 @@
}
},
"brace-expansion": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
- "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz",
+ "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==",
"requires": {
"balanced-match": "^1.0.0"
}
@@ -27474,9 +27499,9 @@
"integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ=="
},
"@types/mdx": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz",
+ "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg=="
},
"@types/mime": {
"version": "3.0.1",
@@ -27531,9 +27556,9 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"@types/react": {
- "version": "18.3.29",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.29.tgz",
- "integrity": "sha512-ch0qJdr2JY0r04NXSprbK6TXOgnaJ1Tz23fm5W+z0/CBah6BSBc3n96h7K9GOtwh0HrilNWHIBzE1Ko4Dcw/Wg==",
+ "version": "18.3.31",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz",
+ "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==",
"requires": {
"@types/prop-types": "*",
"csstype": "^3.2.2"
@@ -36884,9 +36909,9 @@
}
},
"recast": {
- "version": "0.23.11",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
- "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
+ "version": "0.23.12",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.12.tgz",
+ "integrity": "sha512-dEWRjcINDu/F4l2dYx57ugBtD7HV9KXESyxhzw/MqWLeglJrsjJKqACPyUPg+6AF8mIgm+Zi0dZ3ACoIg+QtpA==",
"requires": {
"ast-types": "^0.16.1",
"esprima": "~4.0.0",
@@ -38857,9 +38882,9 @@
"integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA=="
},
"ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ=="
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.3.0.tgz",
+ "integrity": "sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg=="
},
"ts-interface-checker": {
"version": "0.1.13",
diff --git a/package.json b/package.json
index 93c326e24b..1162c6f311 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@processmaker/processmaker",
- "version": "2026.12.1-RC1",
+ "version": "2026.12.0-performance.2",
"description": "ProcessMaker 4",
"author": "DevOps ",
"license": "ISC",
@@ -61,10 +61,10 @@
"@fortawesome/free-solid-svg-icons": "^5.15.1",
"@fortawesome/vue-fontawesome": "^0.1.9",
"@panter/vue-i18next": "^0.15.2",
- "@processmaker/modeler": "1.69.41",
+ "@processmaker/modeler": "^1.69.41-branch-cad10797",
"@processmaker/processmaker-bpmn-moddle": "0.16.1",
- "@processmaker/screen-builder": "3.8.35",
- "@processmaker/vue-form-elements": "0.65.8",
+ "@processmaker/screen-builder": "^3.8.35-branch-c02e435a",
+ "@processmaker/vue-form-elements": "^0.65.8-branch-ad97b37",
"@processmaker/vue-multiselect": "2.3.2",
"@tinymce/tinymce-vue": "2.0.0",
"axios": "^0.27.2",
diff --git a/public/builds/login/js/app-login.js b/public/builds/login/js/app-login.js
index 3e4e5777dd..4d2717c7c3 100644
--- a/public/builds/login/js/app-login.js
+++ b/public/builds/login/js/app-login.js
@@ -1,44575 +1,2 @@
-(self["webpackChunk_processmaker_processmaker"] = self["webpackChunk_processmaker_processmaker"] || []).push([["/builds/login/js/app-login"],{
-
-/***/ "./node_modules/@panter/vue-i18next/dist/vue-i18next.esm.js":
-/*!******************************************************************!*\
- !*** ./node_modules/@panter/vue-i18next/dist/vue-i18next.esm.js ***!
- \******************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! deepmerge */ "./node_modules/deepmerge/dist/es.js");
-
-
-var component = {
- name: 'i18next',
- functional: true,
- props: {
- tag: {
- type: String,
- default: 'span'
- },
- path: {
- type: String,
- required: true
- },
- options: {
- type: Object
- }
- },
- render: function render(h, ref) {
- var props = ref.props;
- var data = ref.data;
- var children = ref.children;
- var parent = ref.parent;
-
- var i18next = parent.$i18n;
- var $t = parent.$t.bind(parent);
- if (!i18next || !$t) {
- return h(props.tag, data, children);
- }
-
- var path = props.path;
- var options = props.options || {};
-
- var REGEXP = i18next.i18next.services.interpolator.regexp;
- var i18nextOptions = Object.assign({}, options,
- {interpolation: { prefix: '#$?', suffix: '?$#' }});
- var format = $t(path, i18nextOptions);
- var tchildren = [];
-
- format.split(REGEXP).reduce(function (memo, match, index) {
- var child;
- if (index % 2 === 0) {
- if (match.length === 0) { return memo; }
-
- child = match;
- } else {
- var place = match.trim();
- // eslint-disable-next-line no-restricted-globals
- if (isNaN(parseFloat(place)) || !isFinite(place)) {
- children.forEach(function (e) {
- if (
- !child &&
- e.data.attrs &&
- e.data.attrs.place &&
- e.data.attrs.place === place
- ) {
- child = e;
- }
- });
- } else {
- child = children[parseInt(match, 10)];
- }
- }
-
- memo.push(child);
- return memo;
- }, tchildren);
-
- return h(props.tag, data, tchildren);
- }
-};
-
-/* eslint-disable import/prefer-default-export */
-
-function log(message) {
- if (typeof console !== 'undefined') {
- console.warn(message); // eslint-disable-line no-console
- }
-}
-
-function warn(message) {
- log(("[vue-i18next warn]: " + message));
-}
-
-function deprecate(message) {
- log(("[vue-i18next deprecated]: " + message));
-}
-
-/* eslint-disable no-param-reassign, no-unused-vars */
-
-function equalLanguage(el, vnode) {
- var vm = vnode.context;
- return el._i18nLanguage === vm.$i18n.i18next.language;
-}
-
-function equalValue(value, oldValue) {
- if (value === oldValue) {
- return true;
- }
- if (value && oldValue) {
- return (
- value.path === oldValue.path &&
- value.language === oldValue.language &&
- value.args === oldValue.args
- );
- }
-}
-
-function assert(vnode) {
- var vm = vnode.context;
-
- if (!vm.$i18n) {
- warn('No VueI18Next instance found in the Vue instance');
- return false;
- }
-
- return true;
-}
-
-function parseValue(value) {
- var assign;
-
- var path;
- var language;
- var args;
-
- if (typeof value === 'string') {
- path = value;
- } else if (toString.call(value) === '[object Object]') {
- ((assign = value, path = assign.path, language = assign.language, args = assign.args));
- }
-
- return { path: path, language: language, args: args };
-}
-
-function t(el, binding, vnode) {
- var value = binding.value;
-
- var ref = parseValue(value);
- var path = ref.path;
- var language = ref.language;
- var args = ref.args;
- if (!path && !language && !args) {
- warn('v-t: invalid value');
- return;
- }
-
- if (!path) {
- warn('v-t: "path" is required');
- return;
- }
-
- if (language) {
- deprecate("v-t: \"language\" is deprecated.Use the \"lng\" property in args.\n https://www.i18next.com/overview/configuration-options#configuration-options");
- }
-
- var vm = vnode.context;
- el.textContent = vm.$i18n.i18next.t(path, Object.assign({}, (language ? { lng: language } : {}),
- args));
-
- el._i18nLanguage = vm.$i18n.i18next.language;
-}
-
-function bind(el, binding, vnode) {
- if (!assert(vnode)) {
- return;
- }
-
- t(el, binding, vnode);
-}
-
-function update(el, binding, vnode, oldVNode) {
- if (equalLanguage(el, vnode) && equalValue(binding.value, binding.oldValue)) {
- return;
- }
-
- t(el, binding, vnode);
-}
-
-var directive = {
- bind: bind,
- update: update
-};
-
-/* eslint-disable no-param-reassign, no-unused-vars */
-
-function assert$1(vnode) {
- var vm = vnode.context;
-
- if (!vm.$i18n) {
- warn('No VueI18Next instance found in the Vue instance');
- return false;
- }
-
- return true;
-}
-
-function waitForIt(el, vnode) {
- if (vnode.context.$i18n.i18next.isInitialized) {
- el.hidden = false;
- } else {
- el.hidden = true;
- var initialized = function () {
- vnode.context.$forceUpdate();
- // due to emitter removing issue in i18next we need to delay remove
- setTimeout(function () {
- if (vnode.context && vnode.context.$i18n) {
- vnode.context.$i18n.i18next.off('initialized', initialized);
- }
- }, 1000);
- };
- vnode.context.$i18n.i18next.on('initialized', initialized);
- }
-}
-
-function bind$1(el, binding, vnode) {
- if (!assert$1(vnode)) {
- return;
- }
-
- waitForIt(el, vnode);
-}
-
-function update$1(el, binding, vnode, oldVNode) {
- if (vnode.context.$i18n.i18next.isInitialized) {
- el.hidden = false;
- }
-}
-
-var waitDirective = {
- bind: bind$1,
- update: update$1
-};
-
-/* eslint-disable import/no-mutable-exports */
-
-var Vue;
-
-function install(_Vue) {
- if (install.installed) {
- return;
- }
- install.installed = true;
-
- Vue = _Vue;
-
- var getByKey = function (i18nOptions, i18nextOptions) { return function (key) {
- if (
- i18nOptions &&
- i18nOptions.keyPrefix &&
- !key.includes(i18nextOptions.nsSeparator)
- ) {
- return ((i18nOptions.keyPrefix) + "." + key);
- }
- return key;
- }; };
-
- var getComponentNamespace = function (vm) {
- var namespace = vm.$options.name || vm.$options._componentTag;
- if (namespace) {
- return {
- namespace: namespace,
- loadNamespace: true
- };
- }
-
- return {
- namespace: ("" + (Math.random()))
- };
- };
-
- Vue.mixin({
- beforeCreate: function beforeCreate() {
- var this$1 = this;
-
- var options = this.$options;
- if (options.i18n) {
- this._i18n = options.i18n;
- } else if (options.parent && options.parent.$i18n) {
- this._i18n = options.parent.$i18n;
- }
- var inlineTranslations = {};
-
- if (this._i18n) {
- var getNamespace =
- this._i18n.options.getComponentNamespace || getComponentNamespace;
- var ref = getNamespace(this);
- var namespace = ref.namespace;
- var loadNamespace = ref.loadNamespace;
-
- if (options.__i18n) {
- options.__i18n.forEach(function (resource) {
- inlineTranslations = (0,deepmerge__WEBPACK_IMPORTED_MODULE_0__["default"])(
- inlineTranslations,
- JSON.parse(resource)
- );
- });
- }
-
- if (options.i18nOptions) {
- var ref$1 = this.$options.i18nOptions;
- var lng = ref$1.lng; if ( lng === void 0 ) lng = null;
- var keyPrefix = ref$1.keyPrefix; if ( keyPrefix === void 0 ) keyPrefix = null;
- var messages = ref$1.messages;
- var ref$2 = this.$options.i18nOptions;
- var namespaces = ref$2.namespaces;
- namespaces = namespaces || this._i18n.i18next.options.defaultNS;
-
- if (typeof namespaces === 'string') { namespaces = [namespaces]; }
- var namespacesToLoad = namespaces.concat([namespace]);
-
- if (messages) {
- inlineTranslations = (0,deepmerge__WEBPACK_IMPORTED_MODULE_0__["default"])(inlineTranslations, messages);
- }
-
- this._i18nOptions = { lng: lng, namespaces: namespacesToLoad, keyPrefix: keyPrefix };
- this._i18n.i18next.loadNamespaces(namespaces);
- } else if (options.parent && options.parent._i18nOptions) {
- this._i18nOptions = Object.assign({}, options.parent._i18nOptions);
- this._i18nOptions.namespaces = [
- namespace ].concat( this._i18nOptions.namespaces
- );
- } else if (options.__i18n) {
- this._i18nOptions = { namespaces: [namespace] };
- }
-
- if (loadNamespace && this._i18n.options.loadComponentNamespace) {
- this._i18n.i18next.loadNamespaces([namespace]);
- }
-
- var languages = Object.keys(inlineTranslations);
- languages.forEach(function (lang) {
- this$1._i18n.i18next.addResourceBundle(
- lang,
- namespace,
- Object.assign({}, inlineTranslations[lang]),
- true,
- false
- );
- });
- }
-
- var getKey = getByKey(
- this._i18nOptions,
- this._i18n ? this._i18n.i18next.options : {}
- );
-
- if (this._i18nOptions && this._i18nOptions.namespaces) {
- var ref$3 = this._i18nOptions;
- var lng$1 = ref$3.lng;
- var namespaces$1 = ref$3.namespaces;
-
- var fixedT = this._i18n.i18next.getFixedT(lng$1, namespaces$1);
- this._getI18nKey = function (key, i18nextOptions) { return fixedT(getKey(key), i18nextOptions, this$1._i18n.i18nLoadedAt); };
- } else {
- this._getI18nKey = function (key, i18nextOptions) { return this$1._i18n.t(getKey(key), i18nextOptions, this$1._i18n.i18nLoadedAt); };
- }
- }
- });
-
- // extend Vue.js
- if (!Object.prototype.hasOwnProperty.call(Vue.prototype, '$i18n')) {
- Object.defineProperty(Vue.prototype, '$i18n', {
- get: function get() {
- return this._i18n;
- }
- });
- }
-
- Vue.prototype.$t = function t(key, options) {
- return this._getI18nKey(key, options);
- };
-
- Vue.component(component.name, component);
- Vue.directive('t', directive);
- Vue.directive('waitForT', waitDirective);
-}
-
-var VueI18n = function VueI18n(i18next, opts) {
- if ( opts === void 0 ) opts = {};
-
- var options = Object.assign({}, {bindI18n: 'languageChanged loaded',
- bindStore: 'added removed',
- loadComponentNamespace: false},
- opts);
-
- this._vm = null;
- this.i18next = i18next;
- this.options = options;
-
- this.onI18nChanged = this.onI18nChanged.bind(this);
-
- if (options.bindI18n) {
- this.i18next.on(options.bindI18n, this.onI18nChanged);
- }
- if (options.bindStore && this.i18next.store) {
- this.i18next.store.on(options.bindStore, this.onI18nChanged);
- }
-
- this.resetVM({ i18nLoadedAt: new Date() });
-};
-
-var prototypeAccessors = { i18nLoadedAt: { configurable: true } };
-
-VueI18n.prototype.resetVM = function resetVM (data) {
- var oldVM = this._vm;
- var ref = Vue.config;
- var silent = ref.silent;
- Vue.config.silent = true;
- this._vm = new Vue({ data: data });
- Vue.config.silent = silent;
- if (oldVM) {
- Vue.nextTick(function () { return oldVM.$destroy(); });
- }
-};
-
-prototypeAccessors.i18nLoadedAt.get = function () {
- return this._vm.$data.i18nLoadedAt;
-};
-
-prototypeAccessors.i18nLoadedAt.set = function (date) {
- this._vm.$set(this._vm, 'i18nLoadedAt', date);
-};
-
-VueI18n.prototype.t = function t (key, options) {
- return this.i18next.t(key, options);
-};
-
-VueI18n.prototype.onI18nChanged = function onI18nChanged () {
- this.i18nLoadedAt = new Date();
-};
-
-Object.defineProperties( VueI18n.prototype, prototypeAccessors );
-
-VueI18n.install = install;
-VueI18n.version = "0.15.2";
-
-/* istanbul ignore if */
-if (typeof window !== 'undefined' && window.Vue) {
- window.Vue.use(VueI18n);
-}
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VueI18n);
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/index.js":
-/*!*************************************!*\
- !*** ./node_modules/axios/index.js ***!
- \*************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js");
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/adapters/xhr.js":
-/*!************************************************!*\
- !*** ./node_modules/axios/lib/adapters/xhr.js ***!
- \************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js");
-var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js");
-var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js");
-var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js");
-var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js");
-var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");
-var transitionalDefaults = __webpack_require__(/*! ../defaults/transitional */ "./node_modules/axios/lib/defaults/transitional.js");
-var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ "./node_modules/axios/lib/cancel/CanceledError.js");
-var parseProtocol = __webpack_require__(/*! ../helpers/parseProtocol */ "./node_modules/axios/lib/helpers/parseProtocol.js");
-
-module.exports = function xhrAdapter(config) {
- return new Promise(function dispatchXhrRequest(resolve, reject) {
- var requestData = config.data;
- var requestHeaders = config.headers;
- var responseType = config.responseType;
- var onCanceled;
- function done() {
- if (config.cancelToken) {
- config.cancelToken.unsubscribe(onCanceled);
- }
-
- if (config.signal) {
- config.signal.removeEventListener('abort', onCanceled);
- }
- }
-
- if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {
- delete requestHeaders['Content-Type']; // Let the browser set it
- }
-
- var request = new XMLHttpRequest();
-
- // HTTP basic authentication
- if (config.auth) {
- var username = config.auth.username || '';
- var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
- requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
- }
-
- var fullPath = buildFullPath(config.baseURL, config.url);
-
- request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
-
- // Set the request timeout in MS
- request.timeout = config.timeout;
-
- function onloadend() {
- if (!request) {
- return;
- }
- // Prepare the response
- var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
- var responseData = !responseType || responseType === 'text' || responseType === 'json' ?
- request.responseText : request.response;
- var response = {
- data: responseData,
- status: request.status,
- statusText: request.statusText,
- headers: responseHeaders,
- config: config,
- request: request
- };
-
- settle(function _resolve(value) {
- resolve(value);
- done();
- }, function _reject(err) {
- reject(err);
- done();
- }, response);
-
- // Clean up request
- request = null;
- }
-
- if ('onloadend' in request) {
- // Use onloadend if available
- request.onloadend = onloadend;
- } else {
- // Listen for ready state to emulate onloadend
- request.onreadystatechange = function handleLoad() {
- if (!request || request.readyState !== 4) {
- return;
- }
-
- // The request errored out and we didn't get a response, this will be
- // handled by onerror instead
- // With one exception: request that using file: protocol, most browsers
- // will return status as 0 even though it's a successful request
- if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
- return;
- }
- // readystate handler is calling before onerror or ontimeout handlers,
- // so we should call onloadend on the next 'tick'
- setTimeout(onloadend);
- };
- }
-
- // Handle browser request cancellation (as opposed to a manual cancellation)
- request.onabort = function handleAbort() {
- if (!request) {
- return;
- }
-
- reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));
-
- // Clean up request
- request = null;
- };
-
- // Handle low level network errors
- request.onerror = function handleError() {
- // Real errors are hidden from us by the browser
- // onerror should only fire if it's a network error
- reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));
-
- // Clean up request
- request = null;
- };
-
- // Handle timeout
- request.ontimeout = function handleTimeout() {
- var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
- var transitional = config.transitional || transitionalDefaults;
- if (config.timeoutErrorMessage) {
- timeoutErrorMessage = config.timeoutErrorMessage;
- }
- reject(new AxiosError(
- timeoutErrorMessage,
- transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
- config,
- request));
-
- // Clean up request
- request = null;
- };
-
- // Add xsrf header
- // This is only done if running in a standard browser environment.
- // Specifically not if we're in a web worker, or react-native.
- if (utils.isStandardBrowserEnv()) {
- // Add xsrf header
- var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
- cookies.read(config.xsrfCookieName) :
- undefined;
-
- if (xsrfValue) {
- requestHeaders[config.xsrfHeaderName] = xsrfValue;
- }
- }
-
- // Add headers to the request
- if ('setRequestHeader' in request) {
- utils.forEach(requestHeaders, function setRequestHeader(val, key) {
- if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
- // Remove Content-Type if data is undefined
- delete requestHeaders[key];
- } else {
- // Otherwise add header to the request
- request.setRequestHeader(key, val);
- }
- });
- }
-
- // Add withCredentials to request if needed
- if (!utils.isUndefined(config.withCredentials)) {
- request.withCredentials = !!config.withCredentials;
- }
-
- // Add responseType to request if needed
- if (responseType && responseType !== 'json') {
- request.responseType = config.responseType;
- }
-
- // Handle progress if needed
- if (typeof config.onDownloadProgress === 'function') {
- request.addEventListener('progress', config.onDownloadProgress);
- }
-
- // Not all browsers support upload events
- if (typeof config.onUploadProgress === 'function' && request.upload) {
- request.upload.addEventListener('progress', config.onUploadProgress);
- }
-
- if (config.cancelToken || config.signal) {
- // Handle cancellation
- // eslint-disable-next-line func-names
- onCanceled = function(cancel) {
- if (!request) {
- return;
- }
- reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);
- request.abort();
- request = null;
- };
-
- config.cancelToken && config.cancelToken.subscribe(onCanceled);
- if (config.signal) {
- config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
- }
- }
-
- if (!requestData) {
- requestData = null;
- }
-
- var protocol = parseProtocol(fullPath);
-
- if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {
- reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
- return;
- }
-
-
- // Send the request
- request.send(requestData);
- });
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/axios.js":
-/*!*****************************************!*\
- !*** ./node_modules/axios/lib/axios.js ***!
- \*****************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js");
-var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
-var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js");
-var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
-var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults/index.js");
-
-/**
- * Create an instance of Axios
- *
- * @param {Object} defaultConfig The default config for the instance
- * @return {Axios} A new instance of Axios
- */
-function createInstance(defaultConfig) {
- var context = new Axios(defaultConfig);
- var instance = bind(Axios.prototype.request, context);
-
- // Copy axios.prototype to instance
- utils.extend(instance, Axios.prototype, context);
-
- // Copy context to instance
- utils.extend(instance, context);
-
- // Factory for creating new instances
- instance.create = function create(instanceConfig) {
- return createInstance(mergeConfig(defaultConfig, instanceConfig));
- };
-
- return instance;
-}
-
-// Create the default instance to be exported
-var axios = createInstance(defaults);
-
-// Expose Axios class to allow class inheritance
-axios.Axios = Axios;
-
-// Expose Cancel & CancelToken
-axios.CanceledError = __webpack_require__(/*! ./cancel/CanceledError */ "./node_modules/axios/lib/cancel/CanceledError.js");
-axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js");
-axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
-axios.VERSION = (__webpack_require__(/*! ./env/data */ "./node_modules/axios/lib/env/data.js").version);
-axios.toFormData = __webpack_require__(/*! ./helpers/toFormData */ "./node_modules/axios/lib/helpers/toFormData.js");
-
-// Expose AxiosError class
-axios.AxiosError = __webpack_require__(/*! ../lib/core/AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-
-// alias for CanceledError for backward compatibility
-axios.Cancel = axios.CanceledError;
-
-// Expose all/spread
-axios.all = function all(promises) {
- return Promise.all(promises);
-};
-axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/axios/lib/helpers/spread.js");
-
-// Expose isAxiosError
-axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/axios/lib/helpers/isAxiosError.js");
-
-module.exports = axios;
-
-// Allow use of default import syntax in TypeScript
-module.exports["default"] = axios;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
-/*!******************************************************!*\
- !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
- \******************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var CanceledError = __webpack_require__(/*! ./CanceledError */ "./node_modules/axios/lib/cancel/CanceledError.js");
-
-/**
- * A `CancelToken` is an object that can be used to request cancellation of an operation.
- *
- * @class
- * @param {Function} executor The executor function.
- */
-function CancelToken(executor) {
- if (typeof executor !== 'function') {
- throw new TypeError('executor must be a function.');
- }
-
- var resolvePromise;
-
- this.promise = new Promise(function promiseExecutor(resolve) {
- resolvePromise = resolve;
- });
-
- var token = this;
-
- // eslint-disable-next-line func-names
- this.promise.then(function(cancel) {
- if (!token._listeners) return;
-
- var i;
- var l = token._listeners.length;
-
- for (i = 0; i < l; i++) {
- token._listeners[i](cancel);
- }
- token._listeners = null;
- });
-
- // eslint-disable-next-line func-names
- this.promise.then = function(onfulfilled) {
- var _resolve;
- // eslint-disable-next-line func-names
- var promise = new Promise(function(resolve) {
- token.subscribe(resolve);
- _resolve = resolve;
- }).then(onfulfilled);
-
- promise.cancel = function reject() {
- token.unsubscribe(_resolve);
- };
-
- return promise;
- };
-
- executor(function cancel(message) {
- if (token.reason) {
- // Cancellation has already been requested
- return;
- }
-
- token.reason = new CanceledError(message);
- resolvePromise(token.reason);
- });
-}
-
-/**
- * Throws a `CanceledError` if cancellation has been requested.
- */
-CancelToken.prototype.throwIfRequested = function throwIfRequested() {
- if (this.reason) {
- throw this.reason;
- }
-};
-
-/**
- * Subscribe to the cancel signal
- */
-
-CancelToken.prototype.subscribe = function subscribe(listener) {
- if (this.reason) {
- listener(this.reason);
- return;
- }
-
- if (this._listeners) {
- this._listeners.push(listener);
- } else {
- this._listeners = [listener];
- }
-};
-
-/**
- * Unsubscribe from the cancel signal
- */
-
-CancelToken.prototype.unsubscribe = function unsubscribe(listener) {
- if (!this._listeners) {
- return;
- }
- var index = this._listeners.indexOf(listener);
- if (index !== -1) {
- this._listeners.splice(index, 1);
- }
-};
-
-/**
- * Returns an object that contains a new `CancelToken` and a function that, when called,
- * cancels the `CancelToken`.
- */
-CancelToken.source = function source() {
- var cancel;
- var token = new CancelToken(function executor(c) {
- cancel = c;
- });
- return {
- token: token,
- cancel: cancel
- };
-};
-
-module.exports = CancelToken;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/cancel/CanceledError.js":
-/*!********************************************************!*\
- !*** ./node_modules/axios/lib/cancel/CanceledError.js ***!
- \********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-
-/**
- * A `CanceledError` is an object that is thrown when an operation is canceled.
- *
- * @class
- * @param {string=} message The message.
- */
-function CanceledError(message) {
- // eslint-disable-next-line no-eq-null,eqeqeq
- AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);
- this.name = 'CanceledError';
-}
-
-utils.inherits(CanceledError, AxiosError, {
- __CANCEL__: true
-});
-
-module.exports = CanceledError;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/cancel/isCancel.js":
-/*!***************************************************!*\
- !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
- \***************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = function isCancel(value) {
- return !!(value && value.__CANCEL__);
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/Axios.js":
-/*!**********************************************!*\
- !*** ./node_modules/axios/lib/core/Axios.js ***!
- \**********************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js");
-var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js");
-var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js");
-var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
-var buildFullPath = __webpack_require__(/*! ./buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js");
-var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js");
-
-var validators = validator.validators;
-/**
- * Create a new instance of Axios
- *
- * @param {Object} instanceConfig The default config for the instance
- */
-function Axios(instanceConfig) {
- this.defaults = instanceConfig;
- this.interceptors = {
- request: new InterceptorManager(),
- response: new InterceptorManager()
- };
-}
-
-/**
- * Dispatch a request
- *
- * @param {Object} config The config specific for this request (merged with this.defaults)
- */
-Axios.prototype.request = function request(configOrUrl, config) {
- /*eslint no-param-reassign:0*/
- // Allow for axios('example/url'[, config]) a la fetch API
- if (typeof configOrUrl === 'string') {
- config = config || {};
- config.url = configOrUrl;
- } else {
- config = configOrUrl || {};
- }
-
- config = mergeConfig(this.defaults, config);
-
- // Set config.method
- if (config.method) {
- config.method = config.method.toLowerCase();
- } else if (this.defaults.method) {
- config.method = this.defaults.method.toLowerCase();
- } else {
- config.method = 'get';
- }
-
- var transitional = config.transitional;
-
- if (transitional !== undefined) {
- validator.assertOptions(transitional, {
- silentJSONParsing: validators.transitional(validators.boolean),
- forcedJSONParsing: validators.transitional(validators.boolean),
- clarifyTimeoutError: validators.transitional(validators.boolean)
- }, false);
- }
-
- // filter out skipped interceptors
- var requestInterceptorChain = [];
- var synchronousRequestInterceptors = true;
- this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
- if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
- return;
- }
-
- synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
-
- requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
- });
-
- var responseInterceptorChain = [];
- this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
- responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
- });
-
- var promise;
-
- if (!synchronousRequestInterceptors) {
- var chain = [dispatchRequest, undefined];
-
- Array.prototype.unshift.apply(chain, requestInterceptorChain);
- chain = chain.concat(responseInterceptorChain);
-
- promise = Promise.resolve(config);
- while (chain.length) {
- promise = promise.then(chain.shift(), chain.shift());
- }
-
- return promise;
- }
-
-
- var newConfig = config;
- while (requestInterceptorChain.length) {
- var onFulfilled = requestInterceptorChain.shift();
- var onRejected = requestInterceptorChain.shift();
- try {
- newConfig = onFulfilled(newConfig);
- } catch (error) {
- onRejected(error);
- break;
- }
- }
-
- try {
- promise = dispatchRequest(newConfig);
- } catch (error) {
- return Promise.reject(error);
- }
-
- while (responseInterceptorChain.length) {
- promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());
- }
-
- return promise;
-};
-
-Axios.prototype.getUri = function getUri(config) {
- config = mergeConfig(this.defaults, config);
- var fullPath = buildFullPath(config.baseURL, config.url);
- return buildURL(fullPath, config.params, config.paramsSerializer);
-};
-
-// Provide aliases for supported request methods
-utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
- /*eslint func-names:0*/
- Axios.prototype[method] = function(url, config) {
- return this.request(mergeConfig(config || {}, {
- method: method,
- url: url,
- data: (config || {}).data
- }));
- };
-});
-
-utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
- /*eslint func-names:0*/
-
- function generateHTTPMethod(isForm) {
- return function httpMethod(url, data, config) {
- return this.request(mergeConfig(config || {}, {
- method: method,
- headers: isForm ? {
- 'Content-Type': 'multipart/form-data'
- } : {},
- url: url,
- data: data
- }));
- };
- }
-
- Axios.prototype[method] = generateHTTPMethod();
-
- Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
-});
-
-module.exports = Axios;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/AxiosError.js":
-/*!***************************************************!*\
- !*** ./node_modules/axios/lib/core/AxiosError.js ***!
- \***************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-
-/**
- * Create an Error with the specified message, config, error code, request and response.
- *
- * @param {string} message The error message.
- * @param {string} [code] The error code (for example, 'ECONNABORTED').
- * @param {Object} [config] The config.
- * @param {Object} [request] The request.
- * @param {Object} [response] The response.
- * @returns {Error} The created error.
- */
-function AxiosError(message, code, config, request, response) {
- Error.call(this);
- this.message = message;
- this.name = 'AxiosError';
- code && (this.code = code);
- config && (this.config = config);
- request && (this.request = request);
- response && (this.response = response);
-}
-
-utils.inherits(AxiosError, Error, {
- toJSON: function toJSON() {
- return {
- // Standard
- message: this.message,
- name: this.name,
- // Microsoft
- description: this.description,
- number: this.number,
- // Mozilla
- fileName: this.fileName,
- lineNumber: this.lineNumber,
- columnNumber: this.columnNumber,
- stack: this.stack,
- // Axios
- config: this.config,
- code: this.code,
- status: this.response && this.response.status ? this.response.status : null
- };
- }
-});
-
-var prototype = AxiosError.prototype;
-var descriptors = {};
-
-[
- 'ERR_BAD_OPTION_VALUE',
- 'ERR_BAD_OPTION',
- 'ECONNABORTED',
- 'ETIMEDOUT',
- 'ERR_NETWORK',
- 'ERR_FR_TOO_MANY_REDIRECTS',
- 'ERR_DEPRECATED',
- 'ERR_BAD_RESPONSE',
- 'ERR_BAD_REQUEST',
- 'ERR_CANCELED'
-// eslint-disable-next-line func-names
-].forEach(function(code) {
- descriptors[code] = {value: code};
-});
-
-Object.defineProperties(AxiosError, descriptors);
-Object.defineProperty(prototype, 'isAxiosError', {value: true});
-
-// eslint-disable-next-line func-names
-AxiosError.from = function(error, code, config, request, response, customProps) {
- var axiosError = Object.create(prototype);
-
- utils.toFlatObject(error, axiosError, function filter(obj) {
- return obj !== Error.prototype;
- });
-
- AxiosError.call(axiosError, error.message, code, config, request, response);
-
- axiosError.name = error.name;
-
- customProps && Object.assign(axiosError, customProps);
-
- return axiosError;
-};
-
-module.exports = AxiosError;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
-/*!***********************************************************!*\
- !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
- \***********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-function InterceptorManager() {
- this.handlers = [];
-}
-
-/**
- * Add a new interceptor to the stack
- *
- * @param {Function} fulfilled The function to handle `then` for a `Promise`
- * @param {Function} rejected The function to handle `reject` for a `Promise`
- *
- * @return {Number} An ID used to remove interceptor later
- */
-InterceptorManager.prototype.use = function use(fulfilled, rejected, options) {
- this.handlers.push({
- fulfilled: fulfilled,
- rejected: rejected,
- synchronous: options ? options.synchronous : false,
- runWhen: options ? options.runWhen : null
- });
- return this.handlers.length - 1;
-};
-
-/**
- * Remove an interceptor from the stack
- *
- * @param {Number} id The ID that was returned by `use`
- */
-InterceptorManager.prototype.eject = function eject(id) {
- if (this.handlers[id]) {
- this.handlers[id] = null;
- }
-};
-
-/**
- * Iterate over all the registered interceptors
- *
- * This method is particularly useful for skipping over any
- * interceptors that may have become `null` calling `eject`.
- *
- * @param {Function} fn The function to call for each interceptor
- */
-InterceptorManager.prototype.forEach = function forEach(fn) {
- utils.forEach(this.handlers, function forEachHandler(h) {
- if (h !== null) {
- fn(h);
- }
- });
-};
-
-module.exports = InterceptorManager;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/buildFullPath.js":
-/*!******************************************************!*\
- !*** ./node_modules/axios/lib/core/buildFullPath.js ***!
- \******************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");
-var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js");
-
-/**
- * Creates a new URL by combining the baseURL with the requestedURL,
- * only when the requestedURL is not already an absolute URL.
- * If the requestURL is absolute, this function returns the requestedURL untouched.
- *
- * @param {string} baseURL The base URL
- * @param {string} requestedURL Absolute or relative URL to combine
- * @returns {string} The combined full path
- */
-module.exports = function buildFullPath(baseURL, requestedURL) {
- if (baseURL && !isAbsoluteURL(requestedURL)) {
- return combineURLs(baseURL, requestedURL);
- }
- return requestedURL;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
-/*!********************************************************!*\
- !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
- \********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js");
-var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
-var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults/index.js");
-var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ "./node_modules/axios/lib/cancel/CanceledError.js");
-
-/**
- * Throws a `CanceledError` if cancellation has been requested.
- */
-function throwIfCancellationRequested(config) {
- if (config.cancelToken) {
- config.cancelToken.throwIfRequested();
- }
-
- if (config.signal && config.signal.aborted) {
- throw new CanceledError();
- }
-}
-
-/**
- * Dispatch a request to the server using the configured adapter.
- *
- * @param {object} config The config that is to be used for the request
- * @returns {Promise} The Promise to be fulfilled
- */
-module.exports = function dispatchRequest(config) {
- throwIfCancellationRequested(config);
-
- // Ensure headers exist
- config.headers = config.headers || {};
-
- // Transform request data
- config.data = transformData.call(
- config,
- config.data,
- config.headers,
- config.transformRequest
- );
-
- // Flatten headers
- config.headers = utils.merge(
- config.headers.common || {},
- config.headers[config.method] || {},
- config.headers
- );
-
- utils.forEach(
- ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
- function cleanHeaderConfig(method) {
- delete config.headers[method];
- }
- );
-
- var adapter = config.adapter || defaults.adapter;
-
- return adapter(config).then(function onAdapterResolution(response) {
- throwIfCancellationRequested(config);
-
- // Transform response data
- response.data = transformData.call(
- config,
- response.data,
- response.headers,
- config.transformResponse
- );
-
- return response;
- }, function onAdapterRejection(reason) {
- if (!isCancel(reason)) {
- throwIfCancellationRequested(config);
-
- // Transform response data
- if (reason && reason.response) {
- reason.response.data = transformData.call(
- config,
- reason.response.data,
- reason.response.headers,
- config.transformResponse
- );
- }
- }
-
- return Promise.reject(reason);
- });
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/mergeConfig.js":
-/*!****************************************************!*\
- !*** ./node_modules/axios/lib/core/mergeConfig.js ***!
- \****************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-
-/**
- * Config-specific merge-function which creates a new config-object
- * by merging two configuration objects together.
- *
- * @param {Object} config1
- * @param {Object} config2
- * @returns {Object} New object resulting from merging config2 to config1
- */
-module.exports = function mergeConfig(config1, config2) {
- // eslint-disable-next-line no-param-reassign
- config2 = config2 || {};
- var config = {};
-
- function getMergedValue(target, source) {
- if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
- return utils.merge(target, source);
- } else if (utils.isPlainObject(source)) {
- return utils.merge({}, source);
- } else if (utils.isArray(source)) {
- return source.slice();
- }
- return source;
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDeepProperties(prop) {
- if (!utils.isUndefined(config2[prop])) {
- return getMergedValue(config1[prop], config2[prop]);
- } else if (!utils.isUndefined(config1[prop])) {
- return getMergedValue(undefined, config1[prop]);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function valueFromConfig2(prop) {
- if (!utils.isUndefined(config2[prop])) {
- return getMergedValue(undefined, config2[prop]);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function defaultToConfig2(prop) {
- if (!utils.isUndefined(config2[prop])) {
- return getMergedValue(undefined, config2[prop]);
- } else if (!utils.isUndefined(config1[prop])) {
- return getMergedValue(undefined, config1[prop]);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDirectKeys(prop) {
- if (prop in config2) {
- return getMergedValue(config1[prop], config2[prop]);
- } else if (prop in config1) {
- return getMergedValue(undefined, config1[prop]);
- }
- }
-
- var mergeMap = {
- 'url': valueFromConfig2,
- 'method': valueFromConfig2,
- 'data': valueFromConfig2,
- 'baseURL': defaultToConfig2,
- 'transformRequest': defaultToConfig2,
- 'transformResponse': defaultToConfig2,
- 'paramsSerializer': defaultToConfig2,
- 'timeout': defaultToConfig2,
- 'timeoutMessage': defaultToConfig2,
- 'withCredentials': defaultToConfig2,
- 'adapter': defaultToConfig2,
- 'responseType': defaultToConfig2,
- 'xsrfCookieName': defaultToConfig2,
- 'xsrfHeaderName': defaultToConfig2,
- 'onUploadProgress': defaultToConfig2,
- 'onDownloadProgress': defaultToConfig2,
- 'decompress': defaultToConfig2,
- 'maxContentLength': defaultToConfig2,
- 'maxBodyLength': defaultToConfig2,
- 'beforeRedirect': defaultToConfig2,
- 'transport': defaultToConfig2,
- 'httpAgent': defaultToConfig2,
- 'httpsAgent': defaultToConfig2,
- 'cancelToken': defaultToConfig2,
- 'socketPath': defaultToConfig2,
- 'responseEncoding': defaultToConfig2,
- 'validateStatus': mergeDirectKeys
- };
-
- utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {
- var merge = mergeMap[prop] || mergeDeepProperties;
- var configValue = merge(prop);
- (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
- });
-
- return config;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/settle.js":
-/*!***********************************************!*\
- !*** ./node_modules/axios/lib/core/settle.js ***!
- \***********************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var AxiosError = __webpack_require__(/*! ./AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-
-/**
- * Resolve or reject a Promise based on response status.
- *
- * @param {Function} resolve A function that resolves the promise.
- * @param {Function} reject A function that rejects the promise.
- * @param {object} response The response.
- */
-module.exports = function settle(resolve, reject, response) {
- var validateStatus = response.config.validateStatus;
- if (!response.status || !validateStatus || validateStatus(response.status)) {
- resolve(response);
- } else {
- reject(new AxiosError(
- 'Request failed with status code ' + response.status,
- [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
- response.config,
- response.request,
- response
- ));
- }
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/core/transformData.js":
-/*!******************************************************!*\
- !*** ./node_modules/axios/lib/core/transformData.js ***!
- \******************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults/index.js");
-
-/**
- * Transform the data for a request or a response
- *
- * @param {Object|String} data The data to be transformed
- * @param {Array} headers The headers for the request or response
- * @param {Array|Function} fns A single function or Array of functions
- * @returns {*} The resulting transformed data
- */
-module.exports = function transformData(data, headers, fns) {
- var context = this || defaults;
- /*eslint no-param-reassign:0*/
- utils.forEach(fns, function transform(fn) {
- data = fn.call(context, data, headers);
- });
-
- return data;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/defaults/index.js":
-/*!**************************************************!*\
- !*** ./node_modules/axios/lib/defaults/index.js ***!
- \**************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-var normalizeHeaderName = __webpack_require__(/*! ../helpers/normalizeHeaderName */ "./node_modules/axios/lib/helpers/normalizeHeaderName.js");
-var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-var transitionalDefaults = __webpack_require__(/*! ./transitional */ "./node_modules/axios/lib/defaults/transitional.js");
-var toFormData = __webpack_require__(/*! ../helpers/toFormData */ "./node_modules/axios/lib/helpers/toFormData.js");
-
-var DEFAULT_CONTENT_TYPE = {
- 'Content-Type': 'application/x-www-form-urlencoded'
-};
-
-function setContentTypeIfUnset(headers, value) {
- if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
- headers['Content-Type'] = value;
- }
-}
-
-function getDefaultAdapter() {
- var adapter;
- if (typeof XMLHttpRequest !== 'undefined') {
- // For browsers use XHR adapter
- adapter = __webpack_require__(/*! ../adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js");
- } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
- // For node use HTTP adapter
- adapter = __webpack_require__(/*! ../adapters/http */ "./node_modules/axios/lib/adapters/xhr.js");
- }
- return adapter;
-}
-
-function stringifySafely(rawValue, parser, encoder) {
- if (utils.isString(rawValue)) {
- try {
- (parser || JSON.parse)(rawValue);
- return utils.trim(rawValue);
- } catch (e) {
- if (e.name !== 'SyntaxError') {
- throw e;
- }
- }
- }
-
- return (encoder || JSON.stringify)(rawValue);
-}
-
-var defaults = {
-
- transitional: transitionalDefaults,
-
- adapter: getDefaultAdapter(),
-
- transformRequest: [function transformRequest(data, headers) {
- normalizeHeaderName(headers, 'Accept');
- normalizeHeaderName(headers, 'Content-Type');
-
- if (utils.isFormData(data) ||
- utils.isArrayBuffer(data) ||
- utils.isBuffer(data) ||
- utils.isStream(data) ||
- utils.isFile(data) ||
- utils.isBlob(data)
- ) {
- return data;
- }
- if (utils.isArrayBufferView(data)) {
- return data.buffer;
- }
- if (utils.isURLSearchParams(data)) {
- setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
- return data.toString();
- }
-
- var isObjectPayload = utils.isObject(data);
- var contentType = headers && headers['Content-Type'];
-
- var isFileList;
-
- if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {
- var _FormData = this.env && this.env.FormData;
- return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());
- } else if (isObjectPayload || contentType === 'application/json') {
- setContentTypeIfUnset(headers, 'application/json');
- return stringifySafely(data);
- }
-
- return data;
- }],
-
- transformResponse: [function transformResponse(data) {
- var transitional = this.transitional || defaults.transitional;
- var silentJSONParsing = transitional && transitional.silentJSONParsing;
- var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
- var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
-
- if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
- try {
- return JSON.parse(data);
- } catch (e) {
- if (strictJSONParsing) {
- if (e.name === 'SyntaxError') {
- throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
- }
- throw e;
- }
- }
- }
-
- return data;
- }],
-
- /**
- * A timeout in milliseconds to abort a request. If set to 0 (default) a
- * timeout is not created.
- */
- timeout: 0,
-
- xsrfCookieName: 'XSRF-TOKEN',
- xsrfHeaderName: 'X-XSRF-TOKEN',
-
- maxContentLength: -1,
- maxBodyLength: -1,
-
- env: {
- FormData: __webpack_require__(/*! ./env/FormData */ "./node_modules/axios/lib/helpers/null.js")
- },
-
- validateStatus: function validateStatus(status) {
- return status >= 200 && status < 300;
- },
-
- headers: {
- common: {
- 'Accept': 'application/json, text/plain, */*'
- }
- }
-};
-
-utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
- defaults.headers[method] = {};
-});
-
-utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
- defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
-});
-
-module.exports = defaults;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/defaults/transitional.js":
-/*!*********************************************************!*\
- !*** ./node_modules/axios/lib/defaults/transitional.js ***!
- \*********************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = {
- silentJSONParsing: true,
- forcedJSONParsing: true,
- clarifyTimeoutError: false
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/env/data.js":
-/*!********************************************!*\
- !*** ./node_modules/axios/lib/env/data.js ***!
- \********************************************/
-/***/ ((module) => {
-
-module.exports = {
- "version": "0.27.2"
-};
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/bind.js":
-/*!************************************************!*\
- !*** ./node_modules/axios/lib/helpers/bind.js ***!
- \************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = function bind(fn, thisArg) {
- return function wrap() {
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- return fn.apply(thisArg, args);
- };
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/buildURL.js":
-/*!****************************************************!*\
- !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
- \****************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-function encode(val) {
- return encodeURIComponent(val).
- replace(/%3A/gi, ':').
- replace(/%24/g, '$').
- replace(/%2C/gi, ',').
- replace(/%20/g, '+').
- replace(/%5B/gi, '[').
- replace(/%5D/gi, ']');
-}
-
-/**
- * Build a URL by appending params to the end
- *
- * @param {string} url The base of the url (e.g., http://www.google.com)
- * @param {object} [params] The params to be appended
- * @returns {string} The formatted url
- */
-module.exports = function buildURL(url, params, paramsSerializer) {
- /*eslint no-param-reassign:0*/
- if (!params) {
- return url;
- }
-
- var serializedParams;
- if (paramsSerializer) {
- serializedParams = paramsSerializer(params);
- } else if (utils.isURLSearchParams(params)) {
- serializedParams = params.toString();
- } else {
- var parts = [];
-
- utils.forEach(params, function serialize(val, key) {
- if (val === null || typeof val === 'undefined') {
- return;
- }
-
- if (utils.isArray(val)) {
- key = key + '[]';
- } else {
- val = [val];
- }
-
- utils.forEach(val, function parseValue(v) {
- if (utils.isDate(v)) {
- v = v.toISOString();
- } else if (utils.isObject(v)) {
- v = JSON.stringify(v);
- }
- parts.push(encode(key) + '=' + encode(v));
- });
- });
-
- serializedParams = parts.join('&');
- }
-
- if (serializedParams) {
- var hashmarkIndex = url.indexOf('#');
- if (hashmarkIndex !== -1) {
- url = url.slice(0, hashmarkIndex);
- }
-
- url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
- }
-
- return url;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/combineURLs.js":
-/*!*******************************************************!*\
- !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
- \*******************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-/**
- * Creates a new URL by combining the specified URLs
- *
- * @param {string} baseURL The base URL
- * @param {string} relativeURL The relative URL
- * @returns {string} The combined URL
- */
-module.exports = function combineURLs(baseURL, relativeURL) {
- return relativeURL
- ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
- : baseURL;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/cookies.js":
-/*!***************************************************!*\
- !*** ./node_modules/axios/lib/helpers/cookies.js ***!
- \***************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-module.exports = (
- utils.isStandardBrowserEnv() ?
-
- // Standard browser envs support document.cookie
- (function standardBrowserEnv() {
- return {
- write: function write(name, value, expires, path, domain, secure) {
- var cookie = [];
- cookie.push(name + '=' + encodeURIComponent(value));
-
- if (utils.isNumber(expires)) {
- cookie.push('expires=' + new Date(expires).toGMTString());
- }
-
- if (utils.isString(path)) {
- cookie.push('path=' + path);
- }
-
- if (utils.isString(domain)) {
- cookie.push('domain=' + domain);
- }
-
- if (secure === true) {
- cookie.push('secure');
- }
-
- document.cookie = cookie.join('; ');
- },
-
- read: function read(name) {
- var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
- return (match ? decodeURIComponent(match[3]) : null);
- },
-
- remove: function remove(name) {
- this.write(name, '', Date.now() - 86400000);
- }
- };
- })() :
-
- // Non standard browser env (web workers, react-native) lack needed support.
- (function nonStandardBrowserEnv() {
- return {
- write: function write() {},
- read: function read() { return null; },
- remove: function remove() {}
- };
- })()
-);
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
-/*!*********************************************************!*\
- !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
- \*********************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-/**
- * Determines whether the specified URL is absolute
- *
- * @param {string} url The URL to test
- * @returns {boolean} True if the specified URL is absolute, otherwise false
- */
-module.exports = function isAbsoluteURL(url) {
- // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
- // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
- // by any combination of letters, digits, plus, period, or hyphen.
- return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/isAxiosError.js":
-/*!********************************************************!*\
- !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***!
- \********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-/**
- * Determines whether the payload is an error thrown by Axios
- *
- * @param {*} payload The value to test
- * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
- */
-module.exports = function isAxiosError(payload) {
- return utils.isObject(payload) && (payload.isAxiosError === true);
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
-/*!***********************************************************!*\
- !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
- \***********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-module.exports = (
- utils.isStandardBrowserEnv() ?
-
- // Standard browser envs have full support of the APIs needed to test
- // whether the request URL is of the same origin as current location.
- (function standardBrowserEnv() {
- var msie = /(msie|trident)/i.test(navigator.userAgent);
- var urlParsingNode = document.createElement('a');
- var originURL;
-
- /**
- * Parse a URL to discover it's components
- *
- * @param {String} url The URL to be parsed
- * @returns {Object}
- */
- function resolveURL(url) {
- var href = url;
-
- if (msie) {
- // IE needs attribute set twice to normalize properties
- urlParsingNode.setAttribute('href', href);
- href = urlParsingNode.href;
- }
-
- urlParsingNode.setAttribute('href', href);
-
- // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
- return {
- href: urlParsingNode.href,
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
- host: urlParsingNode.host,
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
- hostname: urlParsingNode.hostname,
- port: urlParsingNode.port,
- pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
- urlParsingNode.pathname :
- '/' + urlParsingNode.pathname
- };
- }
-
- originURL = resolveURL(window.location.href);
-
- /**
- * Determine if a URL shares the same origin as the current location
- *
- * @param {String} requestURL The URL to test
- * @returns {boolean} True if URL shares the same origin, otherwise false
- */
- return function isURLSameOrigin(requestURL) {
- var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
- return (parsed.protocol === originURL.protocol &&
- parsed.host === originURL.host);
- };
- })() :
-
- // Non standard browser envs (web workers, react-native) lack needed support.
- (function nonStandardBrowserEnv() {
- return function isURLSameOrigin() {
- return true;
- };
- })()
-);
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js":
-/*!***************************************************************!*\
- !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
- \***************************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-
-module.exports = function normalizeHeaderName(headers, normalizedName) {
- utils.forEach(headers, function processHeader(value, name) {
- if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
- headers[normalizedName] = value;
- delete headers[name];
- }
- });
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/null.js":
-/*!************************************************!*\
- !*** ./node_modules/axios/lib/helpers/null.js ***!
- \************************************************/
-/***/ ((module) => {
-
-// eslint-disable-next-line strict
-module.exports = null;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
-/*!********************************************************!*\
- !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
- \********************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
-
-// Headers whose duplicates are ignored by node
-// c.f. https://nodejs.org/api/http.html#http_message_headers
-var ignoreDuplicateOf = [
- 'age', 'authorization', 'content-length', 'content-type', 'etag',
- 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
- 'last-modified', 'location', 'max-forwards', 'proxy-authorization',
- 'referer', 'retry-after', 'user-agent'
-];
-
-/**
- * Parse headers into an object
- *
- * ```
- * Date: Wed, 27 Aug 2014 08:58:49 GMT
- * Content-Type: application/json
- * Connection: keep-alive
- * Transfer-Encoding: chunked
- * ```
- *
- * @param {String} headers Headers needing to be parsed
- * @returns {Object} Headers parsed into an object
- */
-module.exports = function parseHeaders(headers) {
- var parsed = {};
- var key;
- var val;
- var i;
-
- if (!headers) { return parsed; }
-
- utils.forEach(headers.split('\n'), function parser(line) {
- i = line.indexOf(':');
- key = utils.trim(line.substr(0, i)).toLowerCase();
- val = utils.trim(line.substr(i + 1));
-
- if (key) {
- if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
- return;
- }
- if (key === 'set-cookie') {
- parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
- } else {
- parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
- }
- }
- });
-
- return parsed;
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/parseProtocol.js":
-/*!*********************************************************!*\
- !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***!
- \*********************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-module.exports = function parseProtocol(url) {
- var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
- return match && match[1] || '';
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/spread.js":
-/*!**************************************************!*\
- !*** ./node_modules/axios/lib/helpers/spread.js ***!
- \**************************************************/
-/***/ ((module) => {
-
-"use strict";
-
-
-/**
- * Syntactic sugar for invoking a function and expanding an array for arguments.
- *
- * Common use case would be to use `Function.prototype.apply`.
- *
- * ```js
- * function f(x, y, z) {}
- * var args = [1, 2, 3];
- * f.apply(null, args);
- * ```
- *
- * With `spread` this example can be re-written.
- *
- * ```js
- * spread(function(x, y, z) {})([1, 2, 3]);
- * ```
- *
- * @param {Function} callback
- * @returns {Function}
- */
-module.exports = function spread(callback) {
- return function wrap(arr) {
- return callback.apply(null, arr);
- };
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/toFormData.js":
-/*!******************************************************!*\
- !*** ./node_modules/axios/lib/helpers/toFormData.js ***!
- \******************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
-
-/**
- * Convert a data object to FormData
- * @param {Object} obj
- * @param {?Object} [formData]
- * @returns {Object}
- **/
-
-function toFormData(obj, formData) {
- // eslint-disable-next-line no-param-reassign
- formData = formData || new FormData();
-
- var stack = [];
-
- function convertValue(value) {
- if (value === null) return '';
-
- if (utils.isDate(value)) {
- return value.toISOString();
- }
-
- if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
- return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
- }
-
- return value;
- }
-
- function build(data, parentKey) {
- if (utils.isPlainObject(data) || utils.isArray(data)) {
- if (stack.indexOf(data) !== -1) {
- throw Error('Circular reference detected in ' + parentKey);
- }
-
- stack.push(data);
-
- utils.forEach(data, function each(value, key) {
- if (utils.isUndefined(value)) return;
- var fullKey = parentKey ? parentKey + '.' + key : key;
- var arr;
-
- if (value && !parentKey && typeof value === 'object') {
- if (utils.endsWith(key, '{}')) {
- // eslint-disable-next-line no-param-reassign
- value = JSON.stringify(value);
- } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {
- // eslint-disable-next-line func-names
- arr.forEach(function(el) {
- !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));
- });
- return;
- }
- }
-
- build(value, fullKey);
- });
-
- stack.pop();
- } else {
- formData.append(parentKey, convertValue(data));
- }
- }
-
- build(obj);
-
- return formData;
-}
-
-module.exports = toFormData;
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/helpers/validator.js":
-/*!*****************************************************!*\
- !*** ./node_modules/axios/lib/helpers/validator.js ***!
- \*****************************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var VERSION = (__webpack_require__(/*! ../env/data */ "./node_modules/axios/lib/env/data.js").version);
-var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./node_modules/axios/lib/core/AxiosError.js");
-
-var validators = {};
-
-// eslint-disable-next-line func-names
-['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {
- validators[type] = function validator(thing) {
- return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
- };
-});
-
-var deprecatedWarnings = {};
-
-/**
- * Transitional option validator
- * @param {function|boolean?} validator - set to false if the transitional option has been removed
- * @param {string?} version - deprecated version / removed since version
- * @param {string?} message - some message with additional info
- * @returns {function}
- */
-validators.transitional = function transitional(validator, version, message) {
- function formatMessage(opt, desc) {
- return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
- }
-
- // eslint-disable-next-line func-names
- return function(value, opt, opts) {
- if (validator === false) {
- throw new AxiosError(
- formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
- AxiosError.ERR_DEPRECATED
- );
- }
-
- if (version && !deprecatedWarnings[opt]) {
- deprecatedWarnings[opt] = true;
- // eslint-disable-next-line no-console
- console.warn(
- formatMessage(
- opt,
- ' has been deprecated since v' + version + ' and will be removed in the near future'
- )
- );
- }
-
- return validator ? validator(value, opt, opts) : true;
- };
-};
-
-/**
- * Assert object's properties type
- * @param {object} options
- * @param {object} schema
- * @param {boolean?} allowUnknown
- */
-
-function assertOptions(options, schema, allowUnknown) {
- if (typeof options !== 'object') {
- throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
- }
- var keys = Object.keys(options);
- var i = keys.length;
- while (i-- > 0) {
- var opt = keys[i];
- var validator = schema[opt];
- if (validator) {
- var value = options[opt];
- var result = value === undefined || validator(value, opt, options);
- if (result !== true) {
- throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
- }
- continue;
- }
- if (allowUnknown !== true) {
- throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
- }
- }
-}
-
-module.exports = {
- assertOptions: assertOptions,
- validators: validators
-};
-
-
-/***/ }),
-
-/***/ "./node_modules/axios/lib/utils.js":
-/*!*****************************************!*\
- !*** ./node_modules/axios/lib/utils.js ***!
- \*****************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-
-
-var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
-
-// utils is a library of generic helper functions non-specific to axios
-
-var toString = Object.prototype.toString;
-
-// eslint-disable-next-line func-names
-var kindOf = (function(cache) {
- // eslint-disable-next-line func-names
- return function(thing) {
- var str = toString.call(thing);
- return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
- };
-})(Object.create(null));
-
-function kindOfTest(type) {
- type = type.toLowerCase();
- return function isKindOf(thing) {
- return kindOf(thing) === type;
- };
-}
-
-/**
- * Determine if a value is an Array
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Array, otherwise false
- */
-function isArray(val) {
- return Array.isArray(val);
-}
-
-/**
- * Determine if a value is undefined
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if the value is undefined, otherwise false
- */
-function isUndefined(val) {
- return typeof val === 'undefined';
-}
-
-/**
- * Determine if a value is a Buffer
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Buffer, otherwise false
- */
-function isBuffer(val) {
- return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
- && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);
-}
-
-/**
- * Determine if a value is an ArrayBuffer
- *
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an ArrayBuffer, otherwise false
- */
-var isArrayBuffer = kindOfTest('ArrayBuffer');
-
-
-/**
- * Determine if a value is a view on an ArrayBuffer
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
- */
-function isArrayBufferView(val) {
- var result;
- if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
- result = ArrayBuffer.isView(val);
- } else {
- result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
- }
- return result;
-}
-
-/**
- * Determine if a value is a String
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a String, otherwise false
- */
-function isString(val) {
- return typeof val === 'string';
-}
-
-/**
- * Determine if a value is a Number
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Number, otherwise false
- */
-function isNumber(val) {
- return typeof val === 'number';
-}
-
-/**
- * Determine if a value is an Object
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Object, otherwise false
- */
-function isObject(val) {
- return val !== null && typeof val === 'object';
-}
-
-/**
- * Determine if a value is a plain Object
- *
- * @param {Object} val The value to test
- * @return {boolean} True if value is a plain Object, otherwise false
- */
-function isPlainObject(val) {
- if (kindOf(val) !== 'object') {
- return false;
- }
-
- var prototype = Object.getPrototypeOf(val);
- return prototype === null || prototype === Object.prototype;
-}
-
-/**
- * Determine if a value is a Date
- *
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Date, otherwise false
- */
-var isDate = kindOfTest('Date');
-
-/**
- * Determine if a value is a File
- *
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a File, otherwise false
- */
-var isFile = kindOfTest('File');
-
-/**
- * Determine if a value is a Blob
- *
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Blob, otherwise false
- */
-var isBlob = kindOfTest('Blob');
-
-/**
- * Determine if a value is a FileList
- *
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a File, otherwise false
- */
-var isFileList = kindOfTest('FileList');
-
-/**
- * Determine if a value is a Function
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Function, otherwise false
- */
-function isFunction(val) {
- return toString.call(val) === '[object Function]';
-}
-
-/**
- * Determine if a value is a Stream
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Stream, otherwise false
- */
-function isStream(val) {
- return isObject(val) && isFunction(val.pipe);
-}
-
-/**
- * Determine if a value is a FormData
- *
- * @param {Object} thing The value to test
- * @returns {boolean} True if value is an FormData, otherwise false
- */
-function isFormData(thing) {
- var pattern = '[object FormData]';
- return thing && (
- (typeof FormData === 'function' && thing instanceof FormData) ||
- toString.call(thing) === pattern ||
- (isFunction(thing.toString) && thing.toString() === pattern)
- );
-}
-
-/**
- * Determine if a value is a URLSearchParams object
- * @function
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a URLSearchParams object, otherwise false
- */
-var isURLSearchParams = kindOfTest('URLSearchParams');
-
-/**
- * Trim excess whitespace off the beginning and end of a string
- *
- * @param {String} str The String to trim
- * @returns {String} The String freed of excess whitespace
- */
-function trim(str) {
- return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
-}
-
-/**
- * Determine if we're running in a standard browser environment
- *
- * This allows axios to run in a web worker, and react-native.
- * Both environments support XMLHttpRequest, but not fully standard globals.
- *
- * web workers:
- * typeof window -> undefined
- * typeof document -> undefined
- *
- * react-native:
- * navigator.product -> 'ReactNative'
- * nativescript
- * navigator.product -> 'NativeScript' or 'NS'
- */
-function isStandardBrowserEnv() {
- if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
- navigator.product === 'NativeScript' ||
- navigator.product === 'NS')) {
- return false;
- }
- return (
- typeof window !== 'undefined' &&
- typeof document !== 'undefined'
- );
-}
-
-/**
- * Iterate over an Array or an Object invoking a function for each item.
- *
- * If `obj` is an Array callback will be called passing
- * the value, index, and complete array for each item.
- *
- * If 'obj' is an Object callback will be called passing
- * the value, key, and complete object for each property.
- *
- * @param {Object|Array} obj The object to iterate
- * @param {Function} fn The callback to invoke for each item
- */
-function forEach(obj, fn) {
- // Don't bother if no value provided
- if (obj === null || typeof obj === 'undefined') {
- return;
- }
-
- // Force an array if not already something iterable
- if (typeof obj !== 'object') {
- /*eslint no-param-reassign:0*/
- obj = [obj];
- }
-
- if (isArray(obj)) {
- // Iterate over array values
- for (var i = 0, l = obj.length; i < l; i++) {
- fn.call(null, obj[i], i, obj);
- }
- } else {
- // Iterate over object keys
- for (var key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- fn.call(null, obj[key], key, obj);
- }
- }
- }
-}
-
-/**
- * Accepts varargs expecting each argument to be an object, then
- * immutably merges the properties of each object and returns result.
- *
- * When multiple objects contain the same key the later object in
- * the arguments list will take precedence.
- *
- * Example:
- *
- * ```js
- * var result = merge({foo: 123}, {foo: 456});
- * console.log(result.foo); // outputs 456
- * ```
- *
- * @param {Object} obj1 Object to merge
- * @returns {Object} Result of all merge properties
- */
-function merge(/* obj1, obj2, obj3, ... */) {
- var result = {};
- function assignValue(val, key) {
- if (isPlainObject(result[key]) && isPlainObject(val)) {
- result[key] = merge(result[key], val);
- } else if (isPlainObject(val)) {
- result[key] = merge({}, val);
- } else if (isArray(val)) {
- result[key] = val.slice();
- } else {
- result[key] = val;
- }
- }
-
- for (var i = 0, l = arguments.length; i < l; i++) {
- forEach(arguments[i], assignValue);
- }
- return result;
-}
-
-/**
- * Extends object a by mutably adding to it the properties of object b.
- *
- * @param {Object} a The object to be extended
- * @param {Object} b The object to copy properties from
- * @param {Object} thisArg The object to bind function to
- * @return {Object} The resulting value of object a
- */
-function extend(a, b, thisArg) {
- forEach(b, function assignValue(val, key) {
- if (thisArg && typeof val === 'function') {
- a[key] = bind(val, thisArg);
- } else {
- a[key] = val;
- }
- });
- return a;
-}
-
-/**
- * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
- *
- * @param {string} content with BOM
- * @return {string} content value without BOM
- */
-function stripBOM(content) {
- if (content.charCodeAt(0) === 0xFEFF) {
- content = content.slice(1);
- }
- return content;
-}
-
-/**
- * Inherit the prototype methods from one constructor into another
- * @param {function} constructor
- * @param {function} superConstructor
- * @param {object} [props]
- * @param {object} [descriptors]
- */
-
-function inherits(constructor, superConstructor, props, descriptors) {
- constructor.prototype = Object.create(superConstructor.prototype, descriptors);
- constructor.prototype.constructor = constructor;
- props && Object.assign(constructor.prototype, props);
-}
-
-/**
- * Resolve object with deep prototype chain to a flat object
- * @param {Object} sourceObj source object
- * @param {Object} [destObj]
- * @param {Function} [filter]
- * @returns {Object}
- */
-
-function toFlatObject(sourceObj, destObj, filter) {
- var props;
- var i;
- var prop;
- var merged = {};
-
- destObj = destObj || {};
-
- do {
- props = Object.getOwnPropertyNames(sourceObj);
- i = props.length;
- while (i-- > 0) {
- prop = props[i];
- if (!merged[prop]) {
- destObj[prop] = sourceObj[prop];
- merged[prop] = true;
- }
- }
- sourceObj = Object.getPrototypeOf(sourceObj);
- } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);
-
- return destObj;
-}
-
-/*
- * determines whether a string ends with the characters of a specified string
- * @param {String} str
- * @param {String} searchString
- * @param {Number} [position= 0]
- * @returns {boolean}
- */
-function endsWith(str, searchString, position) {
- str = String(str);
- if (position === undefined || position > str.length) {
- position = str.length;
- }
- position -= searchString.length;
- var lastIndex = str.indexOf(searchString, position);
- return lastIndex !== -1 && lastIndex === position;
-}
-
-
-/**
- * Returns new array from array like object
- * @param {*} [thing]
- * @returns {Array}
- */
-function toArray(thing) {
- if (!thing) return null;
- var i = thing.length;
- if (isUndefined(i)) return null;
- var arr = new Array(i);
- while (i-- > 0) {
- arr[i] = thing[i];
- }
- return arr;
-}
-
-// eslint-disable-next-line func-names
-var isTypedArray = (function(TypedArray) {
- // eslint-disable-next-line func-names
- return function(thing) {
- return TypedArray && thing instanceof TypedArray;
- };
-})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));
-
-module.exports = {
- isArray: isArray,
- isArrayBuffer: isArrayBuffer,
- isBuffer: isBuffer,
- isFormData: isFormData,
- isArrayBufferView: isArrayBufferView,
- isString: isString,
- isNumber: isNumber,
- isObject: isObject,
- isPlainObject: isPlainObject,
- isUndefined: isUndefined,
- isDate: isDate,
- isFile: isFile,
- isBlob: isBlob,
- isFunction: isFunction,
- isStream: isStream,
- isURLSearchParams: isURLSearchParams,
- isStandardBrowserEnv: isStandardBrowserEnv,
- forEach: forEach,
- merge: merge,
- extend: extend,
- trim: trim,
- stripBOM: stripBOM,
- inherits: inherits,
- toFlatObject: toFlatObject,
- kindOf: kindOf,
- kindOfTest: kindOfTest,
- endsWith: endsWith,
- toArray: toArray,
- isTypedArray: isTypedArray,
- isFileList: isFileList
-};
-
-
-/***/ }),
-
-/***/ "./resources/js/app-login.js":
-/*!***********************************!*\
- !*** ./resources/js/app-login.js ***!
- \***********************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.js");
-/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bootstrap__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm.js");
-/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! i18next */ "./node_modules/i18next/dist/es/index.js");
-/* harmony import */ var i18next_chained_backend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! i18next-chained-backend */ "./node_modules/i18next-chained-backend/index.js");
-/* harmony import */ var i18next_chained_backend__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(i18next_chained_backend__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var i18next_localstorage_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! i18next-localstorage-backend */ "./node_modules/i18next-localstorage-backend/index.js");
-/* harmony import */ var i18next_localstorage_backend__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(i18next_localstorage_backend__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var i18next_xhr_backend__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! i18next-xhr-backend */ "./node_modules/i18next-xhr-backend/index.js");
-/* harmony import */ var i18next_xhr_backend__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(i18next_xhr_backend__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var _panter_vue_i18next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @panter/vue-i18next */ "./node_modules/@panter/vue-i18next/dist/vue-i18next.esm.js");
-/* harmony import */ var vue_cookies__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue-cookies */ "./node_modules/vue-cookies/vue-cookies.js");
-/* harmony import */ var vue_cookies__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vue_cookies__WEBPACK_IMPORTED_MODULE_6__);
-/* harmony import */ var _modules_lang_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/lang.js */ "./resources/js/modules/lang.js");
-/* harmony import */ var _components_common_mixins_accessibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/common/mixins/accessibility */ "./resources/js/components/common/mixins/accessibility.js");
-var _document$head$queryS;
-function cov_2337h25edu() {
- var path = "/Users/sanjacornelius/Documents/processmaker/resources/js/app-login.js";
- var hash = "195e5558a5d99dbe9490879ad07aabe07e89bf1c";
- var global = new Function("return this")();
- var gcv = "__coverage__";
- var coverageData = {
- path: "/Users/sanjacornelius/Documents/processmaker/resources/js/app-login.js",
- statementMap: {
- "0": {
- start: {
- line: 18,
- column: 0
- },
- end: {
- line: 18,
- column: 23
- }
- },
- "1": {
- start: {
- line: 19,
- column: 0
- },
- end: {
- line: 19,
- column: 29
- }
- },
- "2": {
- start: {
- line: 20,
- column: 0
- },
- end: {
- line: 20,
- column: 45
- }
- },
- "3": {
- start: {
- line: 22,
- column: 0
- },
- end: {
- line: 22,
- column: 45
- }
- },
- "4": {
- start: {
- line: 24,
- column: 0
- },
- end: {
- line: 24,
- column: 17
- }
- },
- "5": {
- start: {
- line: 25,
- column: 0
- },
- end: {
- line: 25,
- column: 17
- }
- },
- "6": {
- start: {
- line: 26,
- column: 0
- },
- end: {
- line: 26,
- column: 29
- }
- },
- "7": {
- start: {
- line: 27,
- column: 0
- },
- end: {
- line: 27,
- column: 27
- }
- },
- "8": {
- start: {
- line: 28,
- column: 0
- },
- end: {
- line: 28,
- column: 27
- }
- },
- "9": {
- start: {
- line: 30,
- column: 25
- },
- end: {
- line: 30,
- column: 30
- }
- },
- "10": {
- start: {
- line: 31,
- column: 15
- },
- end: {
- line: 33,
- column: 1
- }
- },
- "11": {
- start: {
- line: 36,
- column: 0
- },
- end: {
- line: 36,
- column: 45
- }
- },
- "12": {
- start: {
- line: 37,
- column: 0
- },
- end: {
- line: 37,
- column: 30
- }
- },
- "13": {
- start: {
- line: 39,
- column: 0
- },
- end: {
- line: 56,
- column: 2
- }
- },
- "14": {
- start: {
- line: 48,
- column: 4
- },
- end: {
- line: 48,
- column: 56
- }
- },
- "15": {
- start: {
- line: 48,
- column: 47
- },
- end: {
- line: 48,
- column: 54
- }
- },
- "16": {
- start: {
- line: 49,
- column: 4
- },
- end: {
- line: 49,
- column: 40
- }
- },
- "17": {
- start: {
- line: 50,
- column: 4
- },
- end: {
- line: 50,
- column: 48
- }
- },
- "18": {
- start: {
- line: 58,
- column: 0
- },
- end: {
- line: 81,
- column: 3
- }
- },
- "19": {
- start: {
- line: 65,
- column: 4
- },
- end: {
- line: 65,
- column: 46
- }
- },
- "20": {
- start: {
- line: 65,
- column: 31
- },
- end: {
- line: 65,
- column: 44
- }
- },
- "21": {
- start: {
- line: 67,
- column: 4
- },
- end: {
- line: 67,
- column: 50
- }
- },
- "22": {
- start: {
- line: 69,
- column: 4
- },
- end: {
- line: 69,
- column: 17
- }
- },
- "23": {
- start: {
- line: 83,
- column: 0
- },
- end: {
- line: 83,
- column: 75
- }
- },
- "24": {
- start: {
- line: 83,
- column: 45
- },
- end: {
- line: 83,
- column: 71
- }
- },
- "25": {
- start: {
- line: 90,
- column: 0
- },
- end: {
- line: 90,
- column: 49
- }
- },
- "26": {
- start: {
- line: 92,
- column: 0
- },
- end: {
- line: 92,
- column: 93
- }
- },
- "27": {
- start: {
- line: 95,
- column: 25
- },
- end: {
- line: 98,
- column: 1
- }
- },
- "28": {
- start: {
- line: 100,
- column: 0
- },
- end: {
- line: 100,
- column: 77
- }
- },
- "29": {
- start: {
- line: 101,
- column: 0
- },
- end: {
- line: 117,
- column: 3
- }
- },
- "30": {
- start: {
- line: 102,
- column: 2
- },
- end: {
- line: 104,
- column: 3
- }
- },
- "31": {
- start: {
- line: 103,
- column: 4
- },
- end: {
- line: 103,
- column: 64
- }
- },
- "32": {
- start: {
- line: 106,
- column: 2
- },
- end: {
- line: 114,
- column: 5
- }
- },
- "33": {
- start: {
- line: 107,
- column: 26
- },
- end: {
- line: 107,
- column: 44
- }
- },
- "34": {
- start: {
- line: 108,
- column: 4
- },
- end: {
- line: 113,
- column: 5
- }
- },
- "35": {
- start: {
- line: 110,
- column: 6
- },
- end: {
- line: 110,
- column: 31
- }
- },
- "36": {
- start: {
- line: 112,
- column: 6
- },
- end: {
- line: 112,
- column: 57
- }
- },
- "37": {
- start: {
- line: 116,
- column: 2
- },
- end: {
- line: 116,
- column: 16
- }
- },
- "38": {
- start: {
- line: 120,
- column: 17
- },
- end: {
- line: 120,
- column: 21
- }
- },
- "39": {
- start: {
- line: 121,
- column: 0
- },
- end: {
- line: 123,
- column: 1
- }
- },
- "40": {
- start: {
- line: 122,
- column: 2
- },
- end: {
- line: 122,
- column: 46
- }
- },
- "41": {
- start: {
- line: 124,
- column: 0
- },
- end: {
- line: 124,
- column: 60
- }
- },
- "42": {
- start: {
- line: 128,
- column: 0
- },
- end: {
- line: 139,
- column: 3
- }
- },
- "43": {
- start: {
- line: 130,
- column: 4
- },
- end: {
- line: 137,
- column: 7
- }
- },
- "44": {
- start: {
- line: 132,
- column: 8
- },
- end: {
- line: 135,
- column: 9
- }
- },
- "45": {
- start: {
- line: 134,
- column: 10
- },
- end: {
- line: 134,
- column: 17
- }
- },
- "46": {
- start: {
- line: 142,
- column: 0
- },
- end: {
- line: 142,
- column: 52
- }
- }
- },
- fnMap: {
- "0": {
- name: "(anonymous_0)",
- decl: {
- start: {
- line: 47,
- column: 2
- },
- end: {
- line: 47,
- column: 3
- }
- },
- loc: {
- start: {
- line: 47,
- column: 28
- },
- end: {
- line: 51,
- column: 3
- }
- },
- line: 47
- },
- "1": {
- name: "(anonymous_1)",
- decl: {
- start: {
- line: 64,
- column: 2
- },
- end: {
- line: 64,
- column: 3
- }
- },
- loc: {
- start: {
- line: 64,
- column: 32
- },
- end: {
- line: 70,
- column: 3
- }
- },
- line: 64
- },
- "2": {
- name: "(anonymous_2)",
- decl: {
- start: {
- line: 83,
- column: 37
- },
- end: {
- line: 83,
- column: 38
- }
- },
- loc: {
- start: {
- line: 83,
- column: 43
- },
- end: {
- line: 83,
- column: 73
- }
- },
- line: 83
- },
- "3": {
- name: "(anonymous_3)",
- decl: {
- start: {
- line: 101,
- column: 55
- },
- end: {
- line: 101,
- column: 56
- }
- },
- loc: {
- start: {
- line: 101,
- column: 67
- },
- end: {
- line: 117,
- column: 1
- }
- },
- line: 101
- },
- "4": {
- name: "(anonymous_4)",
- decl: {
- start: {
- line: 106,
- column: 27
- },
- end: {
- line: 106,
- column: 28
- }
- },
- loc: {
- start: {
- line: 106,
- column: 53
- },
- end: {
- line: 114,
- column: 3
- }
- },
- line: 106
- },
- "5": {
- name: "(anonymous_5)",
- decl: {
- start: {
- line: 129,
- column: 2
- },
- end: {
- line: 129,
- column: 3
- }
- },
- loc: {
- start: {
- line: 129,
- column: 15
- },
- end: {
- line: 138,
- column: 3
- }
- },
- line: 129
- },
- "6": {
- name: "(anonymous_6)",
- decl: {
- start: {
- line: 131,
- column: 6
- },
- end: {
- line: 131,
- column: 7
- }
- },
- loc: {
- start: {
- line: 131,
- column: 16
- },
- end: {
- line: 136,
- column: 7
- }
- },
- line: 131
- }
- },
- branchMap: {
- "0": {
- loc: {
- start: {
- line: 48,
- column: 4
- },
- end: {
- line: 48,
- column: 56
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 48,
- column: 4
- },
- end: {
- line: 48,
- column: 56
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 48
- },
- "1": {
- loc: {
- start: {
- line: 65,
- column: 4
- },
- end: {
- line: 65,
- column: 46
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 65,
- column: 4
- },
- end: {
- line: 65,
- column: 46
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 65
- },
- "2": {
- loc: {
- start: {
- line: 102,
- column: 2
- },
- end: {
- line: 104,
- column: 3
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 102,
- column: 2
- },
- end: {
- line: 104,
- column: 3
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 102
- },
- "3": {
- loc: {
- start: {
- line: 102,
- column: 6
- },
- end: {
- line: 102,
- column: 51
- }
- },
- type: "binary-expr",
- locations: [{
- start: {
- line: 102,
- column: 6
- },
- end: {
- line: 102,
- column: 36
- }
- }, {
- start: {
- line: 102,
- column: 40
- },
- end: {
- line: 102,
- column: 51
- }
- }],
- line: 102
- },
- "4": {
- loc: {
- start: {
- line: 108,
- column: 4
- },
- end: {
- line: 113,
- column: 5
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 108,
- column: 4
- },
- end: {
- line: 113,
- column: 5
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 108
- },
- "5": {
- loc: {
- start: {
- line: 121,
- column: 0
- },
- end: {
- line: 123,
- column: 1
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 121,
- column: 0
- },
- end: {
- line: 123,
- column: 1
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 121
- },
- "6": {
- loc: {
- start: {
- line: 121,
- column: 4
- },
- end: {
- line: 121,
- column: 71
- }
- },
- type: "binary-expr",
- locations: [{
- start: {
- line: 121,
- column: 4
- },
- end: {
- line: 121,
- column: 23
- }
- }, {
- start: {
- line: 121,
- column: 27
- },
- end: {
- line: 121,
- column: 71
- }
- }],
- line: 121
- },
- "7": {
- loc: {
- start: {
- line: 132,
- column: 8
- },
- end: {
- line: 135,
- column: 9
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 132,
- column: 8
- },
- end: {
- line: 135,
- column: 9
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 132
- }
- },
- s: {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0,
- "40": 0,
- "41": 0,
- "42": 0,
- "43": 0,
- "44": 0,
- "45": 0,
- "46": 0
- },
- f: {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0
- },
- b: {
- "0": [0, 0],
- "1": [0, 0],
- "2": [0, 0],
- "3": [0, 0],
- "4": [0, 0],
- "5": [0, 0],
- "6": [0, 0],
- "7": [0, 0]
- },
- _coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
- hash: "195e5558a5d99dbe9490879ad07aabe07e89bf1c"
- };
- var coverage = global[gcv] || (global[gcv] = {});
- if (!coverage[path] || coverage[path].hash !== hash) {
- coverage[path] = coverageData;
- }
- var actualCoverage = coverage[path];
- {
- // @ts-ignore
- cov_2337h25edu = function () {
- return actualCoverage;
- };
- }
- return actualCoverage;
-}
-cov_2337h25edu();
-
-
-
-/**
- * Setup Translations
- */
-
-
-
-
-
-
-
-
-
-cov_2337h25edu().s[0]++;
-window.__ = _modules_lang_js__WEBPACK_IMPORTED_MODULE_7__["default"];
-cov_2337h25edu().s[1]++;
-window._ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
-cov_2337h25edu().s[2]++;
-window.Popper = (__webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js")["default"]);
-cov_2337h25edu().s[3]++;
-window.$ = window.jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
-cov_2337h25edu().s[4]++;
-window.Vue = vue__WEBPACK_IMPORTED_MODULE_9__["default"];
-cov_2337h25edu().s[5]++;
-window.vue = vue__WEBPACK_IMPORTED_MODULE_9__;
-cov_2337h25edu().s[6]++;
-window.bootstrap = bootstrap__WEBPACK_IMPORTED_MODULE_0__;
-cov_2337h25edu().s[7]++;
-window.Vue.use((vue_cookies__WEBPACK_IMPORTED_MODULE_6___default()));
-cov_2337h25edu().s[8]++;
-window.Vue.use(_panter_vue_i18next__WEBPACK_IMPORTED_MODULE_5__["default"]);
-var translationsLoaded = (cov_2337h25edu().s[9]++, false);
-var mdates = (cov_2337h25edu().s[10]++, JSON.parse((_document$head$queryS = document.head.querySelector("meta[name=\"i18n-mdate\"]")) === null || _document$head$queryS === void 0 ? void 0 : _document$head$queryS.content));
-
-// Make $t available to all vue instances
-cov_2337h25edu().s[11]++;
-vue__WEBPACK_IMPORTED_MODULE_9__["default"].mixin({
- i18n: new _panter_vue_i18next__WEBPACK_IMPORTED_MODULE_5__["default"](i18next__WEBPACK_IMPORTED_MODULE_1__["default"])
-});
-cov_2337h25edu().s[12]++;
-vue__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_components_common_mixins_accessibility__WEBPACK_IMPORTED_MODULE_8__["default"]);
-cov_2337h25edu().s[13]++;
-window.ProcessMaker = {
- i18n: i18next__WEBPACK_IMPORTED_MODULE_1__["default"],
- /**
- * A general use global event bus that can be used
- */
- EventBus: new vue__WEBPACK_IMPORTED_MODULE_9__["default"](),
- packages: [],
- missingTranslations: new Set(),
- missingTranslation: function missingTranslation(value) {
- cov_2337h25edu().f[0]++;
- cov_2337h25edu().s[14]++;
- if (this.missingTranslations.has(value)) {
- cov_2337h25edu().b[0][0]++;
- cov_2337h25edu().s[15]++;
- return;
- } else {
- cov_2337h25edu().b[0][1]++;
- }
- cov_2337h25edu().s[16]++;
- this.missingTranslations.add(value);
- cov_2337h25edu().s[17]++;
- console.warn("Missing Translation:", value);
- },
- $notifications: {
- icons: {}
- }
-};
-cov_2337h25edu().s[18]++;
-window.ProcessMaker.i18nPromise = i18next__WEBPACK_IMPORTED_MODULE_1__["default"].use((i18next_chained_backend__WEBPACK_IMPORTED_MODULE_2___default())).init({
- lng: document.documentElement.lang,
- fallbackLng: "en",
- // default language when no translations
- returnEmptyString: false,
- // When a translation is an empty string, return the default language, not empty
- nsSeparator: false,
- keySeparator: false,
- parseMissingKeyHandler: function parseMissingKeyHandler(value) {
- cov_2337h25edu().f[1]++;
- cov_2337h25edu().s[19]++;
- if (!translationsLoaded) {
- cov_2337h25edu().b[1][0]++;
- cov_2337h25edu().s[20]++;
- return value;
- } else {
- cov_2337h25edu().b[1][1]++;
- }
- // Report that a translation is missing
- cov_2337h25edu().s[21]++;
- window.ProcessMaker.missingTranslation(value);
- // Fallback to showing the english version
- cov_2337h25edu().s[22]++;
- return value;
- },
- backend: {
- backends: [(i18next_localstorage_backend__WEBPACK_IMPORTED_MODULE_3___default()),
- // Try cache first
- (i18next_xhr_backend__WEBPACK_IMPORTED_MODULE_4___default())],
- backendOptions: [{
- versions: mdates
- }, {
- loadPath: "/i18next/fetch/{{lng}}/_default"
- }]
- }
-});
-cov_2337h25edu().s[23]++;
-window.ProcessMaker.i18nPromise.then(function () {
- cov_2337h25edu().f[2]++;
- cov_2337h25edu().s[24]++;
- translationsLoaded = true;
-});
-
-/**
- * Create a axios instance which any vue component can bring in to call
- * REST api endpoints through oauth authentication
- *
- */
-cov_2337h25edu().s[25]++;
-window.ProcessMaker.apiClient = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
-cov_2337h25edu().s[26]++;
-window.ProcessMaker.apiClient.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
-
-// Setup api versions
-var apiVersionConfig = (cov_2337h25edu().s[27]++, [{
- version: "1.0",
- baseURL: "/api/1.0/"
-}, {
- version: "1.1",
- baseURL: "/api/1.1/"
-}]);
-cov_2337h25edu().s[28]++;
-window.ProcessMaker.apiClient.defaults.baseURL = apiVersionConfig[0].baseURL;
-cov_2337h25edu().s[29]++;
-window.ProcessMaker.apiClient.interceptors.request.use(function (config) {
- cov_2337h25edu().f[3]++;
- cov_2337h25edu().s[30]++;
- if ((cov_2337h25edu().b[3][0]++, typeof config.url !== "string") || (cov_2337h25edu().b[3][1]++, !config.url)) {
- cov_2337h25edu().b[2][0]++;
- cov_2337h25edu().s[31]++;
- throw new Error("Invalid URL in the request configuration");
- } else {
- cov_2337h25edu().b[2][1]++;
- }
- cov_2337h25edu().s[32]++;
- apiVersionConfig.forEach(function (_ref) {
- var version = _ref.version,
- baseURL = _ref.baseURL;
- cov_2337h25edu().f[4]++;
- var versionPrefix = (cov_2337h25edu().s[33]++, "/api/".concat(version, "/"));
- cov_2337h25edu().s[34]++;
- if (config.url.startsWith(versionPrefix)) {
- cov_2337h25edu().b[4][0]++;
- cov_2337h25edu().s[35]++;
- // eslint-disable-next-line no-param-reassign
- config.baseURL = baseURL;
- // eslint-disable-next-line no-param-reassign
- cov_2337h25edu().s[36]++;
- config.url = config.url.replace(versionPrefix, "");
- } else {
- cov_2337h25edu().b[4][1]++;
- }
- });
- cov_2337h25edu().s[37]++;
- return config;
-});
-
-// Set the default API timeout
-var apiTimeout = (cov_2337h25edu().s[38]++, 5000);
-cov_2337h25edu().s[39]++;
-if ((cov_2337h25edu().b[6][0]++, window.Processmaker) && (cov_2337h25edu().b[6][1]++, window.Processmaker.apiTimeout !== undefined)) {
- cov_2337h25edu().b[5][0]++;
- cov_2337h25edu().s[40]++;
- apiTimeout = window.Processmaker.apiTimeout;
-} else {
- cov_2337h25edu().b[5][1]++;
-}
-cov_2337h25edu().s[41]++;
-window.ProcessMaker.apiClient.defaults.timeout = apiTimeout;
-
-// click an active tab after all components have mounted
-cov_2337h25edu().s[42]++;
-vue__WEBPACK_IMPORTED_MODULE_9__["default"].use({
- install: function install(vue) {
- cov_2337h25edu().f[5]++;
- cov_2337h25edu().s[43]++;
- vue.mixin({
- mounted: function mounted() {
- cov_2337h25edu().f[6]++;
- cov_2337h25edu().s[44]++;
- if (this.$parent) {
- cov_2337h25edu().b[7][0]++;
- cov_2337h25edu().s[45]++;
- // only run on root
- return;
- } else {
- cov_2337h25edu().b[7][1]++;
- }
- }
- });
- }
-});
-
-// Send an event when the global Vue and ProcessMaker instance is available
-cov_2337h25edu().s[46]++;
-window.dispatchEvent(new Event("app-bootstrapped"));
-
-/***/ }),
-
-/***/ "./resources/js/components/common/mixins/accessibility.js":
-/*!****************************************************************!*\
- !*** ./resources/js/components/common/mixins/accessibility.js ***!
- \****************************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
-
-function cov_20gejcf4ab() {
- var path = "/Users/sanjacornelius/Documents/processmaker/resources/js/components/common/mixins/accessibility.js";
- var hash = "32ff012b53571eb61942410b27f8a8c856256151";
- var global = new Function("return this")();
- var gcv = "__coverage__";
- var coverageData = {
- path: "/Users/sanjacornelius/Documents/processmaker/resources/js/components/common/mixins/accessibility.js",
- statementMap: {
- "0": {
- start: {
- line: 3,
- column: 4
- },
- end: {
- line: 5,
- column: 6
- }
- },
- "1": {
- start: {
- line: 9,
- column: 4
- },
- end: {
- line: 13,
- column: 5
- }
- },
- "2": {
- start: {
- line: 11,
- column: 6
- },
- end: {
- line: 11,
- column: 62
- }
- },
- "3": {
- start: {
- line: 12,
- column: 6
- },
- end: {
- line: 12,
- column: 64
- }
- },
- "4": {
- start: {
- line: 15,
- column: 4
- },
- end: {
- line: 22,
- column: 5
- }
- },
- "5": {
- start: {
- line: 17,
- column: 6
- },
- end: {
- line: 17,
- column: 77
- }
- },
- "6": {
- start: {
- line: 18,
- column: 6
- },
- end: {
- line: 18,
- column: 41
- }
- },
- "7": {
- start: {
- line: 21,
- column: 6
- },
- end: {
- line: 21,
- column: 37
- }
- },
- "8": {
- start: {
- line: 32,
- column: 6
- },
- end: {
- line: 35,
- column: 7
- }
- },
- "9": {
- start: {
- line: 34,
- column: 8
- },
- end: {
- line: 34,
- column: 15
- }
- },
- "10": {
- start: {
- line: 40,
- column: 21
- },
- end: {
- line: 42,
- column: 27
- }
- },
- "11": {
- start: {
- line: 46,
- column: 31
- },
- end: {
- line: 46,
- column: 101
- }
- },
- "12": {
- start: {
- line: 49,
- column: 6
- },
- end: {
- line: 56,
- column: 7
- }
- },
- "13": {
- start: {
- line: 51,
- column: 28
- },
- end: {
- line: 51,
- column: 84
- }
- },
- "14": {
- start: {
- line: 52,
- column: 10
- },
- end: {
- line: 54,
- column: 11
- }
- },
- "15": {
- start: {
- line: 53,
- column: 14
- },
- end: {
- line: 53,
- column: 21
- }
- },
- "16": {
- start: {
- line: 55,
- column: 8
- },
- end: {
- line: 55,
- column: 32
- }
- },
- "17": {
- start: {
- line: 59,
- column: 8
- },
- end: {
- line: 61,
- column: 9
- }
- },
- "18": {
- start: {
- line: 60,
- column: 12
- },
- end: {
- line: 60,
- column: 24
- }
- },
- "19": {
- start: {
- line: 62,
- column: 8
- },
- end: {
- line: 67,
- column: 9
- }
- },
- "20": {
- start: {
- line: 63,
- column: 12
- },
- end: {
- line: 63,
- column: 35
- }
- },
- "21": {
- start: {
- line: 66,
- column: 12
- },
- end: {
- line: 66,
- column: 78
- }
- },
- "22": {
- start: {
- line: 70,
- column: 6
- },
- end: {
- line: 72,
- column: 7
- }
- },
- "23": {
- start: {
- line: 71,
- column: 8
- },
- end: {
- line: 71,
- column: 18
- }
- },
- "24": {
- start: {
- line: 75,
- column: 6
- },
- end: {
- line: 78,
- column: 7
- }
- },
- "25": {
- start: {
- line: 76,
- column: 8
- },
- end: {
- line: 76,
- column: 84
- }
- },
- "26": {
- start: {
- line: 77,
- column: 8
- },
- end: {
- line: 77,
- column: 59
- }
- },
- "27": {
- start: {
- line: 81,
- column: 6
- },
- end: {
- line: 81,
- column: 83
- }
- },
- "28": {
- start: {
- line: 82,
- column: 6
- },
- end: {
- line: 82,
- column: 57
- }
- },
- "29": {
- start: {
- line: 85,
- column: 21
- },
- end: {
- line: 85,
- column: 64
- }
- },
- "30": {
- start: {
- line: 86,
- column: 6
- },
- end: {
- line: 88,
- column: 7
- }
- },
- "31": {
- start: {
- line: 87,
- column: 8
- },
- end: {
- line: 87,
- column: 40
- }
- },
- "32": {
- start: {
- line: 91,
- column: 23
- },
- end: {
- line: 94,
- column: 19
- }
- },
- "33": {
- start: {
- line: 92,
- column: 32
- },
- end: {
- line: 92,
- column: 46
- }
- },
- "34": {
- start: {
- line: 93,
- column: 29
- },
- end: {
- line: 93,
- column: 48
- }
- },
- "35": {
- start: {
- line: 96,
- column: 6
- },
- end: {
- line: 98,
- column: 7
- }
- },
- "36": {
- start: {
- line: 97,
- column: 8
- },
- end: {
- line: 97,
- column: 15
- }
- },
- "37": {
- start: {
- line: 100,
- column: 25
- },
- end: {
- line: 100,
- column: 57
- }
- },
- "38": {
- start: {
- line: 101,
- column: 6
- },
- end: {
- line: 103,
- column: 7
- }
- },
- "39": {
- start: {
- line: 102,
- column: 8
- },
- end: {
- line: 102,
- column: 27
- }
- }
- },
- fnMap: {
- "0": {
- name: "(anonymous_0)",
- decl: {
- start: {
- line: 2,
- column: 2
- },
- end: {
- line: 2,
- column: 3
- }
- },
- loc: {
- start: {
- line: 2,
- column: 9
- },
- end: {
- line: 6,
- column: 3
- }
- },
- line: 2
- },
- "1": {
- name: "(anonymous_1)",
- decl: {
- start: {
- line: 7,
- column: 2
- },
- end: {
- line: 7,
- column: 3
- }
- },
- loc: {
- start: {
- line: 7,
- column: 12
- },
- end: {
- line: 23,
- column: 3
- }
- },
- line: 7
- },
- "2": {
- name: "(anonymous_2)",
- decl: {
- start: {
- line: 31,
- column: 4
- },
- end: {
- line: 31,
- column: 5
- }
- },
- loc: {
- start: {
- line: 31,
- column: 40
- },
- end: {
- line: 57,
- column: 5
- }
- },
- line: 31
- },
- "3": {
- name: "(anonymous_3)",
- decl: {
- start: {
- line: 58,
- column: 4
- },
- end: {
- line: 58,
- column: 5
- }
- },
- loc: {
- start: {
- line: 58,
- column: 47
- },
- end: {
- line: 68,
- column: 5
- }
- },
- line: 58
- },
- "4": {
- name: "(anonymous_4)",
- decl: {
- start: {
- line: 69,
- column: 4
- },
- end: {
- line: 69,
- column: 5
- }
- },
- loc: {
- start: {
- line: 69,
- column: 27
- },
- end: {
- line: 73,
- column: 5
- }
- },
- line: 69
- },
- "5": {
- name: "(anonymous_5)",
- decl: {
- start: {
- line: 74,
- column: 4
- },
- end: {
- line: 74,
- column: 5
- }
- },
- loc: {
- start: {
- line: 74,
- column: 30
- },
- end: {
- line: 79,
- column: 5
- }
- },
- line: 74
- },
- "6": {
- name: "(anonymous_6)",
- decl: {
- start: {
- line: 80,
- column: 4
- },
- end: {
- line: 80,
- column: 5
- }
- },
- loc: {
- start: {
- line: 80,
- column: 34
- },
- end: {
- line: 83,
- column: 5
- }
- },
- line: 80
- },
- "7": {
- name: "(anonymous_7)",
- decl: {
- start: {
- line: 84,
- column: 4
- },
- end: {
- line: 84,
- column: 5
- }
- },
- loc: {
- start: {
- line: 84,
- column: 28
- },
- end: {
- line: 89,
- column: 5
- }
- },
- line: 84
- },
- "8": {
- name: "(anonymous_8)",
- decl: {
- start: {
- line: 90,
- column: 4
- },
- end: {
- line: 90,
- column: 5
- }
- },
- loc: {
- start: {
- line: 90,
- column: 33
- },
- end: {
- line: 104,
- column: 5
- }
- },
- line: 90
- },
- "9": {
- name: "(anonymous_9)",
- decl: {
- start: {
- line: 92,
- column: 16
- },
- end: {
- line: 92,
- column: 17
- }
- },
- loc: {
- start: {
- line: 92,
- column: 32
- },
- end: {
- line: 92,
- column: 46
- }
- },
- line: 92
- },
- "10": {
- name: "(anonymous_10)",
- decl: {
- start: {
- line: 93,
- column: 13
- },
- end: {
- line: 93,
- column: 14
- }
- },
- loc: {
- start: {
- line: 93,
- column: 29
- },
- end: {
- line: 93,
- column: 48
- }
- },
- line: 93
- }
- },
- branchMap: {
- "0": {
- loc: {
- start: {
- line: 9,
- column: 4
- },
- end: {
- line: 13,
- column: 5
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 9,
- column: 4
- },
- end: {
- line: 13,
- column: 5
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 9
- },
- "1": {
- loc: {
- start: {
- line: 15,
- column: 4
- },
- end: {
- line: 22,
- column: 5
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 15,
- column: 4
- },
- end: {
- line: 22,
- column: 5
- }
- }, {
- start: {
- line: 19,
- column: 11
- },
- end: {
- line: 22,
- column: 5
- }
- }],
- line: 15
- },
- "2": {
- loc: {
- start: {
- line: 32,
- column: 6
- },
- end: {
- line: 35,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 32,
- column: 6
- },
- end: {
- line: 35,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 32
- },
- "3": {
- loc: {
- start: {
- line: 32,
- column: 10
- },
- end: {
- line: 33,
- column: 63
- }
- },
- type: "binary-expr",
- locations: [{
- start: {
- line: 32,
- column: 10
- },
- end: {
- line: 32,
- column: 53
- }
- }, {
- start: {
- line: 33,
- column: 13
- },
- end: {
- line: 33,
- column: 63
- }
- }],
- line: 32
- },
- "4": {
- loc: {
- start: {
- line: 40,
- column: 21
- },
- end: {
- line: 42,
- column: 27
- }
- },
- type: "cond-expr",
- locations: [{
- start: {
- line: 41,
- column: 10
- },
- end: {
- line: 41,
- column: 34
- }
- }, {
- start: {
- line: 42,
- column: 10
- },
- end: {
- line: 42,
- column: 27
- }
- }],
- line: 40
- },
- "5": {
- loc: {
- start: {
- line: 49,
- column: 6
- },
- end: {
- line: 56,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 49,
- column: 6
- },
- end: {
- line: 56,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 49
- },
- "6": {
- loc: {
- start: {
- line: 52,
- column: 10
- },
- end: {
- line: 54,
- column: 11
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 52,
- column: 10
- },
- end: {
- line: 54,
- column: 11
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 52
- },
- "7": {
- loc: {
- start: {
- line: 52,
- column: 14
- },
- end: {
- line: 52,
- column: 80
- }
- },
- type: "binary-expr",
- locations: [{
- start: {
- line: 52,
- column: 14
- },
- end: {
- line: 52,
- column: 32
- }
- }, {
- start: {
- line: 52,
- column: 36
- },
- end: {
- line: 52,
- column: 80
- }
- }],
- line: 52
- },
- "8": {
- loc: {
- start: {
- line: 59,
- column: 8
- },
- end: {
- line: 61,
- column: 9
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 59,
- column: 8
- },
- end: {
- line: 61,
- column: 9
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 59
- },
- "9": {
- loc: {
- start: {
- line: 62,
- column: 8
- },
- end: {
- line: 67,
- column: 9
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 62,
- column: 8
- },
- end: {
- line: 67,
- column: 9
- }
- }, {
- start: {
- line: 65,
- column: 13
- },
- end: {
- line: 67,
- column: 9
- }
- }],
- line: 62
- },
- "10": {
- loc: {
- start: {
- line: 70,
- column: 6
- },
- end: {
- line: 72,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 70,
- column: 6
- },
- end: {
- line: 72,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 70
- },
- "11": {
- loc: {
- start: {
- line: 75,
- column: 6
- },
- end: {
- line: 78,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 75,
- column: 6
- },
- end: {
- line: 78,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 75
- },
- "12": {
- loc: {
- start: {
- line: 86,
- column: 6
- },
- end: {
- line: 88,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 86,
- column: 6
- },
- end: {
- line: 88,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 86
- },
- "13": {
- loc: {
- start: {
- line: 96,
- column: 6
- },
- end: {
- line: 98,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 96,
- column: 6
- },
- end: {
- line: 98,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 96
- },
- "14": {
- loc: {
- start: {
- line: 101,
- column: 6
- },
- end: {
- line: 103,
- column: 7
- }
- },
- type: "if",
- locations: [{
- start: {
- line: 101,
- column: 6
- },
- end: {
- line: 103,
- column: 7
- }
- }, {
- start: {
- line: undefined,
- column: undefined
- },
- end: {
- line: undefined,
- column: undefined
- }
- }],
- line: 101
- }
- },
- s: {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0,
- "11": 0,
- "12": 0,
- "13": 0,
- "14": 0,
- "15": 0,
- "16": 0,
- "17": 0,
- "18": 0,
- "19": 0,
- "20": 0,
- "21": 0,
- "22": 0,
- "23": 0,
- "24": 0,
- "25": 0,
- "26": 0,
- "27": 0,
- "28": 0,
- "29": 0,
- "30": 0,
- "31": 0,
- "32": 0,
- "33": 0,
- "34": 0,
- "35": 0,
- "36": 0,
- "37": 0,
- "38": 0,
- "39": 0
- },
- f: {
- "0": 0,
- "1": 0,
- "2": 0,
- "3": 0,
- "4": 0,
- "5": 0,
- "6": 0,
- "7": 0,
- "8": 0,
- "9": 0,
- "10": 0
- },
- b: {
- "0": [0, 0],
- "1": [0, 0],
- "2": [0, 0],
- "3": [0, 0],
- "4": [0, 0],
- "5": [0, 0],
- "6": [0, 0],
- "7": [0, 0],
- "8": [0, 0],
- "9": [0, 0],
- "10": [0, 0],
- "11": [0, 0],
- "12": [0, 0],
- "13": [0, 0],
- "14": [0, 0]
- },
- _coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
- hash: "32ff012b53571eb61942410b27f8a8c856256151"
- };
- var coverage = global[gcv] || (global[gcv] = {});
- if (!coverage[path] || coverage[path].hash !== hash) {
- coverage[path] = coverageData;
- }
- var actualCoverage = coverage[path];
- {
- // @ts-ignore
- cov_20gejcf4ab = function () {
- return actualCoverage;
- };
- }
- return actualCoverage;
-}
-cov_20gejcf4ab();
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
- data: function data() {
- cov_20gejcf4ab().f[0]++;
- cov_20gejcf4ab().s[0]++;
- return {
- focusErrors: null
- };
- },
- mounted: function mounted() {
- cov_20gejcf4ab().f[1]++;
- cov_20gejcf4ab().s[1]++;
- // Listen only on the root Vue instance
- if (!this.$parent) {
- cov_20gejcf4ab().b[0][0]++;
- cov_20gejcf4ab().s[2]++;
- // Set the focus within any modal or popover that is instantiated
- this.$root.$on("bv::modal::shown", this.setFocusWithin);
- cov_20gejcf4ab().s[3]++;
- this.$root.$on("bv::popover::shown", this.setFocusWithin);
- } else {
- cov_20gejcf4ab().b[0][1]++;
- }
- cov_20gejcf4ab().s[4]++;
- if (this.focusErrors) {
- cov_20gejcf4ab().b[1][0]++;
- cov_20gejcf4ab().s[5]++;
- // watch an object for form errors
- this.$watch(this.focusErrors, this.focusErrorsChanged, {
- deep: true
- });
- cov_20gejcf4ab().s[6]++;
- this.dontListenForApiClientError();
- } else {
- cov_20gejcf4ab().b[1][1]++;
- cov_20gejcf4ab().s[7]++;
- // default api error focusing
- this.listenForApiClientError();
- }
- },
- methods: {
- /**
- * Sets the focused element within the most recently
- * opened modal or popover component.
- * @param shownEvent
- * @param modalId
- */
- setFocusWithin: function setFocusWithin(shownEvent, modalId) {
- cov_20gejcf4ab().f[2]++;
- cov_20gejcf4ab().s[8]++;
- if ((cov_20gejcf4ab().b[3][0]++, !(shownEvent.target instanceof HTMLElement)) && (cov_20gejcf4ab().b[3][1]++, !(shownEvent.relatedTarget instanceof HTMLElement))) {
- cov_20gejcf4ab().b[2][0]++;
- cov_20gejcf4ab().s[9]++;
- return;
- } else {
- cov_20gejcf4ab().b[2][1]++;
- }
-
- // If relatedTarget is present and an HTMLElement,
- // then we know we're working with a popover,
- // otherwise it's a modal
- var target = (cov_20gejcf4ab().s[10]++, shownEvent.relatedTarget instanceof HTMLElement ? (cov_20gejcf4ab().b[4][0]++, shownEvent.relatedTarget) : (cov_20gejcf4ab().b[4][1]++, shownEvent.target));
-
- // Find the first focusable element that isn't the
- // modal/popover close button
- var focusableElement = (cov_20gejcf4ab().s[11]++, target.querySelector("input, select, textarea, button:not(.close), a"));
-
- // If there is an element to focus on, then do so
- cov_20gejcf4ab().s[12]++;
- if (focusableElement instanceof HTMLElement) {
- cov_20gejcf4ab().b[5][0]++;
- //do not set focus() if it is a vue-multiselect
- var parentVue = (cov_20gejcf4ab().s[13]++, this.findHtmlElementParentVueComponent(focusableElement));
- cov_20gejcf4ab().s[14]++;
- if ((cov_20gejcf4ab().b[7][0]++, parentVue !== null) && (cov_20gejcf4ab().b[7][1]++, parentVue.$options.name == 'vue-multiselect')) {
- cov_20gejcf4ab().b[6][0]++;
- cov_20gejcf4ab().s[15]++;
- return;
- } else {
- cov_20gejcf4ab().b[6][1]++;
- }
- cov_20gejcf4ab().s[16]++;
- focusableElement.focus();
- } else {
- cov_20gejcf4ab().b[5][1]++;
- }
- },
- findHtmlElementParentVueComponent: function findHtmlElementParentVueComponent(element) {
- cov_20gejcf4ab().f[3]++;
- cov_20gejcf4ab().s[17]++;
- if (element === undefined) {
- cov_20gejcf4ab().b[8][0]++;
- cov_20gejcf4ab().s[18]++;
- return null;
- } else {
- cov_20gejcf4ab().b[8][1]++;
- }
- cov_20gejcf4ab().s[19]++;
- if ('__vue__' in element) {
- cov_20gejcf4ab().b[9][0]++;
- cov_20gejcf4ab().s[20]++;
- return element.__vue__;
- } else {
- cov_20gejcf4ab().b[9][1]++;
- cov_20gejcf4ab().s[21]++;
- return this.findHtmlElementParentVueComponent(element.parentNode);
- }
- },
- hasCustomFocusErrors: function hasCustomFocusErrors() {
- cov_20gejcf4ab().f[4]++;
- cov_20gejcf4ab().s[22]++;
- if (this.$root._hasCustomFocusErrors) {
- cov_20gejcf4ab().b[10][0]++;
- cov_20gejcf4ab().s[23]++;
- this.$off;
- } else {
- cov_20gejcf4ab().b[10][1]++;
- }
- },
- listenForApiClientError: function listenForApiClientError() {
- cov_20gejcf4ab().f[5]++;
- cov_20gejcf4ab().s[24]++;
- if (typeof window.ProcessMaker._focusErrorsIntitalized === "undefined") {
- cov_20gejcf4ab().b[11][0]++;
- cov_20gejcf4ab().s[25]++;
- window.ProcessMaker.EventBus.$on("api-client-error", this.onApiClientError);
- cov_20gejcf4ab().s[26]++;
- window.ProcessMaker._focusErrorsIntitalized = true;
- } else {
- cov_20gejcf4ab().b[11][1]++;
- }
- },
- dontListenForApiClientError: function dontListenForApiClientError() {
- cov_20gejcf4ab().f[6]++;
- cov_20gejcf4ab().s[27]++;
- window.ProcessMaker.EventBus.$off("api-client-error", this.onApiClientError);
- cov_20gejcf4ab().s[28]++;
- window.ProcessMaker._focusErrorsIntitalized = true;
- },
- onApiClientError: function onApiClientError(error) {
- cov_20gejcf4ab().f[7]++;
- var errors = (cov_20gejcf4ab().s[29]++, _.get(error, "response.data.errors", false));
- cov_20gejcf4ab().s[30]++;
- if (errors) {
- cov_20gejcf4ab().b[12][0]++;
- cov_20gejcf4ab().s[31]++;
- this.focusErrorsChanged(errors);
- } else {
- cov_20gejcf4ab().b[12][1]++;
- }
- },
- focusErrorsChanged: function focusErrorsChanged(newValue) {
- cov_20gejcf4ab().f[8]++;
- var selector = (cov_20gejcf4ab().s[32]++, Object.entries(newValue).filter(function (_ref) {
- var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__["default"])(_ref, 2),
- _ = _ref2[0],
- value = _ref2[1];
- cov_20gejcf4ab().f[9]++;
- cov_20gejcf4ab().s[33]++;
- return value !== null;
- }) // Filter out null values
- .map(function (_ref3) {
- var _ref4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__["default"])(_ref3, 2),
- field = _ref4[0],
- _ = _ref4[1];
- cov_20gejcf4ab().f[10]++;
- cov_20gejcf4ab().s[34]++;
- return "[name='".concat(field, "']");
- }) // Select elements matching the name attribute
- .join(", "));
- cov_20gejcf4ab().s[35]++;
- if (!selector) {
- cov_20gejcf4ab().b[13][0]++;
- cov_20gejcf4ab().s[36]++;
- return;
- } else {
- cov_20gejcf4ab().b[13][1]++;
- }
- var firstInput = (cov_20gejcf4ab().s[37]++, document.querySelector(selector)); // Find the first match
- cov_20gejcf4ab().s[38]++;
- if (firstInput) {
- cov_20gejcf4ab().b[14][0]++;
- cov_20gejcf4ab().s[39]++;
- firstInput.focus();
- } else {
- cov_20gejcf4ab().b[14][1]++;
- }
- }
- }
-});
-
-/***/ }),
-
-/***/ "./resources/js/modules/lang.js":
-/*!**************************************!*\
- !*** ./resources/js/modules/lang.js ***!
- \**************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ "default": () => (/* binding */ translate)
-/* harmony export */ });
-function cov_kcsn6du19() {
- var path = "/Users/sanjacornelius/Documents/processmaker/resources/js/modules/lang.js";
- var hash = "2cc2f52cbb98903a23b86bcdba9de5ccc6934daa";
- var global = new Function("return this")();
- var gcv = "__coverage__";
- var coverageData = {
- path: "/Users/sanjacornelius/Documents/processmaker/resources/js/modules/lang.js",
- statementMap: {
- "0": {
- start: {
- line: 2,
- column: 2
- },
- end: {
- line: 2,
- column: 15
- }
- }
- },
- fnMap: {
- "0": {
- name: "translate",
- decl: {
- start: {
- line: 1,
- column: 24
- },
- end: {
- line: 1,
- column: 33
- }
- },
- loc: {
- start: {
- line: 1,
- column: 41
- },
- end: {
- line: 3,
- column: 1
- }
- },
- line: 1
- }
- },
- branchMap: {},
- s: {
- "0": 0
- },
- f: {
- "0": 0
- },
- b: {},
- _coverageSchema: "1a1c01bbd47fc00a2c39e90264f33305004495a9",
- hash: "2cc2f52cbb98903a23b86bcdba9de5ccc6934daa"
- };
- var coverage = global[gcv] || (global[gcv] = {});
- if (!coverage[path] || coverage[path].hash !== hash) {
- coverage[path] = coverageData;
- }
- var actualCoverage = coverage[path];
- {
- // @ts-ignore
- cov_kcsn6du19 = function () {
- return actualCoverage;
- };
- }
- return actualCoverage;
-}
-cov_kcsn6du19();
-function translate(value) {
- cov_kcsn6du19().f[0]++;
- cov_kcsn6du19().s[0]++;
- return value;
-}
-
-/***/ }),
-
-/***/ "./node_modules/bootstrap/dist/js/bootstrap.js":
-/*!*****************************************************!*\
- !*** ./node_modules/bootstrap/dist/js/bootstrap.js ***!
- \*****************************************************/
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
-
-/*!
- * Bootstrap v4.6.2 (https://getbootstrap.com/)
- * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */
-(function (global, factory) {
- true ? factory(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js")) :
- 0;
-})(this, (function (exports, $, Popper) { 'use strict';
-
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
-
- var $__default = /*#__PURE__*/_interopDefaultLegacy($);
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
-
- function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
- }
-
- function _extends() {
- _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
- return _extends.apply(this, arguments);
- }
-
- function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
-
- _setPrototypeOf(subClass, superClass);
- }
-
- function _setPrototypeOf(o, p) {
- _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
- o.__proto__ = p;
- return o;
- };
- return _setPrototypeOf(o, p);
- }
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.6.2): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- * --------------------------------------------------------------------------
- */
- /**
- * Private TransitionEnd Helpers
- */
-
- var TRANSITION_END = 'transitionend';
- var MAX_UID = 1000000;
- var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
-
- function toType(obj) {
- if (obj === null || typeof obj === 'undefined') {
- return "" + obj;
- }
-
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
- }
-
- function getSpecialTransitionEndEvent() {
- return {
- bindType: TRANSITION_END,
- delegateType: TRANSITION_END,
- handle: function handle(event) {
- if ($__default["default"](event.target).is(this)) {
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
- }
-
- return undefined;
- }
- };
- }
-
- function transitionEndEmulator(duration) {
- var _this = this;
-
- var called = false;
- $__default["default"](this).one(Util.TRANSITION_END, function () {
- called = true;
- });
- setTimeout(function () {
- if (!called) {
- Util.triggerTransitionEnd(_this);
- }
- }, duration);
- return this;
- }
-
- function setTransitionEndSupport() {
- $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator;
- $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
- }
- /**
- * Public Util API
- */
-
-
- var Util = {
- TRANSITION_END: 'bsTransitionEnd',
- getUID: function getUID(prefix) {
- do {
- // eslint-disable-next-line no-bitwise
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
- } while (document.getElementById(prefix));
-
- return prefix;
- },
- getSelectorFromElement: function getSelectorFromElement(element) {
- var selector = element.getAttribute('data-target');
-
- if (!selector || selector === '#') {
- var hrefAttr = element.getAttribute('href');
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
- }
-
- try {
- return document.querySelector(selector) ? selector : null;
- } catch (_) {
- return null;
- }
- },
- getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
- if (!element) {
- return 0;
- } // Get transition-duration of the element
-
-
- var transitionDuration = $__default["default"](element).css('transition-duration');
- var transitionDelay = $__default["default"](element).css('transition-delay');
- var floatTransitionDuration = parseFloat(transitionDuration);
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
-
- if (!floatTransitionDuration && !floatTransitionDelay) {
- return 0;
- } // If multiple durations are defined, take the first
-
-
- transitionDuration = transitionDuration.split(',')[0];
- transitionDelay = transitionDelay.split(',')[0];
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
- },
- reflow: function reflow(element) {
- return element.offsetHeight;
- },
- triggerTransitionEnd: function triggerTransitionEnd(element) {
- $__default["default"](element).trigger(TRANSITION_END);
- },
- supportsTransitionEnd: function supportsTransitionEnd() {
- return Boolean(TRANSITION_END);
- },
- isElement: function isElement(obj) {
- return (obj[0] || obj).nodeType;
- },
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
- if (!new RegExp(expectedTypes).test(valueType)) {
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
- }
- }
- }
- },
- findShadowRoot: function findShadowRoot(element) {
- if (!document.documentElement.attachShadow) {
- return null;
- } // Can find the shadow root otherwise it'll return the document
-
-
- if (typeof element.getRootNode === 'function') {
- var root = element.getRootNode();
- return root instanceof ShadowRoot ? root : null;
- }
-
- if (element instanceof ShadowRoot) {
- return element;
- } // when we don't find a shadow root
-
-
- if (!element.parentNode) {
- return null;
- }
-
- return Util.findShadowRoot(element.parentNode);
- },
- jQueryDetection: function jQueryDetection() {
- if (typeof $__default["default"] === 'undefined') {
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
- }
-
- var version = $__default["default"].fn.jquery.split(' ')[0].split('.');
- var minMajor = 1;
- var ltMajor = 2;
- var minMinor = 9;
- var minPatch = 1;
- var maxMajor = 4;
-
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
- }
- }
- };
- Util.jQueryDetection();
- setTransitionEndSupport();
-
- /**
- * Constants
- */
-
- var NAME$a = 'alert';
- var VERSION$a = '4.6.2';
- var DATA_KEY$a = 'bs.alert';
- var EVENT_KEY$a = "." + DATA_KEY$a;
- var DATA_API_KEY$7 = '.data-api';
- var JQUERY_NO_CONFLICT$a = $__default["default"].fn[NAME$a];
- var CLASS_NAME_ALERT = 'alert';
- var CLASS_NAME_FADE$5 = 'fade';
- var CLASS_NAME_SHOW$7 = 'show';
- var EVENT_CLOSE = "close" + EVENT_KEY$a;
- var EVENT_CLOSED = "closed" + EVENT_KEY$a;
- var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$a + DATA_API_KEY$7;
- var SELECTOR_DISMISS = '[data-dismiss="alert"]';
- /**
- * Class definition
- */
-
- var Alert = /*#__PURE__*/function () {
- function Alert(element) {
- this._element = element;
- } // Getters
-
-
- var _proto = Alert.prototype;
-
- // Public
- _proto.close = function close(element) {
- var rootElement = this._element;
-
- if (element) {
- rootElement = this._getRootElement(element);
- }
-
- var customEvent = this._triggerCloseEvent(rootElement);
-
- if (customEvent.isDefaultPrevented()) {
- return;
- }
-
- this._removeElement(rootElement);
- };
-
- _proto.dispose = function dispose() {
- $__default["default"].removeData(this._element, DATA_KEY$a);
- this._element = null;
- } // Private
- ;
-
- _proto._getRootElement = function _getRootElement(element) {
- var selector = Util.getSelectorFromElement(element);
- var parent = false;
-
- if (selector) {
- parent = document.querySelector(selector);
- }
-
- if (!parent) {
- parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];
- }
-
- return parent;
- };
-
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
- var closeEvent = $__default["default"].Event(EVENT_CLOSE);
- $__default["default"](element).trigger(closeEvent);
- return closeEvent;
- };
-
- _proto._removeElement = function _removeElement(element) {
- var _this = this;
-
- $__default["default"](element).removeClass(CLASS_NAME_SHOW$7);
-
- if (!$__default["default"](element).hasClass(CLASS_NAME_FADE$5)) {
- this._destroyElement(element);
-
- return;
- }
-
- var transitionDuration = Util.getTransitionDurationFromElement(element);
- $__default["default"](element).one(Util.TRANSITION_END, function (event) {
- return _this._destroyElement(element, event);
- }).emulateTransitionEnd(transitionDuration);
- };
-
- _proto._destroyElement = function _destroyElement(element) {
- $__default["default"](element).detach().trigger(EVENT_CLOSED).remove();
- } // Static
- ;
-
- Alert._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $__default["default"](this);
- var data = $element.data(DATA_KEY$a);
-
- if (!data) {
- data = new Alert(this);
- $element.data(DATA_KEY$a, data);
- }
-
- if (config === 'close') {
- data[config](this);
- }
- });
- };
-
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
- return function (event) {
- if (event) {
- event.preventDefault();
- }
-
- alertInstance.close(this);
- };
- };
-
- _createClass(Alert, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$a;
- }
- }]);
-
- return Alert;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$a] = Alert._jQueryInterface;
- $__default["default"].fn[NAME$a].Constructor = Alert;
-
- $__default["default"].fn[NAME$a].noConflict = function () {
- $__default["default"].fn[NAME$a] = JQUERY_NO_CONFLICT$a;
- return Alert._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$9 = 'button';
- var VERSION$9 = '4.6.2';
- var DATA_KEY$9 = 'bs.button';
- var EVENT_KEY$9 = "." + DATA_KEY$9;
- var DATA_API_KEY$6 = '.data-api';
- var JQUERY_NO_CONFLICT$9 = $__default["default"].fn[NAME$9];
- var CLASS_NAME_ACTIVE$3 = 'active';
- var CLASS_NAME_BUTTON = 'btn';
- var CLASS_NAME_FOCUS = 'focus';
- var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$9 + DATA_API_KEY$6;
- var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$9 + DATA_API_KEY$6 + " " + ("blur" + EVENT_KEY$9 + DATA_API_KEY$6);
- var EVENT_LOAD_DATA_API$2 = "load" + EVENT_KEY$9 + DATA_API_KEY$6;
- var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
- var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
- var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="button"]';
- var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
- var SELECTOR_INPUT = 'input:not([type="hidden"])';
- var SELECTOR_ACTIVE$2 = '.active';
- var SELECTOR_BUTTON = '.btn';
- /**
- * Class definition
- */
-
- var Button = /*#__PURE__*/function () {
- function Button(element) {
- this._element = element;
- this.shouldAvoidTriggerChange = false;
- } // Getters
-
-
- var _proto = Button.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- var triggerChangeEvent = true;
- var addAriaPressed = true;
- var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
-
- if (rootElement) {
- var input = this._element.querySelector(SELECTOR_INPUT);
-
- if (input) {
- if (input.type === 'radio') {
- if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) {
- triggerChangeEvent = false;
- } else {
- var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);
-
- if (activeElement) {
- $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);
- }
- }
- }
-
- if (triggerChangeEvent) {
- // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
- if (input.type === 'checkbox' || input.type === 'radio') {
- input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3);
- }
-
- if (!this.shouldAvoidTriggerChange) {
- $__default["default"](input).trigger('change');
- }
- }
-
- input.focus();
- addAriaPressed = false;
- }
- }
-
- if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
- if (addAriaPressed) {
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3));
- }
-
- if (triggerChangeEvent) {
- $__default["default"](this._element).toggleClass(CLASS_NAME_ACTIVE$3);
- }
- }
- };
-
- _proto.dispose = function dispose() {
- $__default["default"].removeData(this._element, DATA_KEY$9);
- this._element = null;
- } // Static
- ;
-
- Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {
- return this.each(function () {
- var $element = $__default["default"](this);
- var data = $element.data(DATA_KEY$9);
-
- if (!data) {
- data = new Button(this);
- $element.data(DATA_KEY$9, data);
- }
-
- data.shouldAvoidTriggerChange = avoidTriggerChange;
-
- if (config === 'toggle') {
- data[config]();
- }
- });
- };
-
- _createClass(Button, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$9;
- }
- }]);
-
- return Button;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = event.target;
- var initialButton = button;
-
- if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) {
- button = $__default["default"](button).closest(SELECTOR_BUTTON)[0];
- }
-
- if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
- event.preventDefault(); // work around Firefox bug #1540995
- } else {
- var inputBtn = button.querySelector(SELECTOR_INPUT);
-
- if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
- event.preventDefault(); // work around Firefox bug #1540995
-
- return;
- }
-
- if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
- Button._jQueryInterface.call($__default["default"](button), 'toggle', initialButton.tagName === 'INPUT');
- }
- }
- }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = $__default["default"](event.target).closest(SELECTOR_BUTTON)[0];
- $__default["default"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
- });
- $__default["default"](window).on(EVENT_LOAD_DATA_API$2, function () {
- // ensure correct active class is set to match the controls' actual values/states
- // find all checkboxes/readio buttons inside data-toggle groups
- var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
-
- for (var i = 0, len = buttons.length; i < len; i++) {
- var button = buttons[i];
- var input = button.querySelector(SELECTOR_INPUT);
-
- if (input.checked || input.hasAttribute('checked')) {
- button.classList.add(CLASS_NAME_ACTIVE$3);
- } else {
- button.classList.remove(CLASS_NAME_ACTIVE$3);
- }
- } // find all button toggles
-
-
- buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));
-
- for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
- var _button = buttons[_i];
-
- if (_button.getAttribute('aria-pressed') === 'true') {
- _button.classList.add(CLASS_NAME_ACTIVE$3);
- } else {
- _button.classList.remove(CLASS_NAME_ACTIVE$3);
- }
- }
- });
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$9] = Button._jQueryInterface;
- $__default["default"].fn[NAME$9].Constructor = Button;
-
- $__default["default"].fn[NAME$9].noConflict = function () {
- $__default["default"].fn[NAME$9] = JQUERY_NO_CONFLICT$9;
- return Button._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$8 = 'carousel';
- var VERSION$8 = '4.6.2';
- var DATA_KEY$8 = 'bs.carousel';
- var EVENT_KEY$8 = "." + DATA_KEY$8;
- var DATA_API_KEY$5 = '.data-api';
- var JQUERY_NO_CONFLICT$8 = $__default["default"].fn[NAME$8];
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
- var SWIPE_THRESHOLD = 40;
- var CLASS_NAME_CAROUSEL = 'carousel';
- var CLASS_NAME_ACTIVE$2 = 'active';
- var CLASS_NAME_SLIDE = 'slide';
- var CLASS_NAME_RIGHT = 'carousel-item-right';
- var CLASS_NAME_LEFT = 'carousel-item-left';
- var CLASS_NAME_NEXT = 'carousel-item-next';
- var CLASS_NAME_PREV = 'carousel-item-prev';
- var CLASS_NAME_POINTER_EVENT = 'pointer-event';
- var DIRECTION_NEXT = 'next';
- var DIRECTION_PREV = 'prev';
- var DIRECTION_LEFT = 'left';
- var DIRECTION_RIGHT = 'right';
- var EVENT_SLIDE = "slide" + EVENT_KEY$8;
- var EVENT_SLID = "slid" + EVENT_KEY$8;
- var EVENT_KEYDOWN = "keydown" + EVENT_KEY$8;
- var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$8;
- var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$8;
- var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$8;
- var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$8;
- var EVENT_TOUCHEND = "touchend" + EVENT_KEY$8;
- var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$8;
- var EVENT_POINTERUP = "pointerup" + EVENT_KEY$8;
- var EVENT_DRAG_START = "dragstart" + EVENT_KEY$8;
- var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$5;
- var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$8 + DATA_API_KEY$5;
- var SELECTOR_ACTIVE$1 = '.active';
- var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
- var SELECTOR_ITEM = '.carousel-item';
- var SELECTOR_ITEM_IMG = '.carousel-item img';
- var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
- var SELECTOR_INDICATORS = '.carousel-indicators';
- var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
- var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
- var Default$7 = {
- interval: 5000,
- keyboard: true,
- slide: false,
- pause: 'hover',
- wrap: true,
- touch: true
- };
- var DefaultType$7 = {
- interval: '(number|boolean)',
- keyboard: 'boolean',
- slide: '(boolean|string)',
- pause: '(string|boolean)',
- wrap: 'boolean',
- touch: 'boolean'
- };
- var PointerType = {
- TOUCH: 'touch',
- PEN: 'pen'
- };
- /**
- * Class definition
- */
-
- var Carousel = /*#__PURE__*/function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this.touchStartX = 0;
- this.touchDeltaX = 0;
- this._config = this._getConfig(config);
- this._element = element;
- this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);
- this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
-
- this._addEventListeners();
- } // Getters
-
-
- var _proto = Carousel.prototype;
-
- // Public
- _proto.next = function next() {
- if (!this._isSliding) {
- this._slide(DIRECTION_NEXT);
- }
- };
-
- _proto.nextWhenVisible = function nextWhenVisible() {
- var $element = $__default["default"](this._element); // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
-
- if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {
- this.next();
- }
- };
-
- _proto.prev = function prev() {
- if (!this._isSliding) {
- this._slide(DIRECTION_PREV);
- }
- };
-
- _proto.pause = function pause(event) {
- if (!event) {
- this._isPaused = true;
- }
-
- if (this._element.querySelector(SELECTOR_NEXT_PREV)) {
- Util.triggerTransitionEnd(this._element);
- this.cycle(true);
- }
-
- clearInterval(this._interval);
- this._interval = null;
- };
-
- _proto.cycle = function cycle(event) {
- if (!event) {
- this._isPaused = false;
- }
-
- if (this._interval) {
- clearInterval(this._interval);
- this._interval = null;
- }
-
- if (this._config.interval && !this._isPaused) {
- this._updateInterval();
-
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
- }
- };
-
- _proto.to = function to(index) {
- var _this = this;
-
- this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
-
- var activeIndex = this._getItemIndex(this._activeElement);
-
- if (index > this._items.length - 1 || index < 0) {
- return;
- }
-
- if (this._isSliding) {
- $__default["default"](this._element).one(EVENT_SLID, function () {
- return _this.to(index);
- });
- return;
- }
-
- if (activeIndex === index) {
- this.pause();
- this.cycle();
- return;
- }
-
- var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
-
- this._slide(direction, this._items[index]);
- };
-
- _proto.dispose = function dispose() {
- $__default["default"](this._element).off(EVENT_KEY$8);
- $__default["default"].removeData(this._element, DATA_KEY$8);
- this._items = null;
- this._config = null;
- this._element = null;
- this._interval = null;
- this._isPaused = null;
- this._isSliding = null;
- this._activeElement = null;
- this._indicatorsElement = null;
- } // Private
- ;
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default$7, config);
- Util.typeCheckConfig(NAME$8, config, DefaultType$7);
- return config;
- };
-
- _proto._handleSwipe = function _handleSwipe() {
- var absDeltax = Math.abs(this.touchDeltaX);
-
- if (absDeltax <= SWIPE_THRESHOLD) {
- return;
- }
-
- var direction = absDeltax / this.touchDeltaX;
- this.touchDeltaX = 0; // swipe left
-
- if (direction > 0) {
- this.prev();
- } // swipe right
-
-
- if (direction < 0) {
- this.next();
- }
- };
-
- _proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
-
- if (this._config.keyboard) {
- $__default["default"](this._element).on(EVENT_KEYDOWN, function (event) {
- return _this2._keydown(event);
- });
- }
-
- if (this._config.pause === 'hover') {
- $__default["default"](this._element).on(EVENT_MOUSEENTER, function (event) {
- return _this2.pause(event);
- }).on(EVENT_MOUSELEAVE, function (event) {
- return _this2.cycle(event);
- });
- }
-
- if (this._config.touch) {
- this._addTouchEventListeners();
- }
- };
-
- _proto._addTouchEventListeners = function _addTouchEventListeners() {
- var _this3 = this;
-
- if (!this._touchSupported) {
- return;
- }
-
- var start = function start(event) {
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
- _this3.touchStartX = event.originalEvent.clientX;
- } else if (!_this3._pointerEvent) {
- _this3.touchStartX = event.originalEvent.touches[0].clientX;
- }
- };
-
- var move = function move(event) {
- // ensure swiping with one touch and not pinching
- _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;
- };
-
- var end = function end(event) {
- if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
- _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
- }
-
- _this3._handleSwipe();
-
- if (_this3._config.pause === 'hover') {
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
- _this3.pause();
-
- if (_this3.touchTimeout) {
- clearTimeout(_this3.touchTimeout);
- }
-
- _this3.touchTimeout = setTimeout(function (event) {
- return _this3.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
- }
- };
-
- $__default["default"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {
- return e.preventDefault();
- });
-
- if (this._pointerEvent) {
- $__default["default"](this._element).on(EVENT_POINTERDOWN, function (event) {
- return start(event);
- });
- $__default["default"](this._element).on(EVENT_POINTERUP, function (event) {
- return end(event);
- });
-
- this._element.classList.add(CLASS_NAME_POINTER_EVENT);
- } else {
- $__default["default"](this._element).on(EVENT_TOUCHSTART, function (event) {
- return start(event);
- });
- $__default["default"](this._element).on(EVENT_TOUCHMOVE, function (event) {
- return move(event);
- });
- $__default["default"](this._element).on(EVENT_TOUCHEND, function (event) {
- return end(event);
- });
- }
- };
-
- _proto._keydown = function _keydown(event) {
- if (/input|textarea/i.test(event.target.tagName)) {
- return;
- }
-
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
- event.preventDefault();
- this.prev();
- break;
-
- case ARROW_RIGHT_KEYCODE:
- event.preventDefault();
- this.next();
- break;
- }
- };
-
- _proto._getItemIndex = function _getItemIndex(element) {
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];
- return this._items.indexOf(element);
- };
-
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
- var isNextDirection = direction === DIRECTION_NEXT;
- var isPrevDirection = direction === DIRECTION_PREV;
-
- var activeIndex = this._getItemIndex(activeElement);
-
- var lastItemIndex = this._items.length - 1;
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
-
- if (isGoingToWrap && !this._config.wrap) {
- return activeElement;
- }
-
- var delta = direction === DIRECTION_PREV ? -1 : 1;
- var itemIndex = (activeIndex + delta) % this._items.length;
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
- };
-
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
- var targetIndex = this._getItemIndex(relatedTarget);
-
- var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));
-
- var slideEvent = $__default["default"].Event(EVENT_SLIDE, {
- relatedTarget: relatedTarget,
- direction: eventDirectionName,
- from: fromIndex,
- to: targetIndex
- });
- $__default["default"](this._element).trigger(slideEvent);
- return slideEvent;
- };
-
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
- if (this._indicatorsElement) {
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));
- $__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE$2);
-
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
-
- if (nextIndicator) {
- $__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);
- }
- }
- };
-
- _proto._updateInterval = function _updateInterval() {
- var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);
-
- if (!element) {
- return;
- }
-
- var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
-
- if (elementInterval) {
- this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
- this._config.interval = elementInterval;
- } else {
- this._config.interval = this._config.defaultInterval || this._config.interval;
- }
- };
-
- _proto._slide = function _slide(direction, element) {
- var _this4 = this;
-
- var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
-
- var activeElementIndex = this._getItemIndex(activeElement);
-
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
- var nextElementIndex = this._getItemIndex(nextElement);
-
- var isCycling = Boolean(this._interval);
- var directionalClassName;
- var orderClassName;
- var eventDirectionName;
-
- if (direction === DIRECTION_NEXT) {
- directionalClassName = CLASS_NAME_LEFT;
- orderClassName = CLASS_NAME_NEXT;
- eventDirectionName = DIRECTION_LEFT;
- } else {
- directionalClassName = CLASS_NAME_RIGHT;
- orderClassName = CLASS_NAME_PREV;
- eventDirectionName = DIRECTION_RIGHT;
- }
-
- if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {
- this._isSliding = false;
- return;
- }
-
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
-
- if (slideEvent.isDefaultPrevented()) {
- return;
- }
-
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
- return;
- }
-
- this._isSliding = true;
-
- if (isCycling) {
- this.pause();
- }
-
- this._setActiveIndicatorElement(nextElement);
-
- this._activeElement = nextElement;
- var slidEvent = $__default["default"].Event(EVENT_SLID, {
- relatedTarget: nextElement,
- direction: eventDirectionName,
- from: activeElementIndex,
- to: nextElementIndex
- });
-
- if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) {
- $__default["default"](nextElement).addClass(orderClassName);
- Util.reflow(nextElement);
- $__default["default"](activeElement).addClass(directionalClassName);
- $__default["default"](nextElement).addClass(directionalClassName);
- var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
- $__default["default"](activeElement).one(Util.TRANSITION_END, function () {
- $__default["default"](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$2);
- $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + " " + orderClassName + " " + directionalClassName);
- _this4._isSliding = false;
- setTimeout(function () {
- return $__default["default"](_this4._element).trigger(slidEvent);
- }, 0);
- }).emulateTransitionEnd(transitionDuration);
- } else {
- $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2);
- $__default["default"](nextElement).addClass(CLASS_NAME_ACTIVE$2);
- this._isSliding = false;
- $__default["default"](this._element).trigger(slidEvent);
- }
-
- if (isCycling) {
- this.cycle();
- }
- } // Static
- ;
-
- Carousel._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $__default["default"](this).data(DATA_KEY$8);
-
- var _config = _extends({}, Default$7, $__default["default"](this).data());
-
- if (typeof config === 'object') {
- _config = _extends({}, _config, config);
- }
-
- var action = typeof config === 'string' ? config : _config.slide;
-
- if (!data) {
- data = new Carousel(this, _config);
- $__default["default"](this).data(DATA_KEY$8, data);
- }
-
- if (typeof config === 'number') {
- data.to(config);
- } else if (typeof action === 'string') {
- if (typeof data[action] === 'undefined') {
- throw new TypeError("No method named \"" + action + "\"");
- }
-
- data[action]();
- } else if (_config.interval && _config.ride) {
- data.pause();
- data.cycle();
- }
- });
- };
-
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
- var selector = Util.getSelectorFromElement(this);
-
- if (!selector) {
- return;
- }
-
- var target = $__default["default"](selector)[0];
-
- if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) {
- return;
- }
-
- var config = _extends({}, $__default["default"](target).data(), $__default["default"](this).data());
-
- var slideIndex = this.getAttribute('data-slide-to');
-
- if (slideIndex) {
- config.interval = false;
- }
-
- Carousel._jQueryInterface.call($__default["default"](target), config);
-
- if (slideIndex) {
- $__default["default"](target).data(DATA_KEY$8).to(slideIndex);
- }
-
- event.preventDefault();
- };
-
- _createClass(Carousel, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$8;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$7;
- }
- }]);
-
- return Carousel;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);
- $__default["default"](window).on(EVENT_LOAD_DATA_API$1, function () {
- var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));
-
- for (var i = 0, len = carousels.length; i < len; i++) {
- var $carousel = $__default["default"](carousels[i]);
-
- Carousel._jQueryInterface.call($carousel, $carousel.data());
- }
- });
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$8] = Carousel._jQueryInterface;
- $__default["default"].fn[NAME$8].Constructor = Carousel;
-
- $__default["default"].fn[NAME$8].noConflict = function () {
- $__default["default"].fn[NAME$8] = JQUERY_NO_CONFLICT$8;
- return Carousel._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$7 = 'collapse';
- var VERSION$7 = '4.6.2';
- var DATA_KEY$7 = 'bs.collapse';
- var EVENT_KEY$7 = "." + DATA_KEY$7;
- var DATA_API_KEY$4 = '.data-api';
- var JQUERY_NO_CONFLICT$7 = $__default["default"].fn[NAME$7];
- var CLASS_NAME_SHOW$6 = 'show';
- var CLASS_NAME_COLLAPSE = 'collapse';
- var CLASS_NAME_COLLAPSING = 'collapsing';
- var CLASS_NAME_COLLAPSED = 'collapsed';
- var DIMENSION_WIDTH = 'width';
- var DIMENSION_HEIGHT = 'height';
- var EVENT_SHOW$4 = "show" + EVENT_KEY$7;
- var EVENT_SHOWN$4 = "shown" + EVENT_KEY$7;
- var EVENT_HIDE$4 = "hide" + EVENT_KEY$7;
- var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$7;
- var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$7 + DATA_API_KEY$4;
- var SELECTOR_ACTIVES = '.show, .collapsing';
- var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="collapse"]';
- var Default$6 = {
- toggle: true,
- parent: ''
- };
- var DefaultType$6 = {
- toggle: 'boolean',
- parent: '(string|element)'
- };
- /**
- * Class definition
- */
-
- var Collapse = /*#__PURE__*/function () {
- function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
- var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3));
-
- for (var i = 0, len = toggleList.length; i < len; i++) {
- var elem = toggleList[i];
- var selector = Util.getSelectorFromElement(elem);
- var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
- return foundElem === element;
- });
-
- if (selector !== null && filterElement.length > 0) {
- this._selector = selector;
-
- this._triggerArray.push(elem);
- }
- }
-
- this._parent = this._config.parent ? this._getParent() : null;
-
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
- }
-
- if (this._config.toggle) {
- this.toggle();
- }
- } // Getters
-
-
- var _proto = Collapse.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- if ($__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {
- this.hide();
- } else {
- this.show();
- }
- };
-
- _proto.show = function show() {
- var _this = this;
-
- if (this._isTransitioning || $__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {
- return;
- }
-
- var actives;
- var activesData;
-
- if (this._parent) {
- actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
- if (typeof _this._config.parent === 'string') {
- return elem.getAttribute('data-parent') === _this._config.parent;
- }
-
- return elem.classList.contains(CLASS_NAME_COLLAPSE);
- });
-
- if (actives.length === 0) {
- actives = null;
- }
- }
-
- if (actives) {
- activesData = $__default["default"](actives).not(this._selector).data(DATA_KEY$7);
-
- if (activesData && activesData._isTransitioning) {
- return;
- }
- }
-
- var startEvent = $__default["default"].Event(EVENT_SHOW$4);
- $__default["default"](this._element).trigger(startEvent);
-
- if (startEvent.isDefaultPrevented()) {
- return;
- }
-
- if (actives) {
- Collapse._jQueryInterface.call($__default["default"](actives).not(this._selector), 'hide');
-
- if (!activesData) {
- $__default["default"](actives).data(DATA_KEY$7, null);
- }
- }
-
- var dimension = this._getDimension();
-
- $__default["default"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
- this._element.style[dimension] = 0;
-
- if (this._triggerArray.length) {
- $__default["default"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
- }
-
- this.setTransitioning(true);
-
- var complete = function complete() {
- $__default["default"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6);
- _this._element.style[dimension] = '';
-
- _this.setTransitioning(false);
-
- $__default["default"](_this._element).trigger(EVENT_SHOWN$4);
- };
-
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
- var scrollSize = "scroll" + capitalizedDimension;
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- this._element.style[dimension] = this._element[scrollSize] + "px";
- };
-
- _proto.hide = function hide() {
- var _this2 = this;
-
- if (this._isTransitioning || !$__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) {
- return;
- }
-
- var startEvent = $__default["default"].Event(EVENT_HIDE$4);
- $__default["default"](this._element).trigger(startEvent);
-
- if (startEvent.isDefaultPrevented()) {
- return;
- }
-
- var dimension = this._getDimension();
-
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
- Util.reflow(this._element);
- $__default["default"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6);
- var triggerArrayLength = this._triggerArray.length;
-
- if (triggerArrayLength > 0) {
- for (var i = 0; i < triggerArrayLength; i++) {
- var trigger = this._triggerArray[i];
- var selector = Util.getSelectorFromElement(trigger);
-
- if (selector !== null) {
- var $elem = $__default["default"]([].slice.call(document.querySelectorAll(selector)));
-
- if (!$elem.hasClass(CLASS_NAME_SHOW$6)) {
- $__default["default"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
- }
- }
- }
- }
-
- this.setTransitioning(true);
-
- var complete = function complete() {
- _this2.setTransitioning(false);
-
- $__default["default"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4);
- };
-
- this._element.style[dimension] = '';
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- };
-
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
- this._isTransitioning = isTransitioning;
- };
-
- _proto.dispose = function dispose() {
- $__default["default"].removeData(this._element, DATA_KEY$7);
- this._config = null;
- this._parent = null;
- this._element = null;
- this._triggerArray = null;
- this._isTransitioning = null;
- } // Private
- ;
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default$6, config);
- config.toggle = Boolean(config.toggle); // Coerce string values
-
- Util.typeCheckConfig(NAME$7, config, DefaultType$6);
- return config;
- };
-
- _proto._getDimension = function _getDimension() {
- var hasWidth = $__default["default"](this._element).hasClass(DIMENSION_WIDTH);
- return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
- };
-
- _proto._getParent = function _getParent() {
- var _this3 = this;
-
- var parent;
-
- if (Util.isElement(this._config.parent)) {
- parent = this._config.parent; // It's a jQuery object
-
- if (typeof this._config.parent.jquery !== 'undefined') {
- parent = this._config.parent[0];
- }
- } else {
- parent = document.querySelector(this._config.parent);
- }
-
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
- var children = [].slice.call(parent.querySelectorAll(selector));
- $__default["default"](children).each(function (i, element) {
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
- });
- return parent;
- };
-
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
- var isOpen = $__default["default"](element).hasClass(CLASS_NAME_SHOW$6);
-
- if (triggerArray.length) {
- $__default["default"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
- }
- } // Static
- ;
-
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
- var selector = Util.getSelectorFromElement(element);
- return selector ? document.querySelector(selector) : null;
- };
-
- Collapse._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $__default["default"](this);
- var data = $element.data(DATA_KEY$7);
-
- var _config = _extends({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {});
-
- if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
- _config.toggle = false;
- }
-
- if (!data) {
- data = new Collapse(this, _config);
- $element.data(DATA_KEY$7, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Collapse, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$7;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$6;
- }
- }]);
-
- return Collapse;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {
- // preventDefault only for elements (which change the URL) not inside the collapsible element
- if (event.currentTarget.tagName === 'A') {
- event.preventDefault();
- }
-
- var $trigger = $__default["default"](this);
- var selector = Util.getSelectorFromElement(this);
- var selectors = [].slice.call(document.querySelectorAll(selector));
- $__default["default"](selectors).each(function () {
- var $target = $__default["default"](this);
- var data = $target.data(DATA_KEY$7);
- var config = data ? 'toggle' : $trigger.data();
-
- Collapse._jQueryInterface.call($target, config);
- });
- });
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$7] = Collapse._jQueryInterface;
- $__default["default"].fn[NAME$7].Constructor = Collapse;
-
- $__default["default"].fn[NAME$7].noConflict = function () {
- $__default["default"].fn[NAME$7] = JQUERY_NO_CONFLICT$7;
- return Collapse._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$6 = 'dropdown';
- var VERSION$6 = '4.6.2';
- var DATA_KEY$6 = 'bs.dropdown';
- var EVENT_KEY$6 = "." + DATA_KEY$6;
- var DATA_API_KEY$3 = '.data-api';
- var JQUERY_NO_CONFLICT$6 = $__default["default"].fn[NAME$6];
- var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE$1);
- var CLASS_NAME_DISABLED$1 = 'disabled';
- var CLASS_NAME_SHOW$5 = 'show';
- var CLASS_NAME_DROPUP = 'dropup';
- var CLASS_NAME_DROPRIGHT = 'dropright';
- var CLASS_NAME_DROPLEFT = 'dropleft';
- var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
- var CLASS_NAME_POSITION_STATIC = 'position-static';
- var EVENT_HIDE$3 = "hide" + EVENT_KEY$6;
- var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$6;
- var EVENT_SHOW$3 = "show" + EVENT_KEY$6;
- var EVENT_SHOWN$3 = "shown" + EVENT_KEY$6;
- var EVENT_CLICK = "click" + EVENT_KEY$6;
- var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$6 + DATA_API_KEY$3;
- var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$6 + DATA_API_KEY$3;
- var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$6 + DATA_API_KEY$3;
- var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
- var SELECTOR_FORM_CHILD = '.dropdown form';
- var SELECTOR_MENU = '.dropdown-menu';
- var SELECTOR_NAVBAR_NAV = '.navbar-nav';
- var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
- var PLACEMENT_TOP = 'top-start';
- var PLACEMENT_TOPEND = 'top-end';
- var PLACEMENT_BOTTOM = 'bottom-start';
- var PLACEMENT_BOTTOMEND = 'bottom-end';
- var PLACEMENT_RIGHT = 'right-start';
- var PLACEMENT_LEFT = 'left-start';
- var Default$5 = {
- offset: 0,
- flip: true,
- boundary: 'scrollParent',
- reference: 'toggle',
- display: 'dynamic',
- popperConfig: null
- };
- var DefaultType$5 = {
- offset: '(number|string|function)',
- flip: 'boolean',
- boundary: '(string|element)',
- reference: '(string|element)',
- display: 'string',
- popperConfig: '(null|object)'
- };
- /**
- * Class definition
- */
-
- var Dropdown = /*#__PURE__*/function () {
- function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
-
- this._addEventListeners();
- } // Getters
-
-
- var _proto = Dropdown.prototype;
-
- // Public
- _proto.toggle = function toggle() {
- if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1)) {
- return;
- }
-
- var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5);
-
- Dropdown._clearMenus();
-
- if (isActive) {
- return;
- }
-
- this.show(true);
- };
-
- _proto.show = function show(usePopper) {
- if (usePopper === void 0) {
- usePopper = false;
- }
-
- if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {
- return;
- }
-
- var relatedTarget = {
- relatedTarget: this._element
- };
- var showEvent = $__default["default"].Event(EVENT_SHOW$3, relatedTarget);
-
- var parent = Dropdown._getParentFromElement(this._element);
-
- $__default["default"](parent).trigger(showEvent);
-
- if (showEvent.isDefaultPrevented()) {
- return;
- } // Totally disable Popper for Dropdowns in Navbar
-
-
- if (!this._inNavbar && usePopper) {
- // Check for Popper dependency
- if (typeof Popper__default["default"] === 'undefined') {
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
- }
-
- var referenceElement = this._element;
-
- if (this._config.reference === 'parent') {
- referenceElement = parent;
- } else if (Util.isElement(this._config.reference)) {
- referenceElement = this._config.reference; // Check if it's jQuery element
-
- if (typeof this._config.reference.jquery !== 'undefined') {
- referenceElement = this._config.reference[0];
- }
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
-
-
- if (this._config.boundary !== 'scrollParent') {
- $__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC);
- }
-
- this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig());
- } // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-
- if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
- $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);
- }
-
- this._element.focus();
-
- this._element.setAttribute('aria-expanded', true);
-
- $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5);
- $__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_SHOWN$3, relatedTarget));
- };
-
- _proto.hide = function hide() {
- if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {
- return;
- }
-
- var relatedTarget = {
- relatedTarget: this._element
- };
- var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget);
-
- var parent = Dropdown._getParentFromElement(this._element);
-
- $__default["default"](parent).trigger(hideEvent);
-
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
-
- if (this._popper) {
- this._popper.destroy();
- }
-
- $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5);
- $__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget));
- };
-
- _proto.dispose = function dispose() {
- $__default["default"].removeData(this._element, DATA_KEY$6);
- $__default["default"](this._element).off(EVENT_KEY$6);
- this._element = null;
- this._menu = null;
-
- if (this._popper !== null) {
- this._popper.destroy();
-
- this._popper = null;
- }
- };
-
- _proto.update = function update() {
- this._inNavbar = this._detectNavbar();
-
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- } // Private
- ;
-
- _proto._addEventListeners = function _addEventListeners() {
- var _this = this;
-
- $__default["default"](this._element).on(EVENT_CLICK, function (event) {
- event.preventDefault();
- event.stopPropagation();
-
- _this.toggle();
- });
- };
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config);
- Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
- return config;
- };
-
- _proto._getMenuElement = function _getMenuElement() {
- if (!this._menu) {
- var parent = Dropdown._getParentFromElement(this._element);
-
- if (parent) {
- this._menu = parent.querySelector(SELECTOR_MENU);
- }
- }
-
- return this._menu;
- };
-
- _proto._getPlacement = function _getPlacement() {
- var $parentDropdown = $__default["default"](this._element.parentNode);
- var placement = PLACEMENT_BOTTOM; // Handle dropup
-
- if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
- placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
- } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
- placement = PLACEMENT_RIGHT;
- } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
- placement = PLACEMENT_LEFT;
- } else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
- placement = PLACEMENT_BOTTOMEND;
- }
-
- return placement;
- };
-
- _proto._detectNavbar = function _detectNavbar() {
- return $__default["default"](this._element).closest('.navbar').length > 0;
- };
-
- _proto._getOffset = function _getOffset() {
- var _this2 = this;
-
- var offset = {};
-
- if (typeof this._config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));
- return data;
- };
- } else {
- offset.offset = this._config.offset;
- }
-
- return offset;
- };
-
- _proto._getPopperConfig = function _getPopperConfig() {
- var popperConfig = {
- placement: this._getPlacement(),
- modifiers: {
- offset: this._getOffset(),
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
- }
- }
- }; // Disable Popper if we have a static display
-
- if (this._config.display === 'static') {
- popperConfig.modifiers.applyStyle = {
- enabled: false
- };
- }
-
- return _extends({}, popperConfig, this._config.popperConfig);
- } // Static
- ;
-
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $__default["default"](this).data(DATA_KEY$6);
-
- var _config = typeof config === 'object' ? config : null;
-
- if (!data) {
- data = new Dropdown(this, _config);
- $__default["default"](this).data(DATA_KEY$6, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- Dropdown._clearMenus = function _clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
- return;
- }
-
- var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));
-
- for (var i = 0, len = toggles.length; i < len; i++) {
- var parent = Dropdown._getParentFromElement(toggles[i]);
-
- var context = $__default["default"](toggles[i]).data(DATA_KEY$6);
- var relatedTarget = {
- relatedTarget: toggles[i]
- };
-
- if (event && event.type === 'click') {
- relatedTarget.clickEvent = event;
- }
-
- if (!context) {
- continue;
- }
-
- var dropdownMenu = context._menu;
-
- if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW$5)) {
- continue;
- }
-
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) {
- continue;
- }
-
- var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget);
- $__default["default"](parent).trigger(hideEvent);
-
- if (hideEvent.isDefaultPrevented()) {
- continue;
- } // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
-
-
- if ('ontouchstart' in document.documentElement) {
- $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);
- }
-
- toggles[i].setAttribute('aria-expanded', 'false');
-
- if (context._popper) {
- context._popper.destroy();
- }
-
- $__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5);
- $__default["default"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget));
- }
- };
-
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
- var parent;
- var selector = Util.getSelectorFromElement(element);
-
- if (selector) {
- parent = document.querySelector(selector);
- }
-
- return parent || element.parentNode;
- } // eslint-disable-next-line complexity
- ;
-
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
- // If not input/textarea:
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
- // If input/textarea:
- // - If space key => not a dropdown command
- // - If key is other than escape
- // - If key is not up or down => not a dropdown command
- // - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
- return;
- }
-
- if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED$1)) {
- return;
- }
-
- var parent = Dropdown._getParentFromElement(this);
-
- var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW$5);
-
- if (!isActive && event.which === ESCAPE_KEYCODE$1) {
- return;
- }
-
- event.preventDefault();
- event.stopPropagation();
-
- if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) {
- if (event.which === ESCAPE_KEYCODE$1) {
- $__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');
- }
-
- $__default["default"](this).trigger('click');
- return;
- }
-
- var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
- return $__default["default"](item).is(':visible');
- });
-
- if (items.length === 0) {
- return;
- }
-
- var index = items.indexOf(event.target);
-
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // Up
- index--;
- }
-
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // Down
- index++;
- }
-
- if (index < 0) {
- index = 0;
- }
-
- items[index].focus();
- };
-
- _createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$6;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$5;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType$5;
- }
- }]);
-
- return Dropdown;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
- event.preventDefault();
- event.stopPropagation();
-
- Dropdown._jQueryInterface.call($__default["default"](this), 'toggle');
- }).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) {
- e.stopPropagation();
- });
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$6] = Dropdown._jQueryInterface;
- $__default["default"].fn[NAME$6].Constructor = Dropdown;
-
- $__default["default"].fn[NAME$6].noConflict = function () {
- $__default["default"].fn[NAME$6] = JQUERY_NO_CONFLICT$6;
- return Dropdown._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$5 = 'modal';
- var VERSION$5 = '4.6.2';
- var DATA_KEY$5 = 'bs.modal';
- var EVENT_KEY$5 = "." + DATA_KEY$5;
- var DATA_API_KEY$2 = '.data-api';
- var JQUERY_NO_CONFLICT$5 = $__default["default"].fn[NAME$5];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
- var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
- var CLASS_NAME_BACKDROP = 'modal-backdrop';
- var CLASS_NAME_OPEN = 'modal-open';
- var CLASS_NAME_FADE$4 = 'fade';
- var CLASS_NAME_SHOW$4 = 'show';
- var CLASS_NAME_STATIC = 'modal-static';
- var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;
- var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;
- var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5;
- var EVENT_SHOW$2 = "show" + EVENT_KEY$5;
- var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5;
- var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5;
- var EVENT_RESIZE = "resize" + EVENT_KEY$5;
- var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$5;
- var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;
- var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
- var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
- var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$5 + DATA_API_KEY$2;
- var SELECTOR_DIALOG = '.modal-dialog';
- var SELECTOR_MODAL_BODY = '.modal-body';
- var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="modal"]';
- var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="modal"]';
- var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
- var SELECTOR_STICKY_CONTENT = '.sticky-top';
- var Default$4 = {
- backdrop: true,
- keyboard: true,
- focus: true,
- show: true
- };
- var DefaultType$4 = {
- backdrop: '(boolean|string)',
- keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
- };
- /**
- * Class definition
- */
-
- var Modal = /*#__PURE__*/function () {
- function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = element.querySelector(SELECTOR_DIALOG);
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._isTransitioning = false;
- this._scrollbarWidth = 0;
- } // Getters
-
-
- var _proto = Modal.prototype;
-
- // Public
- _proto.toggle = function toggle(relatedTarget) {
- return this._isShown ? this.hide() : this.show(relatedTarget);
- };
-
- _proto.show = function show(relatedTarget) {
- var _this = this;
-
- if (this._isShown || this._isTransitioning) {
- return;
- }
-
- var showEvent = $__default["default"].Event(EVENT_SHOW$2, {
- relatedTarget: relatedTarget
- });
- $__default["default"](this._element).trigger(showEvent);
-
- if (showEvent.isDefaultPrevented()) {
- return;
- }
-
- this._isShown = true;
-
- if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) {
- this._isTransitioning = true;
- }
-
- this._checkScrollbar();
-
- this._setScrollbar();
-
- this._adjustDialog();
-
- this._setEscapeEvent();
-
- this._setResizeEvent();
-
- $__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) {
- return _this.hide(event);
- });
- $__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
- $__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
- if ($__default["default"](event.target).is(_this._element)) {
- _this._ignoreBackdropClick = true;
- }
- });
- });
-
- this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
- });
- };
-
- _proto.hide = function hide(event) {
- var _this2 = this;
-
- if (event) {
- event.preventDefault();
- }
-
- if (!this._isShown || this._isTransitioning) {
- return;
- }
-
- var hideEvent = $__default["default"].Event(EVENT_HIDE$2);
- $__default["default"](this._element).trigger(hideEvent);
-
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
- return;
- }
-
- this._isShown = false;
- var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4);
-
- if (transition) {
- this._isTransitioning = true;
- }
-
- this._setEscapeEvent();
-
- this._setResizeEvent();
-
- $__default["default"](document).off(EVENT_FOCUSIN);
- $__default["default"](this._element).removeClass(CLASS_NAME_SHOW$4);
- $__default["default"](this._element).off(EVENT_CLICK_DISMISS$1);
- $__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
-
- if (transition) {
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
- $__default["default"](this._element).one(Util.TRANSITION_END, function (event) {
- return _this2._hideModal(event);
- }).emulateTransitionEnd(transitionDuration);
- } else {
- this._hideModal();
- }
- };
-
- _proto.dispose = function dispose() {
- [window, this._element, this._dialog].forEach(function (htmlElement) {
- return $__default["default"](htmlElement).off(EVENT_KEY$5);
- });
- /**
- * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
- * Do not move `document` in `htmlElements` array
- * It will remove `EVENT_CLICK_DATA_API` event that should remain
- */
-
- $__default["default"](document).off(EVENT_FOCUSIN);
- $__default["default"].removeData(this._element, DATA_KEY$5);
- this._config = null;
- this._element = null;
- this._dialog = null;
- this._backdrop = null;
- this._isShown = null;
- this._isBodyOverflowing = null;
- this._ignoreBackdropClick = null;
- this._isTransitioning = null;
- this._scrollbarWidth = null;
- };
-
- _proto.handleUpdate = function handleUpdate() {
- this._adjustDialog();
- } // Private
- ;
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default$4, config);
- Util.typeCheckConfig(NAME$5, config, DefaultType$4);
- return config;
- };
-
- _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
- var _this3 = this;
-
- var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED);
- $__default["default"](this._element).trigger(hideEventPrevented);
-
- if (hideEventPrevented.isDefaultPrevented()) {
- return;
- }
-
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
- if (!isModalOverflowing) {
- this._element.style.overflowY = 'hidden';
- }
-
- this._element.classList.add(CLASS_NAME_STATIC);
-
- var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);
- $__default["default"](this._element).off(Util.TRANSITION_END);
- $__default["default"](this._element).one(Util.TRANSITION_END, function () {
- _this3._element.classList.remove(CLASS_NAME_STATIC);
-
- if (!isModalOverflowing) {
- $__default["default"](_this3._element).one(Util.TRANSITION_END, function () {
- _this3._element.style.overflowY = '';
- }).emulateTransitionEnd(_this3._element, modalTransitionDuration);
- }
- }).emulateTransitionEnd(modalTransitionDuration);
-
- this._element.focus();
- };
-
- _proto._showElement = function _showElement(relatedTarget) {
- var _this4 = this;
-
- var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4);
- var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
-
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
- // Don't move modal's DOM position
- document.body.appendChild(this._element);
- }
-
- this._element.style.display = 'block';
-
- this._element.removeAttribute('aria-hidden');
-
- this._element.setAttribute('aria-modal', true);
-
- this._element.setAttribute('role', 'dialog');
-
- if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
- modalBody.scrollTop = 0;
- } else {
- this._element.scrollTop = 0;
- }
-
- if (transition) {
- Util.reflow(this._element);
- }
-
- $__default["default"](this._element).addClass(CLASS_NAME_SHOW$4);
-
- if (this._config.focus) {
- this._enforceFocus();
- }
-
- var shownEvent = $__default["default"].Event(EVENT_SHOWN$2, {
- relatedTarget: relatedTarget
- });
-
- var transitionComplete = function transitionComplete() {
- if (_this4._config.focus) {
- _this4._element.focus();
- }
-
- _this4._isTransitioning = false;
- $__default["default"](_this4._element).trigger(shownEvent);
- };
-
- if (transition) {
- var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
- $__default["default"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
- } else {
- transitionComplete();
- }
- };
-
- _proto._enforceFocus = function _enforceFocus() {
- var _this5 = this;
-
- $__default["default"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
- .on(EVENT_FOCUSIN, function (event) {
- if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) {
- _this5._element.focus();
- }
- });
- };
-
- _proto._setEscapeEvent = function _setEscapeEvent() {
- var _this6 = this;
-
- if (this._isShown) {
- $__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
- event.preventDefault();
-
- _this6.hide();
- } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
- _this6._triggerBackdropTransition();
- }
- });
- } else if (!this._isShown) {
- $__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS);
- }
- };
-
- _proto._setResizeEvent = function _setResizeEvent() {
- var _this7 = this;
-
- if (this._isShown) {
- $__default["default"](window).on(EVENT_RESIZE, function (event) {
- return _this7.handleUpdate(event);
- });
- } else {
- $__default["default"](window).off(EVENT_RESIZE);
- }
- };
-
- _proto._hideModal = function _hideModal() {
- var _this8 = this;
-
- this._element.style.display = 'none';
-
- this._element.setAttribute('aria-hidden', true);
-
- this._element.removeAttribute('aria-modal');
-
- this._element.removeAttribute('role');
-
- this._isTransitioning = false;
-
- this._showBackdrop(function () {
- $__default["default"](document.body).removeClass(CLASS_NAME_OPEN);
-
- _this8._resetAdjustments();
-
- _this8._resetScrollbar();
-
- $__default["default"](_this8._element).trigger(EVENT_HIDDEN$2);
- });
- };
-
- _proto._removeBackdrop = function _removeBackdrop() {
- if (this._backdrop) {
- $__default["default"](this._backdrop).remove();
- this._backdrop = null;
- }
- };
-
- _proto._showBackdrop = function _showBackdrop(callback) {
- var _this9 = this;
-
- var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : '';
-
- if (this._isShown && this._config.backdrop) {
- this._backdrop = document.createElement('div');
- this._backdrop.className = CLASS_NAME_BACKDROP;
-
- if (animate) {
- this._backdrop.classList.add(animate);
- }
-
- $__default["default"](this._backdrop).appendTo(document.body);
- $__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) {
- if (_this9._ignoreBackdropClick) {
- _this9._ignoreBackdropClick = false;
- return;
- }
-
- if (event.target !== event.currentTarget) {
- return;
- }
-
- if (_this9._config.backdrop === 'static') {
- _this9._triggerBackdropTransition();
- } else {
- _this9.hide();
- }
- });
-
- if (animate) {
- Util.reflow(this._backdrop);
- }
-
- $__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW$4);
-
- if (!callback) {
- return;
- }
-
- if (!animate) {
- callback();
- return;
- }
-
- var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
- $__default["default"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
- } else if (!this._isShown && this._backdrop) {
- $__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW$4);
-
- var callbackRemove = function callbackRemove() {
- _this9._removeBackdrop();
-
- if (callback) {
- callback();
- }
- };
-
- if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) {
- var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
-
- $__default["default"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
- } else {
- callbackRemove();
- }
- } else if (callback) {
- callback();
- }
- } // ----------------------------------------------------------------------
- // the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
- // ----------------------------------------------------------------------
- ;
-
- _proto._adjustDialog = function _adjustDialog() {
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
- if (!this._isBodyOverflowing && isModalOverflowing) {
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
- }
-
- if (this._isBodyOverflowing && !isModalOverflowing) {
- this._element.style.paddingRight = this._scrollbarWidth + "px";
- }
- };
-
- _proto._resetAdjustments = function _resetAdjustments() {
- this._element.style.paddingLeft = '';
- this._element.style.paddingRight = '';
- };
-
- _proto._checkScrollbar = function _checkScrollbar() {
- var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
- this._scrollbarWidth = this._getScrollbarWidth();
- };
-
- _proto._setScrollbar = function _setScrollbar() {
- var _this10 = this;
-
- if (this._isBodyOverflowing) {
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
- var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
- var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
-
- $__default["default"](fixedContent).each(function (index, element) {
- var actualPadding = element.style.paddingRight;
- var calculatedPadding = $__default["default"](element).css('padding-right');
- $__default["default"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
- }); // Adjust sticky content margin
-
- $__default["default"](stickyContent).each(function (index, element) {
- var actualMargin = element.style.marginRight;
- var calculatedMargin = $__default["default"](element).css('margin-right');
- $__default["default"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
- }); // Adjust body padding
-
- var actualPadding = document.body.style.paddingRight;
- var calculatedPadding = $__default["default"](document.body).css('padding-right');
- $__default["default"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
- }
-
- $__default["default"](document.body).addClass(CLASS_NAME_OPEN);
- };
-
- _proto._resetScrollbar = function _resetScrollbar() {
- // Restore fixed content padding
- var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
- $__default["default"](fixedContent).each(function (index, element) {
- var padding = $__default["default"](element).data('padding-right');
- $__default["default"](element).removeData('padding-right');
- element.style.paddingRight = padding ? padding : '';
- }); // Restore sticky content
-
- var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
- $__default["default"](elements).each(function (index, element) {
- var margin = $__default["default"](element).data('margin-right');
-
- if (typeof margin !== 'undefined') {
- $__default["default"](element).css('margin-right', margin).removeData('margin-right');
- }
- }); // Restore body padding
-
- var padding = $__default["default"](document.body).data('padding-right');
- $__default["default"](document.body).removeData('padding-right');
- document.body.style.paddingRight = padding ? padding : '';
- };
-
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
- // thx d.walsh
- var scrollDiv = document.createElement('div');
- scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- } // Static
- ;
-
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
- return this.each(function () {
- var data = $__default["default"](this).data(DATA_KEY$5);
-
- var _config = _extends({}, Default$4, $__default["default"](this).data(), typeof config === 'object' && config ? config : {});
-
- if (!data) {
- data = new Modal(this, _config);
- $__default["default"](this).data(DATA_KEY$5, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
- }
- });
- };
-
- _createClass(Modal, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$5;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$4;
- }
- }]);
-
- return Modal;
- }();
- /**
- * Data API implementation
- */
-
-
- $__default["default"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {
- var _this11 = this;
-
- var target;
- var selector = Util.getSelectorFromElement(this);
-
- if (selector) {
- target = document.querySelector(selector);
- }
-
- var config = $__default["default"](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default["default"](target).data(), $__default["default"](this).data());
-
- if (this.tagName === 'A' || this.tagName === 'AREA') {
- event.preventDefault();
- }
-
- var $target = $__default["default"](target).one(EVENT_SHOW$2, function (showEvent) {
- if (showEvent.isDefaultPrevented()) {
- // Only register focus restorer if modal will actually get shown
- return;
- }
-
- $target.one(EVENT_HIDDEN$2, function () {
- if ($__default["default"](_this11).is(':visible')) {
- _this11.focus();
- }
- });
- });
-
- Modal._jQueryInterface.call($__default["default"](target), config, this);
- });
- /**
- * jQuery
- */
-
- $__default["default"].fn[NAME$5] = Modal._jQueryInterface;
- $__default["default"].fn[NAME$5].Constructor = Modal;
-
- $__default["default"].fn[NAME$5].noConflict = function () {
- $__default["default"].fn[NAME$5] = JQUERY_NO_CONFLICT$5;
- return Modal._jQueryInterface;
- };
-
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.6.2): tools/sanitizer.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- * --------------------------------------------------------------------------
- */
- var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
- var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
- var DefaultWhitelist = {
- // Global attributes allowed on any supplied element below.
- '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
- a: ['target', 'href', 'title', 'rel'],
- area: [],
- b: [],
- br: [],
- col: [],
- code: [],
- div: [],
- em: [],
- hr: [],
- h1: [],
- h2: [],
- h3: [],
- h4: [],
- h5: [],
- h6: [],
- i: [],
- img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
- li: [],
- ol: [],
- p: [],
- pre: [],
- s: [],
- small: [],
- span: [],
- sub: [],
- sup: [],
- strong: [],
- u: [],
- ul: []
- };
- /**
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
- *
- * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
- */
-
- var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
- /**
- * A pattern that matches safe data URLs. Only matches image, video and audio types.
- *
- * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
- */
-
- var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
-
- function allowedAttribute(attr, allowedAttributeList) {
- var attrName = attr.nodeName.toLowerCase();
-
- if (allowedAttributeList.indexOf(attrName) !== -1) {
- if (uriAttrs.indexOf(attrName) !== -1) {
- return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
- }
-
- return true;
- }
-
- var regExp = allowedAttributeList.filter(function (attrRegex) {
- return attrRegex instanceof RegExp;
- }); // Check if a regular expression validates the attribute.
-
- for (var i = 0, len = regExp.length; i < len; i++) {
- if (regExp[i].test(attrName)) {
- return true;
- }
- }
-
- return false;
- }
-
- function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
- if (unsafeHtml.length === 0) {
- return unsafeHtml;
- }
-
- if (sanitizeFn && typeof sanitizeFn === 'function') {
- return sanitizeFn(unsafeHtml);
- }
-
- var domParser = new window.DOMParser();
- var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
- var whitelistKeys = Object.keys(whiteList);
- var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
-
- var _loop = function _loop(i, len) {
- var el = elements[i];
- var elName = el.nodeName.toLowerCase();
-
- if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
- el.parentNode.removeChild(el);
- return "continue";
- }
-
- var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread
-
- var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
- attributeList.forEach(function (attr) {
- if (!allowedAttribute(attr, whitelistedAttributes)) {
- el.removeAttribute(attr.nodeName);
- }
- });
- };
-
- for (var i = 0, len = elements.length; i < len; i++) {
- var _ret = _loop(i);
-
- if (_ret === "continue") continue;
- }
-
- return createdDocument.body.innerHTML;
- }
-
- /**
- * Constants
- */
-
- var NAME$4 = 'tooltip';
- var VERSION$4 = '4.6.2';
- var DATA_KEY$4 = 'bs.tooltip';
- var EVENT_KEY$4 = "." + DATA_KEY$4;
- var JQUERY_NO_CONFLICT$4 = $__default["default"].fn[NAME$4];
- var CLASS_PREFIX$1 = 'bs-tooltip';
- var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
- var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
- var CLASS_NAME_FADE$3 = 'fade';
- var CLASS_NAME_SHOW$3 = 'show';
- var HOVER_STATE_SHOW = 'show';
- var HOVER_STATE_OUT = 'out';
- var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
- var SELECTOR_ARROW = '.arrow';
- var TRIGGER_HOVER = 'hover';
- var TRIGGER_FOCUS = 'focus';
- var TRIGGER_CLICK = 'click';
- var TRIGGER_MANUAL = 'manual';
- var AttachmentMap = {
- AUTO: 'auto',
- TOP: 'top',
- RIGHT: 'right',
- BOTTOM: 'bottom',
- LEFT: 'left'
- };
- var Default$3 = {
- animation: true,
- template: '',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- selector: false,
- placement: 'top',
- offset: 0,
- container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent',
- customClass: '',
- sanitize: true,
- sanitizeFn: null,
- whiteList: DefaultWhitelist,
- popperConfig: null
- };
- var DefaultType$3 = {
- animation: 'boolean',
- template: 'string',
- title: '(string|element|function)',
- trigger: 'string',
- delay: '(number|object)',
- html: 'boolean',
- selector: '(string|boolean)',
- placement: '(string|function)',
- offset: '(number|string|function)',
- container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
- boundary: '(string|element)',
- customClass: '(string|function)',
- sanitize: 'boolean',
- sanitizeFn: '(null|function)',
- whiteList: 'object',
- popperConfig: '(null|object)'
- };
- var Event$1 = {
- HIDE: "hide" + EVENT_KEY$4,
- HIDDEN: "hidden" + EVENT_KEY$4,
- SHOW: "show" + EVENT_KEY$4,
- SHOWN: "shown" + EVENT_KEY$4,
- INSERTED: "inserted" + EVENT_KEY$4,
- CLICK: "click" + EVENT_KEY$4,
- FOCUSIN: "focusin" + EVENT_KEY$4,
- FOCUSOUT: "focusout" + EVENT_KEY$4,
- MOUSEENTER: "mouseenter" + EVENT_KEY$4,
- MOUSELEAVE: "mouseleave" + EVENT_KEY$4
- };
- /**
- * Class definition
- */
-
- var Tooltip = /*#__PURE__*/function () {
- function Tooltip(element, config) {
- if (typeof Popper__default["default"] === 'undefined') {
- throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
- } // Private
-
-
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
-
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
-
- this._setListeners();
- } // Getters
-
-
- var _proto = Tooltip.prototype;
-
- // Public
- _proto.enable = function enable() {
- this._isEnabled = true;
- };
-
- _proto.disable = function disable() {
- this._isEnabled = false;
- };
-
- _proto.toggleEnabled = function toggleEnabled() {
- this._isEnabled = !this._isEnabled;
- };
-
- _proto.toggle = function toggle(event) {
- if (!this._isEnabled) {
- return;
- }
-
- if (event) {
- var dataKey = this.constructor.DATA_KEY;
- var context = $__default["default"](event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $__default["default"](event.currentTarget).data(dataKey, context);
- }
-
- context._activeTrigger.click = !context._activeTrigger.click;
-
- if (context._isWithActiveTrigger()) {
- context._enter(null, context);
- } else {
- context._leave(null, context);
- }
- } else {
- if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) {
- this._leave(null, this);
-
- return;
- }
-
- this._enter(null, this);
- }
- };
-
- _proto.dispose = function dispose() {
- clearTimeout(this._timeout);
- $__default["default"].removeData(this.element, this.constructor.DATA_KEY);
- $__default["default"](this.element).off(this.constructor.EVENT_KEY);
- $__default["default"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
-
- if (this.tip) {
- $__default["default"](this.tip).remove();
- }
-
- this._isEnabled = null;
- this._timeout = null;
- this._hoverState = null;
- this._activeTrigger = null;
-
- if (this._popper) {
- this._popper.destroy();
- }
-
- this._popper = null;
- this.element = null;
- this.config = null;
- this.tip = null;
- };
-
- _proto.show = function show() {
- var _this = this;
-
- if ($__default["default"](this.element).css('display') === 'none') {
- throw new Error('Please use show on visible elements');
- }
-
- var showEvent = $__default["default"].Event(this.constructor.Event.SHOW);
-
- if (this.isWithContent() && this._isEnabled) {
- $__default["default"](this.element).trigger(showEvent);
- var shadowRoot = Util.findShadowRoot(this.element);
- var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
-
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
- return;
- }
-
- var tip = this.getTipElement();
- var tipId = Util.getUID(this.constructor.NAME);
- tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
- this.setContent();
-
- if (this.config.animation) {
- $__default["default"](tip).addClass(CLASS_NAME_FADE$3);
- }
-
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
-
- var attachment = this._getAttachment(placement);
-
- this.addAttachmentClass(attachment);
-
- var container = this._getContainer();
-
- $__default["default"](tip).data(this.constructor.DATA_KEY, this);
-
- if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) {
- $__default["default"](tip).appendTo(container);
- }
-
- $__default["default"](this.element).trigger(this.constructor.Event.INSERTED);
- this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment));
- $__default["default"](tip).addClass(CLASS_NAME_SHOW$3);
- $__default["default"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
- if ('ontouchstart' in document.documentElement) {
- $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);
- }
-
- var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
-
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- $__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN);
-
- if (prevHoverState === HOVER_STATE_OUT) {
- _this._leave(null, _this);
- }
- };
-
- if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) {
- var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
- $__default["default"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- } else {
- complete();
- }
- }
- };
-
- _proto.hide = function hide(callback) {
- var _this2 = this;
-
- var tip = this.getTipElement();
- var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE);
-
- var complete = function complete() {
- if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
- tip.parentNode.removeChild(tip);
- }
-
- _this2._cleanTipClass();
-
- _this2.element.removeAttribute('aria-describedby');
-
- $__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);
-
- if (_this2._popper !== null) {
- _this2._popper.destroy();
- }
-
- if (callback) {
- callback();
- }
- };
-
- $__default["default"](this.element).trigger(hideEvent);
-
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
-
- $__default["default"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
-
- if ('ontouchstart' in document.documentElement) {
- $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);
- }
-
- this._activeTrigger[TRIGGER_CLICK] = false;
- this._activeTrigger[TRIGGER_FOCUS] = false;
- this._activeTrigger[TRIGGER_HOVER] = false;
-
- if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) {
- var transitionDuration = Util.getTransitionDurationFromElement(tip);
- $__default["default"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
- } else {
- complete();
- }
-
- this._hoverState = '';
- };
-
- _proto.update = function update() {
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- } // Protected
- ;
-
- _proto.isWithContent = function isWithContent() {
- return Boolean(this.getTitle());
- };
-
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);
- };
-
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $__default["default"](this.config.template)[0];
- return this.tip;
- };
-
- _proto.setContent = function setContent() {
- var tip = this.getTipElement();
- this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
- $__default["default"](tip).removeClass(CLASS_NAME_FADE$3 + " " + CLASS_NAME_SHOW$3);
- };
-
- _proto.setElementContent = function setElementContent($element, content) {
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
- // Content is a DOM node or a jQuery
- if (this.config.html) {
- if (!$__default["default"](content).parent().is($element)) {
- $element.empty().append(content);
- }
- } else {
- $element.text($__default["default"](content).text());
- }
-
- return;
- }
-
- if (this.config.html) {
- if (this.config.sanitize) {
- content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
- }
-
- $element.html(content);
- } else {
- $element.text(content);
- }
- };
-
- _proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
-
- if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
- }
-
- return title;
- } // Private
- ;
-
- _proto._getPopperConfig = function _getPopperConfig(attachment) {
- var _this3 = this;
-
- var defaultBsConfig = {
- placement: attachment,
- modifiers: {
- offset: this._getOffset(),
- flip: {
- behavior: this.config.fallbackPlacement
- },
- arrow: {
- element: SELECTOR_ARROW
- },
- preventOverflow: {
- boundariesElement: this.config.boundary
- }
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
- _this3._handlePopperPlacementChange(data);
- }
- },
- onUpdate: function onUpdate(data) {
- return _this3._handlePopperPlacementChange(data);
- }
- };
- return _extends({}, defaultBsConfig, this.config.popperConfig);
- };
-
- _proto._getOffset = function _getOffset() {
- var _this4 = this;
-
- var offset = {};
-
- if (typeof this.config.offset === 'function') {
- offset.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));
- return data;
- };
- } else {
- offset.offset = this.config.offset;
- }
-
- return offset;
- };
-
- _proto._getContainer = function _getContainer() {
- if (this.config.container === false) {
- return document.body;
- }
-
- if (Util.isElement(this.config.container)) {
- return $__default["default"](this.config.container);
- }
-
- return $__default["default"](document).find(this.config.container);
- };
-
- _proto._getAttachment = function _getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- };
-
- _proto._setListeners = function _setListeners() {
- var _this5 = this;
-
- var triggers = this.config.trigger.split(' ');
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- $__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
- return _this5.toggle(event);
- });
- } else if (trigger !== TRIGGER_MANUAL) {
- var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
- var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
- $__default["default"](_this5.element).on(eventIn, _this5.config.selector, function (event) {
- return _this5._enter(event);
- }).on(eventOut, _this5.config.selector, function (event) {
- return _this5._leave(event);
- });
- }
- });
-
- this._hideModalHandler = function () {
- if (_this5.element) {
- _this5.hide();
- }
- };
-
- $__default["default"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
-
- if (this.config.selector) {
- this.config = _extends({}, this.config, {
- trigger: 'manual',
- selector: ''
- });
- } else {
- this._fixTitle();
- }
- };
-
- _proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
-
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
- }
- };
-
- _proto._enter = function _enter(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $__default["default"](event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $__default["default"](event.currentTarget).data(dataKey, context);
- }
-
- if (event) {
- context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
- }
-
- if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {
- context._hoverState = HOVER_STATE_SHOW;
- return;
- }
-
- clearTimeout(context._timeout);
- context._hoverState = HOVER_STATE_SHOW;
-
- if (!context.config.delay || !context.config.delay.show) {
- context.show();
- return;
- }
-
- context._timeout = setTimeout(function () {
- if (context._hoverState === HOVER_STATE_SHOW) {
- context.show();
- }
- }, context.config.delay.show);
- };
-
- _proto._leave = function _leave(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $__default["default"](event.currentTarget).data(dataKey);
-
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $__default["default"](event.currentTarget).data(dataKey, context);
- }
-
- if (event) {
- context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
- }
-
- if (context._isWithActiveTrigger()) {
- return;
- }
-
- clearTimeout(context._timeout);
- context._hoverState = HOVER_STATE_OUT;
-
- if (!context.config.delay || !context.config.delay.hide) {
- context.hide();
- return;
- }
-
- context._timeout = setTimeout(function () {
- if (context._hoverState === HOVER_STATE_OUT) {
- context.hide();
- }
- }, context.config.delay.hide);
- };
-
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
- for (var trigger in this._activeTrigger) {
- if (this._activeTrigger[trigger]) {
- return true;
- }
- }
-
- return false;
- };
-
- _proto._getConfig = function _getConfig(config) {
- var dataAttributes = $__default["default"](this.element).data();
- Object.keys(dataAttributes).forEach(function (dataAttr) {
- if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
- delete dataAttributes[dataAttr];
- }
- });
- config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
-
- if (typeof config.delay === 'number') {
- config.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
-
- if (typeof config.title === 'number') {
- config.title = config.title.toString();
- }
-
- if (typeof config.content === 'number') {
- config.content = config.content.toString();
- }
-
- Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
-
- if (config.sanitize) {
- config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
- }
-
- return config;
- };
-
- _proto._getDelegateConfig = function _getDelegateConfig() {
- var config = {};
-
- if (this.config) {
- for (var key in this.config) {
- if (this.constructor.Default[key] !== this.config[key]) {
- config[key] = this.config[key];
- }
- }
- }
-
- return config;
- };
-
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $__default["default"](this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);
-
- if (tabClass !== null && tabClass.length) {
- $tip.removeClass(tabClass.join(''));
- }
- };
-
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
- this.tip = popperData.instance.popper;
-
- this._cleanTipClass();
-
- this.addAttachmentClass(this._getAttachment(popperData.placement));
- };
-
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
-
- if (tip.getAttribute('x-placement') !== null) {
- return;
- }
-
- $__default["default"](tip).removeClass(CLASS_NAME_FADE$3);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
- } // Static
- ;
-
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $__default["default"](this);
- var data = $element.data(DATA_KEY$4);
-
- var _config = typeof config === 'object' && config;
-
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
-
- if (!data) {
- data = new Tooltip(this, _config);
- $element.data(DATA_KEY$4, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION$4;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$3;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME$4;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY$4;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event$1;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY$4;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType$3;
- }
- }]);
-
- return Tooltip;
- }();
- /**
- * jQuery
- */
-
-
- $__default["default"].fn[NAME$4] = Tooltip._jQueryInterface;
- $__default["default"].fn[NAME$4].Constructor = Tooltip;
-
- $__default["default"].fn[NAME$4].noConflict = function () {
- $__default["default"].fn[NAME$4] = JQUERY_NO_CONFLICT$4;
- return Tooltip._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$3 = 'popover';
- var VERSION$3 = '4.6.2';
- var DATA_KEY$3 = 'bs.popover';
- var EVENT_KEY$3 = "." + DATA_KEY$3;
- var JQUERY_NO_CONFLICT$3 = $__default["default"].fn[NAME$3];
- var CLASS_PREFIX = 'bs-popover';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var CLASS_NAME_FADE$2 = 'fade';
- var CLASS_NAME_SHOW$2 = 'show';
- var SELECTOR_TITLE = '.popover-header';
- var SELECTOR_CONTENT = '.popover-body';
-
- var Default$2 = _extends({}, Tooltip.Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: ''
- });
-
- var DefaultType$2 = _extends({}, Tooltip.DefaultType, {
- content: '(string|element|function)'
- });
-
- var Event = {
- HIDE: "hide" + EVENT_KEY$3,
- HIDDEN: "hidden" + EVENT_KEY$3,
- SHOW: "show" + EVENT_KEY$3,
- SHOWN: "shown" + EVENT_KEY$3,
- INSERTED: "inserted" + EVENT_KEY$3,
- CLICK: "click" + EVENT_KEY$3,
- FOCUSIN: "focusin" + EVENT_KEY$3,
- FOCUSOUT: "focusout" + EVENT_KEY$3,
- MOUSEENTER: "mouseenter" + EVENT_KEY$3,
- MOUSELEAVE: "mouseleave" + EVENT_KEY$3
- };
- /**
- * Class definition
- */
-
- var Popover = /*#__PURE__*/function (_Tooltip) {
- _inheritsLoose(Popover, _Tooltip);
-
- function Popover() {
- return _Tooltip.apply(this, arguments) || this;
- }
-
- var _proto = Popover.prototype;
-
- // Overrides
- _proto.isWithContent = function isWithContent() {
- return this.getTitle() || this._getContent();
- };
-
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
-
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $__default["default"](this.config.template)[0];
- return this.tip;
- };
-
- _proto.setContent = function setContent() {
- var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events
-
- this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
-
- var content = this._getContent();
-
- if (typeof content === 'function') {
- content = content.call(this.element);
- }
-
- this.setElementContent($tip.find(SELECTOR_CONTENT), content);
- $tip.removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$2);
- } // Private
- ;
-
- _proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
- };
-
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $__default["default"](this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- } // Static
- ;
-
- Popover._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $__default["default"](this).data(DATA_KEY$3);
-
- var _config = typeof config === 'object' ? config : null;
-
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
-
- if (!data) {
- data = new Popover(this, _config);
- $__default["default"](this).data(DATA_KEY$3, data);
- }
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
-
- data[config]();
- }
- });
- };
-
- _createClass(Popover, null, [{
- key: "VERSION",
- get: // Getters
- function get() {
- return VERSION$3;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default$2;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME$3;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY$3;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY$3;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType$2;
- }
- }]);
-
- return Popover;
- }(Tooltip);
- /**
- * jQuery
- */
-
-
- $__default["default"].fn[NAME$3] = Popover._jQueryInterface;
- $__default["default"].fn[NAME$3].Constructor = Popover;
-
- $__default["default"].fn[NAME$3].noConflict = function () {
- $__default["default"].fn[NAME$3] = JQUERY_NO_CONFLICT$3;
- return Popover._jQueryInterface;
- };
-
- /**
- * Constants
- */
-
- var NAME$2 = 'scrollspy';
- var VERSION$2 = '4.6.2';
- var DATA_KEY$2 = 'bs.scrollspy';
- var EVENT_KEY$2 = "." + DATA_KEY$2;
- var DATA_API_KEY$1 = '.data-api';
- var JQUERY_NO_CONFLICT$2 = $__default["default"].fn[NAME$2];
- var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
- var CLASS_NAME_ACTIVE$1 = 'active';
- var EVENT_ACTIVATE = "activate" + EVENT_KEY$2;
- var EVENT_SCROLL = "scroll" + EVENT_KEY$2;
- var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$1;
- var METHOD_OFFSET = 'offset';
- var METHOD_POSITION = 'position';
- var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
- var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
- var SELECTOR_NAV_LINKS = '.nav-link';
- var SELECTOR_NAV_ITEMS = '.nav-item';
- var SELECTOR_LIST_ITEMS = '.list-group-item';
- var SELECTOR_DROPDOWN$1 = '.dropdown';
- var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
- var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
- var Default$1 = {
- offset: 10,
- method: 'auto',
- target: ''
- };
- var DefaultType$1 = {
- offset: 'number',
- method: 'string',
- target: '(string|element)'
- };
- /**
- * Class definition
- */
-
- var ScrollSpy = /*#__PURE__*/function () {
- function ScrollSpy(element, config) {
- var _this = this;
-
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- $__default["default"](this._scrollElement).on(EVENT_SCROLL, function (event) {
- return _this._process(event);
- });
- this.refresh();
-
- this._process();
- } // Getters
-
-
- var _proto = ScrollSpy.prototype;
-
- // Public
- _proto.refresh = function refresh() {
- var _this2 = this;
-
- var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
- var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
- this._offsets = [];
- this._targets = [];
- this._scrollHeight = this._getScrollHeight();
- var targets = [].slice.call(document.querySelectorAll(this._selector));
- targets.map(function (element) {
- var target;
- var targetSelector = Util.getSelectorFromElement(element);
-
- if (targetSelector) {
- target = document.querySelector(targetSelector);
- }
-
- if (target) {
- var targetBCR = target.getBoundingClientRect();
-
- if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
- return [$__default["default"](target)[offsetMethod]().top + offsetBase, targetSelector];
- }
- }
-
- return null;
- }).filter(Boolean).sort(function (a, b) {
- return a[0] - b[0];
- }).forEach(function (item) {
- _this2._offsets.push(item[0]);
-
- _this2._targets.push(item[1]);
- });
- };
-
- _proto.dispose = function dispose() {
- $__default["default"].removeData(this._element, DATA_KEY$2);
- $__default["default"](this._scrollElement).off(EVENT_KEY$2);
- this._element = null;
- this._scrollElement = null;
- this._config = null;
- this._selector = null;
- this._offsets = null;
- this._targets = null;
- this._activeTarget = null;
- this._scrollHeight = null;
- } // Private
- ;
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default$1, typeof config === 'object' && config ? config : {});
-
- if (typeof config.target !== 'string' && Util.isElement(config.target)) {
- var id = $__default["default"](config.target).attr('id');
-
- if (!id) {
- id = Util.getUID(NAME$2);
- $__default["default"](config.target).attr('id', id);
- }
-
- config.target = "#" + id;
- }
-
- Util.typeCheckConfig(NAME$2, config, DefaultType$1);
- return config;
- };
-
- _proto._getScrollTop = function _getScrollTop() {
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
- };
-
- _proto._getScrollHeight = function _getScrollHeight() {
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- };
-
- _proto._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
- };
-
- _proto._process = function _process() {
- var scrollTop = this._getScrollTop() + this._config.offset;
-
- var scrollHeight = this._getScrollHeight();
-
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
-
- if (this._scrollHeight !== scrollHeight) {
- this.refresh();
- }
-
- if (scrollTop >= maxScroll) {
- var target = this._targets[this._targets.length - 1];
-
- if (this._activeTarget !== target) {
- this._activate(target);
- }
-
- return;
- }
-
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
- this._activeTarget = null;
-
- this._clear();
-
- return;
- }
-
- for (var i = this._offsets.length; i--;) {
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
-
- if (isActiveTarget) {
- this._activate(this._targets[i]);
- }
- }
- };
-
- _proto._activate = function _activate(target) {
- this._activeTarget = target;
-
- this._clear();
-
- var queries = this._selector.split(',').map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
- });
-
- var $link = $__default["default"]([].slice.call(document.querySelectorAll(queries.join(','))));
-
- if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
- $link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1);
- $link.addClass(CLASS_NAME_ACTIVE$1);
- } else {
- // Set triggered link as active
- $link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active
- // With both and