From 0a222386298b069061962177f19da4e7ce4fb86a Mon Sep 17 00:00:00 2001 From: pushuo <229102104@qq.com> Date: Mon, 15 Aug 2022 10:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E8=8F=9C=E5=8D=95=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=AD=89=E6=9C=89=E5=AE=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Middleware/ShareViewData.php | 2 + .../Http/Controllers/DesignMenuController.php | 47 + beike/Admin/Repositories/PermissionRepo.php | 2 +- beike/Admin/Routes/admin.php | 3 + beike/Admin/View/Components/Sidebar.php | 3 +- beike/Helpers.php | 2 +- beike/Repositories/MenuRepo.php | 113 + public/build/beike/admin/css/app.css | 55 +- public/build/beike/admin/css/bootstrap.css | 34 +- public/build/beike/admin/js/app.js | 364 +- public/build/beike/shop/default/css/app.css | 92 +- public/build/beike/shop/default/js/app.js | 356 +- public/catalog/demo/banner/2.jpg | Bin 0 -> 33923 bytes public/catalog/demo/banner/2_en.jpg | Bin 0 -> 34060 bytes public/fonts/Futura Medium/Futura Medium.otf | Bin 23672 -> 0 bytes public/vendor/vue/2.6.12/vue.js | 11965 ------------ public/vendor/vue/2.6.12/vue.min.js | 6 - public/vendor/vue/2.7/vue.js | 11841 ++++++++++++ public/vendor/vue/2.7/vue.min.js | 11 + public/vendor/vue/3/vue.global.js | 15934 ++++++++++++++++ resources/beike/admin/css/_global.scss | 12 + resources/beike/admin/css/_header.scss | 3 + resources/beike/admin/css/_sidebar.scss | 10 +- resources/beike/admin/css/app.scss | 1 + .../beike/admin/css/bootstrap/bootstrap.scss | 10 +- resources/beike/admin/css/design/menu.scss | 51 + resources/beike/admin/js/app.js | 6 +- resources/beike/admin/js/common.js | 6 +- .../admin/views/layouts/master.blade.php | 6 +- .../views/pages/admin_roles/index.blade.php | 1 + .../component/image_selector.blade.php | 8 +- .../builder/component/link_selector.blade.php | 25 +- .../builder/component/text_i18n.blade.php | 98 +- .../pages/design/builder/footer.blade.php | 18 +- .../pages/design/builder/index.blade.php | 14 +- .../views/pages/design/builder/menu.blade.php | 286 + .../views/pages/file_manager/index.blade.php | 2 +- .../admin/views/pages/pages/index.blade.php | 2 +- resources/beike/shop/default/css/header.scss | 134 +- .../beike/shop/default/css/page-product.scss | 7 +- resources/beike/shop/default/js/common.js | 4 +- resources/beike/shop/default/js/header.js | 6 +- resources/js/http.js | 2 +- resources/lang/en/admin/common.php | 1 + resources/lang/en/admin/setting.php | 1 + resources/lang/zh_cn/admin/common.php | 1 + resources/lang/zh_cn/admin/setting.php | 1 + themes/default/layout/header.blade.php | 57 +- themes/default/product.blade.php | 4 +- 49 files changed, 29091 insertions(+), 12516 deletions(-) create mode 100644 beike/Admin/Http/Controllers/DesignMenuController.php create mode 100644 beike/Repositories/MenuRepo.php create mode 100644 public/catalog/demo/banner/2.jpg create mode 100644 public/catalog/demo/banner/2_en.jpg delete mode 100644 public/fonts/Futura Medium/Futura Medium.otf delete mode 100644 public/vendor/vue/2.6.12/vue.js delete mode 100644 public/vendor/vue/2.6.12/vue.min.js create mode 100644 public/vendor/vue/2.7/vue.js create mode 100644 public/vendor/vue/2.7/vue.min.js create mode 100644 public/vendor/vue/3/vue.global.js create mode 100644 resources/beike/admin/css/design/menu.scss create mode 100644 resources/beike/admin/views/pages/design/builder/menu.blade.php diff --git a/app/Http/Middleware/ShareViewData.php b/app/Http/Middleware/ShareViewData.php index 8fa65841..8ef56aff 100644 --- a/app/Http/Middleware/ShareViewData.php +++ b/app/Http/Middleware/ShareViewData.php @@ -22,6 +22,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Beike\Repositories\FooterRepo; +use Beike\Repositories\MenuRepo; use Illuminate\Support\Facades\View; use Beike\Repositories\CategoryRepo; use Beike\Repositories\LanguageRepo; @@ -50,6 +51,7 @@ class ShareViewData View::share('shop_base_url', shop_route('home.index')); View::share('categories', hook_filter('header.categories', CategoryRepo::getTwoLevelCategories())); View::share('footer_content', hook_filter('footer.content', FooterRepo::handleFooterData())); + View::share('menu_content', hook_filter('menu.content', MenuRepo::handleMenuData())); } } diff --git a/beike/Admin/Http/Controllers/DesignMenuController.php b/beike/Admin/Http/Controllers/DesignMenuController.php new file mode 100644 index 00000000..74d2ecfe --- /dev/null +++ b/beike/Admin/Http/Controllers/DesignMenuController.php @@ -0,0 +1,47 @@ + system_setting('base.menu_setting', []), + ]; + return view('admin::pages.design.builder.menu', $data); + } + + /** + * 更新所有数据 + * + * @param Request $request + * @return array + * @throws \Throwable + */ + public function update(Request $request): array + { + $content = json_decode($request->getContent(), true); + + $data = [ + 'type' => 'system', + 'space' => 'base', + 'name' => 'menu_setting', + 'value' => json_encode($content), + 'json' => 1 + ]; + SettingRepo::createOrUpdate($data); + return json_success("保存成功"); + } +} diff --git a/beike/Admin/Repositories/PermissionRepo.php b/beike/Admin/Repositories/PermissionRepo.php index b94998e9..0f2697a8 100644 --- a/beike/Admin/Repositories/PermissionRepo.php +++ b/beike/Admin/Repositories/PermissionRepo.php @@ -146,7 +146,7 @@ class PermissionRepo */ private function getSettingPermissions(): array { - $routes = ['settings_index', 'design_index', 'design_footer_index']; + $routes = ['settings_index', 'design_index', 'design_footer_index', 'design_menu_index']; $items = $this->getPermissionList('setting', $routes); return hook_filter('role.setting_permissions', $items); } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 0b9c22bc..fad270e4 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -44,6 +44,9 @@ Route::prefix($adminName) Route::put('design_footer/builder', [Controllers\DesignFooterController::class, 'update'])->name('design_footer.update'); Route::post('design_footer/builder/preview', [Controllers\DesignFooterController::class, 'preview'])->name('design_footer.module.preview'); + Route::get('design_menu/builder', [Controllers\DesignMenuController::class, 'index'])->name('design_menu.index'); + Route::put('design_menu/builder', [Controllers\DesignMenuController::class, 'update'])->name('design_menu.update'); + Route::put('edit', [Controllers\EditController::class, 'update'])->name('edit'); Route::get('edit/locale', [Controllers\EditController::class, 'locale'])->name('edit.locale'); diff --git a/beike/Admin/View/Components/Sidebar.php b/beike/Admin/View/Components/Sidebar.php index 05b4e12d..8def94d8 100644 --- a/beike/Admin/View/Components/Sidebar.php +++ b/beike/Admin/View/Components/Sidebar.php @@ -61,7 +61,7 @@ class Sidebar extends Component foreach ($routes as $route) { $this->addLink($route['route'], $route['icon'] ?? '', $this->equalRoute($route['route']), (bool)($route['blank'] ?? false)); } - } elseif (Str::startsWith($routeName, ['settings.', 'admin_users.', 'admin_roles.', 'plugins.', 'tax_classes', 'tax_rates', 'regions', 'currencies', 'languages'])) { + } elseif (Str::startsWith($routeName, ['settings.', 'admin_users.', 'admin_roles.', 'plugins.', 'tax_classes', 'tax_rates', 'regions', 'currencies', 'languages', 'design_menu'])) { $routes = $this->getSettingSubRoutes(); foreach ($routes as $route) { $this->addLink($route['route'], $route['icon'] ?? '', $this->equalRoute($route['route']), (bool)($route['blank'] ?? false)); @@ -185,6 +185,7 @@ class Sidebar extends Component ['route' => 'languages.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'design.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true], ['route' => 'design_footer.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true], + ['route' => 'design_menu.index', 'icon' => 'fa fa-tachometer-alt'], ]; return hook_filter('sidebar.setting_routes', $routes); } diff --git a/beike/Helpers.php b/beike/Helpers.php index ddba3553..8cf86bde 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -125,7 +125,7 @@ function type_route($type, $value): string } elseif ($type == 'category') { return shop_route('categories.show', ['category' => $value]); } elseif ($type == 'brand') { - return shop_route('brands.show', ['brand' => $value]); + return shop_route('brands.show', [$value]); } elseif ($type == 'page') { return shop_route('pages.show', ['page' => $value]); } diff --git a/beike/Repositories/MenuRepo.php b/beike/Repositories/MenuRepo.php new file mode 100644 index 00000000..a7d2151a --- /dev/null +++ b/beike/Repositories/MenuRepo.php @@ -0,0 +1,113 @@ + + * @created 2022-08-11 18:16:06 + * @modified 2022-08-11 18:16:06 + */ + +namespace Beike\Repositories; + +use Beike\Models\Page; +use Beike\Models\Category; +use Beike\Repositories\CategoryRepo; +use Beike\Repositories\ProductRepo; +use Beike\Repositories\BrandRepo; + + +class MenuRepo +{ + /** + * 处理页尾编辑器数据 + * + * @return array|mixed + */ + public static function handleMenuData($MenuSetting = []) + { + if (empty($MenuSetting)) { + $MenuSetting = system_setting('base.menu_setting'); + } + + $locale = locale(); + + $menus = $MenuSetting['menus']; + + foreach ($menus as $index => $menu) { + $menus[$index]['link'] = self::handleLink($menu['link']); + $menus[$index]['name'] = $menu['name'][$locale] ?? ''; + $menus[$index]['badge']['name'] = $menu['badge']['name'][$locale] ?? ''; + + if ($menu['childrenGroup']) { + foreach ($menu['childrenGroup'] as $group_index => $childrenGroup) { + if ($childrenGroup['type'] == 'image') { + $menus[$index]['childrenGroup'][$group_index]['image']['image'] = image_origin($childrenGroup['image']['image'][$locale]); + $menus[$index]['childrenGroup'][$group_index]['image']['link'] = type_route($childrenGroup['image']['link']['type'], $childrenGroup['image']['link']['value']); + continue; + } + + // 判断 $childrenGroup['children'] 是否为空,如果为空,则删除该分组 + if (empty($childrenGroup['children'])) { + unset($menus[$index]['childrenGroup'][$group_index]); + } else { + $menus[$index]['childrenGroup'][$group_index]['name'] = $childrenGroup['name'][$locale]; + if ($childrenGroup['children']) { + foreach ($childrenGroup['children'] as $children_index => $children) { + $menus[$index]['childrenGroup'][$group_index]['children'][$children_index]['link'] = self::handleLink($children['link']); + } + } + } + } + } + } + + return $menus; + } + + /** + * 处理链接 + * + * @param $type + * @param $value + * @return string + */ + private static function handleLink($link): array + { + $locale = locale(); + + if ($link['type'] == 'custom') { + $link['link'] = $link['value']; + $link['text'] = $link['text'][$locale]; + } elseif ($link['type'] == 'static') { + $link['link'] = shop_route($link['value']); + $link['text'] = $link['text'][$locale] ?: trans('shop/' . $link['value']); + } elseif ($link['type'] == 'page') { + $pageId = $link['value']; + $page = Page::query()->find($pageId); + if ($page) { + $link['link'] = type_route('page', $link['value']); + $link['text'] = $link['text'][$locale] ?: $page->description->title; + } + } elseif ($link['type'] == 'category') { + $category = Category::query()->find($link['value']); + if ($category) { + $link['link'] = type_route('category', $link['value']); + $link['text'] = $link['text'][$locale] ?: CategoryRepo::getName($link['value']); + } + } elseif ($link['type'] == 'product') { + $link['link'] = type_route('product', $link['value']); + $link['text'] = $link['text'][$locale] ?: ProductRepo::getName($link['value']); + } elseif ($link['type'] == 'brand') { + $link['link'] = type_route('brand', $link['value']); + $link['text'] = $link['text'][$locale] ?: BrandRepo::getName($link['value']); + } else { + $link['link'] = ''; + $link['text'] = $link['text'][$locale]; + } + + return $link; + } +} diff --git a/public/build/beike/admin/css/app.css b/public/build/beike/admin/css/app.css index 58f1df4c..75cecdad 100644 --- a/public/build/beike/admin/css/app.css +++ b/public/build/beike/admin/css/app.css @@ -325,6 +325,18 @@ margin-right: 5px; } +.cursor-pointer { + cursor: pointer; +} + +.cursor-scroll { + cursor: all-scroll; +} + +.flex-1 { + flex: 1; +} + .help-text { color: #B2B2B2; margin-top: 4px; @@ -537,13 +549,6 @@ body.page-seller-product .share-link-pop .share-links-code img { background: #fff; border-right: 1px solid #f1f1f1; } -@media screen and (max-width: 991px) { - .sidebar { - position: fixed; - top: 0; - bottom: 0; - } -} .sidebar .navbar-nav > li.nav-item { position: relative; } @@ -595,6 +600,11 @@ body.page-seller-product .share-link-pop .share-links-code img { .header-wrap .header-right > .navbar > li { padding: 0 1rem; } +@media screen and (max-width: 991px) { + .header-wrap .header-right > .navbar > li { + padding: 0 0.3rem; + } +} .header-wrap .header-right > .navbar > li .dropdown:hover .nav-link { background-color: #eee; } @@ -1063,3 +1073,34 @@ body.page-categories .el-tree-node__content { height: 42px; border-bottom: 1px solid #f5f5f5; } + +.design-wrap { + flex-wrap: wrap; +} +.design-wrap .menus-wrap > div { + cursor: pointer; +} +.design-wrap .menus-wrap > div:not(.list-group-item-primary):hover { + background-color: #f5f5f5; +} +.design-wrap .left .menus-wrap .link-selector-wrap { + width: calc(100% - 20px); +} +.design-wrap .left .menus-wrap .link-selector-wrap .selector-type .title { + border: none; + padding: 8px 16px 8px 6px; + background-color: transparent; +} +.design-wrap .right { + width: calc(100% - 220px); +} +.design-wrap .right .menu-children-group .group-children .children-item { + background-color: #f5f5f5; +} +.design-wrap .right .menu-children-group .group-children .children-item .link-selector-wrap { + width: calc(100% - 34px); +} +.design-wrap .right .menu-children-group .group-children .children-item .link-selector-wrap .selector-type .title { + border: none; + background-color: transparent; +} diff --git a/public/build/beike/admin/css/bootstrap.css b/public/build/beike/admin/css/bootstrap.css index 3dade7df..1209a1a8 100644 --- a/public/build/beike/admin/css/bootstrap.css +++ b/public/build/beike/admin/css/bootstrap.css @@ -8739,7 +8739,7 @@ progress { background-color: #f9fbfd; border-color: #feab87; outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); } .form-control::-webkit-date-and-time-value { height: 1.5em; @@ -9019,7 +9019,7 @@ textarea.form-control-lg { .form-check-input:focus { border-color: #feab87; outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); } .form-check-input:checked { background-color: #fd560f; @@ -9098,10 +9098,10 @@ textarea.form-control-lg { outline: 0; } .form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #f9fbfd, 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 0 1px #f9fbfd, 0 0 11px 0 rgba(253, 86, 15, 0.1); } .form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #f9fbfd, 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 0 1px #f9fbfd, 0 0 11px 0 rgba(253, 86, 15, 0.1); } .form-range::-moz-focus-outer { border: 0; @@ -9525,7 +9525,7 @@ textarea.form-control-lg { } .btn-check:focus + .btn, .btn:focus { outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); } .btn:disabled, .btn.disabled, fieldset:disabled .btn { pointer-events: none; @@ -11216,7 +11216,7 @@ textarea.form-control-lg { z-index: 3; border-color: #feab87; outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); } .accordion-header { @@ -11324,7 +11324,7 @@ textarea.form-control-lg { color: #1373cc; background-color: #e9ecef; outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); } .page-item:not(:first-child) .page-link { @@ -11906,7 +11906,7 @@ textarea.form-control-lg { } .btn-close:focus { outline: 0; - box-shadow: 0 0 0 0.25rem rgba(253, 86, 15, 0.25); + box-shadow: 0 0 11px 0 rgba(253, 86, 15, 0.1); opacity: 1; } .btn-close:disabled, .btn-close.disabled { @@ -12058,7 +12058,7 @@ textarea.form-control-lg { align-items: center; justify-content: space-between; padding: 1rem 1rem; - border-bottom: 1px solid #f1f1f1; + border-bottom: 1px solid #e8e8e8; border-top-left-radius: calc(0.3rem - 1px); border-top-right-radius: calc(0.3rem - 1px); } @@ -12085,7 +12085,7 @@ textarea.form-control-lg { align-items: center; justify-content: flex-end; padding: 0.75rem; - border-top: 1px solid #f1f1f1; + border-top: 1px solid #e8e8e8; border-bottom-right-radius: calc(0.3rem - 1px); border-bottom-left-radius: calc(0.3rem - 1px); } @@ -13340,7 +13340,7 @@ textarea.form-control-lg { } .border { - border: 1px solid #f1f1f1 !important; + border: 1px solid #e8e8e8 !important; } .border-0 { @@ -13348,7 +13348,7 @@ textarea.form-control-lg { } .border-top { - border-top: 1px solid #f1f1f1 !important; + border-top: 1px solid #e8e8e8 !important; } .border-top-0 { @@ -13356,7 +13356,7 @@ textarea.form-control-lg { } .border-end { - border-right: 1px solid #f1f1f1 !important; + border-right: 1px solid #e8e8e8 !important; } .border-end-0 { @@ -13364,7 +13364,7 @@ textarea.form-control-lg { } .border-bottom { - border-bottom: 1px solid #f1f1f1 !important; + border-bottom: 1px solid #e8e8e8 !important; } .border-bottom-0 { @@ -13372,7 +13372,7 @@ textarea.form-control-lg { } .border-start { - border-left: 1px solid #f1f1f1 !important; + border-left: 1px solid #e8e8e8 !important; } .border-start-0 { @@ -17008,3 +17008,7 @@ textarea.form-control-lg { color: #00d97e; background-color: #ccf7e5; } + +.btn-link:focus { + box-shadow: none; +} diff --git a/public/build/beike/admin/js/app.js b/public/build/beike/admin/js/app.js index 30ce1c8a..262a6342 100644 --- a/public/build/beike/admin/js/app.js +++ b/public/build/beike/admin/js/app.js @@ -1,33 +1,33 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ "./node_modules/axios/index.js": -/*!*************************************!*\ - !*** ./node_modules/axios/index.js ***! - \*************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/index.js": +/*!***************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/index.js ***! + \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js"); +module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/_axios@0.21.4@axios/lib/axios.js"); /***/ }), -/***/ "./node_modules/axios/lib/adapters/xhr.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/adapters/xhr.js ***! - \************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/adapters/xhr.js": +/*!**************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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 createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/_axios@0.21.4@axios/lib/core/settle.js"); +var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js"); +var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js"); +var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/_axios@0.21.4@axios/lib/core/buildFullPath.js"); +var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js"); +var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js"); +var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js"); module.exports = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve, reject) { @@ -211,20 +211,20 @@ module.exports = function xhrAdapter(config) { /***/ }), -/***/ "./node_modules/axios/lib/axios.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/axios.js ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/axios.js": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js"); +var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/_axios@0.21.4@axios/lib/core/Axios.js"); +var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js"); +var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Create an instance of Axios @@ -257,18 +257,18 @@ axios.create = function create(instanceConfig) { }; // Expose Cancel & CancelToken -axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.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.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js"); +axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js"); +axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js"); // 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"); +axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js"); // Expose isAxiosError -axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/axios/lib/helpers/isAxiosError.js"); +axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js"); module.exports = axios; @@ -278,10 +278,10 @@ module.exports["default"] = axios; /***/ }), -/***/ "./node_modules/axios/lib/cancel/Cancel.js": -/*!*************************************************!*\ - !*** ./node_modules/axios/lib/cancel/Cancel.js ***! - \*************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js": +/*!***************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js ***! + \***************************************************************/ /***/ ((module) => { "use strict"; @@ -308,16 +308,16 @@ module.exports = Cancel; /***/ }), -/***/ "./node_modules/axios/lib/cancel/CancelToken.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js ***! + \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); +var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js"); /** * A `CancelToken` is an object that can be used to request cancellation of an operation. @@ -376,10 +376,10 @@ module.exports = CancelToken; /***/ }), -/***/ "./node_modules/axios/lib/cancel/isCancel.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js": +/*!*****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js ***! + \*****************************************************************/ /***/ ((module) => { "use strict"; @@ -392,21 +392,21 @@ module.exports = function isCancel(value) { /***/ }), -/***/ "./node_modules/axios/lib/core/Axios.js": -/*!**********************************************!*\ - !*** ./node_modules/axios/lib/core/Axios.js ***! - \**********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/Axios.js": +/*!************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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 validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js"); +var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js"); +var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/_axios@0.21.4@axios/lib/core/dispatchRequest.js"); +var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js"); +var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js"); var validators = validator.validators; /** @@ -551,16 +551,16 @@ module.exports = Axios; /***/ }), -/***/ "./node_modules/axios/lib/core/InterceptorManager.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js": +/*!*************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js ***! + \*************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); function InterceptorManager() { this.handlers = []; @@ -616,17 +616,17 @@ module.exports = InterceptorManager; /***/ }), -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/buildFullPath.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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"); +var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js"); +var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js"); /** * Creates a new URL by combining the baseURL with the requestedURL, @@ -647,16 +647,16 @@ module.exports = function buildFullPath(baseURL, requestedURL) { /***/ }), -/***/ "./node_modules/axios/lib/core/createError.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/createError.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/createError.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); +var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js"); /** * Create an Error with the specified message, config, error code, request and response. @@ -676,19 +676,19 @@ module.exports = function createError(message, config, code, request, response) /***/ }), -/***/ "./node_modules/axios/lib/core/dispatchRequest.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/dispatchRequest.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/_axios@0.21.4@axios/lib/core/transformData.js"); +var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js"); +var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Throws a `Cancel` if cancellation has been requested. @@ -769,10 +769,10 @@ module.exports = function dispatchRequest(config) { /***/ }), -/***/ "./node_modules/axios/lib/core/enhanceError.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/core/enhanceError.js ***! - \*****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js": +/*!*******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js ***! + \*******************************************************************/ /***/ ((module) => { "use strict"; @@ -822,16 +822,16 @@ module.exports = function enhanceError(error, config, code, request, response) { /***/ }), -/***/ "./node_modules/axios/lib/core/mergeConfig.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); /** * Config-specific merge-function which creates a new config-object @@ -920,16 +920,16 @@ module.exports = function mergeConfig(config1, config2) { /***/ }), -/***/ "./node_modules/axios/lib/core/settle.js": -/*!***********************************************!*\ - !*** ./node_modules/axios/lib/core/settle.js ***! - \***********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/settle.js": +/*!*************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/settle.js ***! + \*************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js"); +var createError = __webpack_require__(/*! ./createError */ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js"); /** * Resolve or reject a Promise based on response status. @@ -956,17 +956,17 @@ module.exports = function settle(resolve, reject, response) { /***/ }), -/***/ "./node_modules/axios/lib/core/transformData.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/transformData.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/transformData.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Transform the data for a request or a response @@ -989,19 +989,19 @@ module.exports = function transformData(data, headers, fns) { /***/ }), -/***/ "./node_modules/axios/lib/defaults.js": -/*!********************************************!*\ - !*** ./node_modules/axios/lib/defaults.js ***! - \********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/defaults.js": +/*!**********************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/defaults.js ***! + \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js"); +/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/_process@0.11.10@process/browser.js"); -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 enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); +var utils = __webpack_require__(/*! ./utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js"); +var enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js"); var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' @@ -1017,10 +1017,10 @@ 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"); + adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/_axios@0.21.4@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"); + adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/_axios@0.21.4@axios/lib/adapters/xhr.js"); } return adapter; } @@ -1135,10 +1135,10 @@ module.exports = defaults; /***/ }), -/***/ "./node_modules/axios/lib/helpers/bind.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/bind.js ***! - \************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js": +/*!**************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js ***! + \**************************************************************/ /***/ ((module) => { "use strict"; @@ -1157,16 +1157,16 @@ module.exports = function bind(fn, thisArg) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/buildURL.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); function encode(val) { return encodeURIComponent(val). @@ -1238,10 +1238,10 @@ module.exports = function buildURL(url, params, paramsSerializer) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/combineURLs.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js": +/*!*********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js ***! + \*********************************************************************/ /***/ ((module) => { "use strict"; @@ -1263,16 +1263,16 @@ module.exports = function combineURLs(baseURL, relativeURL) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/cookies.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js": +/*!*****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js ***! + \*****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? @@ -1327,10 +1327,10 @@ module.exports = ( /***/ }), -/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js": +/*!***********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js ***! + \***********************************************************************/ /***/ ((module) => { "use strict"; @@ -1352,10 +1352,10 @@ module.exports = function isAbsoluteURL(url) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/isAxiosError.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js ***! + \**********************************************************************/ /***/ ((module) => { "use strict"; @@ -1374,16 +1374,16 @@ module.exports = function isAxiosError(payload) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js ***! + \*************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? @@ -1453,16 +1453,16 @@ module.exports = ( /***/ }), -/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": -/*!***************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! - \***************************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js ***! + \*****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = function normalizeHeaderName(headers, normalizedName) { utils.forEach(headers, function processHeader(value, name) { @@ -1476,16 +1476,16 @@ module.exports = function normalizeHeaderName(headers, normalizedName) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/parseHeaders.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js ***! + \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); // Headers whose duplicates are ignored by node // c.f. https://nodejs.org/api/http.html#http_message_headers @@ -1540,10 +1540,10 @@ module.exports = function parseHeaders(headers) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/spread.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/helpers/spread.js ***! - \**************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js": +/*!****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js ***! + \****************************************************************/ /***/ ((module) => { "use strict"; @@ -1578,16 +1578,16 @@ module.exports = function spread(callback) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/validator.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js": +/*!*******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js ***! + \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/axios/package.json"); +var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/_axios@0.21.4@axios/package.json"); var validators = {}; @@ -1694,16 +1694,16 @@ module.exports = { /***/ }), -/***/ "./node_modules/axios/lib/utils.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/utils.js ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/utils.js": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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"); +var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js"); // utils is a library of generic helper functions non-specific to axios @@ -2093,8 +2093,12 @@ $(document).on('click', '.open-file-manager', function (event) { }); if (typeof Vue != 'undefined') { - Vue.prototype.thumbnail = function thumbnail(image, width, height) { - // 判断 image 是否以 http 开头 + Vue.prototype.thumbnail = function thumbnail(image) { + if (!image) { + return 'image/placeholder.png'; + } // 判断 image 是否以 http 开头 + + if (image.indexOf('http') === 0) { return image; } @@ -2340,7 +2344,15 @@ __webpack_require__.r(__webpack_exports__); }, delay); }; }, - listDelete: function listDelete() {} + randomString: function randomString(length) { + var str = ''; + + for (; str.length < length; str += Math.random().toString(36).substr(2)) { + ; + } + + return str.substr(0, length); + } }); /***/ }), @@ -2358,7 +2370,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js"); +window.axios = __webpack_require__(/*! axios */ "./node_modules/_axios@0.21.4@axios/index.js"); var token = document.querySelector('meta[name="csrf-token"]').content; var base = document.querySelector('base').href; var instance = axios.create({ @@ -2567,10 +2579,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./node_modules/process/browser.js": -/*!*****************************************!*\ - !*** ./node_modules/process/browser.js ***! - \*****************************************/ +/***/ "./node_modules/_process@0.11.10@process/browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/_process@0.11.10@process/browser.js ***! + \**********************************************************/ /***/ ((module) => { // shim for using process in browser @@ -2761,14 +2773,14 @@ process.umask = function() { return 0; }; /***/ }), -/***/ "./node_modules/axios/package.json": -/*!*****************************************!*\ - !*** ./node_modules/axios/package.json ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/package.json": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/package.json ***! + \*******************************************************/ /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}'); +module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}],"__npminstall_done":true,"_from":"axios@0.21.4","_resolved":"https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz"}'); /***/ }) diff --git a/public/build/beike/shop/default/css/app.css b/public/build/beike/shop/default/css/app.css index 7029342a..93c073c8 100644 --- a/public/build/beike/shop/default/css/app.css +++ b/public/build/beike/shop/default/css/app.css @@ -500,33 +500,84 @@ header { body:not(.page-home) header { box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.04); } -header .dropdown:hover { - background-color: #fff; -} -header .dropdown:hover .dropdown-menu { - margin: 0; - display: block; - box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); - border: none; -} -header .dropdown:hover .dropdown-menu.dropdown-menu-end { - right: 0; -} header .top-wrap { height: 40px; background: #F7F8FA; display: flex; } -header .header-content .container { +header .top-wrap .dropdown:hover { + background-color: #fff; +} +header .top-wrap .dropdown:hover .dropdown-menu { + margin: 0; + display: block; + box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); + border: none; +} +header .top-wrap .dropdown:hover .dropdown-menu.dropdown-menu-end { + right: 0; +} +header .header-content { + position: relative; +} +header .header-content > .container { display: flex; align-items: center; justify-content: space-between; } -header .header-content .menu-wrap .nav-link { - color: #333; - font-size: 0.9rem; - padding-left: 1rem; - padding-right: 1rem; +header .header-content .menu-wrap .container { + max-width: 1140px; +} +@media (min-width: 1200px) { + header .header-content .menu-wrap .navbar-nav .dropdown:hover .dropdown-menu { + opacity: 1; + visibility: visible; + transform: translate(-50%); + } + header .header-content .menu-wrap .navbar-nav .dropdown > .dropdown-menu { + left: 50%; + transform: translate(-50%, 0.5rem); + transition: all 0.2s ease-in-out; + transition-property: visibility, transform, opacity; + visibility: hidden; + opacity: 0; + display: block; + transform-origin: top center; + } +} +header .header-content .menu-wrap > .navbar-nav > .nav-item > .nav-link { + font-size: 15px; + padding: 1rem; + position: relative; +} +header .header-content .menu-wrap > .navbar-nav > .nav-item > .nav-link .badge { + position: absolute; + bottom: 80%; + padding: 2px 4px; + font-weight: 400; + left: calc(50% - 0px); + margin-left: 0px; +} +header .header-content .menu-wrap > .navbar-nav > .nav-item > .nav-link .badge::before { + content: ""; + position: absolute; + top: 100%; + left: 10px; + border: 4px solid; + border-color: inherit; + border-right-color: rgba(0, 0, 0, 0) !important; + border-bottom-color: rgba(0, 0, 0, 0) !important; + border-right-width: 7px; + border-left-width: 0; +} +header .header-content .menu-wrap > .navbar-nav .group-name { + font-size: 15px; +} +header .header-content .menu-wrap > .navbar-nav .ul-children a { + color: #7a7a7a; +} +header .header-content .menu-wrap > .navbar-nav .ul-children a:hover { + color: #fd560f; } header .header-content .logo img { max-width: 180px; @@ -856,11 +907,6 @@ body.page-product .peoduct-info .rating-wrap .rating i { body.page-product .peoduct-info .price-wrap { margin-bottom: 2.4rem; } -body.page-product .peoduct-info .price-wrap .new-price { - margin-right: 0.6rem; - font-size: 1.6rem; - line-height: 1; -} body.page-product .peoduct-info .quantity-btns .quantity-input { max-width: 5rem; text-align: center; diff --git a/public/build/beike/shop/default/js/app.js b/public/build/beike/shop/default/js/app.js index 8d9390f4..6a097c50 100644 --- a/public/build/beike/shop/default/js/app.js +++ b/public/build/beike/shop/default/js/app.js @@ -1,33 +1,33 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ "./node_modules/axios/index.js": -/*!*************************************!*\ - !*** ./node_modules/axios/index.js ***! - \*************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/index.js": +/*!***************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/index.js ***! + \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js"); +module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/_axios@0.21.4@axios/lib/axios.js"); /***/ }), -/***/ "./node_modules/axios/lib/adapters/xhr.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/adapters/xhr.js ***! - \************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/adapters/xhr.js": +/*!**************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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 createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/_axios@0.21.4@axios/lib/core/settle.js"); +var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js"); +var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js"); +var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/_axios@0.21.4@axios/lib/core/buildFullPath.js"); +var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js"); +var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js"); +var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js"); module.exports = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve, reject) { @@ -211,20 +211,20 @@ module.exports = function xhrAdapter(config) { /***/ }), -/***/ "./node_modules/axios/lib/axios.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/axios.js ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/axios.js": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js"); +var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/_axios@0.21.4@axios/lib/core/Axios.js"); +var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js"); +var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Create an instance of Axios @@ -257,18 +257,18 @@ axios.create = function create(instanceConfig) { }; // Expose Cancel & CancelToken -axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.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.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js"); +axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js"); +axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js"); // 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"); +axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js"); // Expose isAxiosError -axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/axios/lib/helpers/isAxiosError.js"); +axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js"); module.exports = axios; @@ -278,10 +278,10 @@ module.exports["default"] = axios; /***/ }), -/***/ "./node_modules/axios/lib/cancel/Cancel.js": -/*!*************************************************!*\ - !*** ./node_modules/axios/lib/cancel/Cancel.js ***! - \*************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js": +/*!***************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js ***! + \***************************************************************/ /***/ ((module) => { "use strict"; @@ -308,16 +308,16 @@ module.exports = Cancel; /***/ }), -/***/ "./node_modules/axios/lib/cancel/CancelToken.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/CancelToken.js ***! + \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); +var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/Cancel.js"); /** * A `CancelToken` is an object that can be used to request cancellation of an operation. @@ -376,10 +376,10 @@ module.exports = CancelToken; /***/ }), -/***/ "./node_modules/axios/lib/cancel/isCancel.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js": +/*!*****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js ***! + \*****************************************************************/ /***/ ((module) => { "use strict"; @@ -392,21 +392,21 @@ module.exports = function isCancel(value) { /***/ }), -/***/ "./node_modules/axios/lib/core/Axios.js": -/*!**********************************************!*\ - !*** ./node_modules/axios/lib/core/Axios.js ***! - \**********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/Axios.js": +/*!************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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 validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js"); +var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js"); +var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/_axios@0.21.4@axios/lib/core/dispatchRequest.js"); +var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js"); +var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js"); var validators = validator.validators; /** @@ -551,16 +551,16 @@ module.exports = Axios; /***/ }), -/***/ "./node_modules/axios/lib/core/InterceptorManager.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js": +/*!*************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/InterceptorManager.js ***! + \*************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); function InterceptorManager() { this.handlers = []; @@ -616,17 +616,17 @@ module.exports = InterceptorManager; /***/ }), -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/buildFullPath.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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"); +var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js"); +var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js"); /** * Creates a new URL by combining the baseURL with the requestedURL, @@ -647,16 +647,16 @@ module.exports = function buildFullPath(baseURL, requestedURL) { /***/ }), -/***/ "./node_modules/axios/lib/core/createError.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/createError.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/createError.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); +var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js"); /** * Create an Error with the specified message, config, error code, request and response. @@ -676,19 +676,19 @@ module.exports = function createError(message, config, code, request, response) /***/ }), -/***/ "./node_modules/axios/lib/core/dispatchRequest.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/dispatchRequest.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/_axios@0.21.4@axios/lib/core/transformData.js"); +var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/_axios@0.21.4@axios/lib/cancel/isCancel.js"); +var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Throws a `Cancel` if cancellation has been requested. @@ -769,10 +769,10 @@ module.exports = function dispatchRequest(config) { /***/ }), -/***/ "./node_modules/axios/lib/core/enhanceError.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/core/enhanceError.js ***! - \*****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js": +/*!*******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js ***! + \*******************************************************************/ /***/ ((module) => { "use strict"; @@ -822,16 +822,16 @@ module.exports = function enhanceError(error, config, code, request, response) { /***/ }), -/***/ "./node_modules/axios/lib/core/mergeConfig.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/mergeConfig.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); /** * Config-specific merge-function which creates a new config-object @@ -920,16 +920,16 @@ module.exports = function mergeConfig(config1, config2) { /***/ }), -/***/ "./node_modules/axios/lib/core/settle.js": -/*!***********************************************!*\ - !*** ./node_modules/axios/lib/core/settle.js ***! - \***********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/settle.js": +/*!*************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/core/settle.js ***! + \*************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js"); +var createError = __webpack_require__(/*! ./createError */ "./node_modules/_axios@0.21.4@axios/lib/core/createError.js"); /** * Resolve or reject a Promise based on response status. @@ -956,17 +956,17 @@ module.exports = function settle(resolve, reject, response) { /***/ }), -/***/ "./node_modules/axios/lib/core/transformData.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/transformData.js ***! - \******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/core/transformData.js": +/*!********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/_axios@0.21.4@axios/lib/defaults.js"); /** * Transform the data for a request or a response @@ -989,19 +989,19 @@ module.exports = function transformData(data, headers, fns) { /***/ }), -/***/ "./node_modules/axios/lib/defaults.js": -/*!********************************************!*\ - !*** ./node_modules/axios/lib/defaults.js ***! - \********************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/defaults.js": +/*!**********************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/defaults.js ***! + \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js"); +/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/_process@0.11.10@process/browser.js"); -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 enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); +var utils = __webpack_require__(/*! ./utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); +var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js"); +var enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/_axios@0.21.4@axios/lib/core/enhanceError.js"); var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' @@ -1017,10 +1017,10 @@ 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"); + adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/_axios@0.21.4@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"); + adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/_axios@0.21.4@axios/lib/adapters/xhr.js"); } return adapter; } @@ -1135,10 +1135,10 @@ module.exports = defaults; /***/ }), -/***/ "./node_modules/axios/lib/helpers/bind.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/bind.js ***! - \************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js": +/*!**************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js ***! + \**************************************************************/ /***/ ((module) => { "use strict"; @@ -1157,16 +1157,16 @@ module.exports = function bind(fn, thisArg) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/buildURL.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js": +/*!******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/buildURL.js ***! + \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); function encode(val) { return encodeURIComponent(val). @@ -1238,10 +1238,10 @@ module.exports = function buildURL(url, params, paramsSerializer) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/combineURLs.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js": +/*!*********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/combineURLs.js ***! + \*********************************************************************/ /***/ ((module) => { "use strict"; @@ -1263,16 +1263,16 @@ module.exports = function combineURLs(baseURL, relativeURL) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/cookies.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js": +/*!*****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/cookies.js ***! + \*****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? @@ -1327,10 +1327,10 @@ module.exports = ( /***/ }), -/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js": +/*!***********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isAbsoluteURL.js ***! + \***********************************************************************/ /***/ ((module) => { "use strict"; @@ -1352,10 +1352,10 @@ module.exports = function isAbsoluteURL(url) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/isAxiosError.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isAxiosError.js ***! + \**********************************************************************/ /***/ ((module) => { "use strict"; @@ -1374,16 +1374,16 @@ module.exports = function isAxiosError(payload) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/isURLSameOrigin.js ***! + \*************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? @@ -1453,16 +1453,16 @@ module.exports = ( /***/ }), -/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": -/*!***************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! - \***************************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/normalizeHeaderName.js ***! + \*****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); module.exports = function normalizeHeaderName(headers, normalizedName) { utils.forEach(headers, function processHeader(value, name) { @@ -1476,16 +1476,16 @@ module.exports = function normalizeHeaderName(headers, normalizedName) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/parseHeaders.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js": +/*!**********************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/parseHeaders.js ***! + \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); +var utils = __webpack_require__(/*! ./../utils */ "./node_modules/_axios@0.21.4@axios/lib/utils.js"); // Headers whose duplicates are ignored by node // c.f. https://nodejs.org/api/http.html#http_message_headers @@ -1540,10 +1540,10 @@ module.exports = function parseHeaders(headers) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/spread.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/helpers/spread.js ***! - \**************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js": +/*!****************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/spread.js ***! + \****************************************************************/ /***/ ((module) => { "use strict"; @@ -1578,16 +1578,16 @@ module.exports = function spread(callback) { /***/ }), -/***/ "./node_modules/axios/lib/helpers/validator.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js": +/*!*******************************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/lib/helpers/validator.js ***! + \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/axios/package.json"); +var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/_axios@0.21.4@axios/package.json"); var validators = {}; @@ -1694,16 +1694,16 @@ module.exports = { /***/ }), -/***/ "./node_modules/axios/lib/utils.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/utils.js ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/lib/utils.js": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@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"); +var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/_axios@0.21.4@axios/lib/helpers/bind.js"); // utils is a library of generic helper functions non-specific to axios @@ -2153,7 +2153,7 @@ __webpack_require__.r(__webpack_exports__); }).then(function (res) { layer.msg(res.message); $btn.attr('data-in-wishlist', '0'); - })["finally"](function () { + })["finally"](function (e) { $btn.html(btnHtml).prop('disabled', false).find('i.bi').prop('class', 'bi bi-heart'); }); } else { @@ -2165,7 +2165,7 @@ __webpack_require__.r(__webpack_exports__); }).then(function (res) { layer.msg(res.message); $btn.attr('data-in-wishlist', res.data.id); - })["finally"](function () { + })["finally"](function (e) { $btn.html(btnHtml).prop('disabled', false).find('i.bi').prop('class', 'bi bi-heart-fill'); }); } @@ -2230,8 +2230,10 @@ $(function () { $('#offcanvas-search-top input').focus(); $('#offcanvas-search-top input').keydown(function (e) { if (e.keyCode == 13) { - console.log('enter'); - $('#offcanvas-search-top .btn-search').click(); + if ($(this).val() != '') { + location.href = 'products/search?keyword=' + $(this).val(); + } // $('#offcanvas-search-top .btn-search').click(); + } }); }); @@ -2282,7 +2284,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js"); +window.axios = __webpack_require__(/*! axios */ "./node_modules/_axios@0.21.4@axios/index.js"); var token = document.querySelector('meta[name="csrf-token"]').content; var base = document.querySelector('base').href; var instance = axios.create({ @@ -2413,10 +2415,10 @@ axios.defaults.baseURL = base; /***/ }), -/***/ "./node_modules/process/browser.js": -/*!*****************************************!*\ - !*** ./node_modules/process/browser.js ***! - \*****************************************/ +/***/ "./node_modules/_process@0.11.10@process/browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/_process@0.11.10@process/browser.js ***! + \**********************************************************/ /***/ ((module) => { // shim for using process in browser @@ -2607,14 +2609,14 @@ process.umask = function() { return 0; }; /***/ }), -/***/ "./node_modules/axios/package.json": -/*!*****************************************!*\ - !*** ./node_modules/axios/package.json ***! - \*****************************************/ +/***/ "./node_modules/_axios@0.21.4@axios/package.json": +/*!*******************************************************!*\ + !*** ./node_modules/_axios@0.21.4@axios/package.json ***! + \*******************************************************/ /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}'); +module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}],"__npminstall_done":true,"_from":"axios@0.21.4","_resolved":"https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz"}'); /***/ }) diff --git a/public/catalog/demo/banner/2.jpg b/public/catalog/demo/banner/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b2ded69f961ff8d90780de13e1ed0280b7b8aab4 GIT binary patch literal 33923 zcmb5VV{~Rs&^CIGgo1&BgoK8JhJpQ0zBPC_Sor@w{_Es_n}R}sfkD7RK|=jcmH%JGS1$ks8YBjU z4GaVY0Ez+vh63`{55WKS6Aa=%cmI!o0KNwS|8@o%_S=s8Z36qx`~PG9t`7u=(hWu^2PzND`92S(UQ=zO$LDA3iSCx<;OgGmJeH-VWc;MNaII)SI>8A27 z9J+g(uMydt1(*{#L{}$wY%W&s$vs&z?w#2FDNO_cp^kBZpyc>n@(a+tT=RNO=zc$G2offH{E}O zY+v~R)y_s=0O9xeo=o=LWLaB}e3C_DeGFoAlF=7N1r*jMcErWIr98)EXm>WBqY?>W z<%B5%9Es!5zP`mGcy~%0;X)GR-`=JEF1pe_u3gRXrE_yg)7}&}x-xcIR>8kpd3U{( z#&jp(MYwM6^_kg~n+vFur{#H9kfkD)Eev|d4oM<<7((J;4qt3aZ03ZsictUARqz>{ z=exEuo^v^p)0ZZGBpBM5{vc!3_!ftk5p~fy&yx!u zNWC}CMVnS;C6!Wfor`2Z?!hF6rh>t8&~)^5)o#U~Bgbjus|>;rM38|rsK^3@5Ong) zUjV+3Fn)xBi|QcmR%h|%JG{~-FSuV?a!^h(R=+6KCMC6A(nTvA6lu!YFeB{i*DNWg zM>X5oLjKG^{}G6ZE5SjA;qc~Lk9fA3>y$lzX*(KuB_MReSL^!NNKY@Te zLY)YTP^0XV3@{A>W@KYO@I^hoZ%Mr2ONP7Lg;y{0u3KqMU`D|{Oj5(+;fm2FuhLYb zENCehSt$AI>nVgUW^4YO^0@sl~zh3ct4ucnj&Yk7u_o2eSB$^*f@gJ>|r+F zE|!C9j=qv338lOa9OU7GQ?kLz%0|#F z%l!g8S2g&KdspA-Du0Nxil2RB^;EKoKw2~p0gKAh#9oUpJVBE@U~MYcNvB^WCV1fr z-+Fo!JZ3Zm_UG!*jg_88d*VX$G7)x!!0g{cwTzRB4pmTk-#MMJlk5Kbqr1QbOHww{ z#xp#%Ukue&H|>hx4twG#T-cd;5$lV5#T>Vae~#Gzgo*gFyRCm~CP_~(p=;10_bXVJ>g5m!3g^N};zTQy=4F_Zr{cA- z4>pTq050?wfV+$yPL0sfkX2j90vi4ZyRzoelicw)wF3%@mIb~id+=`#Nay+Ww!5{( zzVWQ1^asYk(qXzF=rWI+$2BF&(A*iD(n+2TQX+*ojPc$X4_>w(vhGwXHYyi0jRK0# zRZby=M;BU-lB=~UT?vPC7H3(phnsuY2T1cTYhcaE$Mm?3bSkB$as4+oo;(JPgk)CK zx@Gu0!=NCr%65y)Q>%mV&JKk(aFLkk`YoHVO$`N`GG~>PjdvMt@deji9#y*LCw#$E z#q&2#{4{P8kuh;WRT$>$8LRK7i!BFv1NI$|@t(2vjL>BFM z=)t6QdW{zvQuEQU(8@SX{`_{pvl#U{Z*{)3_r%5*gEZo#;y{KD2JO;B8Cg(Z-cXl77oo*{I!^9jrHx77pRF4`&R0aB#j`M? z=u;ysP{Tr6dAB$3ue$tNw>JR|ifl~7$(7$~{ijK3L?TCQ0ar_@pv!o*EH9{Q@}@E4 zPU=NES&qSCa5I}73+-6x<>u*`8!l8wd zkP?(QUx^i3XoK3n%V;FlGP-GBA3~sZ@KBd{QKV+BC=fHxXdJK?^mKGt3m#qe$rGjs zjT*Cy=3ko7$c>vC)0|jk0RR;00L$WuBiNFcelGT@-V7B7(|KOf=X8|L{JaN1_aOX0 z%WTt%!Nc&8Utq_O850Wo<+$3Yn!z=+IF6w_rmhrPsGie4L!hN8qBGvJP;S@NK4@Aw zHf0e%*j3Cv_i1;6vjK`wTBm3Uk#OhQ^=fO-#3;&F+H$Hwjn2YMo~}O5Qa>t^4z4AX z5vcl*PI|GUp}x9`(=Z0=S^T!uJj6i$YOvMnT1``^Z0X0Z|!p2Zve1V+L z6oYU?agm3Yu`&H;KN}TgZ>o{juiqP5j@tdAip#V2`m19}EXGYc(Q_|+9}OSKcgIDg zAb(;&a&T1m+}a%PHtt?CkH*1~RTPd^hqBepWeWv7F#Nz+D<;Sih*Z#b|CsjMwXrri zT{q_jQ+0mQ_0D!?^v6L~Ay1R$3jm|rb+g^Y=d<}Jgw0jbJaG3|X33iL8wF5m3YBtT zWl=SoSTn8WP~sIF*0MXkBeFfd^S9)C0@BN|g>nd?aU2i?9I*7&lMzpc*Nh<+BKRQQ zp)TGrcTMRFR#4?1Ag!Z1A@)|e7$UAd2Oe0IN6CX;nI&z&I{w^G-E$=2piJYGnS2o? z5E-$Y2D_#HSNR-o=R<%Hh@cD`*%X|Hs=n{h3km=EK9D+ z%_I8s2mYq9>*H32^U}t4HKR-s!=D*{5f<{KPpEr-Q?J06-V#A|!!lLaKq*<@&?14o z0(R1!+Y{tgjgW{@LgUpnnAwcZ-(oLFvkz09x4*oO#*TCnFQ!Tdk~Asd0iZm<;4#T} z?^QSN^G`g0K+cH7XeJ~K5xhodk(TNo*M^}NRwG&i1dXwovew5^j_0H7`F{5f50ktZ zD(j8%neW*`Xzo%T!Xh0}u29C$fa-Z_cAkFUF8TMpeHN@xKr=e!maE_>QKH9U1m?Cj z4skpT+Rc(nJ=6Y}IAmFJG*l~+>CWY%JVvZ&f=rxbEwnGyE>TU2x#jlcJ#!rf3L(Rg z(#V3(lEyZo3n2#(K?@;ACru&EEz8`&PU_}8YJjiVKkS`#ZMw&ms+U=G@v;}2Z~_8Q z$^&L8lMYfTA}8}$ZVr@aSQzW0aq*CV@;YdKe4-xw(x#OeshUPg#1ZM*ZB}RYGBVnU zVY9t2SIy1;LIgq8+hHME4b|hJH_d_KKUdgm3nL$0C64WO?urhVQ2za53fw)`Nikid}gAHoJQG3rysf~ScR1=gC&0_{oyh|mL6kU@!lE|29?&ZeUG?-$Gw zp}6QI4n_Y&wMxTjll%^t;X&*pQW3uAD3T%pPH{O8b$f2ctW-ByRKHcbghL32Au=&RbE$$%r5IEIizt(CeAx^sQ90l{ikblc1z3c| z(8B~FqC!;J;wnH()(yue06l?dRL1i;blZfa(859t!~g*nFeza%Xaxm#*f8{<7%|0( z5_Kv)nF8-`2&aJj4e>z1z#!qk{==BxVC@^Vfq|nypb|l%F(RWAGYKj{5ds;66!q+U zV{1%#FK4eax3dq`N6{o-aYNm<$BcdoJ6L{$D5I?mmE13&0*JP5)M_WpCr;|t*C zjS&U+PiVOXoSRkdYVt7oP<2TWr{m|^txc=a@5PHYi*x%dI3Pz3x61vJ-w{fKotPxa zHk$rJSP76^RLpt~ezkVvPX~d3*`p#Rnm0Ak$5p@NlHFtR-$pGJ&TyoZp&{bl(w8C( zSt)*Uxt@D1Eyi#N2avZR-)ohmOSlnz8Pvl2d4vrf|A1H~nP1Vl~ z?_KOq((NO>$VQ}p`za{&atNMuGtageZ<`yZ!q(9?=Brp&dLEvSu#3k}w5<~pIhQ9? zS+)CC=e~Gl;)8lX_6czX*@eg@-U&sOh1wTjpYD}6_)hp#(L=2}PHv7T_Xe*>kX*Dm z%e;g6=^vl4pvp#;NC#cCzBJ)>p}w>20aN1sleYMJjz@PM^Od8bLXZ3TAm;{0eY0BU z3CpUPrM>#axm}Jwg`Oml)>nK6WkYQK$ie8*CN;1ehZP=LOR15mXxtM?Pz`enk{ZE# zj*-RXxhGPKTo>-Ve{xoJ@{CC7rqx7c$IFf^oZ-!;(0;nnb(;?`nkVg{r(oh*op-6` z_Uk%-2O`Wl`>T=pKOlHy{L;Nul*lfV0B%F?iE_XlG-&?|%~Kw(JWTjGLHTrU@wzkg zRe^~(uh|_=oqgfmO(YxhqV!%B6_&pW8E7;Sh*+DC6(%^VA$DavP_R~ruWs76T(sW$%`SM=Rjx9dq;vCzIcgHDjjDeF#~8wE{FlzkF$pG2p}K-?2Og zdpKzhS(ZyS`)dpK*F3kMPnOIZSw}8!z%PKS-520fiQiXU?X7>nIm5MryL+XnTZIR{ z+LbWxn* z_#mv)-ya}atRcIo3u=E_Dus>Hf{Y`tjkV8h+pW15IX`b0te%t{*yLA7l~dUbM=YC8 zbo5fc0Ox*1?_93DD~s?vL=Ie9{Lt&xD=*_K-V;{*t6L`gv#@6MZM1D?3jV zW(DvJXyv5eF|0VkULZTO?zK!PrtKlw?F55os2=5`DBUh#Ztm?@wpd&9yEg((T`uxj z9%&=`2a%%cu5OuMD7|A}s_^NkAG=xj_3o@b?vFI;w6<#^(5$b=74y1X1MuCMb$-#) zB|WIJ`|NI64mGrM@*tF2a+l_noQ_WUt&Bq<=U0{v*{z1`SC-XqXBAlD`JI{Cwslyf z@AT2LFdbI5E==GAy-N*UM~Jzt%9ucUXz#`|Y)mY~M(wg_aR)5@>Z(Q=FpOAGoyZbI zQt^RfaaWx?KOQmg|*0ElVF~{4Gk`+Te;ltZma%36xn+ro~>lfg(>z1p;6|>)cAvJfKS7+A zYI9FL=^FEtbCJGmvz6)1`!`Ctuq>)Ajcd8Bo`J{18xoUR3zs~)xSR?y z8-se4kzsCi2qHMBPgX&}O8X7TZ!qIUFHY!Yrtzbh`j1}11;AZgG+}DeOFQKPf!7Oz znF`n?hBYXTtg^mj*xkyTCzrB!0%3iSfX_u%yH|ElZO&6Pd|FVS>>r_(_2;UOlutGG z3&4g?;NMRT0fC6;`>+G{Q8wqniqHP z@5qT$S($lRnOYs@dh5S~=AUiVPh7XR)RL^E(kDiLAj#Fw z9s~zIh!&wa@Sw$*{cKfeN-tkcpt;~7f zDmT!UWHE>rq3r$D5|-7)JS|PGZ2^WTDfEa(&MMA^vvER=pQa6pF%98r()Z-8`z zG+aCWz<{qzV4oihC- z&y+d_GxNn!OBgXDmsd)i zxk=H%H|m~Br3GWaHpEv9N7~`*4DOhD4Zc0U#8x-iop&t1an;nKYJ~Cx{Udr1P0;`k^#?LgEA*+Aj+I1xRyBOGAHruq< zIwrg##d=m?)gBp=PhNRO+MuQ8hRGyVH=5cJ!;4t1kXa|;^Fbu2hU&&V9j4admNN zU5WQ9u}4vYCJ>FdyedAE|6bT*x-X4B#aEjnOw`}eObjE((0t^I5|7k$pr2&l8sqq- zqf@!axMaGtXukl0Cg$MyhzI?L>w35Rjju>y9(2wo5W#Z}Qa?)H(yP1sT_>2M8zrC2 z12&`hSJZcG|D8#5+^MbYr}SW;@#dWzNL>z;?q>eUx}7n;;lc8&plxVjS&p@l%G1vI z4EH|r(uHwRu{`%j_kD_DY)|Z}wv+98U)d%7P^^(wx|n$G}I^mwIfBJq=MW+;T3S>A>^N;TOTd}dWesiCg#Z*KH@nLgU= z7+4D*Is0+hIz+w=WYfr{M!Q1%a;V+8Z0Lr6fg>Djjxk1%(oXDk5aCv|4fXQKkK=+r z4%#$_SqsfSF!6lnMO!_h414-Thn#P;Cw(WTQYX4A(%}sxPKO3c=i@resL>q@a3>$L zol`I5_VI!7;qCDUN$ifl58svl-nq#kJ_Wo^?28t0yN8+CxK;iQ>*Ze=fBphsM62A< z;N&@FCCOAgWuo7*wCwLVeqvs!nrf1Bx4Q7INKzFUPw&#)(kvzh&pB6K-gpr1#4jia zhbXap0mMlplNWeP=ZiF$WjUQY$Yy$3ZC{F~oQ*=;z<0I|tuy?77IKs#*{6q@LJ35d zp=nA?KAElOaaPQ7l#p(SCs9MbHfc!v-(V4XtlC}nv zw|`uqOsEAYBR*N*A>}!5qO4u0skz)+cMuGzPbB&*di`p>VP7yY3EQkudC^j#P7zaL zzFphQT9WQRPQ_@U3f2;PDYg?%AkN6nk>hNkD>*Kz<(80&x&Rr;)S@?9w7^3vVmw6% z8z{MMJCXfO4*8ZlYZf>0R8cG8h=Vqx#aYjE0ZBoT7eB(TnaZpB1xS^(_%S`aX565W z@xR**EpuYaQv3Hf{mIjt>XATGkrWua1=#Oe!JjO)*M9oNg`Y*|F0j+qG?-_ z%+w=obwWK%I$7#JlkqZ_Y?AZP4()5uo@>pYpdr70i6+>&xBtGp+e74{v77GxQJR*a z5tX_4QhZH0Nm;<+nrwFvoq3lUF=>31--57r(M>4#J&sSS?9b@as(Q?at9bfGQ_zy6 zKBbXnR=UHRe^XLcUSOXVM$CA{eQQ8#&NUCGV?k;(-}%M|mg@J6%TLOqiSF1gV65UP zO&V(*9y-EYqxtp#N~3I|tbiX+XX&J4pf!o5u_PS;Yr3*FwR&Ix$e|>j@HsPI4Tb*m z$_$q~SS*Q|e8}gM&%hcu(!j*wW>@opA|5t3-X3G`bj!<$K6qc%Hd&*hyqwT@Kc}cK zgyWL=LHsj$GwR@lJ7Lce=h9Z8NGjfJ~K2CBzezgNb zaTRuTcaz@I;Q1vQno$ci$mTcFwo>e!+}@r(xjmi{phJS(%%0oE~xPP;E)P@9_O=9)n3 zTkvHWm{Ytwf+-+lIcQ~eLlE;BK3{G7?TupTr#w>Rwzk4bf-4Z%I~b+O#kVAeE;x)! zx#jlEW^`S`8BlahubN9pw2P!}U0Rn%bs5MZ;y6{92ka~-%CA7>VEFcbZ>K`to<5>NwF5?YVqKZvAz|5RTB{mDJ#`e)Esg zaub!=jI5o!ydqC4Wk)->HZw4&0X8y$9yrJdQ`2W^`xOm!YHDh#G%p8fTJ|F#tztvt zqc_R`hsy!?5Fg=Om^0DoX_0!SKz?7D`P7dcPS0apIC?1b^o!yk{k6;Gr?-Z?Kg%0d z80@SAr+UDE1KlBt=j0n7)i!sZ8H*8x{G|1T9}F%h8iTG~kqe-nD%)xBbE*s3qLF`| zU#6hZdwDbxfwwi$MOk{2kL9;!hf*~fLP@G31*B8sO>NNSGXe4{|1r^L;I2j98PL%kq#U&`b6^WH5ntR$r+oI=JYd+kAMT7s zynk)-8&Vnvx+KOK*`6h3zru3vmYQ%ByEqV(5b6A{=q8>02<*7yZ5zjT>TBi7Y;Jdy z3zIvj4%t`k(`tF2Z=4yvw83rQqD&IH^`(Kxu=N*p$}hQ+m| z1{X4@{7tdE7@-wx{+r0o#=o#r?>?*^K%&oV>@C7C7O*|N#^MpbmSW^UhY|ToSJ%gA zKF+7JN2@o)*xB26GfMRs&QCp+S5-aAqb-L<%TcraedJR*4bdKdXR_aH?`8R(bg4U$ z9k(&|((Lh{%Do@S{e1v+75A5>z=)y!ono5jrjYzCWJmXn+}l@H>eWd%bzJ;dNV}Zj zUB9SGa?M`_u$RNY=@}dG1vtRqzy8@ZFj)OLT=oUrOU~xo{3n z;wQQ4X7Pawf@G%}K&F%CY`ObAe+IC5GXqs%IxxX@Jpw`@_<_3+d$W!K^UL4*kaW7}D zctkH{ae9}vvX5`hLp)1nV!t60X>@tdw%xl!?Nv=dwC;LwetwRtPT? z=+M&VfMT$61Y7V~x2bJ|)@yn)K}OAJVgBRr1TE8U?H`qgSCFP98hk(b-;#fEm2aU) zl9BaLh#y{XX5|!&YI;fo5IQ1cMM9!L5~R0g#4(goIH<6yq_)tQ?L*ieTDe=U(o8eF z*d!e{K;xe!2EB4kTPO4hI zTQQ4u8#9fnf0jFz9bKGx3(9e>V_@t z589*6|CMA1|4DH1$TT%e8FKG))$&znuauc*bBegOSi7{xWttKzlaCQLj?P#2q7gPO z_*{7lZKvBCLU!&YEMaqsin4Y{y_Mj=%7p5HET?uoqoz_g7>d*z9QJVp4q5TnGJ!Au z3WZ)&#;K@$hNGCgc&TXJI{hrq{H#80J^EI%KFd#ApH92Vv%S8RFTkm{t7o1!^rOv|t_8vQR#(?N|4O$j8#=LIIMwKPpYGJuH04yo%@$707R28_ zz5qr4<+CY~0id8Dpx}_-yrln^l>~x9#3-nM{GGohWQfhJ?U~uR7Wlt;YNl()9ei^g z2*zl;nmfgQPUFijz^t%^>|98;-(DMJF@>V(VPF~CFtt9|l6J&6FXhvSZZ53uN7y0# z8mF|Dcdp^WJgO{yf0-9REb`$!C9Y>RYL|}(nU-oacMI$oR}~#UE{j~|-#Ouh8r|%Z z%HwUrU6j#8ZO9mHWTB0%r!Ub=d#AE|rN26R21-xZH%&#_RD0xNfr~fbt+>o)K4Axo z(^cH=2vaNmqo*I3!Tv+FF zglv3J{|sX@FS^y>=T1+HMdXA>BCndlpn}d{rb1^%z6I4V6kdAmFd@l`9kLNOd0n5B zvRwGv4aW!%w0I%P0xfpmxI3g1-g9%c>)1e(^g3%KCtpvu#eo3KVKEEqEJ1pPk>8Vf zCxZ)0B32I4swE$9NX-tUo3y=Tyh^uFRx_%vU?wf+d(Y&T$M^$&(}@@3k_TQiG{l-t zPx{~~8U_1`V^H0Q{C?P)D=U$Pb?S?^Ui&NTw`Ywo1{sCp&GBi`i};|0*}fF+n-OE$ z@e`8Qvb=?(0|}1d4QnU9urqG74{-VRc}f(ZY6>k8bt^ls;VuUqTav6lo9U(;5J|CR zTAD9BQs#`)hJs@W%Gifra(x3?EFa>G!CN;Ion-kdt0=V+k5kv=Fbm=M@FEP zE!U(_<3<*si$kdjt+yKq z1szX(ApEU=0+K&`4E;rVkL=@(sbepx3L>^~i}?%}O8NrS;7DqD8eg)Xr9DKwykbJi za!1|w;&r#a!q1TUt_|mQ?OO8F#cIj28@*B8e*r*$gC9mPu{zgC?+r~mw&+m(5k@Rh zf36@@45n?c>t1P$YG!rXkJ6Q>&&+0FJ zcZH_)t_KNJbDx?{c*lRQ#fb}JW9V)m;~tjud)nScisCgDZPNIF#Ub)OC5IN`Stl3X zXUp;vY$^zh^JU<$fM1QEE9^A#j*L-!y$dd>WHmT)m>i_NPo*_mH%rxQH1wW7R7=1r zN4Jqb87kiiajrkjalJTX2T^{@n2>>H6S+X2F_nWp~_(7i~GK_TpeRA^!_<2&@ zOYp!YG5Z#9s3;O-kB13GryXao?_;a@yRo+_Qp#@iuq}_^XziZ7$B#g-Ikzbiq`e-- zms6Y>VuC&;S;q)v|ok11R`b>Bh%X+@|49rm>Z!YZqaE ziVJTNi2ntM{|raID4F+jB&~>dQNN;68rQnn$ISY;AxL<48(G-0KEmH4PFq8LZvSkd z4GKwrHM_CcRn&=0U`fCgap6MF&1kaFduWm2<-{i56VaKnlLTiNl?D^7(H{JjI_GvS z4U)OIS-3Md?p42vo~{2_3G(ZNLWkq;!q38&09)6iFTkG?w9LF8w~~=N_I(pjok-gVB^RO>HoWPpV>!)=&I{Q=3Ra<-6q>|XkeBqO=ZMb5L*P-@ z!F3&e=HS-ib)om{^D#FIjwfACQbX* zbk+uJZTXPlcxA$2=n^Nf`>-CQT>Yoo%6+-`oS$~dW0X$9KZcz_0hi%%Gl#HPfE?el zG)FW8!}0<@@T$Afk}}fG=rH5r8SGY3%dqDJDW`oZS%`os=H{vz>n~Q@-)5hNOJbOQ z;!Dn!%K@DzJr~hhGI`BNY{~BUV$c;d_|irOUQnI4-C)&no-8J9tZja}`Qb;L=Tx|4*{c6#O%hQSG6A z*t4ZJgKt9R_JN;$wFXAqVNBiHf>p0Q$!LuFWXj4 zr)alQm?-Iv2g7t{p@5%;xf`pDV%dYRNI^5q9;wT36foEzd4(WU;ghPMif9eh{*bdi z?J5xi-XVR6HPl&&xMj>QK$TT5aZBq`iE$TYW8wrl4MCd!QyjB7OO4Leh)c~yItlT} zsrkZN|0p*6dcr7#tW7#ePX!9L=`YbnB0-NpP9dob$%KizH0e7CnM{E@Ws3D&OA`9%=$l6&^BI_RTtHQsN-qu=u`>a60i@$NZ*{Yfi ztShvsi3S^O6OBz3<9*el^oje9Zx8%HT(Pzn6c6-)9)(|jNH30=fgNJ8(46{V)cJUC z$m}CHsZ5y8@ftr*m8|J+$9NFOQ}3;@>TZdQ((NU6!9*gO$%kcIan$Q1dB}oCW$FmW z?2oy*aB@!b$;K7;LprU{5PRd$H^ZLVkHwWc9W-N_iBLIRA(syBy8AP-@~wG+x^4j*7sh_ zC~{dHn+XbC+?+;OoWJ zOU;x-4aLpRCyi53ms#eGh+Jp|?w7`le+ulu4!L&T&846VUP(hx< z5?F%P=Au^JLngUx?lDy8+TqjRYL%088L)RtMh@I|9MM2eY9V@k@f%%;hcgKw$Pn-r z7v^tB**v>7zF=TaZKe{pg+@JIFy?0CxGvrmB*{dSAO9C`$@d$N zW`Ft#sIKPnxWcDjOa7~*TGO&Z*hVDc;0pRkD6;zU*zgO0C1{Uw&pQ~7f5n74S3dax zzVb70Xu9&=n2CrNoDMOWl$;dbF#775u0x9T5^b z#NYkT%sW}|j9jnpcG+bV64J(+hkmt$oNWZE1HVZm@{90_^|cFm(f?Ji5{@smj9)vJ z4z+R`g5(pBeC#{6mQaay@Qnr^p*FRUjs%5irzy4$VQqLs&yxyEc?Ns=vWR4gUvvuz z{}Un<$PSd;4Lj} zv+fKuMM0GPLQeB5^p^~Ngn7F$I!~~rxchaw>s{+j_6@pE zImGr`LlMq?+D`CIUw}WDy8x z;{oG@5AxpH&VG2t>5k4Ve|hDvKJ~Vl{`>;uWWRs>jFk|YmLLv8*}jx!x!d+dWTs(R zj_PMaXW0>@50l&hZg&qqi)RAw8g{%yT+hEDBE|neL@;pB|9f@ie<7kC@_!VkZ-98c zb3@4R|1p_}!g^ZA9nYy11a5`!cqDN#iP9vGgn6l%R9S6$-upwt-G+$^KA^zxGhkNU zaghasZA?qI9AbI=PsMgCNRw{ zRold&j-ZN46O{vnuf-}v*mL0=vSMqo{D}T;ONc<$vR~K6rWyT^Ek)>${pd<-E@&%g+#aUaL_n-iPj$H`Kmcd zp$QjdcRE%<4cFL)=~Q=<(Oy&<+EJstUgP8GK3Ov%mOz9#DIMn!UrBBqL%pK&Hkq=B zQ&xnsO1(jQPGtSiJ0E>1)E<_e3X}#Ra9k~GNDorZi9%0pKTw+4iV9fYdba8)IblyW$ZDl(8xC zm1nQ;8}UgD>r9R!m_Wf>)K}8sD0s{$^|Wt-r?jV59s~VLJ!=y0N)VSI zRey%|n9_l+AW5*! z_&z-d-A+dr5JI0DNb{1?EO37IxcBlnngvOUSj$ zPVvz6s5dmInWT*`fU%pmt`z<68j?jOSEA&^1#^2rqohf3(oUGgdZA?a+D{3SU8j3h zLdRzln5|I4Z0Z`6>X9Glo12P8cmsCOtDb;1kC;s#KLkTrm{q9Oprl8UR400WN-7PO zxZ??d$LZAmT_y*=`pw-)aB9l^`DuS9m49RN>%PbmV#7MG^o9iRgMH3^YQgXloda#_ z2nm@L3f20@(tDwS=Z)T8UFqmD|F&0kHG8^&K@GR;`Wuh5tKe%n|fd$a^3t62p+yvezmWMi1Fq3wVslKYT`xy$|keMnvl{^Rudk| z{0VfGxq+^MV+%9>WSQjQcKDNfbHy~zu#6%cc2WbrKE)BZt#cE}b6i*aV%0y}57e0A z+Fs`n({mdFM`d!4spr$xWSQ(gO@Z(sQ@cNbYGcQ*8p@>-3kJ*Y1%gOWE35 z8`d1kepVG_*cF#sMFgdK82TAq&F(=whLA>uY=*k{dLmepzDR`Zn_X6qz@^AAa8@JB z(g?;+XP{Jt$m$JWWP-HBneHaKU!4u|w<<&>#dgF4{YNn3@zkabz@75%8*-i_4oReU_a}9EpRIfd}>-Hr?w;Dq!#av3bA;j)Fi`*{u<>* zW%1vf{Td(2brLd*-^!Fkq^q~|;CtnWxY|xmGTL7<=rJ(UY)BcJ4hRVPCzij8PPc;X zjL`RUgiD_6fXM`*|8Qh&qralK#ktNie5(yQ?^mBMFNdRiHN|ep+CD$G$HQB&9G9A0 zAG%>w=A;b$JIzryWIuJo7r>NRJdfvHB2qwuhZ37ia<$NNx%0Wo--X7q=LX(FG7dhD z-Irh2EPT?V9fI3LhZ!%8Y3#Q%>VDS5n9?oV=&~lUOTY1t*`&MxByK#HwMz3flseKx zQ^!Q6%eLb$z)er#rT(Ne-75thG!-d%-J07Q<;9*LuV?nKZfE>{;v7adVL#!{$qgjK ziXl$&o^pJTYOjR*JMt|{xa%R&pa|a}gHqJ?qM0zZRWV}dvEZ+@C{Q8W%z$i$mcnz| z8qs7h%#H-s1d6KN?N*N0NZE~e-Kv=2K{pNPJ%}v1!JqGrFUQrk5e<`;8eRzfSI6A&p{k9+e#SUMFqZ^AHbaKW z6u08M2u~4CG$Wv>sebR=aYa=*HNxtO{&agCi@Qlmig_DRak~tNS}4BedwB|T|4Mq6 zrHlQII1aXTbxFSfNVO@|lYPC>KXn?msN0rLU}KuPESvvZ zLN`d%3tozgI*}h5l}Ym1xf!BT{Fr;VnY1AlNe8G0TNJAA-jaXj6M<}fbGc_={qnFQ z0UTJG?lk8O*)7$TX3Y|r6)Zz1lt?|T%r9Egt!w%-N;DEU(5kS2f)LU!8RhJYF97-* z9%M~+_&j3u{ZW(3ek10Qe!kH|o`K;(^(+J}G z-<%}9J!`0(ss9N0ahpAf>1ZL}c`#5iN=0dW&{DpMZZcMQ7+vR}7Mrdm6OxQetamST zi+_z9HlXEqe^JL32_FH`hd9x-#)b)he{5O0eDbkpj+7>Ccvw)R3tE5NG)aNHZ;@Jv z`NX8jGUe?KC_4rNpS@12i7Y}Jp4u{L~U(yi-bSa}K;t;m0 zG5D+vD1p7rOxVd^;=>b8dvmNOQnBHvu{?1NMWSIF0F3tgps(JU%pp0S%oNy6Zj32Fu{VC+| z3MVhD+p+Zdd0t@(#O^`bZX3=aBNC!@2j_vgEEflOqr^F_m)R-rh?Z}b%f?SEE9ABp zlaGe2a!x{I1)`p5W!Kf0U9#y`M^}|DtgzPwS|OXGBFY1jEps@qGh#j+hN2-M905b3 znDKLXQSedHekKK%yAxpX4p}WFbKIcMLV)Ttr#M# z`|F0AQ;9+J+MN8|b}Z8^-Kcl~1=oLa{Us zUg+&MjCdhTKRxnvhSk_TX_oi+C(Hb55-I2TiAQ!|y*{OoqE$DkqHR%tUN1S3Sp^eFi?74~lbux_t@2`jad2L3AAZ&^~;$22VpsR)!@9hJZR z-}g!-8TGmpIwHzwpzCIGd{a|Ur?(}hH7|_}3PF`&==y&nuYv<%af~lfT!eHcLgA6H zU5S;n<18YX_*n6UB^B$1|K95#i58s|5b-4jg}BhvWT4KV99R~3{Pf1d!e6;0oeIf@ z$R^qkT<#-7I^&$SP)_A`6QfTMk*qUQ#n2#ztlE1#mVso&SFT%0M;0d&M2T$Y3j2 zd3X(Z5i0~X)W*?j%w$DZJPBZ>qd~4v=EF@MaNUZQ^K1@ioG}?=m`lWw!*z}nAlm9T zFiCowCuRIclN1*X)=4QyNg07rIFD`UvH66n$9 zX>1}&B2re$Aqn>fRnXi7qjGH0jEjM`>R6Z~b&uzP5~y0CPI9W+O3+xK&9- z%#ySsY~0X+qR0V?*>9jEUa?iZ^TKjFT<;fsAiDO)kKCb|ry}|)%NO*XdPyRJ z?Y&BC(cZGMQ}YRVs5Bu7igg!qH(e%1GaCdGEE%d4$ z%)g*FvN#-?DakA3NoG0hN{J}M&is_e+d@irbY?{ZYzgXzO!p@2KH(Sumrv_ zFGfo31+x@zkec728-?UEj0CgQxfxZtbctne@Mw7r*BE1N2)5nO$R-;?72rzF%_d*a z*9lSbW0lFBbr!>0wkYql4YnS=;pN1i*0~v@M=!}hizcI{l&-rBS_PZ#K;gMt$@-a3 zdkMI?;GIzTWO!dhD<4ABUqX&!=;8V}1V;6G5>LRm;7ps5Y{`M&$d2voM$`xuVx&G> zRVycwM&n*VF}xKvCN#8ClY~WA%>MwZKO&cyH#WQ{B5kURO20>E(5_L~jp69y`Z)fL zP|y}K`UohlP1}OU7$E)8P&u|CznZn3`~j-U zW9<7t)BY4Mslxmfu`3;2Gvsm*Hp3k6L{D;$FZm$5i&xB!SS9R23DnL8#tx+k5;3Nx zO=3=iR3M1vZY5f;(B*8c((MWQNN#z2g;iMGK)ff}j~Cp?w4KJp&r&;>Wa7_pKBVZ& zIccqg95q6GXx*H_ri});0vy*%R zkL;O&>=iqIMp-EpDV>N0`aQh}%c?kJGK?u(Ps!lJZbrFe;VjZvA=8w*eMSmVZAQEL zJB$Q(6!kfm8)Q@??=cy2Z?3k)o34p&E|x)go|}&52X4klPUvyq)7UXfdKRI_Vi9d2 z-W0JbPq4d@-UD(=OL#LLittaPW@QaShx9I!jPo@LJKEkPy{(hMk|$V)Bwx7v6tGPr zbIdkc^e$Mpej4tgjP$OyOH5UyHzxAM{{ROC)t@Pgkwzqq{2h+QWqJHK@0Kfnp&U6v=TgG8W=w^nWh2GejeohA}$dA*(0JYk+kN7Ma_rgn!g!p)TQ^JwS|+=>3mNx z$lB3$lr{t-k86<-KY|qsDq5`?GSiw0KRg=eex)M+04c=A8}Pd}h8Vthpdb^(h17j<-xmm~^4`Wym0grd`fdoigrEk$=dGC>HER&4Zt zqGkU8ru7*`Xmg&mORRt6U+@zu1#d2%$8;!qDyH9J2}ZpYY0?ROjP~n9P>qQMr^~60 z89(pzPx<`~*YWs2r}!E_zrhKb`hZ0mPqb9tr=Dq!s9Q+OWFk$(qW#f&7Pa^}4}0Lp zM+T3Rc4Shl@^)tirI^7IL`)rm!5t_-_@Y!xlrzv*h$TWz1fc>JAV`5CYKaMQN*t{0 zH|}6IE)mFu(?bkg9nDyj4{0dmg}A43HHQZhN@R?*i&Y5`c_rY8StOl>{RS(h2~jiB zX3`%4yNStXb0UamB5{(pG%QYw{TjL!qO;KCSt2?$7$U}}p~mGa>EKi>o1?JGwsw6u z8oUU9|HJ?&5CH%J0s;a80s;d80RaF20096IAu&NwVR3YqT)En>l)6@)R1N(EUaCuXrRs|uA$HGIO0tXxszUfkB-<_vl| zh$+@fhW10uE}GXjxyTZ?8@j)20IUi<-e8TaK+X5b`<;G6#I>%_No|kZ2Hz#Zjc*VV z$90Es)~)LKB5hrvU10a9)B?B3yfX>#Fq3UEv&J?Vq{Eiia3# z;^+-t#qGJ#*M>MS%ua~&-?|#a#1b#wK}ft9 zTeE&(Jbk<0xJTI2dP7Q;00y?zGQ)xe-MJjfXMxN%X!AC_v9|LDFn*_ix-|+~qojfS zl?|F4Mv5mF2HBv@wH8%?b69tKf(dDlRauriIbJ0>LLtyX zP2cy@uM`6eA5h=TCqd-0Zjp-OS6c*w zE?7c0&_MtPC@gL~PFWVcRPLa&e81bAgC2Q@g8a;cbDh9xPu8QOO#TaF)GAY@lTnqL z+WBRTyUicn#H5Y?045IHr+6wrqUV;UO!(BgD@9QAv_dy}SHy^QS(zMoiSbaueWqVt zEC!AY_Ref)TS+Mv0dQQJRMC?XD*3eXlLN= zEj*MM&aP01g{8raml&c|-+*ROHiDG22APMBbH8sJ1lC{Hb+c?X&%4RKJ#Ue%ux!3@ zlB?ipyD|KK4g{374^q{-1&FZ9z<(;;EX`ROr47v-%f(y)Z}hi0pipWNT*vYv_wtbp&|&`oh)Y&SfPDCghFfezJQlBVt8yHf%>1%*5@+)amRYT0fxZ8^^6Od4|YJZwhFv#(aK%zx3AkCHF6+=k_J z^j53JLK|Z9kLc(K<~vv=2ToCIwj6R7rEDLb13)%({{U%fsN(WrubD~)%i$L`xrGHc zG14m79^>d@_b$HH+HfsY6q~FAqW+fx1@12}qe1g&@T(W_r_8cIE-yYL}(^=uB zuSKay?gU3Qyten!MCbf~==*qxL~<=EWFJqw_Z0F%;e~oMU#n;0hA(L5K!`P^3RQ$X zFh+wBGfOL>hli5lttKZMFido<7aH`m9z+ks23#097#@pqpmSSTeAFOP74rFm>5S;B zy-7SqnCE8s@xmo<_%2=fW_M&C^Qnj@Mz~-gtuf?5Ca}bs7`4&(h3DZ&Ps0|st-d*wZ;PG5wG1d7^z$g`GsywE z3Hl2f8hE=^cJ2?nqfd_q_X{%GF4E{cLH^#}+>halBzuJF2X~rn89PdSMUkr>dOi`O zyh;JfXo&JgE(UPFIgi$AP{+DqcM4&=FL4bLpe=V3aWEH-u3H7Zgc4M^77!#bt0*!a z6LPLr01ugHca0J9rx4&X80xXY&YY8by5n+_=C%qg8ETX@zKKuL6cNo=I+Z}+<`zB% z0v5tOzc8S%_y}#_&qO**bokV1#vEM8$DxTDUoxPs5Y5|VU?v~Gm7-q(bTlRH0PI3i z4E2X5`J@E%Hi*M5SkUz518OL^8*i0#a>|DI*YRj}_z!AsrL|wJs0U9wkUD@+);jCT z;dZ2;>CKaurB*bQ6GXLa^%Ez$kxnJ3Ul0NF0nAO=rvCs_14{iN)1fwG65q&Rxs0l? zfOEAbY6ygs2az!sfjcM#?38w=8+F5rm<&oa%b8l0CI^fyp-+rOTFfgoqs%BTf!rD^ z%%xzgK(EpRko*e$oZ#!0q^!Y1$n;_?+<0+qz}}63v1DS}vw4sbd97i4IMF z9g_jX2rX}EIftJSoG8^sr)Z7^p{-)>3UJasp*tAub-)gAMOtK5R|Z7AsQMZ^s72nl z4OOpdmFQ(Vgy!2+4kG0T6!0dZ55kV<5LKYHu^%3&;eL<3F_3R#0duN_PO;9fRrf8= zt{iuUXv7q$_X9)?GkQFHZXrd5Ep|mi2vQC^mn5HjQ&ZgGn zc`+dk5-J=ds99vraNGkB*jlEVYi#y47HS8WUBWs8io$_U_L1WqEt?|A3h2SouF z5l|}F0@-P7Ik-m7zeRH2!4UA5M>!f)mlAg<9C@PU$fS2tv~HUeL%5Y=%05V&kOME` z8gn&fF5JaRtQz9)cig=ZuaRAK3V;iBf4O{IDYNN>+_W>^pWF}{wqpCNMlKli1Pktf z*~&F^)y!JvxLcKB;~0s{)l9|vgJQBoyH7|HICP?3*|wodE#6jYa4DA>UG7pJ+*AvE zoUqxs?g;zbL@Ia{(=(;`_} zCp9gL457{c0BpO49eTDS%A(@{ zz^KDY&mt}3`3#`2`8?q^^`N#-+N+0_MB%yRzpzFlAEwNP%)%b~~s;wi3iFvp`1P4nW1H{;* zFDCrHAZhD8k;rv27XyT1U!>a+@NOh6sI@(x+`_h@HJ=B5CHi8J=EJu-|aZ6aP*SQChd)%=rJYV|dQ;w`qma|P>sx*??I1=#8uR6?Q2xD;}Le9vLx zVQNv1yi6!*#1`9eKGl<&l{Sbp3v%ieJUZcscEA#^>#o!#t zdK?HA_^#p+ViX~C^%At%rX24qUs(%O3&3@Wcz`Xd*$H;KUlq?C{{Y@*bQ~26$&sra zG`x_@hh!1qAT)vtr`$H6ad!UVm!$WO0pL6U5Efu>>j?fxCN8KT zrCL5vK6=B0xXZ4)>x@#e83oG3 zkC&{uqYF@ZU{!XwJ#HXAWp<8#!ZAKatLOa7Vh+yp)@K)T7e^1O#KUk3Ix%eG@13() zULc0v>SSyZ?6ZZ}a=}R16-Pz^+aIguE?JPO6hjjcayD;t7q}4=L3_oV^zkf_Hq_p9 z-mwVs5Eqs31;q*LR0T@PRpKXzs|;(ZV1lZ+cvw)qGRlG$9+gLcq#sth{lxgtLs+(! ziX3V}2SH^e;K~NMLxevV{KR{pzX6tm_Y`2!8>4}XI&dGEh5g-*C4(tNCW)L4ZCUT~ z+28qk6qjXr=5vJ*smWK&6lD>M7pP?93u9QL5yrwTtQqB3q%Fy1^QmA31(4L898#R96RJ|&)MjM(BKtDtKPs`p0=eql7vG8Xx%;sk5==!Gkur5!v= zxePL`$|4K`n8?wH?$P`Q~5@?T*aH#BH{ zB*NfhW;YhGrHjY)2R`K$PBq20YSd0d7FBY)U|P`kXA=~<2z1ZwG0=N*K90}sqYPjt#GrgntL9<&_i@MZPXtAH-b2x>OyZF_~$rDM&9@jX(^BWN(p_S2&jZ zQSlCq7Xp(B3^uwo5T@X{j81i(*B=ugu8xv!*B>9;WZA_6qXY3?R%@7yMz2_zzrq$% zo(e6qsfY$qOO(DbAF~ifMsOu9YyzvJL}cG+jY_i1OY;xi+>^$7vZ7rp4Exnvc(fad z5J^gn1W7B|E2u|CkPZJj2 zV?_WjseuhKXxi(j8qsLQ{5nPgP&O5DSJ&ws7HD#_s`irF1=?_CIb_Om61|*R&HXVOmks--{{ZPIumv9(*UTpT z)xwMhD&L+XXSZ8*baF5v9JlC{hABd}MyaBK3^EN%gwp^>JtLvBHF z6Ru*qsN%93Z8M5PErspm)Vpo2W3pxPIm!Lc^A7prQ$8ms#8alXF<8x)ed1^wgrMD) zZ0=Ez)WL-WN~NB27?o0prfK`m8(MNV9*Rei#87Q#DgI&C3JYTR8+w7LP^Hgs9QcCL z$A&(}0cZwzjf-XugHqQ7wHj_DzP)L1Dn)I3e0U`su`gSq>-8`|*1%Pn%x$u?*f{i|%%t^8!?GW8*|X z`Qcz0&^MxJDQW?kq)TTfHxvR)wr9*XY9>?08OMgn`1OsEEz>FiwkgSKWtvH0LW;(j zbu8{Ul}Z6h`I-1L#*hO9L~#<}6Qs>v&^+!9864YjLM1A*`iis6AMU%17-qGrTxgDk zDV3`n!+GW?$bXqYE1f^NRLJ{*#XQ64QG%|^s9+`w&r}qLjY7P}YxshmnvddNjV#C=cQ*<5vV2^}rVT&cu&O41{!#-8T z#^$Sl)iYO4{o`<2;AyEqV)vv95Keo)>Lyq+XkOsfuk^Z>MGjul`IeQer|w;unO(o! z#@JgO>tr?g^)zh&;@rGJ8KU$nZAVW(2tWqO7Y2!tXm+?T`=MHw%G;cxc=%%A{{S!; zsETUW;_)e>gPmd2HQo7Pch9J;F1b#=dTkh~W73f=J>Djh8s_0t!&*+S<^ZmjR>HPq zfbFjgql7OR)NNtv5u)a%No#71&0jjSgq7<2ce<9d$!@@ch6aa^FrL-{@Ehkc?|@_a zfE7+(h{T*^T1KH(+PV=A{zCyN*>npnb%_jsqYpxo_Z)mIx<+_kLwa@^cRZ z4lSca$D07F0p52N@lFDlDP5M%A2DfXx>1;B1Cvf7ZULLwJ+AjHA?~gP!;Y@Y^`6xcFZ&=Mpy~mWX{M$Q51NL;v^0x{cx#_@jK)tN+`QZlqZ1`A@VeAd^fp}DRG7*HaEaqbgC zdj9}0s~Rjq016ma9!XXTLUkIY0(48w_Df724-+ZEHT~N&e^x_j>zMLX8dC4;Yd5R$ zh_ED%2Ey);!~S_$3&^q|B#NC7yDUS&BgB&^o_5IOc{w>B3*ZnrCJ=dw0# zXGM>7%cB?$Tyb9!0GL1?Myu4gVK!Y$p)GtpTo=Y=t+jiJVV2B!(-0JHAuBg*yn{vR zR?vOQ5w)6v>z~vKEUa_HYYYbMFWcS>qngkUs09iP;+7!H>T2bP!Amw~4MiGzm9}WC zV`~jy;@h)---yxJ1p-hls1RwBD}`0U6j+#fOVk<{aueu!O!V!DPJa zwag1Psrz8}xyh$9h5g01Ut(n0*5dL<3konLUebKPqYw10v)sZPJe+3WUBZ?5<}gwA zu-U~7%hP|15IH}%R!@i!sORwyM#%xKl~io7Dg+0~)WF+rE?7AgU)*ww13J_IhYsNv zK8@-oSaLdhn!f?#A}lbtzg)?Qsyj3x}yxncR{*hJD@oM`I$GVNT3D?8OnSrm+t-hUtD;oCMlFpUeR^cDY~yi`8z~ zPf&cZ5RIb4BDO+}?UV!SrI(RbDDCMSJ;R~0c26;Xp5{{e*0%gh#RWgI*|%ou>KQ1} zQDLrC8ZSv`um;VzJDZDoPnnqyxqA>d$5Q+KClBY~xQy_+iIs)dkU*5PEVDewbq$j0 z!o@69aeA)e$W^)}#8!|kaZsvv$1Y>A6pX>0qvIq{_^Sgbv92v4t=SEd~mccIlYikghHYfp4}=&B}{;h!lMCHxKsUW*y=_ zlk!F{rbu-25RE{_R^X@Y2rBUv%WyeW6fi~;#9g>ECE?(R#b9WEQzk*GK)d!6*E`igz$;xE(*zEQAUW z#l%Z>@#hkSEVA5tg4cI+=3ZFf;JSuHKIStySC}0cIzzW1TB$iO9C?7fM+R8hB*v9l9GnfvC;dA4WA2^S+Pbdbv&?~lU`aS z9^FZMrr~bE)nIQ3%dv@9_@RqP!XU?T@m7)I09<((L%R8ZuOzUz@0qOWw7c;eD{$D% zU=A-)pqs7zCRGjKIkPYzt_wP{05vOg9Cw%;>Y!Ch+M#v6f4RpZYW&69Epg7j7g34T zSDg^jLCC)Z11W8KobeV>=ODQFzld+`W^*x|4GYq&u>A)s?izkpHGXN3=Y-DlICGSZ zOJ7|w>g_`i!nbf6#TSWM0aspQwGJ?ti?|@MyIYr4D}(DRYsw&}A`!R5{$Zh8*3(cz z!w}3K>DJ>y$xbeD$X@!3S&RnN)+6d=GQ6y`n3^FBVg$juuJ@^&EsHrJavAK1R&+1M z>SV5^&u-r3lBs$9y~?mrr>*Vfij1zA#DoZ859Z9{JSEQbd6)%Om2VQKu~#Hwt}b)C zjA)*B^qQIgg}8%0Huk72Xr%X4xC{wsIBmGv=`uztFK1H0r=*C;Rqi(_*KFpP39h~; zWiy11fH{L*i2jSz2t3nbkX1teQkB^D;hPZPDhZm`%xqPztjs8hR1g}UgtfpZg>(NrN}tRwzR1tcoCVNgBukC%DlysJqL85GCY15Is;$D<2S zmi-`lp_tv#m1YKa*E2*#Y8E{vC75z?tbD6^O2r^nSFV^F6XcDZ-P6F=)9GPe>iBB-*D(r`P511jic4?Nx^eCH8 z6);wKQo{aH0WNgQRanugj)>;KE5IHnfQASk<)Z8l?Tl8o2uAM& zurwTHGTNPE)W+8P(FbMf@rY$_e^66rkvbbRJV0%Q+(OmqsBK5H6hI@bk#jH`UCQf& z8i#~~s|qgz@XG2gL0>3q6`47TYz3Y=i1!u;`ZwkrlnyGiS7f{3*p{>#SK9`+Mxa-0 zMT#JXNFe1vs9Qy(Uc_eQgB;5gRM)D{z>^Z;B zuM-#`;T3FuakVikL3Iy-+yrvhh_-&zwYASDm`KQ_jDJZLQX0f6$S02T7bOE>0A+U& ztA6E}cH}1Iemk129_8f?5ChhE)S<^tB7=8cVO`|}??Eyr@c#g)oqwa^P**Pp_0P(; z^~Ds2-vu94iAm8UH`I4C0)DraOXauBoSn$}%2}_KuGW_~4Tf)I3pJ~#Iu-Rb z%MWIM?8n87J6n#*p_W6|EV$G(_E7%-_CyDmmku_XmWGs~o0<^7QSFV2$O#c0 zk8+RCkMD;v*^hdUoLsUrtxA0emsE3uZ14eEz{KL@Ura_QmP3M#U0DbXz zMvef*WsoidL?^1b!-$Py7N$r< z#!fx5&YHATI-)BS1$GOF0F+%4#aPwK)M~ffr=GPLv!nA1)*(uwOdk~vN}aU;TVeZ- z6w|W{D=SwPnGZ|@B@Q6c&um@c)LW~PQgUHrsH}J1+mvaZhogtc^;lqex-CA^h z2sPivH#>7Waw*gWwQAe{0H>R~b>7(o`J+7p6?~f_{19}I7Fh8_IZ9ARC2~OrmZHBY z`iHpCYNah~#%!)i`)!!GtLKT)ZsP3ERn#-~G|TLz0ezFqv^JbTTHG-pwp_Kjp>=fl zSxQ-2K+<0mF|b@{{Yr($qhx_J1&cg)P({fBTq;_`$s4={{Zkp zgXSr4W;e%)nK-tq)W&)k1B`s>nV3k2rdO_tg3k-OaKo+-J(9bu0J<|-mB4;tCATR+ z6BbV;<}0;>URV@G!eXy8qIx=s!mEr=gd>-#-pRTw~W zTg8(Vaot6YttE|bsJsdC%HO$Wom@jv2 z!L6q*QV&6eJRQWM>@hb__Yk~&5nL;Ea}ts#0Jm1aHHKgaM-F}r|K?Vlad_BrAN4IHr30>}`rH4HwpC2xF5wkCj=QBq8 znG7#7iN6=rwYUEOCLzo5e9FxF?1*=|hFcGdnFxv!=3G81QIuVcokr#OT(H5|vEHVb z+cbIx$d@JffiMl_VUmDgD)SCc0#R!w32lQCk3My%?DwTfl8e3e+|8tIv#m}Eo{@@Y zE5RPC9M>_c_9c2xs3O_7P=kAp7Byc}5u1ICTQ%8!#}QYwLnFRMfB(b) zHxU2<0|EpD0|x^H0s{a5000310ucit1P~H2ATU8u1tKyNKw)u#k)Z|@BNa1Hu|iV8 z(eVG;00;pB0RcY%%G?4KkXBYGpks(`vF$(9D*Q-Mq>!B7I>6F2aBOMZ3;fm@;k9q_ zPP!6RH%{XqVNK*IQ3>YAv<48W*~5-Gka!!q#fKb2-SJNsvZmd2Lr+o@W+7pkT~K@! zO+(p41lJb?3bZH+21W;|7gAM#K7QPCBa{qfCOB%<)c40ys#&lW7)~L-Frpk*4|gLW zHtCHmCRNj*Hsu)?#sdQf;BI|OY5S$?Up)e&fuq2^dNJgl5g;39xtHOVb`!U<{m~0AZ zfVE`-L}Xlp&?MPJDU^0j5+y`?n}o2BnsW<3k zYhoMH{{ZVOMiz!Do{FuJ_9Nm7!{M2SsqAUk3#N!{2m`SH0C};x84A*@ph^%>+A<2n zTPaY`C#s1CPzQtYUUf$sEHHSru z^VW0bdoKu~=Y3AYJVltO04irfHI#V-=0>K$%R!rMnH<7lrB!~4M4qas6SBb4_Bck4 z`Qmm60>h|uR=jn~54lHt#+@c|n=O85TA>p;$;g;7kPuNk#}emh3mWj}05%GYR>X#= z9W$*CcnQ)aH_|eoPn(L@MBY_5*vc1CWd}QUO|U>hkeU<(AwZ5dIJ0$3XqPNQ!-)ZS zT^%~AA+%&HQ^3|!+!H+mDlCSmzW{{tKqUbI2?~`^LewT!p$Z9G7+zJUAe$W#P$E!- zRZ51L7L+k9>JY6=jnE*81z0DzlPbH*aO4fqVFDEf3UnGcDt~a4*AyR19bjQ+ombfkU z$;35l^ zOerYVdklh`j(nSouitxGWER9A_QjL?tTpHlf~GY%aB4+8@#P#eoEqd>Nsxm?T?Y<` zp=Bip5U%2Q0;=JuKOiAA!JW`PVINgf(uoMdbA*7J#*#u1)1)GIJt0!6NrI_jUdBSF zj$>UeZ`lle1HF?g(s;9i26nn85V%eriz5V?M{EZQ4Rr;(9WJu(wmP180`yA#+AHBI_k3PLXsRKP34o39$t_xUb_qD$nS zI(}9FfJby9H~^IigzQ&zE)`c9zELXLBdQJs0|h!9NywnhM9K{U!2t=*03zQa>17sA zkk}|ZTrUUH?cVd+5p!+=ZO0n}eV8bcyvH!2%Vj757g~futF@EFp&d|YKuo4E%Fa1*jI;=qpehtu zTA-$OCJ)s%17KUH+RCZ4aw%-&C0Rkt7$|yUg00?+Ybad;03$Y$5S~O?O1|l~Kt^Q| z1u%J)rdNirRK&UQU_UDTRZm~bkx2QE$2qqmr>LX400Y86&#wiI`znNMfPe#J^BXS> zVQv_oi9pCxE= z=n=3k?aE_|nf($&R!YC~c9y97^(y)5#-wR2!7DFfw5S)ClqUSFQY}F^Qzs)e%g;LLh%A*>U@&q0Y zLUMT_hBr^Jkb}FRXk zP&+RtWu$gc-pU!=5{S1B?K`G88x-i9FAQjPX^n!G zi-cMWbq-|`Za8Nm>3MMKoc5k8qX&^tfx5AjJXQEg#gyQHB==N*QOilF&#_c$w!IeA zZGjWarPTlL1fXe-o&Jc_HE}K{{{VuceNeD< zN9?J6C3QTu63vz)^$Re#hf#egBdqX?s}uwXMWC-@&4>u$sgOvqPQz3iT^7Bj2we~; zH&)6B--0r#ECQ`;Gu%5BPfMDxn%`VCo072a6r37*AM~0*Y_|NcVSc5g)_9h``vH`d za)5*cAR{Bd00@9nu;7arPQz4el`iYT(j73IJl9UF&>X?m-*vS@&Y;2iFAKxIkaL_P zvSFwQfT`CZ;KTr_y{~M8$_w>v09i<%j|nE|6**gt%xm`wrWBt+MUG*Nje#iQD6?{^ zVsNf8s%2r_O~X?*N5gQw+|(j(Dw_tvz$pMNYMb9oSyRNZ;`S+~WDZ9~`i_CGglKO1 zr|Al8rEH|FPRdrLJexQ}uAPUZ{{Vu18P^+y`)U6Ghv7E>FXZ3gh8VO!VULks#qAIp ze#Htk15cFwkfT>^C+xI@&6I+v*LzcOYyt>Otxe_uzYtiuX0wZ3wAYQl~gg``XrFm2NX z{{V#C6FR%_zh=X;l`1TzWOBeB?Ey4e`D~>B0E2=46bVt75|8*Mm@02{T6f48TBKyq z93d8I7XJVN2)c6!Hc_y)>ru#vJU{=$05TB(0RsaA0tEsF0s{d60000100I#MAu$9H z5->ppAR5O!|}LtOQW7LH?39gbx%wQd3B}Bnq+b)&PyH z6iRMUKnPG56au45hMj@l!BGY7KEn#T2=Lb&SfM3~ks@|2or1)sjI65^*2Wk4P7QNm zQ@eVyRGq?tg|};YkkQ>-01iM3fpOzy;*|wI4XGm0{8?lA{?i+9eU(EdP`KE%2>_wQ z2scfHVl0LwF~kF~h@a&E1IQlJ`XGRTzl7-lq$WWyQ;e@yx*6C2Y*aH4ngm%m7Qr8)!UoDzxB|2kK8BT`f0Yda z4py1{fs&{K*)BI;H$YMGC&mraGP0#arsrstFKFWyQciaU6Jfy0VKE1!5%a(qP0D56 z1LOU#%T)ZhwXB^%;sRwSvDnXbOHTT9%iJ=*5YgpLwY&F2xeDk5CuwdDRIbU6kqG4r zlv@K}Ede=&zN3W@W3O)|CkD75khHZ}{V60|59nD2QKA_x}LPttW}mW|XzfFb8jh&&B>991S-CiIw5n z-43z z-}BTKo$#)90`R;poHg}+Ayw5nod*HlP+A>!uR&AlP;?&lTAf~_TpwDox%liAN|h=* zlgTF%OxxKDjf6JHz0yz;B?Dt9SZq^5h}Z%VRYw*V`!4a+6Wd{g(+K3RS8S>@TSHD6 z?f(F`TKa&t0&S2YQ={_c6L<7B!3(G-2o{mFs09ZJM9P&VNmVY$OfC!reuqs+)v6df z{{XLa_K*zrxA3(u=T!V4B?cEb1o-+efQ^JfPzn}AlCg9TE2D$}Ey@Bm4ze%}wz6b` zM^InL1g{FF()T>}uv)sIluMC3vW1f_Q~flTEt)q393y1MWpbdvmpR3p;K%kNGehFEM)=;38R#-_WuBCBFGUNoR#V8 z2pa)qrfjxPydvRCPF@s1lf4TxkeP6zCuU%gv`y1+pg9l%k(AkMMCCRf5fQky+=sVW znNBB+1*W6vg0Onjr}hNfN~$5{45@&*93n5U22{u)GuHPz z_Sh3Cx29Thq7k{+I?>XjY2ND4xT;Z1lDUG?Wka(H6cpLy5RS=*iwdo3t{*66Jo=En z(ymdSB``yF0u(0~Ii#p`Pg0-Sg!!Qb#f}$7gANlYhM7(T8z{1?_msd3fmMU!3|Zk0RqGlV1{ zWJ(CB192(}c`cym?x%<;vz>t?O|l2v z>^Fj-?He@BKiw4p*-(7pHo-R@X6Io6IyRIn6klr~Ayq%|#us%?;Jb0Xt27dOWs^l zhbD3N-Zy|Zz)lyH_hCn!zi>_Swr~&uwkw<{VNfryx{E>$Xu<+h#|BAKQ1w(E!2t?N z8$_u-LF!;Y29$HK6Sy9ewZd;e&d|}1Ai5DL!~+3WBk51R%w^ruW(tMK0HANhd?>O3 zH_QkPBWCi8E)F7lpc@FlP5X8N0t1rb7OBUV0f3n6-BOU*c4mL`rAp4aouut0Nm5WH zFj;Yl^S3aJ$q9#ulw|#=nX(^h0z$%+(%@miRWneheWp_+2t6j4be;jQ0#E&eM5go@ zV5>dEBF6xlU4Wp32?`{sLJD31+vQRPQ0#_IaVMGb@4TY|l2N*d(@Uc=MOerWE z8BiVlpW`b<;B@K5@dUEReuS%$fs90vadkt^$(^@mfQCT2^&Swu;^3!N{-%U z)dt8pr_K{gavs3~OaP28jq3mdHbG16u8M zAnZt07;XaAhBHcDObjZF91B`~{{Xb$TIhAUVSW{>^?WW5VnlT&6qL$@3*8EgOolYM zbNN<ZvWeP4kfbRK z_f3BkD!1JVjg0>QXlgBYPwtxbM3O(1&6ALW>HDEkt((e}a*h-Sqf4+T({S_Y>%N$f zJ~7aOfKWF$>sbrRizWz=i#w`d1y-9H*&b>n@i+6dN0{TREh;UuS_0zU=!Su7s?KR- z1s+;wi81CE^PF|0!fjV!eP<5H)^J9-?ic1C*dprA%ep*Q6a*k6&T-ccBq=IXo|w4l z@myCG#c^Cp;#U&5mBn#fR}!z+0xW+~K2gwWDgZ|9G5TvYKaA KQlxqR0RP!Yxax@j literal 0 HcmV?d00001 diff --git a/public/catalog/demo/banner/2_en.jpg b/public/catalog/demo/banner/2_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44c51e4dbabfe160ee5881edbb889c63334d4031 GIT binary patch literal 34060 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 diff --git a/public/vendor/vue/2.6.12/vue.js b/public/vendor/vue/2.6.12/vue.js deleted file mode 100644 index 919aa125..00000000 --- a/public/vendor/vue/2.6.12/vue.js +++ /dev/null @@ -1,11965 +0,0 @@ -/*! - * Vue.js v2.6.12 - * (c) 2014-2020 Evan You - * Released under the MIT License. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.Vue = factory()); -}(this, function () { 'use strict'; - - /* */ - - var emptyObject = Object.freeze({}); - - // These helpers produce better VM code in JS engines due to their - // explicitness and function inlining. - function isUndef (v) { - return v === undefined || v === null - } - - function isDef (v) { - return v !== undefined && v !== null - } - - function isTrue (v) { - return v === true - } - - function isFalse (v) { - return v === false - } - - /** - * Check if value is primitive. - */ - function isPrimitive (value) { - return ( - typeof value === 'string' || - typeof value === 'number' || - // $flow-disable-line - typeof value === 'symbol' || - typeof value === 'boolean' - ) - } - - /** - * Quick object check - this is primarily used to tell - * Objects from primitive values when we know the value - * is a JSON-compliant type. - */ - function isObject (obj) { - return obj !== null && typeof obj === 'object' - } - - /** - * Get the raw type string of a value, e.g., [object Object]. - */ - var _toString = Object.prototype.toString; - - function toRawType (value) { - return _toString.call(value).slice(8, -1) - } - - /** - * Strict object type check. Only returns true - * for plain JavaScript objects. - */ - function isPlainObject (obj) { - return _toString.call(obj) === '[object Object]' - } - - function isRegExp (v) { - return _toString.call(v) === '[object RegExp]' - } - - /** - * Check if val is a valid array index. - */ - function isValidArrayIndex (val) { - var n = parseFloat(String(val)); - return n >= 0 && Math.floor(n) === n && isFinite(val) - } - - function isPromise (val) { - return ( - isDef(val) && - typeof val.then === 'function' && - typeof val.catch === 'function' - ) - } - - /** - * Convert a value to a string that is actually rendered. - */ - function toString (val) { - return val == null - ? '' - : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) - ? JSON.stringify(val, null, 2) - : String(val) - } - - /** - * Convert an input value to a number for persistence. - * If the conversion fails, return original string. - */ - function toNumber (val) { - var n = parseFloat(val); - return isNaN(n) ? val : n - } - - /** - * Make a map and return a function for checking if a key - * is in that map. - */ - function makeMap ( - str, - expectsLowerCase - ) { - var map = Object.create(null); - var list = str.split(','); - for (var i = 0; i < list.length; i++) { - map[list[i]] = true; - } - return expectsLowerCase - ? function (val) { return map[val.toLowerCase()]; } - : function (val) { return map[val]; } - } - - /** - * Check if a tag is a built-in tag. - */ - var isBuiltInTag = makeMap('slot,component', true); - - /** - * Check if an attribute is a reserved attribute. - */ - var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); - - /** - * Remove an item from an array. - */ - function remove (arr, item) { - if (arr.length) { - var index = arr.indexOf(item); - if (index > -1) { - return arr.splice(index, 1) - } - } - } - - /** - * Check whether an object has the property. - */ - var hasOwnProperty = Object.prototype.hasOwnProperty; - function hasOwn (obj, key) { - return hasOwnProperty.call(obj, key) - } - - /** - * Create a cached version of a pure function. - */ - function cached (fn) { - var cache = Object.create(null); - return (function cachedFn (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)) - }) - } - - /** - * Camelize a hyphen-delimited string. - */ - var camelizeRE = /-(\w)/g; - var camelize = cached(function (str) { - return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) - }); - - /** - * Capitalize a string. - */ - var capitalize = cached(function (str) { - return str.charAt(0).toUpperCase() + str.slice(1) - }); - - /** - * Hyphenate a camelCase string. - */ - var hyphenateRE = /\B([A-Z])/g; - var hyphenate = cached(function (str) { - return str.replace(hyphenateRE, '-$1').toLowerCase() - }); - - /** - * Simple bind polyfill for environments that do not support it, - * e.g., PhantomJS 1.x. Technically, we don't need this anymore - * since native bind is now performant enough in most browsers. - * But removing it would mean breaking code that was able to run in - * PhantomJS 1.x, so this must be kept for backward compatibility. - */ - - /* istanbul ignore next */ - function polyfillBind (fn, ctx) { - function boundFn (a) { - var l = arguments.length; - return l - ? l > 1 - ? fn.apply(ctx, arguments) - : fn.call(ctx, a) - : fn.call(ctx) - } - - boundFn._length = fn.length; - return boundFn - } - - function nativeBind (fn, ctx) { - return fn.bind(ctx) - } - - var bind = Function.prototype.bind - ? nativeBind - : polyfillBind; - - /** - * Convert an Array-like object to a real Array. - */ - function toArray (list, start) { - start = start || 0; - var i = list.length - start; - var ret = new Array(i); - while (i--) { - ret[i] = list[i + start]; - } - return ret - } - - /** - * Mix properties into target object. - */ - function extend (to, _from) { - for (var key in _from) { - to[key] = _from[key]; - } - return to - } - - /** - * Merge an Array of Objects into a single Object. - */ - function toObject (arr) { - var res = {}; - for (var i = 0; i < arr.length; i++) { - if (arr[i]) { - extend(res, arr[i]); - } - } - return res - } - - /* eslint-disable no-unused-vars */ - - /** - * Perform no operation. - * Stubbing args to make Flow happy without leaving useless transpiled code - * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). - */ - function noop (a, b, c) {} - - /** - * Always return false. - */ - var no = function (a, b, c) { return false; }; - - /* eslint-enable no-unused-vars */ - - /** - * Return the same value. - */ - var identity = function (_) { return _; }; - - /** - * Generate a string containing static keys from compiler modules. - */ - function genStaticKeys (modules) { - return modules.reduce(function (keys, m) { - return keys.concat(m.staticKeys || []) - }, []).join(',') - } - - /** - * Check if two values are loosely equal - that is, - * if they are plain objects, do they have the same shape? - */ - function looseEqual (a, b) { - if (a === b) { return true } - var isObjectA = isObject(a); - var isObjectB = isObject(b); - if (isObjectA && isObjectB) { - try { - var isArrayA = Array.isArray(a); - var isArrayB = Array.isArray(b); - if (isArrayA && isArrayB) { - return a.length === b.length && a.every(function (e, i) { - return looseEqual(e, b[i]) - }) - } else if (a instanceof Date && b instanceof Date) { - return a.getTime() === b.getTime() - } else if (!isArrayA && !isArrayB) { - var keysA = Object.keys(a); - var keysB = Object.keys(b); - return keysA.length === keysB.length && keysA.every(function (key) { - return looseEqual(a[key], b[key]) - }) - } else { - /* istanbul ignore next */ - return false - } - } catch (e) { - /* istanbul ignore next */ - return false - } - } else if (!isObjectA && !isObjectB) { - return String(a) === String(b) - } else { - return false - } - } - - /** - * Return the first index at which a loosely equal value can be - * found in the array (if value is a plain object, the array must - * contain an object of the same shape), or -1 if it is not present. - */ - function looseIndexOf (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (looseEqual(arr[i], val)) { return i } - } - return -1 - } - - /** - * Ensure a function is called only once. - */ - function once (fn) { - var called = false; - return function () { - if (!called) { - called = true; - fn.apply(this, arguments); - } - } - } - - var SSR_ATTR = 'data-server-rendered'; - - var ASSET_TYPES = [ - 'component', - 'directive', - 'filter' - ]; - - var LIFECYCLE_HOOKS = [ - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeUpdate', - 'updated', - 'beforeDestroy', - 'destroyed', - 'activated', - 'deactivated', - 'errorCaptured', - 'serverPrefetch' - ]; - - /* */ - - - - var config = ({ - /** - * Option merge strategies (used in core/util/options) - */ - // $flow-disable-line - optionMergeStrategies: Object.create(null), - - /** - * Whether to suppress warnings. - */ - silent: false, - - /** - * Show production mode tip message on boot? - */ - productionTip: "development" !== 'production', - - /** - * Whether to enable devtools - */ - devtools: "development" !== 'production', - - /** - * Whether to record perf - */ - performance: false, - - /** - * Error handler for watcher errors - */ - errorHandler: null, - - /** - * Warn handler for watcher warns - */ - warnHandler: null, - - /** - * Ignore certain custom elements - */ - ignoredElements: [], - - /** - * Custom user key aliases for v-on - */ - // $flow-disable-line - keyCodes: Object.create(null), - - /** - * Check if a tag is reserved so that it cannot be registered as a - * component. This is platform-dependent and may be overwritten. - */ - isReservedTag: no, - - /** - * Check if an attribute is reserved so that it cannot be used as a component - * prop. This is platform-dependent and may be overwritten. - */ - isReservedAttr: no, - - /** - * Check if a tag is an unknown element. - * Platform-dependent. - */ - isUnknownElement: no, - - /** - * Get the namespace of an element - */ - getTagNamespace: noop, - - /** - * Parse the real tag name for the specific platform. - */ - parsePlatformTagName: identity, - - /** - * Check if an attribute must be bound using property, e.g. value - * Platform-dependent. - */ - mustUseProp: no, - - /** - * Perform updates asynchronously. Intended to be used by Vue Test Utils - * This will significantly reduce performance if set to false. - */ - async: true, - - /** - * Exposed for legacy reasons - */ - _lifecycleHooks: LIFECYCLE_HOOKS - }); - - /* */ - - /** - * unicode letters used for parsing html tags, component names and property paths. - * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname - * skipping \u10000-\uEFFFF due to it freezing up PhantomJS - */ - var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; - - /** - * Check if a string starts with $ or _ - */ - function isReserved (str) { - var c = (str + '').charCodeAt(0); - return c === 0x24 || c === 0x5F - } - - /** - * Define a property. - */ - function def (obj, key, val, enumerable) { - Object.defineProperty(obj, key, { - value: val, - enumerable: !!enumerable, - writable: true, - configurable: true - }); - } - - /** - * Parse simple path. - */ - var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); - function parsePath (path) { - if (bailRE.test(path)) { - return - } - var segments = path.split('.'); - return function (obj) { - for (var i = 0; i < segments.length; i++) { - if (!obj) { return } - obj = obj[segments[i]]; - } - return obj - } - } - - /* */ - - // can we use __proto__? - var hasProto = '__proto__' in {}; - - // Browser environment sniffing - var inBrowser = typeof window !== 'undefined'; - var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; - var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); - var UA = inBrowser && window.navigator.userAgent.toLowerCase(); - var isIE = UA && /msie|trident/.test(UA); - var isIE9 = UA && UA.indexOf('msie 9.0') > 0; - var isEdge = UA && UA.indexOf('edge/') > 0; - var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); - var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); - var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; - var isPhantomJS = UA && /phantomjs/.test(UA); - var isFF = UA && UA.match(/firefox\/(\d+)/); - - // Firefox has a "watch" function on Object.prototype... - var nativeWatch = ({}).watch; - - var supportsPassive = false; - if (inBrowser) { - try { - var opts = {}; - Object.defineProperty(opts, 'passive', ({ - get: function get () { - /* istanbul ignore next */ - supportsPassive = true; - } - })); // https://github.com/facebook/flow/issues/285 - window.addEventListener('test-passive', null, opts); - } catch (e) {} - } - - // this needs to be lazy-evaled because vue may be required before - // vue-server-renderer can set VUE_ENV - var _isServer; - var isServerRendering = function () { - if (_isServer === undefined) { - /* istanbul ignore if */ - if (!inBrowser && !inWeex && typeof global !== 'undefined') { - // detect presence of vue-server-renderer and avoid - // Webpack shimming the process - _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; - } else { - _isServer = false; - } - } - return _isServer - }; - - // detect devtools - var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; - - /* istanbul ignore next */ - function isNative (Ctor) { - return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) - } - - var hasSymbol = - typeof Symbol !== 'undefined' && isNative(Symbol) && - typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); - - var _Set; - /* istanbul ignore if */ // $flow-disable-line - if (typeof Set !== 'undefined' && isNative(Set)) { - // use native Set when available. - _Set = Set; - } else { - // a non-standard Set polyfill that only works with primitive keys. - _Set = /*@__PURE__*/(function () { - function Set () { - this.set = Object.create(null); - } - Set.prototype.has = function has (key) { - return this.set[key] === true - }; - Set.prototype.add = function add (key) { - this.set[key] = true; - }; - Set.prototype.clear = function clear () { - this.set = Object.create(null); - }; - - return Set; - }()); - } - - /* */ - - var warn = noop; - var tip = noop; - var generateComponentTrace = (noop); // work around flow check - var formatComponentName = (noop); - - { - var hasConsole = typeof console !== 'undefined'; - var classifyRE = /(?:^|[-_])(\w)/g; - var classify = function (str) { return str - .replace(classifyRE, function (c) { return c.toUpperCase(); }) - .replace(/[-_]/g, ''); }; - - warn = function (msg, vm) { - var trace = vm ? generateComponentTrace(vm) : ''; - - if (config.warnHandler) { - config.warnHandler.call(null, msg, vm, trace); - } else if (hasConsole && (!config.silent)) { - console.error(("[Vue warn]: " + msg + trace)); - } - }; - - tip = function (msg, vm) { - if (hasConsole && (!config.silent)) { - console.warn("[Vue tip]: " + msg + ( - vm ? generateComponentTrace(vm) : '' - )); - } - }; - - formatComponentName = function (vm, includeFile) { - if (vm.$root === vm) { - return '' - } - var options = typeof vm === 'function' && vm.cid != null - ? vm.options - : vm._isVue - ? vm.$options || vm.constructor.options - : vm; - var name = options.name || options._componentTag; - var file = options.__file; - if (!name && file) { - var match = file.match(/([^/\\]+)\.vue$/); - name = match && match[1]; - } - - return ( - (name ? ("<" + (classify(name)) + ">") : "") + - (file && includeFile !== false ? (" at " + file) : '') - ) - }; - - var repeat = function (str, n) { - var res = ''; - while (n) { - if (n % 2 === 1) { res += str; } - if (n > 1) { str += str; } - n >>= 1; - } - return res - }; - - generateComponentTrace = function (vm) { - if (vm._isVue && vm.$parent) { - var tree = []; - var currentRecursiveSequence = 0; - while (vm) { - if (tree.length > 0) { - var last = tree[tree.length - 1]; - if (last.constructor === vm.constructor) { - currentRecursiveSequence++; - vm = vm.$parent; - continue - } else if (currentRecursiveSequence > 0) { - tree[tree.length - 1] = [last, currentRecursiveSequence]; - currentRecursiveSequence = 0; - } - } - tree.push(vm); - vm = vm.$parent; - } - return '\n\nfound in\n\n' + tree - .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) - ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") - : formatComponentName(vm))); }) - .join('\n') - } else { - return ("\n\n(found in " + (formatComponentName(vm)) + ")") - } - }; - } - - /* */ - - var uid = 0; - - /** - * A dep is an observable that can have multiple - * directives subscribing to it. - */ - var Dep = function Dep () { - this.id = uid++; - this.subs = []; - }; - - Dep.prototype.addSub = function addSub (sub) { - this.subs.push(sub); - }; - - Dep.prototype.removeSub = function removeSub (sub) { - remove(this.subs, sub); - }; - - Dep.prototype.depend = function depend () { - if (Dep.target) { - Dep.target.addDep(this); - } - }; - - Dep.prototype.notify = function notify () { - // stabilize the subscriber list first - var subs = this.subs.slice(); - if (!config.async) { - // subs aren't sorted in scheduler if not running async - // we need to sort them now to make sure they fire in correct - // order - subs.sort(function (a, b) { return a.id - b.id; }); - } - for (var i = 0, l = subs.length; i < l; i++) { - subs[i].update(); - } - }; - - // The current target watcher being evaluated. - // This is globally unique because only one watcher - // can be evaluated at a time. - Dep.target = null; - var targetStack = []; - - function pushTarget (target) { - targetStack.push(target); - Dep.target = target; - } - - function popTarget () { - targetStack.pop(); - Dep.target = targetStack[targetStack.length - 1]; - } - - /* */ - - var VNode = function VNode ( - tag, - data, - children, - text, - elm, - context, - componentOptions, - asyncFactory - ) { - this.tag = tag; - this.data = data; - this.children = children; - this.text = text; - this.elm = elm; - this.ns = undefined; - this.context = context; - this.fnContext = undefined; - this.fnOptions = undefined; - this.fnScopeId = undefined; - this.key = data && data.key; - this.componentOptions = componentOptions; - this.componentInstance = undefined; - this.parent = undefined; - this.raw = false; - this.isStatic = false; - this.isRootInsert = true; - this.isComment = false; - this.isCloned = false; - this.isOnce = false; - this.asyncFactory = asyncFactory; - this.asyncMeta = undefined; - this.isAsyncPlaceholder = false; - }; - - var prototypeAccessors = { child: { configurable: true } }; - - // DEPRECATED: alias for componentInstance for backwards compat. - /* istanbul ignore next */ - prototypeAccessors.child.get = function () { - return this.componentInstance - }; - - Object.defineProperties( VNode.prototype, prototypeAccessors ); - - var createEmptyVNode = function (text) { - if ( text === void 0 ) text = ''; - - var node = new VNode(); - node.text = text; - node.isComment = true; - return node - }; - - function createTextVNode (val) { - return new VNode(undefined, undefined, undefined, String(val)) - } - - // optimized shallow clone - // used for static nodes and slot nodes because they may be reused across - // multiple renders, cloning them avoids errors when DOM manipulations rely - // on their elm reference. - function cloneVNode (vnode) { - var cloned = new VNode( - vnode.tag, - vnode.data, - // #7975 - // clone children array to avoid mutating original in case of cloning - // a child. - vnode.children && vnode.children.slice(), - vnode.text, - vnode.elm, - vnode.context, - vnode.componentOptions, - vnode.asyncFactory - ); - cloned.ns = vnode.ns; - cloned.isStatic = vnode.isStatic; - cloned.key = vnode.key; - cloned.isComment = vnode.isComment; - cloned.fnContext = vnode.fnContext; - cloned.fnOptions = vnode.fnOptions; - cloned.fnScopeId = vnode.fnScopeId; - cloned.asyncMeta = vnode.asyncMeta; - cloned.isCloned = true; - return cloned - } - - /* - * not type checking this file because flow doesn't play well with - * dynamically accessing methods on Array prototype - */ - - var arrayProto = Array.prototype; - var arrayMethods = Object.create(arrayProto); - - var methodsToPatch = [ - 'push', - 'pop', - 'shift', - 'unshift', - 'splice', - 'sort', - 'reverse' - ]; - - /** - * Intercept mutating methods and emit events - */ - methodsToPatch.forEach(function (method) { - // cache original method - var original = arrayProto[method]; - def(arrayMethods, method, function mutator () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var result = original.apply(this, args); - var ob = this.__ob__; - var inserted; - switch (method) { - case 'push': - case 'unshift': - inserted = args; - break - case 'splice': - inserted = args.slice(2); - break - } - if (inserted) { ob.observeArray(inserted); } - // notify change - ob.dep.notify(); - return result - }); - }); - - /* */ - - var arrayKeys = Object.getOwnPropertyNames(arrayMethods); - - /** - * In some cases we may want to disable observation inside a component's - * update computation. - */ - var shouldObserve = true; - - function toggleObserving (value) { - shouldObserve = value; - } - - /** - * Observer class that is attached to each observed - * object. Once attached, the observer converts the target - * object's property keys into getter/setters that - * collect dependencies and dispatch updates. - */ - var Observer = function Observer (value) { - this.value = value; - this.dep = new Dep(); - this.vmCount = 0; - def(value, '__ob__', this); - if (Array.isArray(value)) { - if (hasProto) { - protoAugment(value, arrayMethods); - } else { - copyAugment(value, arrayMethods, arrayKeys); - } - this.observeArray(value); - } else { - this.walk(value); - } - }; - - /** - * Walk through all properties and convert them into - * getter/setters. This method should only be called when - * value type is Object. - */ - Observer.prototype.walk = function walk (obj) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length; i++) { - defineReactive$$1(obj, keys[i]); - } - }; - - /** - * Observe a list of Array items. - */ - Observer.prototype.observeArray = function observeArray (items) { - for (var i = 0, l = items.length; i < l; i++) { - observe(items[i]); - } - }; - - // helpers - - /** - * Augment a target Object or Array by intercepting - * the prototype chain using __proto__ - */ - function protoAugment (target, src) { - /* eslint-disable no-proto */ - target.__proto__ = src; - /* eslint-enable no-proto */ - } - - /** - * Augment a target Object or Array by defining - * hidden properties. - */ - /* istanbul ignore next */ - function copyAugment (target, src, keys) { - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - def(target, key, src[key]); - } - } - - /** - * Attempt to create an observer instance for a value, - * returns the new observer if successfully observed, - * or the existing observer if the value already has one. - */ - function observe (value, asRootData) { - if (!isObject(value) || value instanceof VNode) { - return - } - var ob; - if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { - ob = value.__ob__; - } else if ( - shouldObserve && - !isServerRendering() && - (Array.isArray(value) || isPlainObject(value)) && - Object.isExtensible(value) && - !value._isVue - ) { - ob = new Observer(value); - } - if (asRootData && ob) { - ob.vmCount++; - } - return ob - } - - /** - * Define a reactive property on an Object. - */ - function defineReactive$$1 ( - obj, - key, - val, - customSetter, - shallow - ) { - var dep = new Dep(); - - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property && property.configurable === false) { - return - } - - // cater for pre-defined getter/setters - var getter = property && property.get; - var setter = property && property.set; - if ((!getter || setter) && arguments.length === 2) { - val = obj[key]; - } - - var childOb = !shallow && observe(val); - Object.defineProperty(obj, key, { - enumerable: true, - configurable: true, - get: function reactiveGetter () { - var value = getter ? getter.call(obj) : val; - if (Dep.target) { - dep.depend(); - if (childOb) { - childOb.dep.depend(); - if (Array.isArray(value)) { - dependArray(value); - } - } - } - return value - }, - set: function reactiveSetter (newVal) { - var value = getter ? getter.call(obj) : val; - /* eslint-disable no-self-compare */ - if (newVal === value || (newVal !== newVal && value !== value)) { - return - } - /* eslint-enable no-self-compare */ - if (customSetter) { - customSetter(); - } - // #7981: for accessor properties without setter - if (getter && !setter) { return } - if (setter) { - setter.call(obj, newVal); - } else { - val = newVal; - } - childOb = !shallow && observe(newVal); - dep.notify(); - } - }); - } - - /** - * Set a property on an object. Adds the new property and - * triggers change notification if the property doesn't - * already exist. - */ - function set (target, key, val) { - if (isUndef(target) || isPrimitive(target) - ) { - warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val - } - if (key in target && !(key in Object.prototype)) { - target[key] = val; - return val - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - warn( - 'Avoid adding reactive properties to a Vue instance or its root $data ' + - 'at runtime - declare it upfront in the data option.' - ); - return val - } - if (!ob) { - target[key] = val; - return val - } - defineReactive$$1(ob.value, key, val); - ob.dep.notify(); - return val - } - - /** - * Delete a property and trigger change if necessary. - */ - function del (target, key) { - if (isUndef(target) || isPrimitive(target) - ) { - warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.splice(key, 1); - return - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - warn( - 'Avoid deleting properties on a Vue instance or its root $data ' + - '- just set it to null.' - ); - return - } - if (!hasOwn(target, key)) { - return - } - delete target[key]; - if (!ob) { - return - } - ob.dep.notify(); - } - - /** - * Collect dependencies on array elements when the array is touched, since - * we cannot intercept array element access like property getters. - */ - function dependArray (value) { - for (var e = (void 0), i = 0, l = value.length; i < l; i++) { - e = value[i]; - e && e.__ob__ && e.__ob__.dep.depend(); - if (Array.isArray(e)) { - dependArray(e); - } - } - } - - /* */ - - /** - * Option overwriting strategies are functions that handle - * how to merge a parent option value and a child option - * value into the final value. - */ - var strats = config.optionMergeStrategies; - - /** - * Options with restrictions - */ - { - strats.el = strats.propsData = function (parent, child, vm, key) { - if (!vm) { - warn( - "option \"" + key + "\" can only be used during instance " + - 'creation with the `new` keyword.' - ); - } - return defaultStrat(parent, child) - }; - } - - /** - * Helper that recursively merges two data objects together. - */ - function mergeData (to, from) { - if (!from) { return to } - var key, toVal, fromVal; - - var keys = hasSymbol - ? Reflect.ownKeys(from) - : Object.keys(from); - - for (var i = 0; i < keys.length; i++) { - key = keys[i]; - // in case the object is already observed... - if (key === '__ob__') { continue } - toVal = to[key]; - fromVal = from[key]; - if (!hasOwn(to, key)) { - set(to, key, fromVal); - } else if ( - toVal !== fromVal && - isPlainObject(toVal) && - isPlainObject(fromVal) - ) { - mergeData(toVal, fromVal); - } - } - return to - } - - /** - * Data - */ - function mergeDataOrFn ( - parentVal, - childVal, - vm - ) { - if (!vm) { - // in a Vue.extend merge, both should be functions - if (!childVal) { - return parentVal - } - if (!parentVal) { - return childVal - } - // when parentVal & childVal are both present, - // we need to return a function that returns the - // merged result of both functions... no need to - // check if parentVal is a function here because - // it has to be a function to pass previous merges. - return function mergedDataFn () { - return mergeData( - typeof childVal === 'function' ? childVal.call(this, this) : childVal, - typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal - ) - } - } else { - return function mergedInstanceDataFn () { - // instance merge - var instanceData = typeof childVal === 'function' - ? childVal.call(vm, vm) - : childVal; - var defaultData = typeof parentVal === 'function' - ? parentVal.call(vm, vm) - : parentVal; - if (instanceData) { - return mergeData(instanceData, defaultData) - } else { - return defaultData - } - } - } - } - - strats.data = function ( - parentVal, - childVal, - vm - ) { - if (!vm) { - if (childVal && typeof childVal !== 'function') { - warn( - 'The "data" option should be a function ' + - 'that returns a per-instance value in component ' + - 'definitions.', - vm - ); - - return parentVal - } - return mergeDataOrFn(parentVal, childVal) - } - - return mergeDataOrFn(parentVal, childVal, vm) - }; - - /** - * Hooks and props are merged as arrays. - */ - function mergeHook ( - parentVal, - childVal - ) { - var res = childVal - ? parentVal - ? parentVal.concat(childVal) - : Array.isArray(childVal) - ? childVal - : [childVal] - : parentVal; - return res - ? dedupeHooks(res) - : res - } - - function dedupeHooks (hooks) { - var res = []; - for (var i = 0; i < hooks.length; i++) { - if (res.indexOf(hooks[i]) === -1) { - res.push(hooks[i]); - } - } - return res - } - - LIFECYCLE_HOOKS.forEach(function (hook) { - strats[hook] = mergeHook; - }); - - /** - * Assets - * - * When a vm is present (instance creation), we need to do - * a three-way merge between constructor options, instance - * options and parent options. - */ - function mergeAssets ( - parentVal, - childVal, - vm, - key - ) { - var res = Object.create(parentVal || null); - if (childVal) { - assertObjectType(key, childVal, vm); - return extend(res, childVal) - } else { - return res - } - } - - ASSET_TYPES.forEach(function (type) { - strats[type + 's'] = mergeAssets; - }); - - /** - * Watchers. - * - * Watchers hashes should not overwrite one - * another, so we merge them as arrays. - */ - strats.watch = function ( - parentVal, - childVal, - vm, - key - ) { - // work around Firefox's Object.prototype.watch... - if (parentVal === nativeWatch) { parentVal = undefined; } - if (childVal === nativeWatch) { childVal = undefined; } - /* istanbul ignore if */ - if (!childVal) { return Object.create(parentVal || null) } - { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = {}; - extend(ret, parentVal); - for (var key$1 in childVal) { - var parent = ret[key$1]; - var child = childVal[key$1]; - if (parent && !Array.isArray(parent)) { - parent = [parent]; - } - ret[key$1] = parent - ? parent.concat(child) - : Array.isArray(child) ? child : [child]; - } - return ret - }; - - /** - * Other object hashes. - */ - strats.props = - strats.methods = - strats.inject = - strats.computed = function ( - parentVal, - childVal, - vm, - key - ) { - if (childVal && "development" !== 'production') { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = Object.create(null); - extend(ret, parentVal); - if (childVal) { extend(ret, childVal); } - return ret - }; - strats.provide = mergeDataOrFn; - - /** - * Default strategy. - */ - var defaultStrat = function (parentVal, childVal) { - return childVal === undefined - ? parentVal - : childVal - }; - - /** - * Validate component names - */ - function checkComponents (options) { - for (var key in options.components) { - validateComponentName(key); - } - } - - function validateComponentName (name) { - if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { - warn( - 'Invalid component name: "' + name + '". Component names ' + - 'should conform to valid custom element name in html5 specification.' - ); - } - if (isBuiltInTag(name) || config.isReservedTag(name)) { - warn( - 'Do not use built-in or reserved HTML elements as component ' + - 'id: ' + name - ); - } - } - - /** - * Ensure all props option syntax are normalized into the - * Object-based format. - */ - function normalizeProps (options, vm) { - var props = options.props; - if (!props) { return } - var res = {}; - var i, val, name; - if (Array.isArray(props)) { - i = props.length; - while (i--) { - val = props[i]; - if (typeof val === 'string') { - name = camelize(val); - res[name] = { type: null }; - } else { - warn('props must be strings when using array syntax.'); - } - } - } else if (isPlainObject(props)) { - for (var key in props) { - val = props[key]; - name = camelize(key); - res[name] = isPlainObject(val) - ? val - : { type: val }; - } - } else { - warn( - "Invalid value for option \"props\": expected an Array or an Object, " + - "but got " + (toRawType(props)) + ".", - vm - ); - } - options.props = res; - } - - /** - * Normalize all injections into Object-based format - */ - function normalizeInject (options, vm) { - var inject = options.inject; - if (!inject) { return } - var normalized = options.inject = {}; - if (Array.isArray(inject)) { - for (var i = 0; i < inject.length; i++) { - normalized[inject[i]] = { from: inject[i] }; - } - } else if (isPlainObject(inject)) { - for (var key in inject) { - var val = inject[key]; - normalized[key] = isPlainObject(val) - ? extend({ from: key }, val) - : { from: val }; - } - } else { - warn( - "Invalid value for option \"inject\": expected an Array or an Object, " + - "but got " + (toRawType(inject)) + ".", - vm - ); - } - } - - /** - * Normalize raw function directives into object format. - */ - function normalizeDirectives (options) { - var dirs = options.directives; - if (dirs) { - for (var key in dirs) { - var def$$1 = dirs[key]; - if (typeof def$$1 === 'function') { - dirs[key] = { bind: def$$1, update: def$$1 }; - } - } - } - } - - function assertObjectType (name, value, vm) { - if (!isPlainObject(value)) { - warn( - "Invalid value for option \"" + name + "\": expected an Object, " + - "but got " + (toRawType(value)) + ".", - vm - ); - } - } - - /** - * Merge two option objects into a new one. - * Core utility used in both instantiation and inheritance. - */ - function mergeOptions ( - parent, - child, - vm - ) { - { - checkComponents(child); - } - - if (typeof child === 'function') { - child = child.options; - } - - normalizeProps(child, vm); - normalizeInject(child, vm); - normalizeDirectives(child); - - // Apply extends and mixins on the child options, - // but only if it is a raw options object that isn't - // the result of another mergeOptions call. - // Only merged options has the _base property. - if (!child._base) { - if (child.extends) { - parent = mergeOptions(parent, child.extends, vm); - } - if (child.mixins) { - for (var i = 0, l = child.mixins.length; i < l; i++) { - parent = mergeOptions(parent, child.mixins[i], vm); - } - } - } - - var options = {}; - var key; - for (key in parent) { - mergeField(key); - } - for (key in child) { - if (!hasOwn(parent, key)) { - mergeField(key); - } - } - function mergeField (key) { - var strat = strats[key] || defaultStrat; - options[key] = strat(parent[key], child[key], vm, key); - } - return options - } - - /** - * Resolve an asset. - * This function is used because child instances need access - * to assets defined in its ancestor chain. - */ - function resolveAsset ( - options, - type, - id, - warnMissing - ) { - /* istanbul ignore if */ - if (typeof id !== 'string') { - return - } - var assets = options[type]; - // check local registration variations first - if (hasOwn(assets, id)) { return assets[id] } - var camelizedId = camelize(id); - if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } - var PascalCaseId = capitalize(camelizedId); - if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } - // fallback to prototype chain - var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; - if (warnMissing && !res) { - warn( - 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, - options - ); - } - return res - } - - /* */ - - - - function validateProp ( - key, - propOptions, - propsData, - vm - ) { - var prop = propOptions[key]; - var absent = !hasOwn(propsData, key); - var value = propsData[key]; - // boolean casting - var booleanIndex = getTypeIndex(Boolean, prop.type); - if (booleanIndex > -1) { - if (absent && !hasOwn(prop, 'default')) { - value = false; - } else if (value === '' || value === hyphenate(key)) { - // only cast empty string / same name to boolean if - // boolean has higher priority - var stringIndex = getTypeIndex(String, prop.type); - if (stringIndex < 0 || booleanIndex < stringIndex) { - value = true; - } - } - } - // check default value - if (value === undefined) { - value = getPropDefaultValue(vm, prop, key); - // since the default value is a fresh copy, - // make sure to observe it. - var prevShouldObserve = shouldObserve; - toggleObserving(true); - observe(value); - toggleObserving(prevShouldObserve); - } - { - assertProp(prop, key, value, vm, absent); - } - return value - } - - /** - * Get the default value of a prop. - */ - function getPropDefaultValue (vm, prop, key) { - // no default, return undefined - if (!hasOwn(prop, 'default')) { - return undefined - } - var def = prop.default; - // warn against non-factory defaults for Object & Array - if (isObject(def)) { - warn( - 'Invalid default value for prop "' + key + '": ' + - 'Props with type Object/Array must use a factory function ' + - 'to return the default value.', - vm - ); - } - // the raw prop value was also undefined from previous render, - // return previous default value to avoid unnecessary watcher trigger - if (vm && vm.$options.propsData && - vm.$options.propsData[key] === undefined && - vm._props[key] !== undefined - ) { - return vm._props[key] - } - // call factory function for non-Function types - // a value is Function if its prototype is function even across different execution context - return typeof def === 'function' && getType(prop.type) !== 'Function' - ? def.call(vm) - : def - } - - /** - * Assert whether a prop is valid. - */ - function assertProp ( - prop, - name, - value, - vm, - absent - ) { - if (prop.required && absent) { - warn( - 'Missing required prop: "' + name + '"', - vm - ); - return - } - if (value == null && !prop.required) { - return - } - var type = prop.type; - var valid = !type || type === true; - var expectedTypes = []; - if (type) { - if (!Array.isArray(type)) { - type = [type]; - } - for (var i = 0; i < type.length && !valid; i++) { - var assertedType = assertType(value, type[i]); - expectedTypes.push(assertedType.expectedType || ''); - valid = assertedType.valid; - } - } - - if (!valid) { - warn( - getInvalidTypeMessage(name, value, expectedTypes), - vm - ); - return - } - var validator = prop.validator; - if (validator) { - if (!validator(value)) { - warn( - 'Invalid prop: custom validator check failed for prop "' + name + '".', - vm - ); - } - } - } - - var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; - - function assertType (value, type) { - var valid; - var expectedType = getType(type); - if (simpleCheckRE.test(expectedType)) { - var t = typeof value; - valid = t === expectedType.toLowerCase(); - // for primitive wrapper objects - if (!valid && t === 'object') { - valid = value instanceof type; - } - } else if (expectedType === 'Object') { - valid = isPlainObject(value); - } else if (expectedType === 'Array') { - valid = Array.isArray(value); - } else { - valid = value instanceof type; - } - return { - valid: valid, - expectedType: expectedType - } - } - - /** - * Use function string name to check built-in types, - * because a simple equality check will fail when running - * across different vms / iframes. - */ - function getType (fn) { - var match = fn && fn.toString().match(/^\s*function (\w+)/); - return match ? match[1] : '' - } - - function isSameType (a, b) { - return getType(a) === getType(b) - } - - function getTypeIndex (type, expectedTypes) { - if (!Array.isArray(expectedTypes)) { - return isSameType(expectedTypes, type) ? 0 : -1 - } - for (var i = 0, len = expectedTypes.length; i < len; i++) { - if (isSameType(expectedTypes[i], type)) { - return i - } - } - return -1 - } - - function getInvalidTypeMessage (name, value, expectedTypes) { - var message = "Invalid prop: type check failed for prop \"" + name + "\"." + - " Expected " + (expectedTypes.map(capitalize).join(', ')); - var expectedType = expectedTypes[0]; - var receivedType = toRawType(value); - var expectedValue = styleValue(value, expectedType); - var receivedValue = styleValue(value, receivedType); - // check if we need to specify expected value - if (expectedTypes.length === 1 && - isExplicable(expectedType) && - !isBoolean(expectedType, receivedType)) { - message += " with value " + expectedValue; - } - message += ", got " + receivedType + " "; - // check if we need to specify received value - if (isExplicable(receivedType)) { - message += "with value " + receivedValue + "."; - } - return message - } - - function styleValue (value, type) { - if (type === 'String') { - return ("\"" + value + "\"") - } else if (type === 'Number') { - return ("" + (Number(value))) - } else { - return ("" + value) - } - } - - function isExplicable (value) { - var explicitTypes = ['string', 'number', 'boolean']; - return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) - } - - function isBoolean () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) - } - - /* */ - - function handleError (err, vm, info) { - // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. - // See: https://github.com/vuejs/vuex/issues/1505 - pushTarget(); - try { - if (vm) { - var cur = vm; - while ((cur = cur.$parent)) { - var hooks = cur.$options.errorCaptured; - if (hooks) { - for (var i = 0; i < hooks.length; i++) { - try { - var capture = hooks[i].call(cur, err, vm, info) === false; - if (capture) { return } - } catch (e) { - globalHandleError(e, cur, 'errorCaptured hook'); - } - } - } - } - } - globalHandleError(err, vm, info); - } finally { - popTarget(); - } - } - - function invokeWithErrorHandling ( - handler, - context, - args, - vm, - info - ) { - var res; - try { - res = args ? handler.apply(context, args) : handler.call(context); - if (res && !res._isVue && isPromise(res) && !res._handled) { - res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); - // issue #9511 - // avoid catch triggering multiple times when nested calls - res._handled = true; - } - } catch (e) { - handleError(e, vm, info); - } - return res - } - - function globalHandleError (err, vm, info) { - if (config.errorHandler) { - try { - return config.errorHandler.call(null, err, vm, info) - } catch (e) { - // if the user intentionally throws the original error in the handler, - // do not log it twice - if (e !== err) { - logError(e, null, 'config.errorHandler'); - } - } - } - logError(err, vm, info); - } - - function logError (err, vm, info) { - { - warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); - } - /* istanbul ignore else */ - if ((inBrowser || inWeex) && typeof console !== 'undefined') { - console.error(err); - } else { - throw err - } - } - - /* */ - - var isUsingMicroTask = false; - - var callbacks = []; - var pending = false; - - function flushCallbacks () { - pending = false; - var copies = callbacks.slice(0); - callbacks.length = 0; - for (var i = 0; i < copies.length; i++) { - copies[i](); - } - } - - // Here we have async deferring wrappers using microtasks. - // In 2.5 we used (macro) tasks (in combination with microtasks). - // However, it has subtle problems when state is changed right before repaint - // (e.g. #6813, out-in transitions). - // Also, using (macro) tasks in event handler would cause some weird behaviors - // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). - // So we now use microtasks everywhere, again. - // A major drawback of this tradeoff is that there are some scenarios - // where microtasks have too high a priority and fire in between supposedly - // sequential events (e.g. #4521, #6690, which have workarounds) - // or even between bubbling of the same event (#6566). - var timerFunc; - - // The nextTick behavior leverages the microtask queue, which can be accessed - // via either native Promise.then or MutationObserver. - // MutationObserver has wider support, however it is seriously bugged in - // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It - // completely stops working after triggering a few times... so, if native - // Promise is available, we will use it: - /* istanbul ignore next, $flow-disable-line */ - if (typeof Promise !== 'undefined' && isNative(Promise)) { - var p = Promise.resolve(); - timerFunc = function () { - p.then(flushCallbacks); - // In problematic UIWebViews, Promise.then doesn't completely break, but - // it can get stuck in a weird state where callbacks are pushed into the - // microtask queue but the queue isn't being flushed, until the browser - // needs to do some other work, e.g. handle a timer. Therefore we can - // "force" the microtask queue to be flushed by adding an empty timer. - if (isIOS) { setTimeout(noop); } - }; - isUsingMicroTask = true; - } else if (!isIE && typeof MutationObserver !== 'undefined' && ( - isNative(MutationObserver) || - // PhantomJS and iOS 7.x - MutationObserver.toString() === '[object MutationObserverConstructor]' - )) { - // Use MutationObserver where native Promise is not available, - // e.g. PhantomJS, iOS7, Android 4.4 - // (#6466 MutationObserver is unreliable in IE11) - var counter = 1; - var observer = new MutationObserver(flushCallbacks); - var textNode = document.createTextNode(String(counter)); - observer.observe(textNode, { - characterData: true - }); - timerFunc = function () { - counter = (counter + 1) % 2; - textNode.data = String(counter); - }; - isUsingMicroTask = true; - } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { - // Fallback to setImmediate. - // Technically it leverages the (macro) task queue, - // but it is still a better choice than setTimeout. - timerFunc = function () { - setImmediate(flushCallbacks); - }; - } else { - // Fallback to setTimeout. - timerFunc = function () { - setTimeout(flushCallbacks, 0); - }; - } - - function nextTick (cb, ctx) { - var _resolve; - callbacks.push(function () { - if (cb) { - try { - cb.call(ctx); - } catch (e) { - handleError(e, ctx, 'nextTick'); - } - } else if (_resolve) { - _resolve(ctx); - } - }); - if (!pending) { - pending = true; - timerFunc(); - } - // $flow-disable-line - if (!cb && typeof Promise !== 'undefined') { - return new Promise(function (resolve) { - _resolve = resolve; - }) - } - } - - /* */ - - var mark; - var measure; - - { - var perf = inBrowser && window.performance; - /* istanbul ignore if */ - if ( - perf && - perf.mark && - perf.measure && - perf.clearMarks && - perf.clearMeasures - ) { - mark = function (tag) { return perf.mark(tag); }; - measure = function (name, startTag, endTag) { - perf.measure(name, startTag, endTag); - perf.clearMarks(startTag); - perf.clearMarks(endTag); - // perf.clearMeasures(name) - }; - } - } - - /* not type checking this file because flow doesn't play well with Proxy */ - - var initProxy; - - { - var allowedGlobals = makeMap( - 'Infinity,undefined,NaN,isFinite,isNaN,' + - 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + - 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + - 'require' // for Webpack/Browserify - ); - - var warnNonPresent = function (target, key) { - warn( - "Property or method \"" + key + "\" is not defined on the instance but " + - 'referenced during render. Make sure that this property is reactive, ' + - 'either in the data option, or for class-based components, by ' + - 'initializing the property. ' + - 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', - target - ); - }; - - var warnReservedPrefix = function (target, key) { - warn( - "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + - 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + - 'prevent conflicts with Vue internals. ' + - 'See: https://vuejs.org/v2/api/#data', - target - ); - }; - - var hasProxy = - typeof Proxy !== 'undefined' && isNative(Proxy); - - if (hasProxy) { - var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); - config.keyCodes = new Proxy(config.keyCodes, { - set: function set (target, key, value) { - if (isBuiltInModifier(key)) { - warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); - return false - } else { - target[key] = value; - return true - } - } - }); - } - - var hasHandler = { - has: function has (target, key) { - var has = key in target; - var isAllowed = allowedGlobals(key) || - (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); - if (!has && !isAllowed) { - if (key in target.$data) { warnReservedPrefix(target, key); } - else { warnNonPresent(target, key); } - } - return has || !isAllowed - } - }; - - var getHandler = { - get: function get (target, key) { - if (typeof key === 'string' && !(key in target)) { - if (key in target.$data) { warnReservedPrefix(target, key); } - else { warnNonPresent(target, key); } - } - return target[key] - } - }; - - initProxy = function initProxy (vm) { - if (hasProxy) { - // determine which proxy handler to use - var options = vm.$options; - var handlers = options.render && options.render._withStripped - ? getHandler - : hasHandler; - vm._renderProxy = new Proxy(vm, handlers); - } else { - vm._renderProxy = vm; - } - }; - } - - /* */ - - var seenObjects = new _Set(); - - /** - * Recursively traverse an object to evoke all converted - * getters, so that every nested property inside the object - * is collected as a "deep" dependency. - */ - function traverse (val) { - _traverse(val, seenObjects); - seenObjects.clear(); - } - - function _traverse (val, seen) { - var i, keys; - var isA = Array.isArray(val); - if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { - return - } - if (val.__ob__) { - var depId = val.__ob__.dep.id; - if (seen.has(depId)) { - return - } - seen.add(depId); - } - if (isA) { - i = val.length; - while (i--) { _traverse(val[i], seen); } - } else { - keys = Object.keys(val); - i = keys.length; - while (i--) { _traverse(val[keys[i]], seen); } - } - } - - /* */ - - var normalizeEvent = cached(function (name) { - var passive = name.charAt(0) === '&'; - name = passive ? name.slice(1) : name; - var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first - name = once$$1 ? name.slice(1) : name; - var capture = name.charAt(0) === '!'; - name = capture ? name.slice(1) : name; - return { - name: name, - once: once$$1, - capture: capture, - passive: passive - } - }); - - function createFnInvoker (fns, vm) { - function invoker () { - var arguments$1 = arguments; - - var fns = invoker.fns; - if (Array.isArray(fns)) { - var cloned = fns.slice(); - for (var i = 0; i < cloned.length; i++) { - invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); - } - } else { - // return handler return value for single handlers - return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") - } - } - invoker.fns = fns; - return invoker - } - - function updateListeners ( - on, - oldOn, - add, - remove$$1, - createOnceHandler, - vm - ) { - var name, def$$1, cur, old, event; - for (name in on) { - def$$1 = cur = on[name]; - old = oldOn[name]; - event = normalizeEvent(name); - if (isUndef(cur)) { - warn( - "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), - vm - ); - } else if (isUndef(old)) { - if (isUndef(cur.fns)) { - cur = on[name] = createFnInvoker(cur, vm); - } - if (isTrue(event.once)) { - cur = on[name] = createOnceHandler(event.name, cur, event.capture); - } - add(event.name, cur, event.capture, event.passive, event.params); - } else if (cur !== old) { - old.fns = cur; - on[name] = old; - } - } - for (name in oldOn) { - if (isUndef(on[name])) { - event = normalizeEvent(name); - remove$$1(event.name, oldOn[name], event.capture); - } - } - } - - /* */ - - function mergeVNodeHook (def, hookKey, hook) { - if (def instanceof VNode) { - def = def.data.hook || (def.data.hook = {}); - } - var invoker; - var oldHook = def[hookKey]; - - function wrappedHook () { - hook.apply(this, arguments); - // important: remove merged hook to ensure it's called only once - // and prevent memory leak - remove(invoker.fns, wrappedHook); - } - - if (isUndef(oldHook)) { - // no existing hook - invoker = createFnInvoker([wrappedHook]); - } else { - /* istanbul ignore if */ - if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { - // already a merged invoker - invoker = oldHook; - invoker.fns.push(wrappedHook); - } else { - // existing plain hook - invoker = createFnInvoker([oldHook, wrappedHook]); - } - } - - invoker.merged = true; - def[hookKey] = invoker; - } - - /* */ - - function extractPropsFromVNodeData ( - data, - Ctor, - tag - ) { - // we are only extracting raw values here. - // validation and default values are handled in the child - // component itself. - var propOptions = Ctor.options.props; - if (isUndef(propOptions)) { - return - } - var res = {}; - var attrs = data.attrs; - var props = data.props; - if (isDef(attrs) || isDef(props)) { - for (var key in propOptions) { - var altKey = hyphenate(key); - { - var keyInLowerCase = key.toLowerCase(); - if ( - key !== keyInLowerCase && - attrs && hasOwn(attrs, keyInLowerCase) - ) { - tip( - "Prop \"" + keyInLowerCase + "\" is passed to component " + - (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + - " \"" + key + "\". " + - "Note that HTML attributes are case-insensitive and camelCased " + - "props need to use their kebab-case equivalents when using in-DOM " + - "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." - ); - } - } - checkProp(res, props, key, altKey, true) || - checkProp(res, attrs, key, altKey, false); - } - } - return res - } - - function checkProp ( - res, - hash, - key, - altKey, - preserve - ) { - if (isDef(hash)) { - if (hasOwn(hash, key)) { - res[key] = hash[key]; - if (!preserve) { - delete hash[key]; - } - return true - } else if (hasOwn(hash, altKey)) { - res[key] = hash[altKey]; - if (!preserve) { - delete hash[altKey]; - } - return true - } - } - return false - } - - /* */ - - // The template compiler attempts to minimize the need for normalization by - // statically analyzing the template at compile time. - // - // For plain HTML markup, normalization can be completely skipped because the - // generated render function is guaranteed to return Array. There are - // two cases where extra normalization is needed: - - // 1. When the children contains components - because a functional component - // may return an Array instead of a single root. In this case, just a simple - // normalization is needed - if any child is an Array, we flatten the whole - // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep - // because functional components already normalize their own children. - function simpleNormalizeChildren (children) { - for (var i = 0; i < children.length; i++) { - if (Array.isArray(children[i])) { - return Array.prototype.concat.apply([], children) - } - } - return children - } - - // 2. When the children contains constructs that always generated nested Arrays, - // e.g.